-
-
Notifications
You must be signed in to change notification settings - Fork 26
How to configure this mod
Since the overwhelming majority of my structures uses nbt files, template pools, and/or processors, you can override all of this with datapacks! That means you can customize the blocks in those structures with other mod's blocks or add pieces of other mod's villages into RS's villages! If you decide to customize this mod, open up one of the sections below for your MC version, download the config datapack, make your changes, and then put the edited datapack into your world's save folder.
As of 1.18.2 and newer, most of Repurposed Structures can be changed by datapack now. Including turning off or on structures or changing spawnrates. Click the below link to get an example datapack to edit and some instructions for what to edit to do stuff like turn off structures. There's a huge amount of stuff you can change by datapack that used to not be configurable in 1.18.1 and below. Enjoy!
Click here to go to config datapack download page
Note: Be sure to read the instructions in the above link's page to make it easier to know what to edit.
By default, RS will do its best to import modded loot into its structures's loot. If this is not desired behavior, you can disable this in the normal RS config file in config folder above mods folder.
See the Tips and Tricks section farther down for how to edit the structures themselves in the easiest way possible.
To reach this mod's config file, go into the config folder that is above the mods folder and go into the repurposed_structures-forge folder to change the configs. The config is split up into many files for better organization and ease of editing. Then exit/restart Minecraft for all changes to take effect. Do note that the config will affect all worlds so keep that in mind
Right now, there are lots of config options. The big one that you may be interested in is the spawnrate config for every structure and yes, you can even fully turn off the structures too. The config comments will help walk you through on how to adjust the rates. Furthermore, you can even blacklist dimensions or biomes as well! For some structures, you can change the maximum and minimum y value that they can start their generation at and far more! Check out the config for everything you can do!
Furthermore, you can make datapacks to modify or change a huge amount of stuff in my mod including modifying how structures look! Here's a flat world of all the pieces of my nbt-based structures. Use this to make editing and overriding structure pieces easier with datapacks: Repurposed Structures - pieces world (click here)
If you want to change the loot tables that the structures in this mod uses, you can override my loot tables with a data pack! Here's a datapack with the default loot tables: Repurposed_Structures-Loottables (click here)
The mob spawner for all none-nbt based structures can be changed with datapacks as well! You can download the spawner datapack here and change the entries inside the json files to add, remove, or change mob chances in spawners!: Repurposed_Structures-Mob_Spawners (click here)
And all structure pieces such as Wells, Villages, Outposts, Shipwrecks, Pyramids, and Igloos can also be overridden with datapacks. Furthermore, the template pools that holds structure pieces for Villages and other structures can also be overridden with datapacks to add your own pieces to the villages or other structures! You can find what pieces or pools can be replaced and their filenames here but be sure to switch the branch to the MC version you are on: Overridable structure nbt files (click here)Overridable structure pool files (click here)
For the expert datapackers, there's actually a hidden neat way to add new pieces to any Jigsaw Structure without overriding their pool file! (Villages, outposts, all of RS's structures minus mansions, etc) For example, instead of overriding
data\repurposed_structures\worldgen\template_pool\village\birch\houses.json
to add new houses to my Birch Village, replaceworldgen\template
in the datapack withpool_additions
and have the template pool file only have the entries you want merged into the main pool file. Repurposed Structures will detect these files from ALL datapacks and merge the pool_additions pool entries into the actual template pool file that the path points to. Yes, Repurposed Structures will read all pool_additions files from all datapacks that even have the same path so that the datapacks do not override each other's pool_additions! Neat stuff! And it works with other pools too! Just make sure the piece you are adding has a Jigsaw Block with the right name so the actual structure can connect and spawn the piece.To help you with this cool pool_additions feature, this 18 minute tutorial should help walk you through creating a building, saving it, and adding it to RS's structures with a datapack! https://youtu.be/kzRQrQqlYjw
Swapping blocks for structures:
To swap blocks in structures easily, I would recommend editing the Processor List files for the structures as these files runs for every block in a structure and can switch out blocks for another. You can find the list of processor files to edit here: https://github.com/TelepathicGrunt/RepurposedStructures/tree/1.19.0-Forge/src/main/resources/data/repurposed_structures/worldgen/processor_list
To see what processor file a piece is using, go into the Template Pools for the structure and there is a line called "processors" that points to a processor List file to use. You can override these Template Pool files if you need to make it point to a certain processor: https://github.com/TelepathicGrunt/RepurposedStructures/blob/969e43f93595591c78d2db2d2aa465d6bcf8b2ce/src/main/resources/data/repurposed_structures/worldgen/template_pool/igloos/grassy/bottom.json#L9
For actually editing the Processor File, I would recommend adding
random_replace_with_properties_processor
processors to the end of the Processor Lists. The below is an example usage of that processor. It takes an input block to detect and will swap it with the output block while preserving the block's blockstate. So this can swap out stairs with another stairs block and have the stairs face the correct way. Set the probability to 1 if you want to swap all of the input block with the output block.{ "input_block": "minecraft:dirt", "output_block": "minecraft:stone", "probability": 0.7, "processor_type": "repurposed_structures:random_replace_with_properties_processor" }If you want to use other kinds of processors like ones from vanilla, check out this site that can help you format and use the processor correctly before adding it to the datapack. Be sure to change the green button to the MC version you are on. https://misode.github.io/worldgen/processor-list/
Changing design of structures:
Changing design of structures can be tricky but doable. I would recommend both Command Structures and Structure Void Toggle mod to help make editing structure pieces easier. With Command Structures mod, use the /spawnpieces command to spawn all the structure pieces you want in a grid. It will setup the Structure Blocks and preserve Structure Void for you. Structure Void Toggle mod's backtick key can be used to make Structure Void Block not have a hitbox so you can place and break blocks more easily.
If you don't want to use Command Structures mod to generate the pieces, you can download this world of all RS pieces instead: https://github.com/TelepathicGrunt/RepurposedStructures/releases/tag/1.0.0
This short video will demonstrate how Structure Blocks work for saving and loading a structure piece. This will help you know how to save the structure piece after you are done editing it and where to find the newly saved file. https://www.youtube.com/watch?v=umhuRXinD3o
Structure Void block is used to mark a location of a structure piece where it should not replace terrain or exiting blocks in the world when it spawns the structure. This means that ideally, you'll want to place Structure Void around the outside of a building while leaving Air inside the building. This makes the building mesh better with the surrounding terrain while preventing terrain from being placed inside the building.
Injecting new pieces into structures automatically:
If you are looking to add new buildings to my villages and other structures, you'll want to check out this video! Repurposed Structures added a pool_additions feature for datapacks to merge pool files together that is used for jigsaw structure generation. The video is an 18 minute tutorial and should help walk you through creating a building, saving it, and adding it to RS's structures with a datapack! https://youtu.be/kzRQrQqlYjw
For example, instead of overriding
data\repurposed_structures\worldgen\template_pool\village\birch\houses.json
to add new houses to my Birch Village, replaceworldgen\template
in the datapack withpool_additions
and have the template pool file only have the entries you want merged into the main pool file. Repurposed Structures will detect these files from ALL datapacks and merge the pool_additions pool entries into the actual template pool file that the path points to. Yes, Repurposed Structures will read all pool_additions files from all datapacks that even have the same path so that the datapacks do not override each other's pool_additions! Neat stuff! And it works with other pools too! Just make sure the piece you are adding has a Jigsaw Block with the right name so the actual structure can connect and spawn the piece.Important note is the piece needs to have it Jigsaw Block setup correctly for it to be spawned. (Exception is Mansion, Monuments, and single piece structures as these do not need Jigsaw Blocks) If your piece does need a Jigsaw Block to spawn, use a Structure Block to spawn one of RS's piece from the Template Pool you are trying to add to in order to see how that piece's Jigsaw Blocks are setup.
Another note, for Villages especially, make sure the new piece you add is not too large as it might not spawn otherwise, For Villages, the roads have a bounding box that reserves an area next to them for the houses to spawn in. If the newly injected house piece would be too large that it goes beyond the road's bounding box, the new house will not spawn.
If you get stuck or confused on how to configure something, just ask and I'll try and help out!