Skip to content

Teams Bots

AntonIT99 edited this page Oct 22, 2026 · 7 revisions

Teams Bots

With Custom NPCs and the NPC Vehicles & Soldiers module installed, Teams rounds can be fought by bots alongside players: soldiers with Flan classes, squads, tanks, planes, helicopters, AA guns and ships. Bots spawn at their team's spawn points and vehicle spawners, fight for their team, take capture points and play the round's objective. Every round of the rotation keeps its own bot settings.

Bots are switched off until a round is given settings. The first /teams ai round setting given to a round switches its bots on.

The same bots can also fight outside rounds, for factions, in battles without objectives: see NPC Factions and Skirmishes.

Quick start

/teams ai round current team germany count 20
/teams ai round current team us count 20
/teams ai round current team germany names german_20th
/teams ai round current team us names american_20th

current is the round being played; a number is a round of the rotation, as /teams listRotation numbers them. Settings take effect within a second, also during a round.

Editor

Operators can set everything on this page in a screen: /teams ai editor, or /teams ai editor <round>. Its pages hold the round's own settings, each team's infantry, each team's squads and vehicles, and the squad templates. Lists are edited as one line of text: class weights as rifleman:3, mg:1, class roles as sani:medic, squads as template:count[:budget], vehicles as type:count[:budget[:respawn seconds[:ticket cost[:carried template]]]] and template members as class:count. Save round keeps the round's settings; templates are saved with their own button. Unsaved changes are marked with a * on Save round, and switching rounds or closing the editor with some asks first. Its Rules page holds difficulty, the rules below and Vehicle crews, its forces page has a box per kind of seat for the crew classes, and its Presets page saves the round's settings as a preset, applies a preset, and copies another round's settings. On saving, the editor lists anything that will not work as written: a vehicle type without an NPC model, a squad template that does not exist, or a class the team does not offer. Such entries are kept but skipped; /teams ai round <round> show lists the same warnings.

How many bots

/teams ai round <round> mode <fixed|share|fill> decides what each team's count means:

Mode count is Example
fixed (default) the exact number of bots team 1: 13, team 2: 40
share a weight; total is shared out by the weights total 90, weights 1 and 2: 30 and 60
fill the fighters the team should have, players included bots leave as players join

There is no fixed size and no limit: any total, any ratio, and different targets per team in fill mode. Large numbers cost server time; /flansnpcbenchmark measures it. Bots arrive two per tick, so a large force takes a few seconds to appear.

Classes are picked from the team's classes. By default every class is equally likely; team <team> class <class> <weight> weights them, and a class given no weight is then left out.

Squads

Bots fight in squads. Loose infantry is grouped into squads of squadsize (6 by default). Squad templates set a composition:

/teams ai template create grenadiers Panzergrenadier Group
/teams ai template members grenadiers officer:1 rifleman:6 mg:2
/teams ai template posture grenadiers assault
/teams ai round 2 team germany squad grenadiers 4

Templates are saved in config/wolffsmodnpcs/squad-templates.json, which can also be edited by hand. A class a team does not offer is replaced by one it does. Loose infantry squads worn down below half their size are merged, so the commander keeps whole squads to send. The posture (balanced, assault, defense) tells the commander how the squad prefers to be used, and a template may name its own soldier name list.

Vehicles

/teams ai round 2 team germany vehicle tiger 2
/teams ai round 2 team us vehicle sherman 5

Each entry is a vehicle type and how many of it the team fields at once. Vehicles appear at the vehicle spawners the team holds, or at its spawn points when it holds none. Planes and helicopters fly, ships keep to water, and AA guns stay where they spawned. Vehicles are loaded with the default ammunition of every gun they mount.

The full form is vehicle <type> <count> [budget] [respawn seconds] [ticket cost].

Transports and paradrops

team <team> carry <type> <template> makes a vehicle entry a transport: each time one of those vehicles spawns, it takes a squad of the template on board, heads for an objective like infantry, and puts the squad down when it gets there. A truck or a landing craft unloads it beside itself; a plane or a helicopter more than 8 blocks up drops it by parachute, using the first parachute tool of the content packs, or lets it float down when none is loaded. The squad costs a ticket per soldier and does not come back once lost: the next transport brings another. carry <type> none stops it.

Crews

vehiclecrews on gives every vehicle bot of the round a crew of its team's soldiers when it spawns, sitting in the seats of its model; it is off by default. The vehicle still drives and fires its main weapons by itself, and its gunners fire the guns of their seats. Each team chooses the class crewing each kind of seat:

/teams ai round 2 team germany crew driver tank_crewman
/teams ai round 2 team germany crew gunner any
/teams ai round 2 team germany crew passenger none

driver is the driver seat, gunner the seats with a gun and passenger the seats without one. A class name crews those seats with that class, any (the default) with a class picked by the team's class weights, and none leaves them empty. Crew members are made like the team's other soldiers, from its clone when it has one, and named from its name list. They spend no tickets, count nothing on capture points, and score their kills for their vehicle. While aboard they are shielded: enemies aiming at them aim at the vehicle instead. When the vehicle is destroyed they bail out and fight on foot until they fall or the round ends, and they are not replaced; the next vehicle of the entry brings a new crew.

Wrecks

A destroyed vehicle bot sometimes leaves a real vehicle of its type behind, with every part at 30% of its hit points and no fuel or ammunition, for players to repair and use. abandon <percent> sets the chance, 25% by default; 0 turns wrecks off.

Limited forces and tickets

Respawns are unlimited by default. Two limits can be set, alone or together:

  • Budgets, as in Heroes & Generals. team <team> budget <n> caps how many loose infantry bots the team may spawn in the whole round; a squad entry's budget caps how many squads of it are raised (a budgeted squad fights until it is wiped out and its members do not come back one by one); a vehicle entry's budget caps how many of that vehicle appear.
  • Tickets, as in the original Star Wars Battlefront. tickets <n> gives every side a pool of respawns. Each respawn of a soldier costs one ticket and each vehicle its ticket cost (1 by default). The force a round starts with costs nothing. With no tickets left, no bot comes back.

Players share their side's tickets: once the round has a ticket limit, each player respawn costs one ticket, and so does joining the side again after having fought. Taking the field when the round starts, and the first time a player joins, are free. A player whose side has no tickets left stays on the team as a spectator until the round ends. playertickets off keeps player respawns unlimited.

While a limit is set, a side that has fought and has no player in the field, no bot alive and nothing left to bring in is worn out. When only one side is left standing, it wins the round.

Rubber band

rubberband <percent> gives a side that trails on score more infantry: as much as that percent of its force when it trails by the whole score limit, less the closer it is. It is off (0) by default and never applies in Assault, whose score counts losses.

What bots do

Each side has a commander that gives every squad a task every two seconds:

  • Domination and Conquest: squads go to the capture points worth most to them: points the side does not hold, held points the enemy is taking or closing in on, and quiet held points last. Squads spread over the points rather than crowd one, and tanks lean towards attacking.
  • Assault: the attackers push the objective in play. Two thirds of the defenders hold it and the rest hold the next one.
  • Capture the Flag: a squad carrying the enemy flag takes it home; when the side's own flag is stolen, a third of the squads chase its carrier, and a dropped flag is brought back by one squad; half the others raid the enemy flag and the rest guard their own. Bots take, return and capture flags by touching them.
  • Deathmatch, Team Deathmatch and Zombies: squads hunt the nearest enemy they know of, or head for the enemy's spawn.
  • Aircraft patrol over the point most squads were sent to. AA guns hold. Ships patrol the naval marker nearest the front.

A squad keeps the objective it is heading for unless another one is clearly worth more, so squads do not turn back and forth. Soldiers spawn at the spawn points nearest their squad's task, spread over the three nearest and over free room around each.

On the way, a bot that meets an enemy fights with the tactics the NPC module gives its weapon, then carries on. Bots seek out the enemy teams' bots as they do players, and leave allied teams' bots alone. A bot that makes no headway for a few seconds tries its way round to either side, wider each time, and moves on to the next route point. Bots capture points as players do, with the round's capture weights: capture infantry <weight> and capture vehicles <weight>, 1 by default, where 0 keeps them off the points.

Class roles

Soldiers do more than fight, by what their class carries: a class with a medical tool is a medic, one with a repair tool an engineer, one with a gun that goes through 40 mm of armour or a launcher with a blast of 2 blocks or more anti-tank, and one with a deployable or belt-fed gun (automatic, 50 rounds or more) support; any other class fights as a rifleman. team <team> role <class> <rifleman|medic|engineer|support|anti_tank> sets a class's role by hand, and role <class> auto gives it back to its equipment.

  • Medics heal hurt allies, players and bots, within 16 blocks, by their tool's heal amount every two seconds.
  • Engineers repair damaged allied vehicles within 24 blocks: vehicle bots, driveables their side drives, and empty wrecks.
  • Support soldiers hand ammunition for the gun in hand to allies within 16 blocks who are short of it, a player once every 30 seconds.
  • Anti-tank soldiers turn on enemy armour they can see within 64 blocks, and look at vehicles before infantry; every other soldier looks at infantry first.

A bot walks to its duty while it has nobody to fight, then goes back to its squad.

Suppression and falling back

Flan rounds that pass close to a soldier bot suppress it, by the same near-miss rules that suppress players: it aims worse, down to half its accuracy, and once pinned down it stops advancing until the fire lets up a few seconds later. A soldier below retreat percent of its health (30 by default, 0 never) falls back to the nearest medic of its side, or to its spawn, until it has healed or 30 seconds have passed. suppression off turns suppression off.

Difficulty

difficulty <default|recruit|regular|veteran|elite> scales how well bots fight, on top of what their class's loadout or their clone gives them:

Difficulty Aim Notices enemies at Health Time between shots
default as given as given as given as given
recruit 60% 75% 80% 150%
regular 85% 90% 100% 120%
veteran 115% 115% 125% 85%
elite 135% 130% 150% 70%

Markers

Markers tell bots about a map. Stand where one belongs and place it:

/teams ai marker <map> add route
/teams ai marker <map> add garrison
Type Use
route Points within 64 blocks of each other form paths across the map. Bots take the shortest chain of them to far targets, which leads them round obstacles.
garrison Posts defenders of a nearby objective take up.
sniper Like garrison posts, taken first.
aa A position for AA guns.
naval Patrol points for ships.

remove deletes the marker nearest to you within 8 blocks, list shows them, and clear deletes all markers of a map. show draws the map's markers within 128 blocks of you for two minutes, as columns of coloured dust only you see: white route points, blue garrison posts, red sniper posts, yellow AA positions and cyan naval points.

Orders and command

Press P (Squad orders, in the controls) to order the allied squads around you, or use /teams ai order follow|hold|release and /teams ai order attack|defend <point>. Squads whose leader is within 24 blocks hear you. Hold holds the block you look at, up to 128 blocks away, or your own position. An order lasts five minutes, or until you release it, and comes before the AI's plans; a squad told to follow you drops the order when you die or leave the round. The screen keeps itself up to date while open.

Show map draws the squads you may order, the capture points in their owners' colours and you from above. Click a squad to pick it, a capture point to send the picked squad at it (to attack, or to defend a point your side holds), or anywhere else to have the squad hold that place.

Leading a squad

Lead squad in the order screen, or /teams ai squad lead, takes the lead of the squad you chose, or of the nearest allied infantry squad within 24 blocks; each squad has one leader and each player leads one squad. The squad follows you unless you order it elsewhere, and goes back to its commander while you are dead. Leave or /teams ai squad leave gives it up.

A leader can place a rally point where they stand (/teams ai rally), when no enemy is within 16 blocks. For five minutes, or until an enemy comes within 8 blocks and overruns it, the squad's fallen soldiers come back there. Spawn in the order screen, or /teams ai spawn base|squad|rally, chooses where you come back after dying: where the game type puts you, on a member of your squad with no enemy near, or at the rally point. rallypoints off turns rally points off for a round.

Waypoints and radio

Where your orders send squads, and your squad's rally point, are marked in the world with the squad, what it does there and how far away it is, seen through walls.

Bots call out on their side's radio when the side takes or loses a point, when a point it holds comes under attack, and when enemy armour closes in on one; only that side's players hear them, and each call about a point waits a minute or more before it comes again. radio off silences them.

One player per side can take its command seat, in the order screen or with /teams ai commander take. The commander can order every squad of the side, wherever it is, from the same screen. The side is told who takes and who leaves the seat. The seat frees itself when its holder leaves the side; /teams ai commander leave gives it up.

Bots in your vehicle

While you drive a vehicle, /teams ai board sends the nearest allied bots within 16 blocks into its free gunner seats. They man the seat guns against enemies the gun can see. /teams ai dismount has them get off again.

Name tags, names and the scoreboard

  • names <list> names a team's bots from a soldier name list, such as german_20th. Kill messages name bots like players: "Hans Müller killed John Smith".
  • nameplates <default|always|allies|never>: who sees bot name tags. allies (default) shows them to the bot's own side only.
  • scoreboard <individual|grouped|auto>: bots appear on the scoreboard one by one, summed up in one [AI] row per team, or (default) one by one up to 12 bots per team and summed up beyond.

Looks

Bots made plain wear their class's armour and skin, on dedicated servers as in singleplayer: each player's game puts the class skin on, on Custom NPCs' 64x32 model when it is an old 2:1 skin, and vehicle bots wear their model's texture. A skin given to a bot by hand replaces the class skin. To give a team's bots a look, stats or AI of your own, set up an NPC with the Custom NPCs tools, save it as a clone and use it: team <team> clone <tab> <name>. The bot then gets its class's equipment on top of the clone, unless team <team> keepequipment on lets it keep the weapons and armour the clone was saved with.

All settings

/teams ai round <round> show lists a round's settings.

Setting Values
enable, disable switch the round's bots on or off
mode <fixed|share|fill> how count is read
total <n> bots shared out in share mode
respawn <seconds> wait before a fallen bot comes back, 10 by default
tickets <n> respawns per side, 0 for unlimited
squadsize <n> loose infantry per squad
playertickets <on|off> whether player respawns spend the side's tickets, on by default
difficulty <default|recruit|regular|veteran|elite> how well bots fight
radio <on|off>, suppression <on|off>, rallypoints <on|off> bot radio calls, suppression, rally points; all on by default
retreat <percent> health below which a soldier falls back, 30 by default
copyfrom <round> copies another round's settings, team by team
capture <infantry|vehicles> <weight> capture weight of bots
nameplates ..., scoreboard ... see above
team <team> count <n> loose infantry
team <team> budget <n> loose infantry spawns in all, 0 for unlimited
team <team> names <list|none> soldier name list
team <team> clone <tab> <name>, clone none Custom NPCs clone bots are made from
team <team> keepequipment <on|off> whether bots keep their clone's equipment
team <team> role <class> <role|auto> a class's role
team <team> class <class> <weight> class weight
team <team> squad <template> <count> [budget], removesquad <template> squads
team <team> vehicle <type> <count> [budget] [respawn] [ticket cost], removevehicle <type> vehicles
`team carry <template none>`
vehiclecrews <on|off> whether vehicle bots spawn with a crew, off by default
team <team> crew <driver|gunner|passenger> <class|any|none> the class crewing a kind of seat
abandon <percent> chance a destroyed vehicle leaves a wreck, 25 by default
rubberband <percent> extra infantry for a trailing side, 0 by default

Presets

/teams ai preset save <name> <round> keeps a round's bot settings as a preset in config/wolffsmodnpcs/bot-presets.json; preset apply <name> <round|all> puts it on rounds, preset list and preset remove <name> manage them. A preset remembers the teams of its round: applied to a round with other teams, a team the two share keeps its force, and the others take the forces in their place in round order.

Other commands: /teams ai status shows the bots, tickets and squad tasks of the round being played; /teams ai clear removes every bot of the round, and the force is raised again while bots are enabled.

Bots belong to their round: they are removed when it ends. A server that stops during a round keeps its bots with the world: when the same round resumes, it takes them back with their names, scores and squads, and with the tickets and budgets already spent. Bots of any other round are removed.

Clone this wiki locally