Files
Forge download: Click here
Forge repo: https://github.com/TelepathicGrunt/CommandStructures-Forge
Fabric download: Click here
Fabric repo: https://github.com/TelepathicGrunt/CommandStructures-Fabric
--------------------------------------------------------------------------------------------------------------
INFO
This utility mod for both Forge, Quilt, and Fabric is great for any modder or datapacker that is looking to create custom jigsaw structures but wants a way to spawn the structures quickly or have all nbt pieces laid out neatly. It also provides a way to spawn configuredfeatures and placedfeatures to make debugging those easier.
What this mod does is it created the /spawnstructure, /spawnpieces, /spawnrawstructure, /spawnfeature/and /spawnplacedfeature command that you can use. The full args for the commands are:
/spawnstructure <location> <startpoolresourcelocation> <depth> <heightmapsnap> <legacyboundingboxrule> <disableprocessors> <sendchunklightingpacket><randomseed>
Details of each arg:
<location> - Where to spawn the structure. Can do ~ ~ ~ to spawn it where you currently are or ~50 ~ ~ to spawn it 50 blocks away from you.
<startpoolresourcelocation> - The path to the template pool to use to start the structure gen from. For plains vanilla village, this would be "minecraft:village/plains/town_centers" which is the start pool for villages. You can choose other pools for testing purposes. This is a required argument. The rest of the arguments past this one are optional.
<depth> - How many pieces outward from the starting piece should the jigsaw structure generate. Think of it like how long a branch should go in length. Not how many pieces in the structure total. Villages are 6 in depth.
<heightmapsnap> - Whether the structure should generate at top land or should spawn where the player is.
<legacyboundingboxrule> - Special internal rule that fiddles with bounding boxes of the pieces. This is required to be true for villages to generate properly. All other structures should have this be false.
<disableprocessors> - Whether structure processors should be turned off for this structure generation or not. Processors are often used to randomized a structure's block or replace blocks based on conditions like how village roads turns into planks when it goes into water.
<sendchunklightingpacket> - If true, the game will send a packet to try and cause players to reload all visible chunks. If off, it may provide significant performance boost but if the structure or feature places blocks in a very weird way, those blocks may not show up until the chunk is reloaded. Example, minecraft:forest_rock feature places blocks without sending changes to client. Most features and structures will be fine and sendchunklightingpacket can be set to false. (default is false)
<randomseed> - Use this and pass in a seed if you want to keep generating the same structure layout over and over every time you run the command anywhere. Great for testing to see if you fixed why a piece wasn't spawning in your structure.
(1.18 only) /spawnrawstructure <location> <configuredstructure> <savestructurebounds> <sendchunklightingpacket> <randomseed>
Details of each arg:
<location> - Where to spawn the structure. Can do ~ ~ ~ to spawn it. Note: ConfigureStructures may ignore the y value of this argument so be aware of that. Ocean Monuments always spawn below sealevel for example.
<configuredstructure> - The ConfiguredStructure to spawn. Note, many structures have special hardcoded internal checks that may prevent generation. For example, End Cities will not spawn is land at spot is below 60, Desert Temple and Jungle temples will not spawn at or below sealevel, and other structures may have more strict checks. The biome checks has been bypassed and for many vanilla structures, I have added code to bypass many of their strict checks so that Mineshafts always spawn when doing this command for example. Modded structures may have extremely strict checks that prevent generation. This argument is a required argument. The rest of the arguments past this one are optional.
<savestructurebounds> - Whether to save the structure's boundaries to the chunk itself. This bounds is for triggering advancements, spawning structure specific mobs over time like guardians and pillagers, and various other bounds related stuff.
<sendchunklightingpacket> - If true, the game will send a packet to try and cause players to reload all visible chunks. If off, it may provide significant performance boost but if the structure or feature places blocks in a very weird way, those blocks may not show up until the chunk is reloaded. Example, minecraft:forest_rock feature places blocks without sending changes to client. Most features and structures will be fine and sendchunklightingpacket can be set to false. (default is true)
<randomseed> - Use this and pass in a seed if you want to keep generating the same structure layout over and over every time you run the command anywhere. Great for testing to see if you fixed why a piece wasn't spawning in your structure.
/spawnpieces <resourcelocationpath> <location> <savepieces> <floorblock> <fillerblock> <rowlength>
Details of each arg:
<resourcelocationpath> - The path to search under for all nbt pieces to spawn in a grid. This command can target a single nbt piece as well. This is the only required argument. All other arguments are optional.
<location> - Where to start placing the pieces down at. ~ ~ ~ is the default which is where the player is standing.
<savepieces> - Whether to auto save every nbt piece spawned into the "generated" folder in the world's save folder.
<floorblock> - What block to place on the floor that the nbt pieces will sit on. This is usually Barrier blocks or Stone.
<fillerblock> - What block to place to clear the area for the nbt piece. Common blocks chosen here are Air or Structure Void.
<rowlength> - How many nbt pieces should be placed per row before the next row of pieces is started.
(1.18 only) /spawnfeature <configuredfeatureresourcelocation> <location> <sendchunklightingpacket>
Details of each arg:
<configuredfeatureresourcelocation> - The resourcelocation of the configuredfeature to spawn. Do note, some features have internal checks to know if a spot is valid such as Desert Wells requiring to be placed on sand.
<location> - Where to spawn the configuredfeature at.
<sendchunklightingpacket> - If true, the game will send a packet to try and cause players to reload all visible chunks. If off, it may provide significant performance boost but if the structure or feature places blocks in a very weird way, those blocks may not show up until the chunk is reloaded. Example, minecraft:forest_rock feature places blocks without sending changes to client. Most features and structures will be fine and sendchunklightingpacket can be set to false. (default is true)
(1.18 only) /spawnplacedfeature <placedfeatureresourcelocation> <location> <sendchunklightingpacket>
Details of each arg:
<placedfeatureresourcelocation> - The resourcelocation of the placedfeature to spawn. Do note, some placedfeatures have internal checks to know if a spot is valid or rarity placements. For example, Desert Wells have a 1/1000 rarity placement so you could be doing this command around a 1000 times before a Desert Well decides to spawn.
<location> - Where to spawn the placedfeature at. NOTE: to better simulate worldgen, the location here will pass the bottommost corner position of the chunk it is in to the placedfeature. So using this command is like normal worldgen spawning without the biome checking being done. If your placedfeature has a "minecraft:biome" placement check, it will be ignored to help with debugging easier without needing to be in the right biome.
<sendchunklightingpacket> - If true, the game will send a packet to try and cause players to reload all visible chunks. If off, it may provide significant performance boost but if the structure or feature places blocks in a very weird way, those blocks may not show up until the chunk is reloaded. Example, minecraft:forest_rock feature places blocks without sending changes to client. Most features and structures will be fine and sendchunklightingpacket can be set to false. (default is true)
*If you find an issue, glitch, or have a suggestion about my mod, let me know! But if you don't have a GitHub account to report in the Issue tab above, just comment what the problem is below and I'll try and get back to you ASAP! :)
Discord Link to #telepathicgrunt-mods channel for my mods! :
My Patreon page if you wish to help donate to support me! :