Wiki 9Minecraft Wiki 9Minecraft

Retexturing and Recoloring Spawn Eggs

How to change the colors or apply a custom pixel-art texture to an entity's spawn egg.

6Sections
4Code examples
3Known errors

Every spawnable entity in Minecraft Bedrock automatically generates a spawn egg item in the Creative inventory unless explicitly disabled in the behavior pack. By default, this egg uses a two-layer grayscale template tinted with hexadecimal colors, or a completely custom 2D sprite. You configure both methods inside the entity's client description file in your resource pack.

How Bedrock Handles Spawn Egg Visuals

Unlike regular items that require their own files in the items folder, spawn eggs are tied directly to the entity they summon. As long as your behavior pack entity has is_spawnable set to true inside its description, the game creates the item automatically. All visual customization happens in the resource pack inside the client_entity file.

You have two mutually exclusive options inside the spawn_egg object: tinting the vanilla egg template using base_color and overlay_color, or overriding the template entirely with a custom image using the texture and texture_index properties. Tinting is fast and matches the vanilla aesthetic, while custom textures are better when your add-on introduces dozens of mobs that need to be recognizable at a glance in the inventory.

FieldWhat it doesNotes
base_colorSets the background shell color of the egg.Uses a 6-character hex string, such as #FF0000.
overlay_colorSets the color of the spots on the egg.Uses a 6-character hex string. Cannot be combined with a custom texture.
texturePoints to a shortname defined in item_texture.json.Replaces the two-tone vanilla template completely.
texture_indexSelects a specific frame from a texture array.Optional integer. Defaults to 0 if omitted.

Method 1: Tinting the Vanilla Egg

The fastest way to style a spawn egg is to supply two hexadecimal color codes. The game takes its built-in grayscale base and spot masks and multiplies them by your colors. This requires no image files or texture registration.

Open your entity's resource pack definition file and add the spawn_egg object inside the description block. Both base_color and overlay_color must be strings starting with a hash symbol followed by six hexadecimal digits. Standard 8-digit hex codes with alpha values are not supported here; the egg is always fully opaque.

RP/entity/goblin.entity.json
{
  "format_version": "1.10.0",
  "minecraft:client_entity": {
    "description": {
      "identifier": "my_pack:goblin",
      "materials": {
        "default": "entity_alphatest"
      },
      "textures": {
        "default": "textures/entity/goblin"
      },
      "geometry": {
        "default": "geometry.goblin"
      },
      "spawn_egg": {
        "base_color": "#3B6E22",
        "overlay_color": "#8F563B"
      }
    }
  }
}

Method 2: Assigning a Custom Texture

When two flat colors are not enough, you can replace the egg graphic with your own pixel art, such as a miniature icon of the mob's face or a custom-shaded egg. Place your PNG file inside the resource pack's textures/items directory. Standard resolution is 16x16 pixels, though higher resolutions work the same as any other item sprite.

Instead of referencing the file path directly inside the client entity file, spawn eggs use the item texture atlas. You must first assign a shortname to your image inside RP/textures/item_texture.json, and then reference that shortname in the entity's spawn_egg block. If you provide the texture key, the game ignores base_color and overlay_color.

RP/entity/goblin.entity.json
{
  "format_version": "1.10.0",
  "minecraft:client_entity": {
    "description": {
      "identifier": "my_pack:goblin",
      "materials": {
        "default": "entity_alphatest"
      },
      "textures": {
        "default": "textures/entity/goblin"
      },
      "geometry": {
        "default": "geometry.goblin"
      },
      "spawn_egg": {
        "texture": "goblin_egg"
      }
    }
  }
}

Registering the Shortname in item_texture.json

The texture string you wrote in the client entity file is looked up in RP/textures/item_texture.json. If this file does not exist in your resource pack yet, create it. The texture_data object maps your chosen shortname to the actual file path inside the pack, omitting the .png extension.

If you are creating many entities, you can group all of your spawn egg paths into a single array under one shortname, and then select which image each entity uses by adding texture_index to the entity's spawn_egg block. Index 0 is the first path in the list, index 1 is the second, and so on. This keeps item_texture.json clean in large packs.

RP/textures/item_texture.json
{
  "resource_pack_name": "my_pack",
  "texture_name": "atlas.items",
  "texture_data": {
    "goblin_egg": {
      "textures": "textures/items/egg_goblin"
    },
    "boss_eggs": {
      "textures": [
        "textures/items/egg_troll",
        "textures/items/egg_dragon"
      ]
    }
  }
}

Overriding Vanilla Spawn Eggs

You can apply these exact same rules to vanilla mobs if you are making a pure resource pack. Copy the vanilla entity's client declaration into your RP/entity folder, keep its original minecraft: identifier, and replace its spawn_egg block.

Note that several older vanilla mobs have hardcoded spawn egg names in the vanilla item atlas (for example, spawn_egg_creeper), while newer mobs tend to use base_color and overlay_color in their client entity files. Regardless of how the vanilla mob sets its egg originally, writing a new spawn_egg block in an overriding client_entity file with format_version 1.10.0 will cleanly replace the visual.

Setting the Spawn Egg Display Name

A retextured egg still shows a raw identifier like item.spawn_egg.entity.my_pack:goblin.name until you localize it. Spawn egg translation keys follow a strict format based on the entity's identifier.

Open your resource pack's language file (such as RP/texts/en_US.lang) and add both the entity name and the spawn egg item name. There is no JSON component for a spawn egg's display name because it is not a standalone custom item.

RP/texts/en_US.lang
entity.my_pack:goblin.name=Goblin
item.spawn_egg.entity.my_pack:goblin.name=Spawn Goblin

Which versions this applies to

Applies to format_version 1.10.0 and all modern Bedrock versions (1.16.0 through 1.21+). Stable feature; no experimental toggles are required.

When it does not work

What you seeWhyThe fix
The spawn egg appears as a blank white and gray checkerboard or purple-and-black missing texture icon in the inventory.The string inside spawn_egg.texture was set to a file path like "textures/items/egg_goblin" instead of a shortname, or the shortname is misspelled in RP/textures/item_texture.json.Ensure spawn_egg.texture matches a key inside texture_data in item_texture.json, and verify the PNG file exists at the path specified in item_texture.json.
The spawn egg shows up completely black or uses default magenta/black colors despite base_color and overlay_color being set.The hex color string is missing the leading # character, contains an alpha channel (8 digits instead of 6), or uses invalid hexadecimal characters.Format both color strings strictly as 6-digit hex codes with a hash prefix, such as "#4A90E2".
The spawn egg does not appear in the Creative inventory at all, nor can it be given with /give.The behavior pack entity description has "is_spawnable": false, or the property was omitted entirely.Open the corresponding BP/entities/ file and add "is_spawnable": true inside the minecraft:entity description block.

Reference, straight from the game files

Read out of the game itself, so the ids match the version you are building for.