Skip to main content

Custom Doors

As of version 5.6.0 you can add custom door models for the TARDIS console.

Star Trek door

Custom door models are defined in plugins/TARDIS/custom_doors.yml, an example entry is shown below:

/plugins/TARDIS/custom_doors.yml
# this entry is the police box door, but centred on a block
centred:
material: ANGLER_POTTERY_SHERD
animation_sequence: 0,1,2
frame_rate: 6
has_extra: true
open_sound: tardis_door_open
close_sound: tardis_door_close

For TARDIS v6.x.x and Minecraft 1.21.4+

ConfigTypeDefault
centred:
materialstringANGLER_POTTERY_SHERD
The material of the door item display - MUST be an unused pottery sherd, one of ANGLER_POTTERY_SHERD, ARCHER_POTTERY_SHERD, ARMS_UP_POTTERY_SHERD, BLADE_POTTERY_SHERD, BREWER_POTTERY_SHERD, BURN_POTTERY_SHERD, DANGER_POTTERY_SHERD, EXPLORER_POTTERY_SHERD, FLOW_POTTERY_SHERD, FRIEND_POTTERY_SHERD, GUSTER_POTTERY_SHERD, HEART_POTTERY_SHERD, HEARTBREAK_POTTERY_SHERD, HOWL_POTTERY_SHERD, MINER_POTTERY_SHERD, MOURNER_POTTERY_SHERD, PLENTY_POTTERY_SHERD, PRIZE_POTTERY_SHERD, SCRAPE_POTTERY_SHERD, SHEAF_POTTERY_SHERD, SHELTER_POTTERY_SHERD, SKULL_POTTERY_SHERD, SNORT_POTTERY_SHERD.
animation_sequencestring0,1,2
A comma separated list of frame numbers where the number is added to the item model’s file name. Door states will need to be saved as separate JSON model definition files in assets/tardis/items/ with the following naming scheme (where xxx = the name value above - assets/tardis/items/xxx_[zero-based sequential frame number].json. In this example the open animation would be 0, 1, 2, open and the closed animation would be 2, 1, 0, closed.
frame_ratenumber6
The animation frame rate in ticks
has_extrabooleantrue
Whether the door has a third state activated by crouch-right-clicking e.g. the double police door has one side open, closed, and a third "both sides open" state. The JSON model definition file name for this state should be xxx_extra e.g.: assets/tardis/items/centred_extra.json.
open_soundstringtardis_door_open
SFX - If using new custom sounds, you will need to add entries to assets/minecraft/sounds.json and save .ogg files to assets/tardis/sounds/ in the resource pack. This one is the sound for when the door opens.
close_soundstringtardis_door_close
The sound for when the door closes.

Model definitions

Model definitions should be located in assets/tardis/items with specific names:

StateFilename suffix
door closed_closed
door open_open
door extra_extra
door animation_[frame number]

Using the suffixes above, the example centred preset files would be named:

assets/tardis/items/...
centred_closed.json
centred_open.json
centred_extra.json
centred_0.json
centred_1.json
centred_2.json

The model definition in these files then points to the actual item model found somewhere in assets/tardis/models/item/, for example:

assets/tardis/items/bad_wolf_closed.json
{
"model": {
"type": "minecraft:model",
"model": "tardis:item/doors/centred_open"
}
}
tip

Once set up this way and the resource pack reloaded, you can use the minecraft:give command to test the models are working:

/give @s angler_pottery_sherd[item_model="tardis:centred_open"]

Or alternatively, use the resource pack debug preview feature.

Prior to TARDIS v6.x.x

ConfigTypeDefault
centred:
materialstringANGLER_POTTERY_SHERD
The material of the door item display - MUST be an unused pottery sherd, one of ANGLER_POTTERY_SHERD, ARCHER_POTTERY_SHERD, ARMS_UP_POTTERY_SHERD, BLADE_POTTERY_SHERD, BREWER_POTTERY_SHERD, BURN_POTTERY_SHERD, DANGER_POTTERY_SHERD, EXPLORER_POTTERY_SHERD, FRIEND_POTTERY_SHERD, HEART_POTTERY_SHERD, HEARTBREAK_POTTERY_SHERD, HOWL_POTTERY_SHERD, MINER_POTTERY_SHERD, MOURNER_POTTERY_SHERD, PLENTY_POTTERY_SHERD, PRIZE_POTTERY_SHERD, SHEAF_POTTERY_SHERD, SHELTER_POTTERY_SHERD, SKULL_POTTERY_SHERD, SNORT_POTTERY_SHERD, 1.21+ FLOW_POTTERY_SHERD, GUSTER_POTTERY_SHERD, SCRAPE_POTTERY_SHERD. Open/closed/animation states will need to be set with "custom_model_data" predicates in assets/minecraft/models/item/[xxx_pottery_sherd].json starting at 10000
animation_sequencestring0,1,2,3,4
A comma separated list of frame numbers where the number is added to the starting (closed) animation frame to get the "custom_model_data" predicate e.g. 10000 + 3 = 10003 - in this example, 0 => closed, 4 => fully open, but for a simple door 0,1 would be just closed and open.
frame_ratenumber6
The animation frame rate in ticks
has_extrabooleantrue
Whether the door has a third state activated by crouch-right-clicking e.g. the double police door has one side open, closed, and a third "both sides open" state. The "custom_model_data" predicate for this state should be 1 greater than the highest value of the animation_sequence, for this example it would be 5.
open_soundstringtardis_door_open
SFX - If using new custom sounds, you will need to add entries to assets/minecraft/sounds.json and save .ogg files to assets/tardis/sounds/ in the resource pack. This one is the sound for when the door opens.
close_soundstringtardis_door_close
The sound for when the door closes.

Example model overrides

Door model custom_model_data predicates go in angler_pottery_sherd.json:

assets/minecraft/models/item/angler_pottery_sherd.json
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "minecraft:item/angler_pottery_sherd"
},
"overrides": [
{"predicate": {"custom_model_data":10000}, "model": "tardis:block/tardis/police_box_door_0"},
{"predicate": {"custom_model_data":10001}, "model": "tardis:block/tardis/police_box_door_1"},
{"predicate": {"custom_model_data":10002}, "model": "tardis:block/tardis/police_box_door_2"},
{"predicate": {"custom_model_data":10003}, "model": "tardis:block/tardis/police_box_door_3"},
{"predicate": {"custom_model_data":10004}, "model": "tardis:block/tardis/police_box_door_4"},
{"predicate": {"custom_model_data":10005}, "model": "tardis:block/tardis/police_box_door_both"}
]
}