

This host-only mod allows you to change several things about the enemy spawning behavior in the game. Small warning: Editing the enemy spawning config requires you to have a basic understanding of json file syntax.
Here's a list of what's made possible by the mod:
These important files and folders will be generated in your BepInEx config folder after launching the game:
Index154.SpawnConfig.cfg => For simple global configs of the mod. Contains descriptions for each available setting. Please take a look at it!SpawnConfig:
SpawnGroups.json => Edit this file to modify the game's enemy groups and add new ones (internally called EnemySetups)SpawnGroups-Explained.json => This file has more details about the properties of the json config and how they work. Please check it out to learn more!Defaults which will always have a version of SpawnGroups.json with the "default" values inside of it. Default values in this case refers to any groups the game has loaded before this mod is loaded so those from other mods will be found here as well. This file just exists as a reference. It is not meant to be editedMake your edits in the SpawnConfig\SpawnGroups.json file. Just follow the example of the existing entries and you'll be fine. Or replace the file with one made by somebody else! After restarting the game the changes should take effect
Have fun!
Note: By default whenever you launch the game any enemy groups missing from your custom SpawnGroups config will be added back into it. This includes not only vanilla enemy setups but also those from other mods! You can disable this behavior in the global config if you want to. For heavily modified configs it's probably best to turn it off.
You need to know the internal name of an enemy in order to be able to add it to the spawnObjects list of a group in your SpawnGroups config. The names in your config need to be exact matches, otherwise it will not work!
The names of all enemies, including modded ones, should be logged to the console when you start the game. Here's a list of the vanilla enemy names with short descriptions.
Enemy - Head = Floating Head / HeadmanEnemy - Robe = Grim reaper guy with white maskEnemy - Hunter = Huntsman / Blind guy with gunEnemy - Runner = Reaper / Scarecrow with blade armsEnemy - Beamer = Clown thing with laserEnemy - Slow Walker = Trudge / Slow armored guy with maceEnemy - Animal = Weird flat thing with many legsEnemy - Bowtie = Fat white beast that blows windEnemy - Floater = Floating alien guy / MentalistEnemy - Hidden = Invisible manEnemy - Tumbler = Frog chefEnemy - Upscream = Small crawling headEnemy - Valuable Thrower = Baby / RugratEnemy - Ceiling Eye = Ceiling Eye / PeeperEnemy - Duck = DuckEnemy - Slow Mouth = Spewer / Puking fishEnemy - Thin Man = Shadow childEnemy - Bang = Exploding skullEnemy - Gnome = GnomeIf a group contains an invalid enemy name then you will see a corresponding error in the log when you launch the game. A group containing an invalid enemy name will be ignored entirely by default. You can change a setting in the global config file to make it so all invalid enemies will simply be removed from the group if you prefer. In that case the group will still be able to spawn as long as it contains at least one valid enemy.
If you're well versed with the the game then you may notice that the Gnome Director and Bang Director objects aren't included in the json configs at all. That's because I decided to filter these out automatically. The mod adds them to the groups again at runtime. This is just to make the configuration a little easier for the user.
Also check out this video for a quick and simplified overview of how enemy spawning works in REPO: https://www.youtube.com/watch?v=Yx-PW4qYEHY What isn't mentioned in this video is that everything works through groups of enemies (EnemySetups). Many of the vanilla groups just happen to be made up of only one singular enemy.
Thank you to chiseledcactus who provided a script that allows you to import, edit and export SpawnGroups.json files through a simple UI! If you're an advanced user who has Python installed then this can make editing the config a bit easier. Just paste this code into a py file and run it to open the UI: https://pastebin.com/22Gpz3Yj