This is a mod for suroi that adds TF2 Engineer buildings, and weapons; as well as computer players (I'd say "AI opponents", but AI bros have ruined that term, thanks).
It's actually a Frankenstein mix of suroi v0.27.0, fixes & improvements from "nyaboom-reloaded", backported fixes from later versions of suroi, custom fixes/improvements, and a whole lot of stolen-but-translated Source SDK code.
It's also insanely unfinished and the bot stuff is honestly not really optimized so if you do 50v50 or smth, it will most likely lag.
The installation & setup instructions are the same as suroi v27, get node, pnpm, and git, clone the repo, install deps, and start the server with pnpm dev:server and client with pnpm dev:client.
I started this in February 2025, then nyaboom-reloaded started near May 2025, then I started bot stuff in July 2025, and the last time I worked on this was in December of 2025. Since suroi is (and has been) hyper dead for a while, I feel fine publishing this now.
Engi mod splits gameplay into two concepts: "map" and "gamemode". Map is the one that's already in suroi, it just controls mapgen, where you play, etc. Gamemode is moreso related to the game logic and win condition. Both are modified in config.ts.
Gamemodes:
| Name | Description |
|---|---|
ffa |
Regular suroi, no bots |
vsBotsDefense |
You spawn with a Level 3 sentry & dispenser, max gear and random guns. You have a minute to choose a spot to defend. Then, stress test bots spawn. Each bot has a Level 3 dispenser and will just aim & shoot at you endlessly. They are immune to self-damage. |
vsBotsOffense |
You spawn with max gear and random guns. In a minute, stress test bots spawn with Level 3 sentry & dispenser. They just shoot at you constantly. Gas is forcefully disabled. |
spawn5050 |
Spawns RED team in the top left quadrant of the map, BLU team in the bottom right. Everyone has level 3 gear and random guns. Uses the "valve" bots. |
full5050 |
Teams are spawned in halves rather than quadrants (RED left; BLU right), otherwise spawns everyone with level 3 gear, random guns, and full adren/consumables. Supports multiple players joining (by just replacing bots with players). Uses the "valve" bots. |
bot1v1 |
You and 1 valve bot. Both get level 3 gear and random guns. |
botFfa |
Spawns 100 valve bots. Hardcoded 80% chance to respawn on death, except in the last gas stage. |
The TFDriver plugin is needed for most of the TF-specific stuff to work, and pretty much handles anything weapon-specific (which usually means any of the gimmicks a TF weapon might have). It is pretty much required.
The RespawnPlugin just makes you have an x% chance to respawn on death.
This is just a summary of changes.md
- Alt-fire is an action, bound to right-click by default.
- The engineer's buildings are here.
- They're animated too
- "Metal" is the currency used to create & repair buildings, and can be obtained by killing players or through a Dispenser.
- The construction & destruction PDAs are bound to
5and6by default. - You need a wrench in order to build things.
- You can pick up your buildings and move them (regardless of if you have a wrench or not).
- The entire Engineer's arsenal is added, fully functional.
- Other TF2 items added for fun include:
- Flare Gun (it doesn't call airdrops)
- Disciplinary Action
- Fish
- Neon Annihilator
- Axtinguisher
- Cow Mangler 5000
- Ullapool Caber
- Crusader's Crossbow
- Grenade Launcher (yes the pills are physics-active)
- Rocket Launcher
- Dragon's Fury
- Engineer crates drop an Engineer primary, secondary, and melee.
- TF crates drop random TF2-related items
- Some of the guns and most of the melees have no sound cause sound design is hard
- Crits, minicrits, bleed, and fire all exist
The valve bots are pretty much just a translation of Valve's NextBot system used in their Source games. Code related to low-level systems like the nav mesh and behavior/action systems are more or less translated from Source SDK, with occasional ajustements/optimizations.
The bots "work" but have a lots of particularities, some of them by Valve's design, most of them because I never got around to doing it:
- They do not understand the concept of an explosive.
- They treat barrels (and stoves, etc) etc pretty much as regular obstacles; they will neither attempt to blow them up offensively, nor will they avoid pathing close to them.
- They will never use grenades, and will completely ignore grenades thrown at them. Yes, this includes smokes. They have smoke hacks.
- They will not abuse the splash damage of explosive weapons, and will not adjust their playstyle to take splash damage into account when facing an explosive-wielding opponent.
- The "difficulties" mostly just affect their mechanical skill. Apart from the lowest setting, the different difficulties don't really affect their gamesense or intelligence; it just makes them react faster and be better at melee'ing you.
- They are single-target and cannot comprehend fights against more than one person (they can decide to shoot different people, but aren't able to comprehend e.g. "this is a 2v1, but this guy is weaker so i'll focus him first")
- They do not understand the concept of "team play", they just see "people i need to shoot" and "people i don't need to shoot".
- This also means no reviving people.
- They assume that slot 1 is their primary and slot 2 is their secondary, and will use the weapons as such. They will take the guns as given and will not switch them around.
- They will never even touch their loot key. No picking up better guns, no picking up spare ammo/consumables, and definitely no looting crates/buildings.
- Most of the TF2 weapons gimmicks go completely over their head, and they'll just use the weapons as if they had no gimmick, to mixed results.
- Sometimes they get stuck. Don't think there's ever been a computer player system that doesn't get stuck on random props or world geometry.
- They don't work with the layer system. The navigation mesh is solely generated for the ground layer, and they'll treat all other layers as if the layer was 0.
- They (ironically) don't integrate with Engi buildings. They will target enemy buildings, but won't employ any special tactics for taking out e.g. Sentry Guns. They will hide behind friendly buildings for cover, but won't seek out Dispensers for healing. They will also never build of their own accord, and will ignore any building they might have (other than using it as cover)
Things they can do:
- Pathfind dynamically; they can adjust their route based on water, and react to obstacles/doors/etc being destroyed (or appearing).
- They are also able to choose to break an obstacle if they judge it's faster to do so than to go around.
- They can roughly choose which weapon is best for a given range.
- They can decide to melee you, and decide to back out of a melee lock.
- They will noslow at pretty much every difficulty.
- They can calculate whether it's worth noslowing based on how low you are, their weapon's DPS with/without noslow, etc.
- Yes, they cheat and see through smokes and buildings roofs.
- Yes, they cheat and know your health, adrenaline, weapons, and weapon states at all times.
- They avoid the gas, and if they have no target, will just default to wandering around.
- They can decide to aggress or fallback, and can decide when/how to heal based on how far their target is, how much damage was dealt, etc.
- They can keep opposition around singular obstacles or groups of obstacles.
Mostly nyaboom-reloaded fixes, but just general base-game stuff
- Game is fully ESM and uses tsx
- Shotguns that have jitter have consistent patterning
- Debug menu
- Some polygon hitbox & melee raycasting stuffs
- Particles can have an update callback
- Death markers clear themselves after a while
- Loot uses its own grid for collisions (from Leia)
- A dozen new events for plugins to listen to
- The client now also has & uses a grid, improving performance for stuff like melee
Stuff that was backported from future suroi versions
- Trees fading as you approach them
- Walls rendered with PIXI