
Vintage Story Mod DB · Vintage Story mod
Attrition
Have you ever been caving in Vintage Story and wanted some rest from the unending waves of drifters? Attrition is a mod that slows mob spawning in an area the more mobs are killed, providing a temporary respite from the relentless onslaught. How Does it Work?
Quick answer
Which Attrition release should I use?
Attrition 1.0.0 targets 1.22.2. Do not install it on the client. It must be installed on the dedicated server. No extra mods listed for this file.
Where it goes
Is Attrition required on the client, server, or both?
Do not install it on the client. It must be installed on the dedicated server.
This Vintage Story file is marked server-only.
What else does Attrition 1.0.0 need?
1.0.0. Change the file and its required mods may change too.
This file does not list any required mods. Do not add a library just because a different file uses it.
This file does not list any required or optional mods.
Before you install it
Add Attrition without breaking your instance.
Built for Attrition 1.0.0. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use 1.0.0. It targets 1.22.2; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
This file does not list any required mods. Do not add a library just because a different file uses it.
- 03
Put it on the correct side
Do not install it on the client. It must be installed on the dedicated server.
- 04
Pick the file you checked
Use the “Get this file” button beside 1.0.0. It opens that exact file at the source.
About this project
What does Attrition add?
Have you ever been caving in Vintage Story and wanted some rest from the unending waves of drifters? Attrition is a mod that slows mob spawning in an area the more mobs are killed, providing a temporary respite from the relentless onslaught.
How Does it Work?
Vintage Story's mob spawning follows in the lineage of that other block game. It constantly picks random locations in the world and tries to spawn mobs until it fills a cap. Now matter how fast or how many you kill, the spawner will always place more. Another problem with this approach is that the fewer places mobs can spawn, the more concentrated they become. If you bring a load of torches to help explore an area, the game responds by increasing the mob density in the remaining area! Attrition does a couple of things to help with this.
Mob Density Limits
The fundamental spawning limitation added by Attrition which is always active is a global density cap. This cap limits how many mobs can concentrate in one area. By default, the cap is set to roughly the typical densities seen in vanilla worlds in typical locations. The default value is 8 mobs in any 40 block sphere. More than that, and additional spawns in that area will not be allowed.
Heat
As you kill mobs in an area, Attrition injects "heat" into the area. The more mobs you kill, the more heat is generated. This is not, of course, literal heat. It's a representation of how active combat has been in the area. Your first few kills will generate very little, but as the body count rises, heat will begin rising faster and faster. The more heat a region has, the lower the density limit of the region gets, all the way to zero. If the area you are in fills to the limit, heat will be pushed to nearby "warm" areas that have not reached the limit yet, making sure your kills don't go to waste.
After some quiet time, when combat has slowed down and no more bodies are hitting the floor, the heat will begin to decay. Very slowly at first, but after a while faster until the region returns to normal.
Mobs Affected (Tracked)
The default configuration targets mobs with the "rust-creature" and "mechanical" tags in the "hostile" spawning groups that are spawned naturally in the world through random spawning. This excludes, for example locusts spawned by a nest or drifters spawned by temporal storms. It also excludes all wildlife, traders, etc. All of this is configurable, but be careful. With the wrong configuration you could accidentally block player spawns!
Web Based Visualizer
I used a web based visualizer to help me when developing this mod. It provides knobs for all of the configurable pieces and provides a top down cross section view of what the heatmap looks like and is doing. Click play to start the simulation, and click anywhere in the grid to simulate a kill at that spot. Each cell is a chunk. The number in the chunk is the heat value. The bar at the bottom is the decay delay timer, when full decay kicks in.
Player Stability, Storms, and Rifts
By default all of these bypass any heat restrictions. If you enter the rust world, be prepared for a fight no matter what!
Configuration and Tuning
This mod is compatible with Auto Config Lib. If you have it installed, all of the mods parameters will be available for you to tune.
Defaults
During this initial release I am very interested in feedback on how the defaults feel or how you prefer to tune it. I've tried to be quite conservative, so it may feel it doesn't change much or requires too much effort to build up heat.
By default the global density cap is 8 mobs in a 40 block sphere. You can change both the size of the sphere and the density limit inside it. Larger spheres will decrease the density "map resolution", extending the reach of limits imposed by the heatmap. However, you may need to tweak the cap as well.
The heatmap parameters are set so 20 kills in a single chunk are enough to max out a single chunks heat. Additional kills will help push the size of the saturated region. If kills are spread out over several chunks more will be needed as well. There is a "dissipation" mechanic that will apply heat from saturated areas to any nearby areas that already have _some_ heat but are not full. This should make expanding your "area of control" a little easier than what it took to first establish it.
The default config will begin decaying heat after a period of 10 minutes. Once decay starts, it will take an hour for it to fully clear. The decay starts off very slowly, and often one kill is enough to bring it right back to full and reset the timer.
Admin Commands
A set of admin commands are available to help track the heat system:
/attrition stats - Print out stats of the current chunk.
/attrition clear - Delete all world heatmaps resetting the system.
/attrition simkill - Simulate a kill at your current position.
/attrition report <interval OR off> - Send a report of your current locations heat to the chat windows every <interval> seconds, or turn the reporting off. Defaults to 5 seconds.
Debug Logging
There is also comprehensive debug logging to show spawn decisions and entity attributes. This can help you with tuning and let you see every spawn attempt, the heat and density at the spawn point, the spawn result, and entity metadata you can use to add or remove mobs from the heat system.
Debugging can be heavy, so it is recommended to disable it during normal play.
Performance
The performance impact of this mod should be quite minimal. Most work is done in a dedicated thread. The heat map data structure is quite small, and even with tens of active players should not cause any problems. The dedicated thread ticks 1 time every 5 seconds. You can view performance metrics in the stats admin command mentioned above. The only main thread work that is done is checking eligibility of spawns, which is only done after the games main loop has decided to actually spawn something.
Mod Compatibility
Attrition is minimally invasive and hopefully won't cause too many problems. If a mod adds new enemy varieties you may need to alter the configuration to include them by tag. You can use the debug log to see what tags they have assigned.
Contributors
Art was graciously contributed by Pine_Marten. Thank you so much!
AI Disclosure
I'll be honest, I wasn't sure I was going to include this, but I have demanded it myself from others, so I must demand it from myself. I used Claude AI extensively in the creation of this mod.
If you are concerned about "vibe coding" or slop, I've been programming for 30 years. I've fixed bugs in kernel drivers, written software 3d engines, even reverse engineered some MIPS assembler on a PS2 to give an old game analog controls. This project was my first time using AI. It is a test. I wanted to see what the tools could do, and frankly, I'm impressed. The code is MIT licensed, and you are free to judge it as you see fit.
If this is a problem for you, that's unfortunate, here is your disclosure.
Project description from Vintage Story Mod DB.
Pick your setup
Attrition releases for each Vintage Story version.
Choose the version and loader you play, then open the matching release.
Check the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
Attrition versions and loaders
1.0.0
Attrition_1.0.0.zip
21 May 2026
Looking for an older file? The official Vintage Story Mod DB project page is in Resources.