Skip to content

Client resources

Crystal Spider edited this page Jul 19, 2024 · 6 revisions

Fire sprites

Vanilla fires (normal fire and soul fire), use two different sprite animations to render. Let's call them sprite0 and sprite1.
They are both used to render the fire you see on entities, but sprite1 is the only one used to render the player's screen overlay.

The first thing you need is your own pair of fire animated sprites. They need to be animated PNGs with a .mcmeta file describing the order of each frame.
It's required to follow this format when naming your fire sprites:

fire_id_fire_0.png
fire_id_fire_0.png.mcmeta
fire_id_fire_1.png
fire_id_fire_1.png.mcmeta

(you should put your own custom Fire Id in the place of fire_id)
The following are the sprites used for soul fire, which set the example you should follow: soul_fire_sprites.zip

Once you have your own sprites, you need to put them under assets/mod_id/textures/block/ (mod_id should be your own Mod Id).

Slim Fire

If you wish for your mod to be supported by Slim Fire, a texture pack to reduce the space taken up by the fire overlay, you can either:

  • Open an issue here asking for support.
  • Come chat on our Discord and open a support ticket selecting the tag for Slim Fire.

In both cases, you will need to provide your mod name and either a link to the source code or the fire sprites and fire source block JSON models.
We will take care of adding full support, even by creating the new lowered sprites!

Enchantments localization

If you add custom Fire enchantments, you also need to add translations for them.
Luckily, this is very simple, just put under assets/mod_id/lang/ a JSON file named us_us.json with the following entries:

{
  "enchantment.mod_id.fire_id_fire_aspect": "",
  "enchantment.mod_id.fire_id_flame": "",
  "enchantment.mod_id.fire_id_fire_aspect.desc": "",
  "enchantment.mod_id.fire_id_flame.desc": ""
}

and fill them with the name you wish the enchantments to display and a brief description of what the enchantment does.
Of course remember to change mod_id with your Mod Id and fire_id with your Fire Id.

The entries that end with desc are technically optional, but adding them is a good practice for compatibility with Enchantment Descriptions and similar mods.
If you wish to add more languages other than English, you can find a list of other language tags here.

Fire Components assets

Depending on the Fire Component, there are different required assets.
Below you can find all the required assets for each Fire Component.

Make sure to replace mod_id and fire_id with the correct ones.
You'll also need to add translation entries for each Fire Component.

SOURCE_BLOCK

Required textures

The textures for your custom fire source block should already be there. See the Fire sprites section otherwise.

Required models

Location: assets/mod_id/models/block/

There 3 files to add for each fire sprite, for a total of 6 files:

fire_id_fire_floor0.png
fire_id_fire_floor1.png
fire_id_fire_side0.png
fire_id_fire_side1.png
fire_id_fire_side_alt0.png
fire_id_fire_side_alt1.png

Each of these files should have the following content:

{
  "parent": "minecraft:block/template_fire_floor", // Change this to use the file name without the number.
  "textures": {
    "fire": "mod_id:block/fire_id_fire_0" // Change the number to match the one in the file name.
  }
}

Required blockstates

Location: assets/mod_id/blockstates/

{
  "multipart": [
    {
      "apply": [
        {
          "model": "mod_id:block/fire_id_fire_floor0"
        },
        {
          "model": "mod_id:block/fire_id_fire_floor1"
        }
      ]
    },
    {
      "apply": [
        {
          "model": "mod_id:block/fire_id_fire_side0"
        },
        {
          "model": "mod_id:block/fire_id_fire_side1"
        },
        {
          "model": "mod_id:block/fire_id_fire_side_alt0"
        },
        {
          "model": "mod_id:block/fire_id_fire_side_alt1"
        }
      ]
    },
    {
      "apply": [
        {
          "model": "mod_id:block/fire_id_fire_side0",
          "y": 90
        },
        {
          "model": "mod_id:block/fire_id_fire_side1",
          "y": 90
        },
        {
          "model": "mod_id:block/fire_id_fire_side_alt0",
          "y": 90
        },
        {
          "model": "mod_id:block/fire_id_fire_side_alt1",
          "y": 90
        }
      ]
    },
    {
      "apply": [
        {
          "model": "mod_id:block/fire_id_fire_side0",
          "y": 180
        },
        {
          "model": "mod_id:block/fire_id_fire_side1",
          "y": 180
        },
        {
          "model": "mod_id:block/fire_id_fire_side_alt0",
          "y": 180
        },
        {
          "model": "mod_id:block/fire_id_fire_side_alt1",
          "y": 180
        }
      ]
    },
    {
      "apply": [
        {
          "model": "minecraft:block/soul_fire_side0",
          "y": 270
        },
        {
          "model": "minecraft:block/soul_fire_side1",
          "y": 270
        },
        {
          "model": "minecraft:block/soul_fire_side_alt0",
          "y": 270
        },
        {
          "model": "minecraft:block/soul_fire_side_alt1",
          "y": 270
        }
      ]
    }
  ]
}
CAMPFIRE_BLOCK

Required textures

Location: assets/mod_id/textures/block/

fire_id_campfire_fire.png
fire_id_campfire_fire.png.mcmeta
fire_id_campfire_log_lit.png
fire_id_campfire_log_lit.png.mcmeta

For their content, check out the Vanilla ones.

Required models

Location: assets/mod_id/models/block/

A single model is required: fire_id_campfire.json

{
  "parent": "minecraft:block/template_campfire",
  "textures": {
    "fire": "mod_id:block/fire_id_campfire_fire",
    "lit_log": "mod_id:block/fire_id_campfire_log_lit"
  }
}

Required blockstates

Location: assets/mod_id/blockstates/

{
  "variants": {
    "facing=east,lit=false": {
      "model": "minecraft:block/campfire_off",
      "y": 270
    },
    "facing=east,lit=true": {
      "model": "mod_id:block/fire_id_campfire",
      "y": 270
    },
    "facing=north,lit=false": {
      "model": "minecraft:block/campfire_off",
      "y": 180
    },
    "facing=north,lit=true": {
      "model": "mod_id:block/fire_id_campfire",
      "y": 180
    },
    "facing=south,lit=false": {
      "model": "minecraft:block/campfire_off"
    },
    "facing=south,lit=true": {
      "model": "mod_id:block/fire_id_campfire"
    },
    "facing=west,lit=false": {
      "model": "minecraft:block/campfire_off",
      "y": 90
    },
    "facing=west,lit=true": {
      "model": "mod_id:block/fire_id_campfire",
      "y": 90
    }
  }
}
CAMPFIRE_ITEM

Required textures

Location: assets/mod_id/textures/item/

A single texture is required: fire_id_campfire.json
For its content check out the Vanilla one.

Required models

Location: assets/mod_id/models/item/

A single model is required: fire_id_campfire.json

{
  "parent": "minecraft:item/generated",
  "textures": {
    "layer0": "mod_id:item/fire_id_campfire"
  }
}
LANTERN_BLOCK

Required textures

Location: assets/mod_id/textures/block/

A single texture is required, but it's a sprite, thus two files are needed:

fire_id_lantern.png
fire_id_lantern.png.mcmeta

For their content, check out the Vanilla ones.

Required models

Location: assets/mod_id/models/block/

Two models are required:

fire_id_lantern.json

{
  "parent": "minecraft:block/template_lantern",
  "textures": {
    "lantern": "mod_id:block/fire_id_lantern"
  }
}

fire_id_lantern_hanging.json

{
  "parent": "minecraft:block/template_hanging_lantern",
  "textures": {
    "lantern": "mod_id:block/fire_id_lantern"
  }
}

Required blockstates

Location: assets/mod_id/blockstates/

{
  "variants": {
    "hanging=false": {
      "model": "mod_id:block/fire_id_lantern"
    },
    "hanging=true": {
      "model": "mod_id:block/fire_id_lantern_hanging"
    }
  }
}
LANTERN_ITEM

Required textures

Location: assets/mod_id/textures/item/

A single texture is required: fire_id_lantern.json
For its content check out the Vanilla one.

Required models

Location: assets/mod_id/models/item/

A single model is required: fire_id_lantern.json

{
  "parent": "minecraft:item/generated",
  "textures": {
    "layer0": "mod_id:item/fire_id_lantern"
  }
}
TORCH_BLOCK

Required textures

Location: assets/mod_id/textures/block/

A single texture is required: fire_id_torch.json
For its content check out the Vanilla one.

Required models

Location: assets/mod_id/models/block/

A single model is required: fire_id_torch.json

{
  "parent": "minecraft:block/template_torch",
  "textures": {
    "torch": "mod_id:block/fire_id_torch"
  }
}

Required blockstates

Location: assets/mod_id/blockstates/

{
  "variants": {
    "": {
      "model": "mod_id:block/fire_id_torch"
    }
  }
}
WALL_TORCH_BLOCK

Required textures

Location: assets/mod_id/textures/block/

There are no required textures since the wall torch block uses the other block texture.

Required models

Location: assets/mod_id/models/block/

A single model is required: fire_id_wall_torch.json

{
  "parent": "minecraft:block/template_torch_wall",
  "textures": {
    "torch": "mod_id:block/fire_id_torch"
  }
}

Required blockstates

Location: assets/mod_id/blockstates/

{
  "variants": {
    "facing=east": {
      "model": "mod_id:block/fire_id_wall_torch"
    },
    "facing=north": {
      "model": "mod_id:block/fire_id_wall_torch",
      "y": 270
    },
    "facing=south": {
      "model": "mod_id:block/fire_id_wall_torch",
      "y": 90
    },
    "facing=west": {
      "model": "mod_id:block/fire_id_wall_torch",
      "y": 180
    }
  }
}
TORCH_ITEM

Required textures

Location: assets/mod_id/textures/item/

There are no required textures since the torch item uses the block texture.

Required models

Location: assets/mod_id/models/item/

A single model is required: fire_id_torch.json

{
  "parent": "minecraft:item/generated",
  "textures": {
    "layer0": "mod_id:block/fire_id_torch"
  }
}
FLAME_PARTICLE

Required textures

Location: assets/mod_id/textures/particle/

A single texture is required: fire_id_flame.png
For its content check out the Vanilla one.

Required models

Location: assets/mod_id/particles/

A single model is required: fire_id_flame.json

{
  "textures": [
    "mod_id:fire_id_flame"
  ]
}