Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
Starter Structure adds the possibility to generate a specific structure when a world is first being generated. It looks in the config folder for schematic files, picks one, and places it at the spawn point.
Both structure block schematics (SBS, .nbt file) and WorldEdit schematics (WES, .schem/.schematic file) are supported. SBS contain entity data, which can be used to spawn saved entities directly. WES do not save entities, but signs can be placed in the schematic to decide where entities should spawn. For both, custom NBT data is supported. WorldEdit does not have to be installed for the mod to work! It would only be used to generate the schematic file, after which you can remove it. Schematics can also be created in another instance, and the file copied to a modpack.
There are also various config options available to specify where the player should spawn (and where the structure should generate) and how the structure should be placed.
All available config options:
Show Spoiler
shouldGenerateStructure default true
Whether a schematic that's located in './config/starterstructure/schematics/...' should be generated.
forceExactSpawn default true
Usually player spawn points are in a randomized area. With this enabled, players will always spawn at the set coordinates (at the nearest air pocket).
ignoreTreesDuringStructurePlacement default true
Prevents structures from being placed on top of trees. Any leaf and log blocks will be ignored during placement.
generationIgnoreJigsawAndStructureBlocks default true
Some schematic files might contain jigsaw or structure blocks. These are by default ignored during structure generation.
protectStructureBlocks default true
Whether the blocks from the generated structure should be protected from breaking/griefing.
protectSpawnedEntities default true
Whether entities spawned inside the generated structure should be protected from damage.
playersInCreativeModeIgnoreProtection default true
If enabled, players that are in creative mode will be able to break and place the structure blocks.
playersInCreativeModeIgnoreEntityProtection default false
If enabled, players that are in creative mode will be able to damage protected entities which spawned in structures.
preventSpawnedEntityMovement default false
If spawned entities inside the generated structure should not be allowed to move away from the block they spawned on. Disabled by default.
spawnNonSignEntitiesFromSupportedSchematics default true
If entities from (structure block) schematic files should be spawned when found. These are entities not created with signs.
shouldUseStructurePosition default false
If the generatedStructurePosition config options should be used.
generatedStructureXPosition default 0, min -10000000, max 10000000
The exact x position for the generated structure. Used when shouldUseStructurePosition is enabled.
generatedStructureYPosition default 0, min -1000, max 1000
The exact y position for the generated structure. Used when shouldUseStructurePosition is enabled.
generatedStructureZPosition default 0, min -10000000, max 10000000
The exact z position for the generated structure. Used when shouldUseStructurePosition is enabled.
shouldUseStructureOffset default false
If the generatedStructureOffset config options should be used.
generatedStructureXOffset default 0, min -1000, max 1000
The x offset for the generated structure. Used when shouldUseStructureOffset is enabled.
generatedStructureYOffset default 0, min -1000, max 1000
The y offset for the generated structure. Can for example be set to -1 if you notice a building always spawns one block too high. Used when shouldUseStructureOffset is enabled.
generatedStructureZOffset default 0, min -1000, max 1000
The z offset for the generated structure. Used when shouldUseStructureOffset is enabled.
shouldUseSpawnCoordinates default false
If the spawnCoordinate config options should be used.
spawnXCoordinate default 0, min -10000000, max 10000000
The new X coordinate of the spawn when shouldUseSpawnCoordinates is enabled.
spawnYCoordinate default 0, min -1000, max 1000
The new Y coordinate of the spawn when shouldUseSpawnCoordinates is enabled.
spawnZCoordinate default 0, min -10000000, max 10000000
The new Z coordinate of the spawn when shouldUseSpawnCoordinates is enabled.
shouldUseSpawnCoordOffsets default false
If the spawnCoordOffset config options should be used.
spawnXCoordOffset default 0, min -1000, max 1000
The X coordinate offset of the spawn when shouldUseSpawnCoordOffsets is enabled.
spawnYCoordOffset default 0, min -1000, max 1000
The Y coordinate offset of the spawn when shouldUseSpawnCoordOffsets is enabled.
spawnZCoordOffset default 0, min -1000, max 1000
The Z coordinate offset of the spawn when shouldUseSpawnCoordOffsets is enabled.
Config Folders:
Schematics can be placed inside ./config/starterstructure/schematics.
Schematics can be the types .nbt, .schem and .schematic.
Can contain multiple, the mod picks one at random.
Custom sign data is inside ./config/starterstructure/signdata
Allows the creation of entities via NBT data. You basically put the /summon command inside a .txt file in the signdata folder.
Place a sign within the schematic with a reference to that file, and it creates an entity on structure generation.
See below for more information.
Schematics:
Schematics can be created via structure blocks (.nbt files) or via WorldEdit (.schem / .schematic files). You can choose the method you prefer! I recommend using WorldEdit, as it also allows you to specify where a player should spawn. You only need WorldEdit to create the schematic. After that you can remove it, as Starter Structure does not need WorldEdit to generate the spawn structure on world creation.
How-to generate a WorldEdit schematic:
Show Spoiler
Use the //wand command to receive the tool to set the corners of the schematic.
Left-Click the first block where you want the bottom corner to be.
Right-Click the second block of the opposite corner, make sure to break the temporary blocks after.
You can also use //pos2 command.
Stand where you want to spawn when the structure generates, and enter the //copy command.
Now do //schematic save <schematic-name> to generate the schematic file.
The file will be saved in ./config/worldedit/schematics
Copy it over to Starter Structure's config folder ./config/starterstructure/schematics
Starter Structure will now generate the copied structure whenever a new world is generated!
If multiple schematics are inside ./config/starterstructure/schematics, one will be chosen at random.
Signs:
Inside the generated structure, entities can easily be spawned with signs:
Show Spoiler
A simple entity:
--------------------------
[Entity]
modid:entityid
--------------------------
New lines are ignored. These 3 signs are all the same, and will spawn a villager in its place on structure generation.
Custom NBT data sign:
If you'd like to spawn an entity that's less simple, for example with a custom name or custom items, you can make a reference to a file containing that data.
Start with the [NBT] line. Then specify the file name below that. This can be anything.
--------------------------
[NBT]
nbtfilename
--------------------------
This will look for entity data inside ./config/starterstructure/signdata/igloo_entity.txt
This file contains the following NBT data:
And will spawn a named zombie entity with items and a status effect when the structure generates:
The entity NBT data is basically just a /summon command. There are various websites available to help you generate it.
You can for example use the website MCStacker to generate an entity, via their /summon page.
You can put the entire generated /summon command inside the ./config/starterstructure/signdata/file.txt:
Starter Structure will remove the /summon part and generate the correct NBT data with ID.
Converting it to:
You may freely use this mod in any modpack, as long as the download remains hosted within the CurseForge or Modrinth ecosystem.
Serilum.com contains an overview and more information on all mods available.
For issues, ideas, suggestions or anything else there is the Github repo. Thanks!



