This datapack is currently available for 1.20.2-1.21.10. Older versions may contain bugs and fewer features, so please read the github wiki for documentation relevant to each version.
How To Use:
Look at a spawner with a spawner in your hand to open its settings & info. Right or left click to modify values, shift right or left click to scroll through the menu.
Holding down shift allows placing spawners without pulling up the tweaking menu. Looking at a new spawner while tweaking for a full second will switch the selection. Selecting another spawner while holding sift will allow you to select mutltiple spawners to edit at once.
Bulk Editing:
Any spawner you interact with will be registered in storage and assigned an id. Spawner ids are linked to their spawnpotentials, so multiple spawners can share the same id. You can prime all registered spawners using:/trigger prime_spawners set <ticks>
This works accross dimensions.
If you want to bulk edit spawners of a specific id, modify that spawner in your world (by placing a new one in the same spot, or by using /data modify), then select it with spawner tweaker. You will be prompted on how you would like to bulk edit spawners that share the same id. Please make sure to place modified spawners on the same block, or else it will be registered as a new id.
Alternatively, drop your spawner while tweaking the spawner you wish to modify. This will always force the menu open, along with providing options to highlight spawners and transform spawners into the held spawner's id.
*Bulk-editing spawners with multiple SpawnPotentials will always choose a random SpawnPotential for each spawner's SpawnData, ignoring weights
Options & Additional Functions:
Spawner Tweaker has over 30 additional functions and options, from the ability to easily prime and highlight spawners to the ability to customize how your tweaking looks visually. All additional options and functions are available along with documentation through the in-game menu, accessible by typing:/trigger spawner_tweaker_menu
For versions older than 1.21.5, please view the wiki on the github.
Additional features will be added upon request
Spawner and Chest Randomizer:
ALWAYS MAKE BACKUPS WHEN USING RANDOMIZERS
Spawner Tweaker comes with randomizer capabilities. Randomized spawners have their potentials and SpawnData randomized, but not other aspects such as player range, delay, and count. Container (chest) randomization swaps the contents or loot tables of all registered containers. Containers register into the system just as spawners do--either passively while looking around or by running volume checks.
Before using the randomizer, make sure you first:
/trigger delete_spawner_id set <id>/trigger give_all_spawners/trigger delete_nearby_chests set <range>You may now run the chest and spawner randomizer functions./scoreboard players set $randomizer_seed spawner_tweaker x
Sets the seed for the randomizer. If unassigned, a random seed will be chosen./function spawner_tweaker:randomizer/randomize_equally
Each spawner will choose a random id with equal probability./function spawner_tweaker:randomizer/randomize_weighted
Spawners in the map will be randomized, but keep their id distribution (so if your original map has 5 skeleton and 10 zombie spawners, the randomizer will have 5 sekeleton and 10 zombie spawners total)./function spawner_tweaker:chests/randomizer/randomize
Randomizes all loot containers in the map (a loot container is any chest, barrel, or shulker that has items or a loot table)/trigger delete_nearby_chests set <range>
Cubical range centered on yourself to remove chests from the chest id system. Use this to clear out chests inside of dev rooms or ones you always want to generate in the same spot.
Known limitations:
Randomized containers that had loot tables will cause block updates. This is because mojang doesn't allow /data remove on block loot tables.
Reuse and Contact
Feel free to use, modify, and distribute. This datapack is by link2012.
Latest version at https://github.com/the-link2012/spawner_tweaker
The pack is low impact so it is fine to keep in published maps.
For bugs, feedback, and update requests please message @link2012 on discord