Rampant

by Veden
Improves the enemies tactics by using potential fields/pheromones allowing probing of defenses, retreats, reinforcements, counterattacking, breaching, raids, rallying death cry, and player hunting. Uses non-homing blockable biter projectiles. Adds new Enemies (disabled by default). Can completely replace the vanilla AI. Difficulty setting in mod options menu.
a month ago
0.13 - 0.16
78216
Owner: Veden
Source: veden/Rampant
Homepage: https://forums.factorio.com/viewtopic...
License: Apache License 2.0
Created: 2 years ago
Latest Version: 0.16.34 (a month ago)
Factorio version: 0.13 - 0.16
Downloaded: 78216 times

Rampant Tactics

Factorio Mod - Improves the enemies tactics by using potential fields/pheromones allowing probing of defenses, retreats, reinforcements, counterattacking, breaching, raids, rallying death cry, and player hunting. Also removes homing biter projectiles. Can completely replace the vanilla AI. Difficulty setting in mod options menu.

Forum Post

https://forums.factorio.com/viewtopic.php?f=94&t=31445

Notes

Most recent history will appear here, otherwise complete history available on github, this site has a 10,000 character limit.

0.16.26+ requires the experimental version of the game.

There will be a pause the first time and on every upgrade that Rampant loads.
This is due to indexing all the chunks that have been generated.

MP should be working
If experiencing desyncs, after an update, please do the following:
1) let me know
2) Load save with Rampant enabled
3) Save the map after Rampant has been updated
4) Load save in step 3

Configure Options not in game menu:
- Ramp up to max biter wave size

Features

  • New Enemy Factions - Neutral, Acid, Fast, Physical, Electric, Inferno, Suicide, Fire, Nuclear, Laser, Troll, Wasp, Spawner
  • Swarming - Units will smoothly slide by one another allowing for streamlined attacking
  • Difficulty Scaling - A mod option to control how quickly the ai can perform actions like making attack waves.
  • Nocturnal Mode - A mod option to force biters to only attack at night. Does not yet affect vanilla attacks. Best use with daynight extender mod
  • Recycling Biters - When large groups of biters form on the game map and aren't assigned to a unit group or near a base will be periodically removed and refunded to the ai causing attack waves proportional to the number of units removed.
  • Breaching - When biters are destroying structures nearby unit groups will come to join them
  • Frenzy squads - When a unit group gets close to a player or start combat they switch to attacking everything in there path for a set radius or until there is nothing left
  • Rabid squads - Is in a permanent frenzied state as soon as the group is formed
  • Tactical Retreats - These will take place when a unit group is in a chunk that has reached a death threshold
  • Unit Group Merging - If two squads occupy roughly the same area and are doing the same task then they will merge
  • Unit Group Forming - Any chunks with spawners in it that is covered by a pollution or player clouds will form groups based on the evolution factor
  • Probing Behavior Against Defenses - unit groups will attempt to avoid chunks that are soaked in death
  • Player Hunting - Unit groups will track the player based on there emitted pheromone cloud
  • Rallying Death Cry - When a unit is killed on a chunk that is past the retreat threshold, the unit will attempt to summon reinforcements to help them
  • Counterattacks - When the player is in combat near nests they will send reinforcements to unit groups
  • Reinforcements - Nests will send assistance to nearby nests under attack by the player
  • No Homing Projectiles - All projectiles are fired at locations and no longer track the player
  • Pathfinding - Unit groups will use potential fields to perform only single step pathfinding allowing for efficient and dynamic pathing
  • Peace mode - If something sets peace mode, Rampant will respect it
  • Ion Cannon Reaction - Firing the Ion Cannon will cause nests around the blast site to form into an attack wave and agitate all biters
  • Rocket Reaction - Firing the rocket from the rocket silo will cause the biters to form extra attack waves
  • Blockable Projectiles - Some of the biters projectiles can now be blocked by walls and trees
  • Raiding AI state - The AI will periodically send attack waves based on building proximity and not just pollution
  • Migration AI State - Where the ai looks for resources patches to setup new bases
  • Sieging AI state - Where the ai does a migration event but also builds towards the player and their base
  • Vanilla AI Replacement - The default expansion and attack waves can be completely turned off and allow Rampant to work its magic

Planned Features

  • Tunneling Biters

Version History

Version: 0.16.31
Date: 7. 19. 2018
Bugfixes:
- MAJOR BUG: fixed typo in inverted filter for processing player buildings and enemy nests, which eventually lead to all aliens going inactive due to invalid targets [https://mods.factorio.com/mod/Rampant/discussion/5b48e84e1495c8000be8f961]
- For changing start and end enemy level in relation to scaling value error [https://mods.factorio.com/mod/Rampant/discussion/5b4e37227ffb42000a2dc40d]

Version: 0.16.30
Date: 6. 7. 2018
Improvements:
- Raiding AI state nows requires an evolution of 0.04 before it can trigger
Bugfixes:
- Fixed fire biter nest size
- Fixed Acid spitter resistances to be more inline with vanilla resistances
- Fixed laser faction not having in-place evolution path from electric biters
- Fixed range of unit levels being off by one, limiting the max units to level 9 only instead of 10
- Fixed missing wasp worm drone locale entry
Tweaks:
- Increased troll units scale +0.2
- Increased troll health regeneration for units by ~3x, spawners and worms by ~7x
- Increased the lower attribute bound from 0.7 to 0.85
- Increased the base distance to evolution index ratio from (1 / 5480) to (1 / 7200)
- Increased the chance that initial base alignment picks a lower tier alignment by 0.15
- Normalized all enemy faction attributes through the defaults, should be minor unit corrections
Framework:
- Refactored new enemy modules
- Created default attributes for all unit, unit spawner, worms

Version: 0.16.29
Date: 6. 3. 2018
Tweaks:
- Increased ai state min time from 1 to 7 minutes
- Increased ai state max time from 4 to 17 minutes
- Increased ai temperament min time from 5 to 25 minutes
- Increased ai temperament max time from 15 to 32 minutes

Version: 0.16.28
Date: 6. 1. 2018
Bugfixes:
- Fixed new enemies setting units and worms to different numbers for variations or tiers causing startup crash

Version: 0.16.27
Date: 5. 23. 2018
Tweaks:
- Changed spawner faction loot drops from green to orange.
- Changed attack prototype for wasps so it doesn't show up in bonuses bullet gui
Improvements:
- Changes to player accounting to enable multi player forces in a pvp scenario.
- Check for battle_surface_1 & 2 used in pvp and store and use discovered surface index.

Version: 0.16.26
Date: 5. 19. 2018
Bugfixes:
- Fix for combination of NE and Bobs with non-standard mod settings in relation to alien artifacts.

Version: 0.16.25
Date: 5. 19. 2018
Improvements:
- Configuration options for scaling biter, spitter, worm, and nests stats by a scaler.
Optimizations:
- Switched passScore per chunk calculation to use the mutli filter query instead of individual calls for tile counts
Bugfixes:
- Changed how mod settings are set in memory to prevent missing unit crashes (https://forums.factorio.com/viewtopic.php?f=190&t=31445&start=320#p362819)
- Cleaned up NE and Bobs detection
- Fixed locale typo in deadZoneFrequency description from with to without(https://forums.factorio.com/viewtopic.php?f=190&t=31445&start=320#p363436)

Version: 0.16.24
Date: 4. 14. 2018
Tweaks:
- Reduced Inferno biters damage at levels 8+
Bugfixes:
- Removed all conditional requires in data, data-update, and data-update-final

Version: 0.16.23
Date: 3. 1. 2018
Improvements:
- Changed nuclear blast damage to scale with tiers and increased explosion count at higher tiers (https://forums.factorio.com/viewtopic.php?f=94&t=31445&start=260#p346147)
Bugfixes:
- Fix for bobs enemies and ne dumb projectiles (https://forums.factorio.com/viewtopic.php?f=94&t=31445&start=260#p345778)

Version: 0.16.22
Date: 2. 18. 2018
Features:
- AI State Migration, where the ai looks for resources patches to setup new bases
- AI State Siege, where the ai does a migration event but also builds towards the player and their base
- Default is vanilla AI is off by default now
Tweaks:
- Death pheromone persistance increased from 0.9 to 0.99
- Death pheromone per death increased from 600 to 3000
- Death Retreat threshold switched to linear interpolation between, 2.5 deaths @ 0%, 400 @ 100% evolution
- Increased player pheromone weight for squad movement from 100 to 500
- Decreased victory scent multipler from 100000 to 10000
- Increased ai max stored points from 10000 to 12500
Improvements:
- Added splitters to be detected by enemies
- Added added a recycle waypoint threshold for paths that the unit seems to be stuck in a cycle
Bugfixes:
- Nests and worms not getting counted correctly when upgrading
- Fixed getEntityOverlapping chunks returning more than it should have
Framework:
- Fixed exportaistate visualizer

Version: 0.16.21
Date: 2. 16. 2018
Improvements:
- All other robots now take damage from biter projectiles and explosions (https://mods.factorio.com/mod/Rampant/discussion/5a81bd380333a5000c939c7f)
- Removed necessary squad roll during map processing
Optimizations:
- Switched over to the nth tick functions for logic and processing

Version: 0.16.20
Date: 2. 11. 2018
Improvements:
- Removed squad movement penalty before disband
- Combat robots now take damage from biter projectiles and explosions
- Spawner biters are now put into groups after they are spawned
- Changed pheromone spread to no longer take into account water tiles
- Added enemy nests to the resource pheromone field as a negative weight
Bugfixes:
- Removed Deadzone nests and worms from the internal memory map
- Fix for unit spawner scaling based on tier (Existing saves will have spawners overlap due to scale increase)
- Removed movement from spawner egg sacks
- Fixed local of worm spawner eggs
Tweaks:
- Increased damage spawner spitters take when shooting
- Increased resource persistance from 0.9 to 0.99
- Increased base and resource dispersal from 0.3 to 0.35
- Increased resource generation range from a min of 90 to a min of 900
- Adjusted unit spawner collision and selection box
- Reduced spawner biter size
Optimizations:
- Added property garbage collection for certain chunk properties
Framework:
- Fixed visualizer selection

Version: 0.16.19
Date: 2. 09. 2018
Features:
- Blockable projectiles, most projectiles will be stop by walls and other objects
- Rocket launches now agitate biters
- Added Raiding phase where for a short period of time the ai triggers based on player base proximity for an attack wave to form
Improvements:
- Switched linear tier generation from rounding using ceiling to nearest number
- Spawner faction spitters now degrade when attacking and check buildability for units to prevent infinite biter masses when attacking
- Added a random roll to form biters during map processing to cause a more spread out squad formations
Bugfixes:
- Added check for null group (https://github.com/veden/Rampant/issues/16)
- Added check for null alignment table (https://forums.factorio.com/viewtopic.php?f=94&t=31445&start=240#p342122)
- Fix for adaptive factions only adapting one chunk of each faction instead of the whole faction
Tweaks:
- Changed Spawner baseline evolution requirement from 60 to 70%
Framework:
- Added interop function for registering unit groups from other mods for Rampant AI management

Version: 0.16.18
Date: 2. 05. 2018
Bugfixes:
- Fixed the enemy naming so the enemy tiers can be changed without losing enemies (https://forums.factorio.com/viewtopic.php?f=94&t=31445&start=240#p340944)
- Fixed bob enemies load error (https://forums.factorio.com/viewtopic.php?f=94&t=31445&start=240#p340897)

Version: 0.16.17
Date: 2. 02. 2018
Features:
- Added the Wasp faction, an enemy that throws smaller flying enemies
- Added the Spawner faction, an enemy that throws egg sack that make biters
Improvements:
- Added setting to turn off most of the friendly fire for worm and spitter splash damage
- Changed electric biters to target multiple entities with their beams at a time
- Changed electric worms to shoot a projectile that explodes into an electrical cluster
- Added settings for controlling what tier enemies start and end at
- Changed laser spitters and worms to shoot a projectile that explodes into an laser cluster
Bugfixes:
- Added laser resistance to laser worms

Version: 0.16.16
Date: 1. 31. 2018
Improvements:
- Added support for NE Buildings artifacts
- Switched biter clump scanner to chunk based search for roughly constant performance
Bugfixes:
- Potential desync fix relating to squads
- unitGroup being nil (https://mods.factorio.com/mod/Rampant/discussion/5a72832d3b14f30009910dce)
- Squads not being deallocated for chunks when group is no longer valid
- Fix for 5 tier of units resulted in only the larva class
Tweaks:
- Increased player base pheromone generation by 10 times
- Increased retreat threshold max from 10000 to 18000
- Increased the spread of player base pheromone from 0.25 to 0.30 (this is only for pathfinding)
- Increased the generation of player pheromone from 150 to 300
- Increased the death pheromone from enemys from 500 to 600
- Increased the player aggro distance from 4 chunks to just over 5 chunks
Framework:
- Changing squads on a chunk to a map instead of an array

Version: 0.16.15
Date: 1. 29. 2018
Bugfixes:
- Fixed NE and bobs integration
Tweaks:
- Increased base processing passes from every 5 to 2 seconds

Version: 0.16.14
Date: 1. 28. 2018
Bugfixes:
- Fixed inverted check for bobs and ne (https://mods.factorio.com/mod/Rampant/discussion/5a6ec83c1650e7000ee173b2)

Version: 0.16.13
Date: 1. 28. 2018
Bugfixes:
- Fixed load error for mod dependencies (https://github.com/veden/Rampant/issues/15)

Version: 0.16.12
Date: 1. 28. 2018
Bugfixes:
- Fixed an error where item could be nil (https://forums.factorio.com/viewtopic.php?f=94&t=31445&start=240#p339033)
Improvements:
- Added support for bobs and NE artifacts
- Added options to include Bobs or NE as factions

Version: 0.16.11
Date: 1. 27. 2018
Bugfixes:
- A a null check for nil'ed squad groups (https://mods.factorio.com/mod/Rampant/discussion/5a6d09cb9a95f7000b165865)
Improvements:
- Added setting options for changing tiers and variations to allow for a smaller memory footprint

Version: 0.16.10
Date: 1. 27. 2018
Bugfixes:
- Fixed missing function in surfaceTileChange call (https://mods.factorio.com/mod/Rampant/discussion/5a6cf2ff68436500096b638b)

Version: 0.16.9
Date: 1. 27. 2018
Bugfixes:
- Fixed uninitialized kamikazeThreshold
- Fixed that deadzones wouldn't expire allowing for resettling

Version: 0.16.8
Date: 1. 26. 2018
Bugfixes:
- Fixed on_tick empty interval (https://forums.factorio.com/viewtopic.php?f=94&t=31445&start=220#p338531)

Version: 0.16.7
Date: 1. 26. 2018
Improvements:
- Reduced the number of trivial smoke created to 4 from ~20
Tweaks:
- Turned off new enemies by default
- Set default number of enemy variations per tier to 1

Version: 0.16.6
Date: 1. 23. 2018
Features:
- Generated enemies for a large varity of things to battle
- Evolving bases now get stronger over time and specialize their units
- Creates areas clear of biters
Bugfixes:
- Fixed a cause where squads could get stuck on hard to pass terrain
Tweaks:
- Increased squad movement penalty before removal from 8000 to 10000

Version: 0.16.5
Date: 1. 24. 2018
Bugfixes:
- Fix from Pxanych for calculatekamikazethreshold passing table instead of a number

Version: 0.16.4
Date: 1. 23. 2018
Bugfixes:
- Fix for invalid ai max squad variable reference

Version: 0.16.3
Date: 1. 13. 2018
Bugfixes:
- Fixed creative mode tile wand robot error (https://forums.factorio.com/viewtopic.php?f=94&t=31445&start=220&hilit=rampant#p335574)
- Fix from CyaNox for build tile positions to array of tiles change in factorio 0.16.17
Improvements:
- Removed squad limit
- Squads converted from vanilla control receive immediate kamikaze roll
- Units not under a unit group, now get a kamikaze roll before being put into a retreating squad
Optimizations:
- Reworked squad regrouping to be surrounding chunks instead comparing against master list
Framework:
- Add squads to chunk map for faster location sensitive lookups

Version: 0.16.2
Date: 1. 2. 2018
Bugfixes:
- Fixed invalid function call due to a function renaming

Version: 0.16.1
Date: 1. 1. 2018
Features:
- Artillery shell impacts cause biter squads to form and prevents the single file line of retaliation
- Unit spawners now rally troops when they die
Improvements:
- Cliffs and impassable areas due to object density have been added to the pathfinder
- Terrain that is dynamically altered (landfilled, cleared of trees, cleared of cliffs) will be accounted for now
- Added artillery turret to buildings that emit pheromones
Optimizations:
- Switch scanning for cliffs, resources, and tiles to event based instead of polling
- Reduced number of table allocations when working with squads
Bugfixes:
- fixed changelog so it shows up in-game interface
- Added checks for correct surface before processing build events
Balance:
- Increased kamikaze frequency by increasing the chance to roll for Kamikaze from 70% to 100%
Framework:
- Created visualler for viewing internal Rampant ai game state

Version: 0.16.0
Changes:
- Updated info.json
Fixes:
- Fixed broken icon size prototypes
- Fixed create-smoke calls
- Fixed perimeter to radius
- Fixed smoke
- Fixed missing fire tile properties

0.15.24 -
- Feature: Swarming - by reducing the unit collision_mask to 40% of its original size the units no longer have the pathing issues that plagued large groups attacking
- Optimization: further reduced memory footprint for faster saving and loading

0.15.23 -
- Fixed: Retreat radius being centered on chunk corner instead of on the unit dying
- Fixed: Spitter flamethrower sound fx
- Moved: Item Collector into separate mod
- Balance: Adjusted spitter and worms damages, ranges, and cooldowns to be more inline with vanilla
- Optimization: Reduced memory footprint for faster saving and loading
- Framework: Reorganization of files

0.15.22 -
- Contribution - Martok88, Improvement: Added optional attack wave message per player

0.15.21 -
- Fixed: Added check for nil'ed itemCollection event (https://forums.factorio.com/viewtopic.php?f=94&t=31445&start=200#p302631)
- Fixed: Item Collector deconstruction not pulling items before destroying chest
- Fixed: Force Item Collector chest to be only minable and deconstructable piece to force contents to be moved to player
- Improvement: Switched over to on_player_mined_entity and on_robot_mined_entity instead of the pre variants

0.15.20 -
- Fixed: Added Low Resolution version of overlay, ISSUE: range of collector extends past visual display because of 2048px limit on sprites(https://forums.factorio.com/viewtopic.php?f=94&t=31445&start=180#p302128)
- Tweak: Increased item collector build time from 0.5 seconds to 10 seconds
- Improvement: Added an expensive recipe variant that doubles the cost of the item collector(https://forums.factorio.com/viewtopic.php?f=94&t=31445&start=180#p302123)

0.15.19 -
- Fixed: Error when processing item collectors

0.15.18 -
- Feature: Adds an item collector for things like alien artifacts
- Improvement: Added checks for how many squads have been created to enfore global limit over all squad creation methods
- Tweak: Increased breach multiplier from 10000 to 100000
- Fixed: Current version wasn't be set causing the upgrade code to run repeatedly
- Fixed: Neighbors function not correctly clearing its state between calls
- Optimization: Reduced number of chunks processed per cycle from 500 to 400
- Optimization: Reduced number of squads to regroup per cycle from 5 to 2
- Optimization: Reduced number of chunks to scan per cycle from 6 to 5
- Optimization: Added additional short circuits for chunk scoring

0.15.17 -
- Fixed: Remote call load issue. (https://github.com/veden/Rampant/issues/5)
- Tweak: Increased sampling threshold for water tiles from 5 to 10 tiles
- Tweak: Increased small worm turret range from 17 to 18
- Improvement: Added option to remove blood particles on biter deaths, which should help reduce lag spikes (Default is to remove)
- Optimization: Moved math.random to local level instead of global
- Framework: Refactored unit and attack prototypes