A modification that is designed with survival mode in mind. Similar to how Structure blocks work but using JSON files, it is possible to save structures in both creative and survival or adventure mode. Once saved the player can place down their structure anywhere else in the world.
When the player is in survival the structure will be removed when saved. Some items might drop that can't be saved, things like Shulker boxes, item frames, armour stands, paintings things like that. Beds are also one of the few blocks that can't be saved due to it being a multi-structure but I have made sure they drop instead for being fully removed.
When the player is in creative mode the save block will act more like cloning the structure, the structure can also be placed more than once unlike survival mode, the same idea as survival inventories are not saved but blocks and block rotation are saved as much as possible.
There is a game rule for setting the maximum size players can save structures. It is recommended to not go over 32 as this is the maximum size Minecraft generally uses for block updates and may cause severe lag when placing larger structures, for this reason, I have made sure there is an option for players to limit the structure save size though it can be changed any time by an operator when they like.
You can enable structure backups, an optional system to ensure that every time a structure is saved (even with the same name) that a new file will save to a backups folder for that player. Servers might not want this enabled as it could add up file size on a well-used server but it might be useful for people that want a copy of their structures just in case something happens to them. To roll back a structure all you need to do is place the structure JSON file into the folder and change the name of the file to something more usable like "structure_backup_1" and then use that file name when loading the structure.
Target Block Crafting Recipe

Structure Block Crafting Recipe

Fixed in 1.1.0 - Large structures lagged when being placed in version 1.0.0.