All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Structure Gel API

Structure Gel API

by KingPhygieBoo • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions
undefined
Contribute to Structure Gel API by helping break the language barrier by translating on Weblate! Built with NeoForge
Follow us! ModdingLegacy Twitter Follow us! moddinglegacy.com Bluesky Subscribe to us on YouTube!
An API for simplifying the developer end of creating generated structures.


Structure Gel is an API mod designed to make creating structures easier on the developers, specifically ones using the jigsaw system. All code is open source and documented. Some of its features include:

📚 Read the Structure Gel API Documentation Here

For an open source working example of this api, check out Dungeons Plus
You can find detailed information on how to develop and use this API by Minecraft version.
Latest Documentation

🧪 Latest Features

🛠️ Building Tools

The Building Tool is a new creative mode only item used to perform various large scale block alterations.
  • It can be found in the Structure Items creative mode tab.
  • Right click the Building Tool in the air to open the GUI. Once open, you can select what mode you want to use, undo, redo, select your position, and more.
    Building Tool GUI

GUI

The GUI contains various buttons to modify the Building Tool's settings, as well as some convienent tools.
  • Pressing, enter, e, escape, or clicking anywhere on the screen that isn't a button will close the GUI.
  • Hovering over any item on the GUI will display a tooltip on the right side to explain what it does and how to use it.
  • Using the radial menu, you can select which mode you want to use.
  • Some modes support positions. If they do, a button will appear on the top left to select a position based on your current location. This is mainly useful when right clicking a block isn't possible or is highly inconvenient.
  • The Undo and Redo buttons on the left exist to do exactly what they say. They attempt to undo or redo the last action you performed with the Building Tool. Up to 32 actions are saved and can be undone.
  • Some modes have additional settings, these settings will appear below the undo and redo buttons.
  • The button in the middle is used to select what block you want to use. When you click it, a text box will open for you to type a block state. This can be done in game as well, but some blocks like water are more than difficult to click on.

Controls

  • Middle Click: Selects the current block state you're looking at (also can be done in the GUI).
  • Left Click: This is the general key for "do the thing" depending on what mode you're in.
  • Right Click Air: Opens the GUI.
  • Right Click Block: Some modes use this to set positions, but ones that don't also allow this to "do the thing" as well.
  • Shift + Right Click: Clears the currently selected positions.

Modes

Building Tool Modes are different operations that the Building Tool can perform.
  • Extend: Detects a pattern based on the side of the block you click, and attempts to place blocks in front of that to continue that pattern. If you're familiar with the old Builder's Wands mod, it's essentially the same idea.
    Building Tool Extend

  • Flood: Fills all air blocks within the y level slice that you click, until it hits a border, then continues to fill going downward. This is useful for filling a lake with water for example.
  • Fill: Very similar to the vanilla fill command. Select two corners and then left click to fill the area between with the currently selected block. Has options for replacing specific blocks and only placing a frame or hollow box.
  • Line: Places a line of blocks between the selected positions using the currently selected block.
  • Clone: Copies the selected region and pastes it where you click. Allows for rotating, mirroring, and cutting instead of copying.
    Building Tool Clone

  • Move: Moves the selected region in the direction that you punch.
  • Clear: Removes all blocks within the selected positions.
  • Shape: Places a shape where you click. The shape and what blocks will be replaced can be changed though the mode's properties in the GUI.
Building Tool Shape

Mode Properties

Some modes support additional settings to modify their behavior. Some examples include:
  • Integrity: Determines how many blocks will actually place.
  • Replace: Determines what the mode will replace when placing blocks. All replaces everything, Air replaces only air, and Clicked replaces the block you clicked on.
  • Rotation and Mirror: Rotates or mirrors the cloned region. Allows for selecting a random value as well.

🍡 Structure Gel Block

This block is a creative tool to fill the insides of structures easily. The gel is replaced with air when your structure generates while all air is ignored when being placed. This ensures that your structures won't have natural terrain where it shouldn't be. The gel block behaves similarly to structure voids in that you can walk through it, while actually being visible.
When placing gel while sneaking, you can trigger the spreading mechanic. Each gel spreads differently, and you can read how they work by hovering over the item.

🍮 Meet the Gels!

🟥 Red Gel

Red gel uses the default spreading mechanic, spreading along the cardinal directions, only replacing air.
Spoiler
Red Gel

🟦 Blue Gel

Blue gel functions similarly to red, except it won't spread into locations where the sky can be seen.
Spoiler
Blue Gel

🟩 Green Gel

Green gel spreads the same as red gel, with the addition of also spreading diagonally. This allows it to get through corners created by vines or other complex builds. Be careful not to let it leak outside of your build.
Spoiler
Green Gel

🟦 Cyan Gel

Cyan gel acts as a combination of green and blue gel, by both spreading diagonally and avoiding the sky.
Spoiler
Cyan Gel

🟧 Orange Gel

Orange gel behaves the same as red gel, but the distance it spreads is determined by how many you're holding when you place it, making it handy for builds in open areas.
Spoiler
Orange Gel

🟨 Yellow Gel

Yellow gel will only spread along the plane that you're facing when you place it, making it great for sealing off walls, windows, or other holes that the gel would otherwise go through.
Spoiler
Yellow Gel

Removing Gels

Gel can be removed by using gunpowder on it. Doing this will trigger a chain reaction, removing all connected gels of the same type.
Spoiler
Removing Gel

Examples

Here's an example of how it could be used in a build. If this structure were loaded into the game, the gel inside would be replaced with air, while the air outside would not be placed.
Spoiler
House Example
The code for this block is designed in a way such that you can easily extend it and hook into its behavior with methods in blocks.IStructureGel, should you need behavior not already implemented.
This is a core mod that modifies a few internal classes. If you get a crash with this mod that only occurs when mixed with another mod, this may be the cause. Please test before reporting.

🌐 Translate Structure Gel API - Help break the language barrier!

All translators are credited here. Thank you to everyone who helps make this mod accessible!

Flag Language Translators
Deutsch Deutsch A1403, Barion
Português (Brasil) Português (Brasil) gabisaoo, simsgameboh
Nederlands (Nederland) Nederlands (Nederland) faas.mr
Español (España) Español (España) Minaderm , guillermojuegostablet, juggernogk
Українська (Ukrayins'ka) Українська (Ukrayins'ka) Queez
Türkçe (Türkiye) Türkçe (Türkiye) asimemir58, demirgokler406
עברית ('Ivriyþ) עברית ('Ivriyþ) pecan1245
Español (Argentina) Español (Argentina) patriciofagetti
Italiano (Italia) Italiano (Italia) antonioauciello226
Lietuvių Lietuvių WaryRGMCA

🤚 Support: If you have questions or any issues with our mods, read the FAQ! You can also either submit an issue on the issue tracker, or come into our Discord server where we can help you!

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.1.2
Neoforge
22h ago 1
26.1.2
Neoforge
22h ago 1
26.1.2
Neoforge
22h ago 1
26.1.2
Neoforge
22h ago 1
1.21.4
Neoforge
22h ago 1
1.20.4
Neoforge
22h ago 1
1.20.4
Neoforge
22h ago 1
1.20.4
Neoforge
22h ago 1
1.20.1
Forge Neoforge
22h ago 1
1.20.4
Neoforge
22h ago 1
1.20.1
Forge Neoforge
22h ago 1
1.20.4
Neoforge
22h ago 1
1.20.4
Neoforge
22h ago 1
1.20.4
Neoforge
22h ago 1
1.20.1
Forge Neoforge
22h ago 1
1.20.1
Forge Neoforge
22h ago 1
1.20.1
Forge Neoforge
22h ago 1
1.18.2
Forge
22h ago 1
1.20.1
Forge Neoforge
22h ago 1
1.19.2
Forge
22h ago 1
1.20.1
Forge Neoforge
22h ago 1
1.20.1
Forge Neoforge
22h ago 1
1.19.4
Forge
22h ago 1
1.19.2
Forge
22h ago 1
1.18.2
Forge
22h ago 1
1.16.5
Forge
22h ago 1
[2.22.0] Structure Gel API v2.22.0 by KingPhygieBoo on Oct 09, 2026
Download
# 26.1.2-v2.22.0

## Loot Sampler
  • New creative mode block used to test loot tables.
  • The GUI contains the following:
  • Text field at the top to enter a loot table ID.
  • Button to generate loot in the provided inventory.
  • Button to refresh the probability display menu.
  • Button that toggles if the loot is from a player kill.
  • A menu to the left side that displays item probabilities and amounts.
  • When a valid loot table is entered, it will sample that loot table a large number of times to get an in-game accurate approximation of how likely you will obtain each item from it. All current equipment is taken into account, such as a held pickaxe with fortune or a sword with looting.

## JigsawCapability
  • Added void modifyGenerationContext(JigsawStructureContext context).
  • Allows changing values used to generate an ExtendedJigsawStructure.
  • Currently only allows for changing the generation height.

## ITemplateNameGetter
  • Obtains the ID of the structure template used for generation.
  • Call the static Optional<Identifier> ITemplateNameGetter.getTemplateName(StructurePiece piece) method to get the structure template ID.
  • Interface to be applied to StructurePiece or StructurePoolElement
  • Applied to TemplateStructurePiece, PoolElementStructurePiece, and SinglePoolElement through mixin.

## StructureProcessor
  • Added RetainExistingProcessor
  • Only places a block if the existing block was replaceable.

## ITooltipBlock
  • Interface to put on blocks that should have a tooltip.
  • Tooltips are added during the ItemTooltipEvent.

## Commands
  • /structure_gel distance now also logs the average search time.\

## Fixes
  • Fixed JigsawPoolBuilder not sorting values properly causing unnecessary data gen file changes.
  • Removed fog from Building Tool and Structure Bounds rendering due to inaccuracies created with thick fog, such as in the Nether.
  • Fixed scrolling issues in the Data Handler screen.
  • Data handlers properly display all loot tables instead of just showing loot table aliases.
  • Sorted Structure Gel items added to the Operator Utilities creative mode tab.
[2.21.2] Structure Gel API v2.21.2 by KingPhygieBoo on Oct 09, 2026
Download
# 26.1.2-v2.21.2

## Config
  • Added a config screen.
  • ConfigBuilder supports translation strings.

## Translations
  • Bullet points are no longer included in translation strings. They are applied in post places where they are used.
  • Removed unused translation strings, added missing ones, and fixed some typos.
  • Added config translations.
[2.21.1] Structure Gel API v2.21.1 by KingPhygieBoo on Oct 09, 2026
Download
# 26.1.2-v2.21.1
Quick hotfix for the recently released 26.1.2-v2.21.0. Bigger changelog can be found there
[2.21.0] Structure Gel API v2.21.0 by KingPhygieBoo on Oct 09, 2026
Download
# 26.1.2-v2.21.0

## General Changes
  • Added new fields to keep with Minecraft.

## Spawner Minecarts
  • Now display the entity they will spawn and show particles (config setting).
  • Drop exp matching the amount dropped by a mob spawner block (config setting).
  • Spawn eggs may now be used to change the entity spawned by the minecart (config setting).

## Data Handlers
  • Added a "Becomes" field in the GUI
  • Accepts a block state syntax argument
  • Sets what block the data handler will become when it generates. This always happens and will happen before the data handler's normal operation.
  • Fixed blocks with rotation block states being manually set not applying said rotation.
  • Rotation set manually will be offset based on the data handler's rotation.
  • Small GUI improvements.
  • The DataParser and DataMap have had some methods renamed.
  • Various add methods in DataParser.Builder have been renamed for better clarity: Ex add -> addInt
  • Adding values based on registry data now expects a ResourceKey by default. Passing null for the default value works properly.
  • Added DataMap.getOptional for direct object or ResourceKey references.

### Data Handler: Entity
  • Updated to handle new equipment slots.

### Data Handler: Villager
  • New data handler specifically for spawning villagers with the following fields:
  • Type: The villager type for the biome. If not specified, the biome it spawns in is used.
  • Profession: The profession of the villager. Zombie villagers are the only one currently able to use this properly.
  • Entity: A selection between Villager and Zombie Villager.

### Data Handler: Dynamic Spawner and Spawner
  • Can place the spawner as a block (default) or a minecart.

## Dynamic Spawners
  • The dynamic spawner system is now nested inside of mob spawners as a data attachment.
  • When the spawner loads, the dynamic spawner is loaded into it, overriding the spawner's settings.
  • Using a spawn egg on a spawner will remove the Dynamic Spawner data attachment.
  • This functions identical to the old dynamic spawner system, but instead uses the vanilla spawner for better mod compatibility.
  • Dynamic Spawner blocks still techically exist, but are no longer accessible in the creative inventory. Existing and new Dynamic Spawner blocks become vanilla spawners when they load.

## Attachment Types
  • structure_gel:dynamic_spawner: Stores a single id:Identifier field for a registered DynamicSpawnerType.
  • Intended to be used on mob spawner blocks and minecarts. Can function on other entities/block entities if proper support is added.
  • structure_gel:exp_range: Stores a min and max Integer value with a distribution field for how the random value is calculated.
  • Intended to be used on Block Entities or Entities.
  • Special handling added for Minecart Spawners and other vehicles.
  • Two types of distribution exist: normalized and uniform. normalized is the default used by mob spawners.
  • Spawner Minecarts will have this attachment automatically. Can be disabled in the config.

## Building Tool
  • The internal data storage for the building tool has changed. Old building tool data in your world save will likely no longer function due to several changes in how said data is stored. This includes:
  • Action history
  • Clipboard
  • Updated the palette render to display the block's particle texture if no suitable item is available.

## GelPortalBlock
  • Moved several of the client-sided methods into GelPortalClientExtension
  • When placed from an item, places a full portal.

## GelPortalClientExtension
  • Handles sounds and screen overlay effects generated by portals.
  • Registered during NeoForge's RegisterClientExtensionsEvent.
  • Automatically registers transition screens through NeoForge's RegisterDimensionTransitionScreenEvent.

## Commands
  • /structure_gel can be shorthanded to /sg
  • Added /structure_gel gamerules <category>
  • Sets a variety of gamerules for testing worlds (advance time/weather, keep inventory, no wandering trader spawns, etc)
  • <category> can either be testing or building. testing covers a few basic rules while building is far more extensive and intended for structure building worlds
  • Gamerules can be reset with a clickable chat message for each one modified.
  • Some gamerules also automatically modify the world
  • advance_time sets the time to day if applicable
  • /fill, /clone, /setblock, and /place work with the building tool's action history and can be undone/redone.

## RegisterArmorTrimTexturesEvent
  • Removed in favor of NeoForge's systems for handling paletted permutations across mods

## RegisterTrimMaterialBrightnessEvent
  • New event specifically for handling armor trim light emission
  • Now allows handling sky light along with block light
[2.20.0] Structure Gel API v2.20.0 by KingPhygieBoo on Oct 09, 2026
Download
# 1.21.4-v2.20.0

## General Changes
  • We're on 1.21.4. With that comes the general expected changes, like item data components.

## Building Tool
  • Clone: Now works across dimensions and players. You can hand another player a building tool and access their cloned region regardless of what dimension it's from.
  • Added a nifty animation when the GUI opens :D

## Gel Blocks
  • Gel blocks have had their back end rewritten from scratch.
  • Previously, Gel Blocks implemented the IStructureGel interface to hook into the various spreading mechanics, used an enum of behaviors to determine the default spreading rules, and had a block state for how far it traveld. Most of this is gone.
  • Gel spreading behavior is now registered under structure_gel:gel_spread_behavior.
  • This is how gel spreads along a specific axis, or along diagonals.
  • Gel spreading restrictions can be registered under structure_gel:gel_spread_restriction.
  • This is how blue gel knows not to spread into exposed areas, or how orange gel knows to stop based on the item stack count.
  • The distance gel spreads is now an absolute distance to the initial source instead of traveling and counting how many were placed, and reaches a sphere shape if fully expanded.
  • This allows gel to spread more effectively in twisting hallways, and more reliably hit the corners of large rooms.
  • Any block can be used as gel in a structure as long as it's added to the structure_gel:gel block tag. If the block in the tag is actually a StructureGelBlock, it can customize what it places instead of defaulting to air.

## Data Handler
  • Changed how registry works so that a builder is what gets registered. See implemented data handlers for reference.

## Dynamic Spawner
  • Changed how registry works so that a builder is what gets registered.

## GelPortalBlock
  • Completely rewritten. Hopefully for the last time. The GelPortalBlock class is abstract and requires the implementation of various methods to make the portal function properly (with similar behavior to a nether portal).
  • Ignition of the portal is handled by calling GelPortalBlock.tryIgnite.
  • The dimension transition screen must be registered manually.

## Registries
  • Added two new registries; structure_gel:gel_spread_behavior and structure_gel:gel_spread_restriction.
  • Used to control the behavior of Gel blocks. Custom values can be registered and implemented on your own custom Gel block.
  • Changed the registry process of structure_gel:dynamic_spawner_type and structure_gel:data_handler_type.
  • The new registry approach instead works by registering a "factory" to create a Data Handler or Dynamic Spawner. Overall, the code is more builder-focused and simplified, with access to registry data to prepare for more registries moving to datapacks in vanilla.
  • See com.legacy.structure_gel.core.registry.SGRegistries for how to register the new data.

## Registrar
  • Internal changes to how data is stored. The basic rules of "don't get a value before it was registered" still applies.
  • Registrar.Static now contains a Holder.Reference for the object registered.
  • Registrar.Static can be created with a name only using RegistrarHandler.named(String).
  • In this case, a value must be assigned later through RegistrarHandler.addHandlerListener(Consumer<RegistrarHandler>).
  • An error will be thrown if a static registrar is created by name only and never assigned a value.
  • Added updated handling for block and item registry.
  • See com.legacy.structure_gel.core.registry.SGRegistries for usage.
[2.19.1] Structure Gel API v2.19.1 by KingPhygieBoo on Oct 09, 2026
Download
# 1.20.4-v2.19.1

## Data Handler
  • Fixed cycle buttons in the GUI not starting at the correct default value
  • Made adding StringRepresentable enums to the parser easier

## Building Tool
  • Fixed the selection edit screen not hovering buttons correctly
[2.19.0] Structure Gel API v2.19.0 by KingPhygieBoo on Oct 09, 2026
Download
# 1.20.4-v2.19.0

## Building Tool
  • Can now set if blocks placed will cause block updates or not
  • This also supresses block and fluid ticks that occur when the block is placed (water won't flow, sand won't fall)
  • Each mode shows up in the creative mode search tab
  • The Building Tool palette screen no longer serializes default block state values when re-opening the screen
  • If an oak log was set in the palette, it would previously display as minecraft:oak_log[axis=y], even if the axis property was left as the default. It will now display minecraft:oak_log in that case. This is especially visible with blocks that have a large number of states, such as fences
  • Building Tool block palettes can be exported as a Block Palette item. This item can be dropped onto the Building Tool, like how you'd use a bundle, to set the palette.

### Fill Tool
  • Fixed the Retain State property not functioning as expected
  • Retain State has been renamed to Copy States
  • When True (default): Copies applicable block state values from the replaced block to the block being placed. This means stairs/slabs/fences/etc will have the same block states when replaced.
  • When False: Places the block without any modifications. This is similar to the vanilla fill command.

### Replace Tool
  • Added the Copy States property
  • Defaults to true

### Clone Tool
  • Fixed pasted regions being hollowed out
  • Can now also handle entities
  • Improved the handling of internally saving captured regions for the Clone tool
  • Regions with the same bounding box are not saved more than once. Only the latest copy will be saved
  • This prevents multiple copies of the same selected region from completely filling your clipboard
  • This breaks old clipboard data
  • Pressing ctrl + c in game while holding the clone tool will manually re-copy the selected region
  • Pressing ctrl + v in game while holding the clone tool will paste the copied region
  • This does not replace left click, it's just an alternative button press
  • Improved the compile time of the render-preview
  • If a render preview takes longer than 8 seconds to compile (freezing the game client in the process), the preview will be aborted. This timer can be adjusted in the config.

### Move Tool
  • Can now also handle entities

## Commands
  • Dramatically optimized the time to find Structure Blocks when using /structure_gel savestructures search
  • Added /structure_gel debug
  • This will be used for miscellaneous commands that have a very specific function and won't need to be used often, if at all
  • Currently used for /structure_gel debug update_structures_to_structure to update the file location in a Structure Block to the 1.21 format where the structures folder is renamed to structure (if applicable). It does so by finding and replacing the first instance of :structures/ with :structure/ in the resource location. This uses the exact same syntax as /structure_gel savestructures
  • Commands affecting Structure Blocks display a Redstone Torch particle above the affected blocks
  • Added /structure_gel ? to display the basic function of the other sub-commands

## Structure Blocks
  • The Show Invisible Blocks option allows selecting which blocks to show
  • The Show Invisible Blocks option can dramatically decrease your fps on large selections. This can help by only showing what you care about.

## Misc
  • Made a number of GUI changes to improve mouse scrolling and hovering
  • Some GUIs have tooltips when elements are hovered over
  • Dynamic spawner labels give extra info
  • The Building Tool palette screen gives info when hovering over the item icon for a block
[2.18.1] Structure Gel API v2.18.1 by KingPhygieBoo on Oct 09, 2026
Download
Added /structure_gel getfeatures command. Uses the same syntax as getstructures... but for features!
[2.16.2] Structure Gel API v2.16.2 by KingPhygieBoo on Oct 09, 2026
Download
Added /structure_gel getfeatures command. Uses the same syntax as getstructures... but for features!
[2.18.0] Structure Gel API v2.18.0 by KingPhygieBoo on Oct 09, 2026
Download
# 1.20.4-v2.18.0

## RegisterArmorTrimTexturesEvent
  • Added registerSprite(ResourceLocation) for registering a direct texture that isn't standard armor with a _leggings suffix.

## Building Tool
  • Added more replace options to more tool modes.
  • Added Replaceable as a replace option. Replaces blocks that could be replaced by a player when placing a block, such as _short_ grass and blocks in the #minecraft:replaceable tag.

## Fixes
  • The Building Tool and Data Handler no longer allow objects disabled through feature flags.
[2.16.1] Structure Gel API v2.16.1 by KingPhygieBoo on Oct 09, 2026
Download
# 1.20.1-v2.16.1

## RegisterArmorTrimTexturesEvent
  • Added registerSprite(ResourceLocation) for registering a direct texture that isn't standard armor with a _leggings suffix.
[2.17.2] Structure Gel API v2.17.2 by KingPhygieBoo on Oct 09, 2026
Download
# 1.20.4-v2.17.2

## Fixes
Fixed a crash when connecting to servers
[2.17.1] Structure Gel API v2.17.1 by KingPhygieBoo on Oct 09, 2026
Download
# 1.20.4-v2.17.1
Updated NeoForge version as well as minor updates and fixes.

## Building Tool
  • Added the delete key as a keybind for tool modes to use.
  • Currently only used by the fill tool to delete all blocks in the selection.

## Fixes
  • Fixed en_us.lang using • instead of \u2022.
[2.17.0] Structure Gel API v2.17.0 by KingPhygieBoo on Oct 09, 2026
Download
# 1.20.4-v2.17.0
Ported to 1.20.4 and now on NeoForge

## General Changes
  • Removed old IForgeRegistry methods. Vanilla registries are used now.

## Registries
  • All custom registries have been moved to proper NeoForge registries stored within com.legacy.structure_gel.api.registry.StructureGelRegistries and their respective events have been removed.
  • DataHandlerType
  • LootTableAlias
  • DynamicSpawnerType
  • JigsawCapabilityType

## Registrar
  • General optimizations to registry behavior. Removed a number of redundant checks.
  • RegistrarHandler.BlockHandler returns Registrar.BlockRef instead of Registrar.Static.
  • BlockRef implements ItemLike and has a defaultBlockState() method.
  • Added RegistrarHandler.ItemHandler
  • Similar to BlockHandler but specific to Items.
  • Creates Registrar.ItemRef instead of Registrar.Static.
  • ItemRef implements ItemLike and has a defaultInstance() method.
  • Removed RegistrarDatapackEntriesProvider
  • Use new DatapackBuiltinEntriesProvider(packOutput, gatherDataEvent.getLookupProvider(), RegistrarHandler.injectRegistries(new RegistrySetBuilder()), Set.of(my_mod_id));
  • Added @RegistrarHolder
  • Class annotation that allows Structure Gel to find and load RegistrarHandler fields within it.
  • RegistarHandlers must be public and static to be accessible. An exception will be thrown if this is not the case.
  • RegistarHandlers are registered during RegisterEvent during EventPriority.HIGHEST. If you have RegisterEvent listeners at this priority, mod load order may prevent this from working properly.

## Jigsaw Capability
  • Recieved a major refactor to better organize the data.
  • JigsawCapability.IJigsawCapability -> JigsawCapability
  • JigsawCapability.JigsawType -> JigsawCapabilityType

## Building Tool
  • Added Fuzzy as an option to the Extend tool.

## GelPortal block
  • Thanks to BlockType codec requirements, this is now an abstract class.
  • The GelTeleporter factory that was previously passed as an argument is now an abstract method getTeleporter(ServerLevel, GelPortalBlock)
  • Now has some handling for when the Axis property isn't present to allow not including it.

## Data Handlers
  • Fixed text boxes not always losing focus in the GUI.
  • Tab-navigation no longer autocompletes the first option for text boxes that suggest a field if nothing was typed.
  • Control + Pick Block now also copies if the block was waterlogged and if it should connect to other blocks.
  • Updated hover-tooltips (see below).

## Rendering
  • Updated how hover-tooltips work for Jigsaws, Structure Blocks, and Data Handlers.
  • The display name now renders with transparency, so it doesn't get cut off when it goes into a block.
  • The display name also adjusts its offset according to what side of the block you're looking at, and if that side of the block is exposed.

## Commands
  • Added /structure_gel nv to toggle night vision
  • Has optional arguments for players and if the effect should be added or removed

## Misc Internal Changes
  • Mixins are now located in their own package based on environment side.
  • client, common, and server (unused currently)
  • Packets are now located in their own package based on direction.
  • c_to_s, s_to_c, and bi_directional
  • Redid several mixins to utilize MixinExtras for better cross-mod compat.
  • ExtendedJigsawPlacement has been removed. All logic is handled through mixins to the vanilla JigsawStructure and JigsawPlacement.
  • GelTemplate has beem moved to the api package.
[2.16.0] Structure Gel API v2.16.0 by KingPhygieBoo on Oct 09, 2026
Download
# 1.20.1-v2.16.0

## LoadStructureTemplateEvent
  • New event that fires after a StructureTemplate loads.
  • Contains methods to modify the blocks and entities within the template.

## Gel Blocks
  • Now automatically perform their function without needing to implement the structure processor or use a specific StructurePiece type.
  • If the processor is already present, it will still use that.
  • This will not be done when loading a template through Structure Blocks or the place template command.

## IModifyState
  • Any TemplateStructurePiece that extends IModifyState will now work with it as long as the postProcess method isn't overwritten.

## Data Handler
  • All handlers can now mark blocks for post processing in the Properties menu.
  • Useful for making sure water flows after being placed, or updating fence connections for neighboring structures.
  • The position marked for post processing will be the position of the data handler itself, with the applied offset.
  • Added structure_gel:empty as an empty data handler.
  • Its primary function is to set an offset and mark a position for post processing.
  • This is not used by default if the data handler can't be loaded from nbt.
  • Fixed the structure_gel:block_state using structure_gel:chest for its data parser.

## Building Tool
  • The Shape tool now has Hollow Cube, Cube Frame, Pyramid, and Cone.
  • Changing the shape now uses a selection panel instead of clicking to cycle to the next value.
  • The Fill tool now supports all the shapes from the Shape tool for fine control over shapes (replaces the old Mode property).
  • The Clone tool now temporarily saves its selected region into a clipboard.
  • This allows for cloning to an area far away, regardless of the source being loaded.
  • The region is not actually saved to the item itself, but rather to an external file in the dimension's data folder..
  • This results in drastic client performance improvements, especially for large selections.
  • The Replace tool now has a "Fuzzy" property that allows only replacing directly attached neighbors or diagonal neighbors.
  • Fixed a number of vertex sorting issues with the Clone tool.
  • Translatable text values in the GUI's now scroll like vanilla options buttons.
  • Action history is no longer stored in a level capability. It has been moved to SavedData files to allow for more dynamic loading.

## Block Entities
  • Added IRotatable interface.
  • Allows a block entity to be rotated and mirroed when placed in a structure.
  • Contains void mirror(Mirror) and void rotate(Rotate).
  • Supported by vanilla's StructureTemplate (mixin), GelTemplate, relavent data handlers, and relavent Building Tool modes.

## Misc
  • Added an abstract item interface: StructureFinderItem
  • Contains basic methods to get/set located structure info within itself.
  • Improved performance with data handler processing.
  • Some registry events have been deprecated. They will become NeoForge registries in 1.20.4.
[2.15.1] Structure Gel API v2.15.1 by KingPhygieBoo on Oct 09, 2026
Download
# 1.20.1-v2.15.1

## Data Handler
  • Now preserves block state values when giving the player a copy after using the generate button.
  • Fixed item frames potentially causing a world lockup.
[2.15.0] Structure Gel API v2.15.0 by KingPhygieBoo on Oct 09, 2026
Download
# 1.20.1-v2.15.0

## Building Tool
  • Fixed the replace tool not maintaining block states with things like stairs.

## Data Handler
  • Added an option for the data handler to not connect to fences, walls, etc.
[2.4.8] Structure Gel API v2.4.8 by KingPhygieBoo on Oct 09, 2026
Download
# 1.18.2-v2.4.8

  • Fixed a world gen lockup with entity data handlers.
[2.14.0] Structure Gel API v2.14.0 by KingPhygieBoo on Oct 09, 2026
Download
# 1.20.1-v2.14.0

## Building Tool
  • The Flood tool now has a radius and replace property.
  • Replace can be "Air" or "Air and Liquid" and defaults to "Air and Liquid" (was "Air" only).
  • Radius can range from 0-200 and defaults to 80 (was 64).
  • The Extend tool now has a radius and replace property.
  • Replace can be "Air" or "Air and Liquid" and defaults to "Air and Liquid" (was "Air" only).
  • Radius can range from 0-200 and defaults to 80 (was 64).
  • The size of the currently selected region is displayed above the hotbar and in the selection edit GUI.
  • The line tool displays its length instead.
  • The blocks in your current pallete are displayed in the bottom right corner of the screen.

<img src="https://gitlab.com/modding-legacy/structure-gel-api/-/raw/1.20.1/changelogs/gui_update.png" alt="Gui Update">

  • The size of a selection can now be edited in the GUI with text boxes.
  • This assumes you're changing the positive most corner of the selection box. If a full selection box doesn't exist, one will be created from your position, or a point.
  • The line tool selection can be edited by grabbing the "corner" position of the selection points.
  • Holding right and left click allows the building tool to spam operations.
  • Actions that happen as a result of spamming are grouped into one undo/redo.
  • Color coded some text values related to positions.
  • Dramatically improved the visuals of some renders.
  • This also improves performance.

<img src="https://gitlab.com/modding-legacy/structure-gel-api/-/raw/1.20.1/changelogs/render_update.png" alt="Rendering updates">

## General
  • Added more utility methods to VoxelShapeUtil.

## Fixes
  • The clone building tool wasn't updating the render when you rotate or mirror.
  • The building tool render wasn't displaying right away when you join a world.
  • Keybinds weren't working when mapped to mouse buttons.
[2.7.3] Structure Gel API v2.7.3 by KingPhygieBoo on Oct 09, 2026
Download
# Fixes
  • Fixed an issue that could cause a world lockup when creating an entity through a data handler.
[2.13.1] Structure Gel API v2.13.1 by KingPhygieBoo on Oct 09, 2026
Download
# 1.20.1-v2.13.1

## Data Handlers
  • Data handlers now support position offsets.
  • Position offsets are handled as left, up, and forwards, from the perspective of the data handler.
  • The offset position is rendered in world.
  • Updated the Data Handler GUI to be more organized.
  • Data handlers can be waterlogged in the GUI now.
  • Data Handlers are now in the dragon_immune and wither_immune block tags.

## Building Tool Rendering
  • Optimized the rendering logic.
  • Rendering in Shape, Replace, or Clone mode now works with a proper culling system, which should make it look nicer.
  • Renders now have shading to improve their visibility.

Before and After
![render_update](https://gitlab.com/modding-legacy/structure-gel-api/-/raw/1.20.1/changelogs/render_update.png)

## Fixes
  • Fixed the building tool not working with negative reach values properly.
  • Fixed the building tool's message for the new reach distance showing an incorrect value.
  • Fixed building tool rendering in Fabulous graphics to match fast/fancy.
  • Fixed a crash when a mod's dependency is missing.
[2.13.0] Structure Gel API v2.13.0 by KingPhygieBoo on Oct 09, 2026
Download
Updated to 1.20.1, general code cleanup with deprecated data, armor trims can be registered to the texture atlas.


A full changelog can be found here: https://gitlab.com/modding-legacy/structure-gel-api/-/blob/1.20.1/changelogs/1.20.1-v2.13.0.md
[1.7.8] Structure Gel API v1.7.8 by KingPhygieBoo on Oct 09, 2026
Download
  • Please Read**

This version is accessible on Modrinth primarily for modpack purposes. However, please be aware that this version is no longer supported or updated.

We recommend players to update to the latest version to ensure optimal performance and access to ongoing support. Thank you for your understanding.

  • Changelog:**

<p>A minor updated focused on fixing bugs. Everything here was backported from 1.17. Most notably, this fixes an issue where structures would be extremely rare in negative coordinates.<br /><br /><a href="https://gitlab.com/modding-legacy/structure-gel-api/-/blob/1.16.4/jars/1.16.5-v1.7.8%20Changelog.md">Full Changelog</a></p>
Structure Gel API Icon
Download Structure Gel API
Select game version
Select platform