#A new technical block for custom structures

11 messages · Page 1 of 1 (latest)

jolly whale
#

I was able to figure out the basic steps to make a custom structure, but one thing present on Pillar and missing from the vanilla implementation still bothers me: the lack of a (easy) way to randomize nbt data (loot tables) when a TE block spawns alongside the structure.

So, i propose a new idea to spice vanilla structure system: a new technical block (or even an extension of vanilla's structure block, its up to the mod maker interested) that facilitate the setup of TEs with random data included (not only chests, but also spawners and other modded blocks). Basically, it would replace itself on structure spawn with a "target" block specified when interacted, drawing its random nbt data from a list also configured when interacted to. Think about the deprecated Structure Block's DATA mode, but more intuitive to the player.

I will explain in the next messages how that thing would work (because the text limit of discord messages would eat up the majority of my text).

Ah, sorry for the absolutely disgraced mockup attached on the thread. I did with Lazarus, because i really didn't want to try to make something on Photoshop and forget the points i want to bring here, that is the more important part.

Well, this is like an "evolution" of my Pillar update request, but now taking in consideration how custom structures work in vanilla datapacks. Only the relevant part that i could find a suitable alternative i'm requesting here. I would also do another request for a in-game graphical tool to generate the all the .jsons necessary to a custom structure to generate from a datapack, but this will be in a separate thread.

#

So, when placed inside an structure and right-clicked, it would show an UI similar to one of the three sets i show in the mockup i attached on OP.
In case, the mockup show three "block modes" to morph into: chest, furnace and spawner (below i will suggest other blocks to be included). It would allow the player to select a block from the set, and it immediately would add a line alongside it to specify one of the items that will iterate randomly to end up inside the block. Example, for chests, it can be either a single item, a loot table or a item tag (in this case it would spawn one of the items on the tag with equal probability between all). For furnaces, you could specify also the slot each line would try to spawn (either as fuel or for the smelting slot - i forgot to add on the mockup 😳). In case of spawners, only a simple list of entity ids can be provided.

#

In all cases, each line will have a probability field from 0 to 1 (float) to be picked when the randomizer "turns" into the desired block on structure spawing

#

I'm aware that Custom Structure DATA mode can partially achieve this, but from what i saw the directives it take arent really customizable, let alone be able to randomize between multiple NBT data on spawn.

Also it's a deprecated mode, that can fall off from vanilla at any moment.
https://minecraft.fandom.com/wiki/Structure_Block#Data

Minecraft Wiki

A structure block is used to generate structures manually. They can also be used to save and load structures, alongside structure void blocks. Structure blocks are available using the /setblock, ...

#

Also i didnt find any (easy) way to achieve this with Jigsaw blocks.

#

This (and an intuitive tool to generate the structure files for a datapack) are literally the only things left to make the datapack structure system to reach full parity with Pillar and allow for the kind of structure i was used to make for that mod.

#

Idea of a block list that could be supported by that technical block:

  • Chests
  • Shulker Boxes
  • Barrels
  • Furnaces
  • Smokers
  • Blast Furnaces
  • Spawners
  • Iron Chests (if installed)
  • CC:Tweaked turtles (if installed)
plush marsh
plush marsh
plush marsh
#

After porting my mod to more use structure blocks, I feel how bad vanilla structure system is