Bugs Rule Everywhere Around Me (B.R.E.A.M.)


At night, bugs can hatch out of any patch of unlit dirt. Defend against attacks from all sides.

Tweaks
a month ago
1.1
292
Combat Enemies
Owner:
StephenB
Source:
https://github.com/StephenBarnes/BREAM
Homepage:
N/A
License:
MIT
Created:
4 months ago
Latest Version:
1.4.0 (a month ago)
Factorio version:
1.1
Downloaded by:
292 users

This mod spawns swarms of bugs in polluted chunks, if there's any place to put them. Bugs will come at your factory from all sides, even if there are no nests inside your pollution cloud. And if you leave big empty spaces inside your factory, it will not be your factory for very long.

With default settings, BREAM is more difficult than vanilla, but easier than vanilla deathworld. If you want to make it easier or harder, you can change the settings in the middle of a playthrough. To make it easier, you can double the "pollution consumption multiplier" setting, which will halve the size of every swarm.

The conditions for spawning are configurable, but by default:

  • There must be some amount of pollution in the chunk, which is partially consumed to create the bugs. The chance of spawning is higher in more polluted chunks.
  • They only spawn at night, presumably because they sleep all day. I don't know, I'm not a bug scientist.
  • They won't spawn close to any lamps, if the lamps are turned on. They will attack your lamps on sight.
  • They won't spawn within some distance (default 5) of any buildings, transport belts, or other entities except trees and rocks. So place your buildings closer together to be safe.
  • They won't spawn on ground paved with stone/concrete, because the bugs crawl up out of the ground. Note this condition is disabled by the default settings, because I think it makes claiming territory too easy and boring.
  • They won't spawn close to the player.
  • They won't spawn anywhere they'd be within 100 tiles of 10 other enemies, to prevent overcrowding.
  • They won't spawn on water.

This mod does not alter nest-based spawning. So you can use the usual map settings to turn off enemy nests completely, or turn off enemy expansion, and this mod will spawn bugs independently of that. I've added some settings to change the health and regen of spawners, to help balance your game.

Performance: The default settings won't have noticeable performance impact. You might get lag if you change the "chunks to spawn onto each time" setting to zero, which tries to spawn on all chunks.

Gameplay implications: You won't know where attacks will come from, so you'll have to build defenses on all sides. Destroying the nests inside your pollution cloud will no longer prevent attacks. You cannot leave large open spaces inside your factory, because bugs will spawn there. So build more densely, and shrink-wrap the factory with walls and turrets, plus some lights. If "safe" tiles are enabled, paving the factory with bricks will protect against spawns. However, paving terrain reduces how much pollution the terrain absorbs (this is a vanilla feature), so your pollution will spread further.

Since railways and rail signals are safe from bugs (if using default settings), you will generally want to build your base as a set of well-defended, walled outposts, connected with railroads. For an extra challenge, you can set power poles to "attack on sight", and then try to generate electricity locally in every outpost.

The mod's default settings haven't been well-balanced for vanilla yet - I haven't played a full game with the default settings, so I'm not sure if they're completely reasonable. If you've tried the mod and you have opinions about what settings to use, please post in discussion and I'll adjust the defaults.

Mod compatibility

  • Works well with Clockwork. I recommend turning the "darkness percentage" to 100%, "night start time" to 0.35, and "sunrise start time" to 0.65.
  • Works with Armoured Biters, Toxic Biters, Explosive Biters, and Frost Biters. Enemy spawns do not depend on terrain, so e.g. frost biters can spawn anywhere, not only on cold terrain.
  • Other mods that add new enemies probably won't crash, but their new enemies will not appear in swarms spawned by BREAM. You can try to add compatibility for them here.
  • Rampant is not compatible. Rampant adds new enemy types and new AI. For the new enemy types, I haven't added support yet, so this mod will not spawn them. The AI also might be incompatible - when testing with Rampant I saw many of the enemies spawned by BREAM just standing completely still, so that might be some kind of error.
  • Supports the lamps from Larger Lamps and Industrial Revolution 3. For other mods that add lights, they might work out of the box, or you could add compatibility here and here.

Things to fix/add

Feel free to suggest new features in the discussions tab. Pull requests are also welcome.

  • Add an option to make certain buildings prevent spawns for a larger radius. For example, IR3's forestries need open unpaved terrain for the trees to grow, so I want to prevent bugs spawning near those forestries.
  • Add an option to multiply the fuel/power costs of all lamps (including steam/burner) by a configurable number, so it's not feasible to cover your whole pollution cloud with lights.
  • The mod tries to spawn bugs in "attack mode", but sometimes they can't find anything nearby to attack, so they'll just sort of wander around, until you come close enough to aggro them. So maybe add an option to only spawn when there's something to attack nearby. Or maybe BREAM should keep track of the bugs it spawns, and convert them back into pollution if they're too lazy to attack anything.
  • Change this mod so that it can actually soak up pollution from a chunk over time. Keep track of a list of chunks where you're gradually soaking up pollution, then when you've accumulated enough pollution, use it to make one big swarm.
  • Currently this mod includes settings to make lamps, railways, etc. immune to bugs. This functionality should rather be factored out into a separate mod. That mod should also have a shortcut key to look through all entities on all surfaces and re-apply the destructibility rules, in case options are changed partway through a game.

Why would you want BREAM-style spawning?

The original intention of this mod was to change Factorio combat to be more in line with the rest of the game. Factorio is not a twin-stick shooter or a chore simulator, it's a game about logistics and automation, so combat should be about logistics and automation. Once defenses are set up, there should be no need for regular chores (like clearing out nests that have expanded too close) and no opportunity to do chores to make the logistical challenge easier (like driving out to the edges of your pollution cloud to kill nests). BREAM-style spawning solves those issues. Vanilla has some tools that solve this (like artillery turrets and spidertrons) but they only become available in the late game.

On top of the rote manual work, vanilla-style spawning is unsatisfying in several ways. It feels cheesy to fight bases by carrying around 150 turrets in your pocket. It's fun to set up thorough defences all around your base, with a belt to automatically feed ammo into turrets, but in vanilla that's a waste of time because you know what direction the enemies will come from; with BREAM, you'll no longer know. Many people like playing with high water coverage so they have reason to use mods like Cargo Ships, but with vanilla-style enemy spawning that exacerbates all these issues because the water shields you from enemies, so you can often leave whole sides of your factory undefended, or clear all bases off your starting island and be completely safe.