Enemy Race Manager

by heyqule

Add support to have multiple races of enemies and add leveling to enemy. Enemy becomes tougher as they level based on your pollution and killing factors. This mod only enhance vanilla biters. Please visit the mod page to download the new demo race. (P-v1.4.0 / Z-v1.4.0 / T-v1.1.0)

16 days ago
3 months ago
Latest Version:
0.7.0 (16 days ago)
Factorio version:
370 times

Enemy Race Manager

This mod aim to enhanced toughness of enemies with minimal overhead by adding levels to enemies.
It also provide an easy to use LuaRemote interface to add new enemy races. Please refer to the demos below.

I hope someone with art skills can come up with some new original races.

0.7.0 Release / 1.4.0 release for races

This should be the final feature release before 1.0. It has various new features and performance improvement.
- 2 races split enable option is now an option in "Enemy Mapping Method", instead of checkbox. Please select "2 races split" before continue your save if you are using this option.
- Added one race per surface support.
- Each Space Exploration planet will have a random race.
- UI shows the race that resides on the surface.
- Added an optional stylized base builder.
- Enemy base can build much quicker in a configurable formation, instead of 1 building each time.
- Tuned base builder groups to improve overall enemy units performance.

Race Mods 1.4.0 / 1.1.0

  • Fix unit spawns function on Drone/Probe wasting cpu cycles.
  • Change various unit spawn requirements.
  • Add one or 2 weakness resistances to each race. The weakness resistance is 85, instead of 90.
  • Toss weak to acid. Zerg weak to cold and electric.
  • Terran added acid/cold damage dealer. Existing units have various buffs.

New race demo

These mods are made as educational demos. They are not on Factorio Mod Portal due to copyrighted contents.

Download the zip and move it the mod folder. Please visit the following link for folder details. https://wiki.factorio.com/index.php?title=Application_directory

The infamous zerg (1.4.0 / 2021-04-03) (It includes developer documentation, please take a look DEV-README.md)

The godly protoss (1.4.0 / 2021-04-03)

Since P and Z has ganged up to wreck your base. Your engineer have innovated some new tech to counter them.

The terran, player support units (1.1.0 / 2021-04-03)

Youtube: https://www.youtube.com/watch?v=pcrFmtvNYTU

Tips on defense: A LOT OF construction robots and repair kits. Mix all turrets. Uranium bullets are OP.


3 difficulty levels

  • Casual, max at level 5
  • Normal, max at level 10 (default, targets weapon lvl 15)
  • Advance, max at level 20 (targets weapon lvl 25)

The difficulty levels are tested against piercing bullet for gun turret. Uranium bullets melt everything.

Adjustable max attack range for extra long range attack units

  • Normal, 14, default
  • Advanced, 20, outside of gun turret range.

Enemy Unit Leveling

First 3 level is tied to force's evolution factor

  • {0.4, 0.8}

The next 15 level is tied to force's hidden evolution factors (time, pollution and kill spawner).

  • {20, 60, 100, 150, 200, 250, 300, 350, 400, 500, 600, 700, 900, 1100, 1350, 1750, 2500}
  • evolution_base_point + (evolution_factor_by_pollution + evolution_factor_by_time + evolution_factor_by_killing_spawners) * level_multiplier
  • evolution_base_point is used for specific customization, default is 0.
  • level_multiplier default to 1.

Leveling support for base game biter/spitters, Armoured Biters, Explosive Biters & Cold Biters.

New enemies can be added as new forces

Manage new race as new enemy force. Each race has its own force statistics

Tiered unit spawns

New races may have up to 3 tiers of unit-spawners and turrets. This applies to enemy base expansion.

  • 0 - 0.4 evolution factor use tier 1 spawns
  • 0.4 adds tier 2
  • 0.8 adds tier 3

Artillery-Shell damage buff

Artillery-Shell damage bonus now is part of infinite stronger-explosive upgrade.

  • Added this due to structure resistance and health increase

GUI to view each race's stats.

  • replace races on a surface

Custom enemy base autoplace

This defines how enemy bases are generated when a new chunk is charted.


  • using base game autoplace. All races are mixed.

2 races split

  • race A spawns at positive axis, race B spawns at negative axis
  • race A spawns at positive axis, nothing spawns at negative axis.
  • can be horizontally or vertically divided.
  • races can expand into each other's territory.

One race per surface/planet

  • randomly assign a race for each surface / planet.
  • It's for Space Exploration.
  • The race of a planet can be changed using replace function from UI.

Custom enemy base expansion

This defines how enemy expand into new area. In base game, each building group build one building at a time. This feature changes that they build several buildings at one time with specified formation.

  • Default
    • build one at a time
  • Command Center
    • When the unit group base builds a command center type spawner, it triggers "Build A Town" logic. Otherwise, it's default logic
  • Build A Town
    • Always use build formation option to build the base.
  • Full Expansion
    • When the first biter builds, everyone from the group will build based on "Build A Town" logic.

You can change the build formation option. For example:

  • 1 cc, 2 support spawner, 4 turrets
  • 1 cc, 4 support spawner, 5 turrets
  • and more

Partial formation is build based on cc > support > turret priority.

Mod Compatibility

Resource Spawner Overhaul

  • You have to enable "Use vanilla biter generation" in Startup tab and disable "Use RSO biter generation" in Map tab

Space Exploration

  • Supports one race per planet!
  • Randomly selects a race when a new planet/surface is created
  • Change race for the planet you are on from UI


Rampant AI

  • It works with default settings. However, its AI code only work for "enemy" force. It does not affect custom enemy forces.
  • It is NOT compatible with its custom biters at the moment. Enabling them may crash the game. I have not tested this.

Armoured Biters & Explosive Biters & Cold Biters

  • All biters, worms and spawners support leveling.
  • They join default enemy force, erm_vanilla.
  • The health setting stacks with this mod's multiplier.
  • Biters do not heal, spawner and worm do.

For more compatibility details, please visit https://github.com/heyqule/enemy_race_manager/blob/main/README.md#mod-compatibility

Known Issues

  • Defense turrets from new force attack player in peaceful mode. If you know how to fix it, please message me.

Roadmap after 1.0

Angry meters

  • send enemy to your base @ night based on how many they have been killed

Flying units attack squads

  • nuff said


Please use the "Reset to default biters" button to replace ERM enemies with default biters before you remove the mod. Otherwise, your map won't have any enemies on generated chucks as the ERM enemies are removed automatically.