Releases: ArrivedDev593/UltimateCustomGear
Release list
UltimateCustomGear v3.0.0 — Minecraft 26.2
UltimateCustomGear 3.0.0
NeoForge 26.2 · 2026-08-23
The port to Minecraft 26.2. Your JSON does not change: no field was added, removed or renamed. What changed is everything underneath it.
⚠️ Important Notes
Your content files load unchanged. Every field this mod has ever read means the same thing it did in 1.7.0. If you have a pack, copy it across and it works.
- Minecraft 26.2 only. This version does not run on 26.1.2 or 1.21.1, and neither of those runs on 26.2. They are separate branches, not an upgrade path in one jar
- 2.0.0 is this same port, for Minecraft 26.1.2. The two share their code down to three lines; the version number is what tells the jars apart, since one game version cannot read the other's
- Java 25 is required, up from Java 21. Your launcher almost certainly handles this for you, but a server pinned to an old JDK will refuse to start
- Every dependency moved with the game: GeckoLib 5.5.3, JEI 30.25.0.177, Curios 16.0.0. Older builds of those will not load
- Texture changes still need F3+T to show, as always
✨ New Features
Chest and shulker textures accept the short form
A container texture can now be written the way the game addresses it:
"refs": { "single": "minecraft:normal" }The long form you have been writing keeps working — minecraft:textures/entity/chest/normal.png is trimmed to the same thing — so nothing needs editing. The short form exists because that is what these textures actually are now: entries in an atlas, not loose files.
Armour layers accept the short form too
"armor_layers": { "layer_1": "othermod:diamond" }The old othermod:models/armor/diamond_layer_1 still resolves to the same asset. Both forms are read; the shorter one matches how equipment is named in this version.
🐛 Bug Fixes
- The mod crashed on startup when no containers were defined. The block entity type was built from an empty list of blocks, which the game now rejects outright — so an instance with gear but no containers, the most ordinary setup there is, would not boot at all
- Fluid blocks generated no blockstate and no model. Every custom fluid logged a missing-model error on each load, and breaking or splashing one produced the black-and-magenta square instead of a particle. Vanilla writes its own water exactly the way this now does
- Every bucket model was generated twice. Two loops ran over the fluid list, the second a copy of the first with a texture step added
🔧 Technical Changes
Almost all of this is invisible from a JSON file. It is listed because the mod is 80 files smaller and several subsystems no longer exist.
Specific to 26.2
- The backpack keybind read the wrong screen.
Minecraft.screenis no longer a field; the open screen is asked for throughmc.gui.screen(). Reading the old one would have made the keybind fire while a GUI was open - Shulker collision moved off
BlockPos.getBottomCenter()is gone fromBlockPos; the same point comes fromVec3.atBottomCenterOf(pos). This is what decides whether a shulker has room to open, and the box that sweeps entities out of the way while it does
Carried over from the 26.x port
- Items are no longer built by subclassing.
ArmorItem,SwordItem,PickaxeItemand friends are gone from the game; an item is now a plainItemcarrying data components.CustomTierproduces a vanillaToolMaterialinstead of implementing aTierinterface - Armour points at an equipment asset. The renderer no longer builds the texture path from a prefix plus
_layer_1.GearModelGeneratorwritesequipment/<id>.jsonnaming one texture per body layer, and the two layers land in two folders rather than one - Item models split into two files. A model under
models/item/still holds geometry and textures, but which model an item renders is now decided initems/<id>.json. The newItemDefinitionsclass writes those - The
overridesarray is gone, and with it the bug it invited: the crossbow's entries were matched last-wins, so charged had to sit after pulling and reordering the array broke the item silently. The replacement says it structurally — what the crossbow is loaded with is checked above how far it is drawn - Three renderers deleted. The shield, chest and shulker each had a
BlockEntityWithoutLevelRendererto draw a shape no model could hold. That class no longer exists; the shape is declared in the item definition as aminecraft:specialentry naming vanilla's own renderer - The
ItemPropertiesregistrations are gone.ClientSetupused to walk every registered item on client start to attach bow, crossbow and shield predicates. Model switching is data now, so nothing runs - The chest mesh is no longer written by hand. Vanilla exposes
ChestModeland its three model layers, with the geometry this mod was copying cube by cube - Block entity renderers extract state instead of drawing.
ChestRendererwas rebuilt around that: it snapshots what it needs on the main thread and submits later, off it FluidTextures.java— new inresources/: sprite and tint resolution, moved out ofFluidRegistry. Three callers need it, and one of them runs before the game has bootstrapped, where touching a registry throwsContainerRenderState.java— new inclient/render/: what one container looks like this frameShulkerRenderer.javaandCustomModelLayers.java— deleted; vanilla'sShulkerBoxRendererand model layers replace both- NBT on block entities moved to
ValueInput/ValueOutput, andsaveToItemtocollectImplicitComponents - The access transformer gained
AbstractContainerScreen.imageWidth/imageHeight, which became final, andAbstractArrow.baseDamage, which lost its getter
⚙️ Known Limitations
Everything listed under 1.7.0 still applies. On top of it:
- The client has not been verified end to end. Loading, registration and the generated resource pack are tested — a dedicated server starts clean with content of every type, and every generated file was checked against vanilla's own. What has not been watched on a screen is the rendering itself: item icons, the bow bending, a chest in the hand. The formats match vanilla file for file, but that is not the same as having seen it
- A shield still cannot have its own texture. It renders through vanilla's shield renderer, which reads the vanilla atlas
- Parchment publishes no mappings for 26.x yet, so parameter names in a decompiled view are the obfuscated ones. This affects nobody writing JSON
📦 Dependencies
- Minecraft 26.2 · NeoForge 26.2 · Java 25
- JEI 30.25.0.177 — optional, recommended
- GeckoLib 5.5.3 — optional, required only for 3D armour models
- Curios 16.0.0 — optional, only needed for
curios_slots
🇪🇸 Leer en español
El port a Minecraft 26.2. Tu JSON no cambia: no se añadió, quitó ni renombró ningún campo. Lo que cambió es todo lo que hay debajo.
⚠️ Notas Importantes
Tus archivos de contenido cargan sin cambios. Todos los campos que este mod ha leído alguna vez significan lo mismo que en 1.7.0. Si tienes un pack, cópialo y funciona.
- Solo Minecraft 26.2. Esta versión no corre en 26.1.2 ni en 1.21.1, y ninguna de esas corre en 26.2. Son ramas separadas, no una actualización dentro del mismo jar
- La 2.0.0 es este mismo port, para Minecraft 26.1.2. Comparten el código hasta en tres líneas; el número de versión es lo que distingue los jars, porque una versión del juego no puede leer la de la otra
- Requiere Java 25, antes Java 21. Tu launcher casi seguro se encarga solo, pero un servidor anclado a un JDK viejo no arrancará
- Todas las dependencias se movieron con el juego: GeckoLib 5.5.3, JEI 30.25.0.177, Curios 16.0.0. Las versiones anteriores no cargan
- Los cambios de textura siguen necesitando F3+T para verse, como siempre
✨ Nuevas Características
Las texturas de cofre y shulker aceptan la forma corta
La textura de un contenedor ya se puede escribir como el juego la direcciona:
"refs": { "single": "minecraft:normal" }La forma larga que venías escribiendo sigue funcionando — minecraft:textures/entity/chest/normal.png se recorta a lo mismo — así que no hay nada que editar. La forma corta existe porque es lo que esas texturas son ahora: entradas de un atlas, no archivos sueltos.
Las capas de armadura también aceptan la forma corta
"armor_layers": { "layer_1": "othermod:diamond" }El viejo othermod:models/armor/diamond_layer_1 sigue resolviendo al mismo recurso. Se leen las dos formas; la corta es la que coincide con cómo se nombra el equipamiento en esta versión.
🐛 Correcciones
- El mod crasheaba al arrancar si no había contenedores definidos. El tipo de block entity se construía con una lista vacía de bloques, algo que el juego ahora rechaza de plano — así que una instancia con equipo pero sin contenedores, que es la configuración más normal que existe, no arrancaba
- Los bloques de fluido no generaban blockstate ni modelo. Cada fluido custom registraba un error de modelo faltante en cada carga, y romperlo o salpicar producía el cuadro negro y magenta en vez de una partícula. Vanilla escribe su propia agua exactamente como se hace ahora
- Cada modelo de cubo se generaba dos veces. Había dos bucles sobre la lista de fluidos, el segundo copia del primero con un paso de textura añadido
🔧 Cambios Técnicos
Casi nada de esto se ve desde un archivo JSON. Se lista porque el mod es 80 archivos más pequeño y varios subsistemas dejaron de existir.
Propio de 26.2
- El keybind de la mochila leía la pantalla equivocada.
Minecraft.screenya no es un campo; la pantalla abierta se pide conmc.gui.screen(). Leer el viejo habría hecho que el keybind disparara con una GUI abierta - **La colisión del shul...
UltimateCustomGear v2.0.0 — Minecraft 26.1.2
UltimateCustomGear 2.0.0
NeoForge 26.1.2 · 2026-08-23
The port to Minecraft 26.1.2. Your JSON does not change: no field was added, removed or renamed. What changed is everything underneath it.
⚠️ Important Notes
Your content files load unchanged. Every field this mod has ever read means the same thing it did in 1.7.0. If you have a pack, copy it across and it works.
- Minecraft 26.1.2 only. This version does not run on 1.21.1, and 1.7.0 does not run on 26.1.2. They are separate branches, not an upgrade path in one jar
- 3.0.0 is this same port, for Minecraft 26.2. The two share their code; the version number is what tells the jars apart, since one game version cannot read the other's
- Java 25 is required, up from Java 21. Your launcher almost certainly handles this for you, but a server pinned to an old JDK will refuse to start
- Every dependency moved with the game: GeckoLib 5.5.2, JEI 29.29.0.77, Curios 15.0.0. Older builds of those will not load
- Texture changes still need F3+T to show, as always
✨ New Features
Chest and shulker textures accept the short form
A container texture can now be written the way the game addresses it:
"refs": { "single": "minecraft:normal" }The long form you have been writing keeps working — minecraft:textures/entity/chest/normal.png is trimmed to the same thing — so nothing needs editing. The short form exists because that is what these textures actually are now: entries in an atlas, not loose files.
Armour layers accept the short form too
"armor_layers": { "layer_1": "othermod:diamond" }The old othermod:models/armor/diamond_layer_1 still resolves to the same asset. Both forms are read; the shorter one matches how equipment is named in this version.
🐛 Bug Fixes
- The mod crashed on startup when no containers were defined. The block entity type was built from an empty list of blocks, which the game now rejects outright — so an instance with gear but no containers, the most ordinary setup there is, would not boot at all
- Fluid blocks generated no blockstate and no model. Every custom fluid logged a missing-model error on each load, and breaking or splashing one produced the black-and-magenta square instead of a particle. Vanilla writes its own water exactly the way this now does
- Every bucket model was generated twice. Two loops ran over the fluid list, the second a copy of the first with a texture step added
🔧 Technical Changes
Almost all of this is invisible from a JSON file. It is listed because the mod is 80 files smaller and several subsystems no longer exist.
- Items are no longer built by subclassing.
ArmorItem,SwordItem,PickaxeItemand friends are gone from the game; an item is now a plainItemcarrying data components.CustomTierproduces a vanillaToolMaterialinstead of implementing aTierinterface - Armour points at an equipment asset. The renderer no longer builds the texture path from a prefix plus
_layer_1.GearModelGeneratorwritesequipment/<id>.jsonnaming one texture per body layer, and the two layers land in two folders rather than one - Item models split into two files. A model under
models/item/still holds geometry and textures, but which model an item renders is now decided initems/<id>.json. The newItemDefinitionsclass writes those - The
overridesarray is gone, and with it the bug it invited: the crossbow's entries were matched last-wins, so charged had to sit after pulling and reordering the array broke the item silently. The replacement says it structurally — what the crossbow is loaded with is checked above how far it is drawn - Three renderers deleted. The shield, chest and shulker each had a
BlockEntityWithoutLevelRendererto draw a shape no model could hold. That class no longer exists; the shape is declared in the item definition as aminecraft:specialentry naming vanilla's own renderer - The
ItemPropertiesregistrations are gone.ClientSetupused to walk every registered item on client start to attach bow, crossbow and shield predicates. Model switching is data now, so nothing runs - The chest mesh is no longer written by hand. Vanilla exposes
ChestModeland its three model layers, with the geometry this mod was copying cube by cube - Block entity renderers extract state instead of drawing.
ChestRendererwas rebuilt around that: it snapshots what it needs on the main thread and submits later, off it FluidTextures.java— new inresources/: sprite and tint resolution, moved out ofFluidRegistry. Three callers need it, and one of them runs before the game has bootstrapped, where touching a registry throwsContainerRenderState.java— new inclient/render/: what one container looks like this frameShulkerRenderer.javaandCustomModelLayers.java— deleted; vanilla'sShulkerBoxRendererand model layers replace both- NBT on block entities moved to
ValueInput/ValueOutput, andsaveToItemtocollectImplicitComponents - The access transformer gained
AbstractContainerScreen.imageWidth/imageHeight, which became final, andAbstractArrow.baseDamage, which lost its getter
⚙️ Known Limitations
Everything listed under 1.7.0 still applies. On top of it:
- The client has not been verified end to end. Loading, registration and the generated resource pack are tested — a dedicated server starts clean with content of every type, and every generated file was checked against vanilla's own. What has not been watched on a screen is the rendering itself: item icons, the bow bending, a chest in the hand. The formats match vanilla file for file, but that is not the same as having seen it
- A shield still cannot have its own texture. It renders through vanilla's shield renderer, which reads the vanilla atlas
- Parchment publishes no mappings for 26.x yet, so parameter names in a decompiled view are the obfuscated ones. This affects nobody writing JSON
📦 Dependencies
- Minecraft 26.1.2 · NeoForge 26.1.2.x · Java 25
- JEI 29.29.0.77 — optional, recommended
- GeckoLib 5.5.2 — optional, required only for 3D armour models
- Curios 15.0.0 — optional, only needed for
curios_slots
🇪🇸 Leer en español
El port a Minecraft 26.1.2. Tu JSON no cambia: no se añadió, quitó ni renombró ningún campo. Lo que cambió es todo lo que hay debajo.
⚠️ Notas Importantes
Tus archivos de contenido cargan sin cambios. Todos los campos que este mod ha leído alguna vez significan lo mismo que en 1.7.0. Si tienes un pack, cópialo y funciona.
- Solo Minecraft 26.1.2. Esta versión no corre en 1.21.1, y la 1.7.0 no corre en 26.1.2. Son ramas separadas, no una actualización dentro del mismo jar
- La 3.0.0 es este mismo port, para Minecraft 26.2. Comparten el código; el número de versión es lo que distingue los jars, porque una versión del juego no puede leer la de la otra
- Requiere Java 25, antes Java 21. Tu launcher casi seguro se encarga solo, pero un servidor anclado a un JDK viejo no arrancará
- Todas las dependencias se movieron con el juego: GeckoLib 5.5.2, JEI 29.29.0.77, Curios 15.0.0. Las versiones anteriores no cargan
- Los cambios de textura siguen necesitando F3+T para verse, como siempre
✨ Nuevas Características
Las texturas de cofre y shulker aceptan la forma corta
La textura de un contenedor ya se puede escribir como el juego la direcciona:
"refs": { "single": "minecraft:normal" }La forma larga que venías escribiendo sigue funcionando — minecraft:textures/entity/chest/normal.png se recorta a lo mismo — así que no hay nada que editar. La forma corta existe porque es lo que esas texturas son ahora: entradas de un atlas, no archivos sueltos.
Las capas de armadura también aceptan la forma corta
"armor_layers": { "layer_1": "othermod:diamond" }El viejo othermod:models/armor/diamond_layer_1 sigue resolviendo al mismo recurso. Se leen las dos formas; la corta es la que coincide con cómo se nombra el equipamiento en esta versión.
🐛 Correcciones
- El mod crasheaba al arrancar si no había contenedores definidos. El tipo de block entity se construía con una lista vacía de bloques, algo que el juego ahora rechaza de plano — así que una instancia con equipo pero sin contenedores, que es la configuración más normal que existe, no arrancaba
- Los bloques de fluido no generaban blockstate ni modelo. Cada fluido custom registraba un error de modelo faltante en cada carga, y romperlo o salpicar producía el cuadro negro y magenta en vez de una partícula. Vanilla escribe su propia agua exactamente como se hace ahora
- Cada modelo de cubo se generaba dos veces. Había dos bucles sobre la lista de fluidos, el segundo copia del primero con un paso de textura añadido
🔧 Cambios Técnicos
Casi nada de esto se ve desde un archivo JSON. Se lista porque el mod es 80 archivos más pequeño y varios subsistemas dejaron de existir.
- Los items ya no se construyen por herencia.
ArmorItem,SwordItem,PickaxeItemy compañía desaparecieron del juego; un item es ahora unItemnormal con componentes de datos.CustomTierproduce unToolMaterialde vanilla en lugar de implementar una interfazTier - La armadura apunta a un equipment asset. El renderer ya no construye la ruta de textura a partir de un prefijo más
_layer_1.GearModelGeneratorescribeequipment/<id>.jsonnombrando una textura por capa del cuerpo, y las dos capas van a dos carpetas en vez de a una - Los modelos de item se parten en dos archivos. Un modelo en
models/item/sigue llevando geometría y texturas, pero cuál modelo dibuja un item se decide ahora enitems/<id>.json. La nueva claseItemDefinitionslos escribe - El array
overridesdesapareció, y con él el bug que invitaba: las en...
UltimateCustomGear v1.7.0 — Minecraft 1.21.1
UltimateCustomGear 1.7.0
NeoForge 1.21.1 · 2026-08-20
Nothing breaks. Packs written for 1.6.0 load unchanged.
⚠️ Important Notes
Nothing breaks. Packs written for 1.6.0 load unchanged. The mode field inside texture is gone, but a pack that still declares it works exactly as before — the value is simply ignored now. Delete it whenever you feel like it.
- Containers are new in this version, so none of their rules are a change to anything
container.slotsis baked at registration: changing it needs a restart, not/customgear reload. Everything else about a container is hot-reloadablecurios_slotsneeds/reloadas well as/customgear reload— Curios reads its slot assignment outside the reload this mod triggers. The log warns when the set changes- Texture changes still need F3+T to show, as always
✨ New Features
Containers
- New content type
container, with four subtypes chosen bycontainer.type:barrel— a full cube placed on any of six axes, with a real open state. No renderer, so it costs nothing to drawchest— the vanilla chest shape with an animated lid, and it joins into a double with a neighborshulker— attaches to whatever surface it is placed against, its collision box grows as the lid rises, and it refuses to open when there is no roombackpack— not a block at all: an item you carry, open with right click or a keybind, and can equip in a Curios slot
container.typeis required. The four differ in shape, in how they are placed, and in whether breaking one keeps its contents — a silent default would decide that last one behind your backkeeps_contentsdecides whether breaking one drops the contents or stores them in the item. Defaults per subtype:truefor shulker and backpack,falsefor barrel and chest. A barrel that keeps its contents is perfectly legalslotshas no hard ceiling. Past 128 the parser warns: that is where vanilla's click packet gives up, and a single action changing more slots than that at once disconnects the player- Automatic column count. Omit
columnsand the width is worked out so the contents fit in nine rows, capped bymax_columns(default 12). Declarecolumnsand that exact width is used - A double chest keeps one inventory of twice the size. Breaking either half hands back that half's contents, exactly as vanilla does — and Ctrl+picking one copies only its half
- Hoppers, comparators and mod overlays read a double chest correctly from either side
- Containers refuse to nest: a shulker does not go inside another shulker, or inside a vanilla one. A container that spills when broken carries no NBT, so it nests freely
Backpacks and Curios
- Open with right click, or with the new Open backpack keybind (B by default) from anywhere in the inventory
- The keybind looks in this order: the selected hotbar slot, the offhand, equipped Curios slots, then the rest of the inventory. Equipped beats loose — someone wearing a storage ring is wearing it to have it at hand
- New
curios_slotsfield lists which Curios slot types accept this backpack ("back","ring","charm"…). The slot types are also assigned to the player, so they exist without needing another mod to provide them - Only the declared slots are assigned. Installing this mod for a sword does not fill your Curios inventory with empty slots
- The slot the backpack occupies is frozen while its screen is open, and the screen closes by itself if the backpack leaves — dropped, taken, or lost on death
- Curios is an optional dependency
Texture paths are read from the value
modeis gone. Whether a value is another mod's asset or a file of yours is deduced from the value itself: a:makes it a resource location, an extension makes it a file in your content folder- Values can now be mixed within one object. A barrel with its own top and vanilla sides was impossible while a single
modedecided for the whole object - A value that is neither is rejected with an error naming both valid forms.
item/bundleis ambiguous and is no longer guessed - Animated textures work. Drop a
.mcmetanext to your PNG —my_fluid.pngandmy_fluid.png.mcmeta— and both travel into the pack, exactly as they would in an ordinary resource pack
Tooltips
- The long sections — effects, set bonuses, the three resistance layers and mob drops — now hide behind Shift, with a line telling you they are there. Tool and weapon stats stay visible, because comparing two at a glance is the point of a tooltip
- A container that can hold contents shows them as a grid of items while Shift is held, most numerous first, with "…and N more types" when there are too many
🐛 Bug Fixes
- The access transformer never made it into the built jar. Everything depending on it worked in the development environment and threw
IllegalAccessErrorin a real installation — which meant opening any container disconnected the player. This is the kind of failure no amount of testing inrunClientcan find - The content cache skipped validation entirely. A cached file was accepted without being checked again, so rules that changed between versions never applied to files nobody had edited, and validation warnings were shown once and never again. Validation now runs on every load; the cache still saves the disk read and the JSON parse
- Custom fluid textures never worked. The registry pointed a custom fluid at
customgear:fluid/<id>_still, but nothing ever copied a file there. Fluid textures are also stitched fromblock/now, because the block atlas is built from a fixed list of directories and an arbitraryfluid/is not on it - Arrow damage came from what the shooter was holding, not from what fired. Firing a vanilla bow with a custom one in the other hand handed the custom damage to the wrong arrow. The damage is now applied where the weapon is known for certain. Mobs still resolve by held weapon — they build their arrows without consulting the item
armor_3dwas skipped in reference mode, so an armor could not have vanilla-referenced icons and its own GeckoLib model at the same time. A.geo.jsonhas no reference form, so it is now copied whenever it is declared — and referencing another mod's model works too, which avoids redistributing assets that are not yours- The bow's pull animation still ignored
charge_speed. The fix shipped in 1.6.0 described the right behavior in a comment but the code kept dividing by a fixed 20 ticks - A debug
System.out.printlnfired on every container sort-mode change
🔧 Technical Changes
TextureRef.java— new inresources/: the single place that decides what a texture value points at. Both the parsers and the generators resolve through itTextureData.java— new indata/: the shared texture block.BlockData,GearDataandFluidDatahad three near-identical copies of itPackSink.addTextureWithMeta— copies a texture and its.mcmetatogetherContainerData.java/ContainerContentData.java/ContainerContents.java— new: container definitions and the component their contents live inContainerRegistry.java— new inloader/: containers register their own Block, Item and BlockEntityType. Kept out ofBlockRegistrybecause a backpack is not a blockCustomContainerBlockandCustomContainerBlockEntity— abstract bases;CustomBarrelBlock,CustomChestBlockandCustomShulkerBlockadd only what is theirsChestRenderer.java/ShulkerRenderer.java— new inclient/render/. The chest's three meshes are built by hand; the shulker reuses vanilla'sShulkerModelContainerOpenData.java— new innetwork/: the container-open packet, now versioned. Its fields used to be written and read inline in two files with no check, so adding one silently shifted every value after itBackpackAnchor.java— new: where a carried backpack lives, so its menu can notice it leaving. Three cases: an inventory slot, the offhand, a Curios slotCuriosCompat.java— new incompat/: the only class that touches the Curios API, so nothing else breaks when it is absentCuriosTagLoader.java— new inloader/: emits the item tags and the entity slot assignmentContainerTooltip.java/ContainerTooltipRenderer.java— new inclient/: the contents gridArrowDamageHandler.java— reduced to mobs; players resolve throughcreateProjectile, where the weapon is a parameterGearModelGenerator.java— theloadCustom/loadReferencesplit collapsed into one path per gear typebuild.gradle— the access transformer is now copied into the jar and declared inneoforge.mods.toml
⚙️ Known Limitations
- A container past 128 slots can disconnect the player. A single action changing more slots than that at once — a long drag, a mass shift-click — exceeds what vanilla's click packet can carry. Hard to reach in survival, trivial in creative
- A backpack's contents travel inside its ItemStack, and that stack is re-sent every time anything moves in the player's inventory. A large backpack full of items with heavy NBT is the case where slot count costs the most
- A shield still cannot have its own texture. It renders through vanilla's atlas materials, and pointing at a PNG directly means losing banner patterns — a trade worth making deliberately, not by accident
- Changing
curios_slotsneeds/reloadas well. Curios reads its slot assignment outside the reload this mod triggers - Trying to nest a container flickers for a frame before the server refuses it: the client's stand-in inventory knows the rule, but the prediction runs first
📦 Dependencies
- Curios API — optional, only needed for
curios_slots
🇪🇸 Leer en español
Nada se rompe. Los packs escritos para 1.6.0 cargan sin cambios.