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:

  1. cosmetics.yml tells the plugin which item and model ID to use.

  2. 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 PAPER has CustomModelData: 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 modelID in cosmetics.yml must match the custom_model_data number in the resource pack.

 

THIS PAGE IS FULLY AI GENERATED. I have 0 idea how to explain this 😭

Advertisement
Advertisement