Custom Boat Models
Custom boat models use a normal Minecraft boat for movement, but show a custom model on top of it.
The setup has two parts:
-
cosmetics.ymltells the plugin which item and model ID to use. -
The resource pack tells Minecraft what that model ID should look like.
How It Works
In cosmetics.yml, a custom boat should use an item such as PAPER and a unique modelID.
Example;
cosmetics:
boats:
ice_boat:
display: "&bCustom Ice Boat Model"
icon: PAPER
modelID: 1002 # <- VERY IMPORTANTTTTTTTTTTTTTTTT
price: 500
In this example, the plugin creates a PAPER item with CustomModelData set to 1002.
The resource pack then tells Minecraft:
When
PAPERhasCustomModelData: 1002, show the custom ice boat model instead of normal paper.
After the resource pack is enabled, the plugin spawns a real boat, creates an ItemDisplay, and shows the custom boat model on top of the real boat.
Diagram
cosmetics.yml
|
| icon: PAPER
| modelID: 1002
v
Plugin creates PAPER with CustomModelData 1002
|
v
Resource pack checks paper.json
|
v
paper.json points to ice_boat.json
|
v
Minecraft shows the custom boat model
|
v
Plugin displays it on top of the real boat
a
Resource Pack Folder Layout
ResourcePack/
├── pack.mcmeta
└── assets/
├── minecraft/
│ └── models/
│ └── item/
│ └── paper.json
│
└── funcysiceboatracing/
├── models/
│ └── item/
│ └── ice_boat.json
└── textures/
└── item/
└── ice_boat.png
paper.json Example
Put this file here:
assets/minecraft/models/item/paper.json
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "minecraft:item/paper"
},
"overrides": [
{
"predicate": {
"custom_model_data": 1002
},
"model": "funcysiceboatracing:item/ice_boat"
}
]
}
The number 1002 must match the modelID in cosmetics.yml.
ice_boat.json Example
Put this file here:
assets/funcysiceboatracing/models/item/ice_boat.json
Simple test version:
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "funcysiceboatracing:item/ice_boat"
}
}
The texture image should go here:
assets/funcysiceboatracing/textures/item/ice_boat.png
Important
-
Each custom boat should have a different
modelID. -
The
modelIDincosmetics.ymlmust match thecustom_model_datanumber in the resource pack.
THIS PAGE IS FULLY AI GENERATED. I have 0 idea how to explain this 😭