Rainbow
ModA Minecraft mod to generate Geyser item mappings and bedrock resourcepacks for use with Geyser's custom item API (v2)
Type
Mod
Modrinth Downloads
2,114
Modrinth ID
QD7c9rxP
Last Updated
Jul 27, 2026
Description
Rainbow
Rainbow is a client-side Minecraft mod for the Fabric modloader to generate Geyser block/item mappings, locale overrides, and bedrock resourcepacks for use with Geyser's custom content APIs. Rainbow is available for Minecraft 26.2.
Rainbow is currently experimental, and capable of generating Geyser block/item/skull/waypoint style mappings, and a bedrock resourcepack for somewhat simple blocks, 2D and 3D items, sounds, and waypoint styles. For a moderately complete list of Rainbow's capabilities, see further below.
Rainbow works by detecting custom blocks (using block state overrides) from loaded resourcepacks, and custom items in your inventory, or a container/inventory menu you have opened. It analyses the components of detected items, and uses assets from loaded Java resourcepacks to gather information about block and item models, textures, and more.
Usage
You can download the latest version of Rainbow here on our website or here on Modrinth. Using Rainbow requires the Fabric API to be installed.
To use Rainbow, you must install it on your Minecraft client. Rainbow adds a few commands to the client. Generally, you use them as follows:
- First, start a new pack by running /rainbow create <name>, replacing <name> with the name of your pack. Your resourcepack and Geyser mappings will be exported in the .minecraft/rainbow/<name> folder. Anything in here can be overwritten!
- Once you have created a pack, you can start mapping custom content. Mapped custom content will be included in the exported resourcepack and Geyser mappings. There are multiple ways to map custom content:
- /rainbow map block <target> - maps the custom block at <target>, if any.
- /rainbow map item - maps the custom item or skull you're currently holding in your hand, if any.
- /rainbow map sound <namespace> - maps all the custom sounds of the given namespace.
- /rainbow map waypoint <waypoint style> - maps the given waypoint style, if it exists.
- /rainbow mapinventory - scans your inventory for custom items or skulls, and maps all that are found.
- /rainbow auto blocks - scans through all loaded resourcepacks for custom blocks created using block state overrides, and maps all that are found. This may shortly freeze your client.
- /rainbow auto inventory - scans all inventory menus and containers you open for custom items and skulls, and maps all that are found. This is handy for plugins that offer an inventory menu listing all custom items.
- Use /rainbow auto stop to stop the mapping of custom items.
- /rainbow auto recipes - scans through all known recipes for results that are custom items or skulls, and maps all that are found. This is handy for datapacks that contain recipes with custom items as result. You can use the vanilla /recipe give @s * command to give yourself all recipes, which helps Rainbow recognise custom items with this command.
- /rainbow auto sounds - scans through all loaded resourcepacks for custom sounds, and maps all that are found.
- /rainbow auto waypoints - scans through all loaded resourcepacks for custom waypoint styles, and maps all that are found.
- Once you have mapped all of your custom items, use /rainbow finish to finish the pack. Rainbow will then export the resourcepack and Geyser mappings it has created.
When you've finished your pack, navigate to the .minecraft/rainbow/<name> folder. You can also click on the Wrote pack to disk in chat to open this folder. In this folder, you'll find 4 important files/folders:
- custom_mappings: you need to put the files in here in the custom_mappings folder in Geyser's config folder. These are the generated Geyser mappings.
- pack.zip: you need to put this file in the packs folder in Geyser's config folder.
- lang: you need to put all files in this folder in the locales/overrides folder in Geyser's config folder.
- The folder can be empty or non-existent if no language files are found. This is usually not an issue!
- report.txt: you don't need to do anything with this file, but it contains information about generated assets and possible problems that occurred.
Once you have taken these steps, restart your server. Bedrock players should then download the generated pack upon joining, and if everything went well, they should be able to see (and hear) custom content!
If you have any questions or run into any problems, please do feel free to ask for support in the Geyser Discord!
What Rainbow can do
Rainbow is currently capable of the following:
- Generating Geyser block mappings for custom blocks made using block state overrides, both automatically and manually from loaded resourcepacks.
- Generating Geyser item mappings complete with data components and proper bedrock options, by detecting items with custom minecraft:item_model or minecraft:custom_model_data components, and analysing their components.
- Also includes generating mappings with predicates for more complicated Java item model definitions, such as checks for if an item is broken. The following definition types are currently supported by Rainbow:
- Plain item model definitions.
- Conditional item models, supported properties are:
- broken,
- damaged,
- custom_model_data,
- has_component, and,
- fishing_rod/cast.
- Range dispatch item models, supported properties are:
- bundle/fullness,
- count,
- custom_model_data, and,
- damage.
- Select item models, supported properties are:
- charge_type,
- trim_material,
- context_dimension, and,
- custom_model_data.
- For the display_context property, the gui case is mapped, if present.
- Also includes detecting if an item should be displayed handheld by looking at the item's model.
- Also is able to detect and map items using the "legacy" custom_model_data range-dispatch style, and map them to Geyser's legacy item mappings.
- Also includes generating mappings with predicates for more complicated Java item model definitions, such as checks for if an item is broken. The following definition types are currently supported by Rainbow:
- Generating Geyser skull mappings for custom player heads.
- Generating Geyser waypoint style mappings for custom waypoint styles (locator bar icons).
- Generating a simple bedrock resourcepack for blocks and simple 2D items, as well as:
- Simple custom armour items, by analysing an item's minecraft:equippable component and loaded equipment assets.
- Custom elytra items also work, but only visually, due to bedrock limitations.
- 3D items, by converting the Java model to a bedrock one, and generating an attachable and animations for it, as well as rendering a custom GUI icon.
- Is able to translate display transformations for the head, first-person and third-person item slots.
- Custom sounds.
- Simple custom armour items, by analysing an item's minecraft:equippable component and loaded equipment assets.
- Generating working animated (flipbook) textures for 2D items and 3D items that make use of a single texture only.
- Exporting merged language files from loaded resourcepacks to a folder, for easy copying to Geyser's locales/overrides folder.
- Files from different resourcepacks for the same language are merged together.
Compatibility
Mod Loaders
Game Versions
Screenshots
Similar Mods
Combat Craft
Progression solely through combat.
More Chests Variants - Biome Makeover (MCV)
Giving each (Biome Makeover's) wood its own chest (Forge/Fabric)
Stupid Cow, Stop Climbing!
Stop animals from wandering up hills.
Loading Timer
Adds a timer in where how long it takes Minecraft to load.
Better Chat Hide
Hides the Minecraft Chat unless opened (Command Is Toggleable)
Kaleidoscope Cookery Automation
A addon mod for Kaleidoscope Cookery and Create to make it easy for players to automate their kitchens.