Genflower

Genflower

Mod

World gen & loot utils library for datapacks and mods.

Client and server LibraryUtilityWorld Generation

53 downloads
1 follower
Created4 months ago
Updated4 months ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

A small worldgen and loot utility library for mods and datapacks

What does it add?

Genflower adds two new structure processors and a loot function to help speed up the development of datapacks, allowing one to do things that weren't possible, were difficult or tedious before with vanilla's processors.

Loot Functions

Set Random Potion genflower:set_random_potion

A potion randomiser function for potions found in brewing stands and chests.

  • potions: A potion->weight map expressed in one of two ways:
    • Map of ID to Weight: {"minecraft:luck": 1}
    • Object-in-List: [{"data":"minecraft:luck","weight":1}]

The weight field is optional and defaults to 1 when using the object-in-list notation.

Example JSON file
// data/useyourname/loot_tables/chests/your_loot.json -> /pools[]
{
	"entries": [
		{
			"type": "minecraft:item",
			"functions": [
				{
					"function": "genflower:set_random_potion",
					"potions": {
						"minecraft:long_invisibility": 1,
						"minecraft:invisibility": 5
					}
				}
			],
			"name": "minecraft:potion"
		},
		{
			"type": "minecraft:item",
			"functions": [
				{
					"function": "genflower:set_random_potion",
					"potions": [
						{
							"data": "minecraft:long_invisibility",
							"weight": 1
						},
						{
							"data": "minecraft:invisibility",
							"weight": 5
						}
					]
				}
			],
			"name": "minecraft:splash_potion"
		}
	]
}

Structure Processors

Block Map genflower:block_map

A block to blocks mapping to reduce the verbosity of structure processors.

  • block_map: A block to list of blocks map used for replacing blocks.
  • probability: The likelihood of a block being replaced with a new one.
    • Scale of 0-1, defaults to 1.
Example JSON file
// data/useyourname/worldgen/processor_list/your_processor.json
{
	"processors": [
		{
			"processor_type": "genflower:block_map",
			"block_map": {
				"minecraft:cobweb": ["minecraft:air"],
				"supplementaries:ash": ["minecraft:air"]
			}
		},
		{
			"processor_type": "genflower:block_map",
			"block_map": {
				"minecraft:deepslate_bricks": [
					"minecraft:cobbled_deepslate",
					"minecraft:deepslate_brick_stairs",
					"minecraft:deepslate_brick_slab"
				],
				"minecraft:lantern": ["wilderwild:display_lantern"],
				"minecraft:deepslate_brick_stairs": [
					"minecraft:deepslate_brick_slab"
				],
				"minecraft:mangrove_stairs": [
					"minecraft:mangrove_slab",
					"minecraft:cobweb"
				],
				"minecraft:anvil": [
					"minecraft:chipped_anvil",
					"minecraft:damaged_anvil"
				]
			},
			"probability": 0.25
		}
	]
}

Loot genflower:loot

A worldgen-time loot applicator for blocks that have inventories but don't support the LootTable NBT tag.

  • loot_table: A loot table to apply to given blocks
  • blocks: An allowed list of blocks to inject loot into.
  • slots: How many slots the block normally supports.
  • probability: The likelihood of a block having the loot table applied.
    • Scale of 0-1, defaults to 1.
Example JSON file
// data/useyourname/worldgen/processor_list/your_processor.json
{
	"processors": [
		{
			"processor_type": "genflower:loot",
			"loot_table": "useyourname:chests/library_bookshelves",
			"blocks": ["minecraft:chiseled_bookshelf"],
			"slots": 6,
			"probability": 0.8
		},
		{
			"processor_type": "genflower:loot",
			"loot_table": "useyourname:chests/library_brewing_stands",
			"blocks": ["minecraft:brewing_stand"],
			"slots": 3
		}
	]
}

External resources



Project members

Ampflower

Chaotic girl that brought this thing into existence


Technical information

License
Apache-2.0
Client side
required
Server side
required
Project ID