Mapping wiki › Actions (THEN)

⚑ WAC actions

Every action Joint Ops' WAC compiler knows: the things a script can do once its triggers are true. Generated from the game's own command table, with what each one does, whether players see it, and how sure we are.

Server only, or sent to every player?

The map's script runs on the server. Most actions change the game world on the server (kill a group, move an AI, open doors), and the normal game updates then reach players by themselves. A few actions only change what each player's own PC draws or plays (text, sounds, hiding objects, colours): the game marks those to be sent to every player. An action that changes only the screen but is not sent does nothing visible in multiplayer: that is exactly why the colour commands did nothing before the FMJ DLL (see WAC colour commands).

How to read a command card

114 actions: reset · Gkill · Gremove · Gsetaccuracy · GtoWP · kill · remove · teleport · GroupMin · GroupMax · GroupAtt · GroupSpawn · GroupHP · opendoors · closedoors · text · wave · hideSSN · unhideSSN · disableSSN · enableSSN · holdSSN · unholdSSN · setaccuracy · SSNtoWP · killSSN · removeSSN · teleSSN · SSNwave · SSNradio · SS2SSN · SSNanim · SSNMin · SSNMax · SSNAtt · SSNSpawn · SSNHP · SSNADDHP · ssn2ssn · ssnrelease · ssnface · ssnturn · ssnguard · ssnname · ssnpspd · ssncspd · ssnuse · set · add · sub · inc · dec · store · load · TOD · targetfx · ammo2tgt · fx2tgt · ammoarea · sound2tgt · flash · farflash · quake · win · lose · music · skyspeed · skyheight · fogtype · fogdist · movefog · rain · snow · overcast · Help · text# · consol · consol# · sound · forceanim · tele · fall · fov · ammorain · fxrain · lightning · face · anim · sunfade · gain · squadclear · blockfire · colorfade · sun · sky · ground · floor · ceiling · cloud · fogcolor · fog · skyfogcolor · skyfog · crash · ptext · pwave · pconsol · AddExp · dropflare · ammo2ssn · fx2ssn · ppunt · pkillpunt · psetvar

All actions, A to Z

add

Adds a value to a variable.

Tested in a match (13 Oct)works (host + players) - G160 5 -> 8.
Reliable.
Use it likeadd(V10, 5)
Takesvariable a variable: V0-V255, G0-G255, a VAR name, or a named value such as RND, value a number or a variable
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code, not tried in a match yet
NotesWhole numbers; wraps around at about 2 billion. High confidence.

AddExp

Adds experience points to a player's raw stats.

Tested in a match (13 Oct)inconclusive - Ran; experience is not in the pools and the score screen was not shown.
Not proven by this test.
Use it likeAddExp(player, 50)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), number points
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesNeeds a nonzero amount; negatives are accepted. Part of a positive award is also shared down a chain of linked occupants (half, then a quarter). It does not use score.ini. Medium confidence on what players see.

ammo2ssn

Makes an object fire one round of an ammo type from its model's fire points.

Tested in a match (13 Oct)inconclusive - ammo2ssn(60 mm mortar,49,50) at s36: tower 49 got flag 0x4000 on the host only; no muzzle flash, round or impact in the joiner shots of the tower (s42-s52).
Unproven.
Use it likeammo2ssn(ARTYRND, 3382, 1484)
Takesammo an ammo name from ammo.def, e.g. ARTYRND (the game also tries ammo_ + the name), ssn the shooter's SSN, ssn the target's SSN (does not aim the shot)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesThe third SSN is stored as the target but does NOT aim the shot: it flies where the model's fire point points. The shooter must have health above 0 and a model; shots alternate between its first two fire points. High confidence.

ammo2tgt

Fires one round of an ammo type from a teleport target marker, in the direction the marker faces.

Tested in a match (13 Oct)inconclusive - ammo2tgt(60 mm mortar,21) at s180, 13 m from the host: no launch or impact seen (s185-s193), host health unchanged (16836), no pool change. No slowdown this time.
Unproven; the 60 mm round did not cause the round-1 slowdown.
Use it likeammo2tgt(ARTYRND, 2)
Takesammo an ammo name from ammo.def, e.g. ARTYRND (the game also tries ammo_ + the name), target a teleport target marker number (the target markers placed in MED, 1-99)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesAim it with the marker's heading/pitch in MED. Nobody owns the shot. High confidence.

ammoarea

Drops one round of an ammo type at a random spot inside an area.

Tested in a match (13 Oct)works (host; players see the result) - Blackhawk 44 on the helipads in area 18 went 8000 -> 7795 health on host AND joiner. Right after this step the host slowed badly (see findings); the cause is not proven.
Works; check it is not what slowed the server.
Use it likeammoarea(ARTYRND, 12)
Takesammo an ammo name from ammo.def, e.g. ARTYRND (the game also tries ammo_ + the name), area an area: the zone ID you gave the area in MED/Nile
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesIt starts about 200-250 units above the ground (units read as metres; not checked in game). Works on an inactive area too. High confidence on the code.

ammorain

Drops one round of an ammo type at a random spot near your own player.

Tested in a match (13 Oct)inconclusive - R2: ran at s140 while the host was dead (death screen); the driver did not capture the step. Nothing to see.
Still unproven. Retest with the host alive and looking at the ground.
Use it likeammorain(ARTYRND)
Takesammo an ammo name from ammo.def, e.g. ARTYRND (the game also tries ammo_ + the name)
Sent to playersNo - server only
MultiplayerSingle player, or the host's own player on a listen server. Other players are not affected, and a dedicated server has no host player.
How sure are weTraced in the game's code
NotesWith no player (dedicated server) retail may read a null pointer (OpenNova guards it): avoid on dedicated servers. Not tested.

anim

Sets your own player's body animation state.

Tested in a match (13 Oct)inconclusive - anim(idle_prone) at s68, on foot on the tower: host camera height and framing identical before and after (s65-s84). Round 1 also saw no camera change.
Two rounds without a visible change; probably overridden by the live player stance. Not rated broken without a third-person view.
Use it likeanim(idle)
Takesanim an animation name (the game looks up anim_ + the name)
Sent to playersNo - server only
MultiplayerSingle player, or the host's own player on a listen server. Other players are not affected, and a dedicated server has no host player.
How sure are weTraced in the game's code
NotesDebug/old command. High confidence.

blockfire

Stops (1) or allows (0) your own player firing weapons of armory category N.

Tested in a match (13 Oct)inconclusive - Ran for all 10 categories; no fire input was sent, so the block could not be seen. G160 stayed 0.
Needs the driver input extension.
Use it likeblockfire(3, 1)
Takesnumber a weapon category 0-9, number 1 = block, 0 = allow
Sent to playersNo - server only
MultiplayerSingle player, or the host's own player on a listen server. Other players are not affected, and a dedicated server has no host player.
How sure are weTraced in the game's code
NotesBlocks new trigger pulls only. Lasts until changed or the next map. High confidence.

ceiling

Sets the 'ceiling' colour block, the other indoor auto-exposure colour.

Tested in a match (13 Oct)works (host only - players do not see it) - ceiling(255,255,0) added a strong yellow cast (walls salmon, rifle yellow) on the host; joiner unchanged; it stayed to the end.
Strong indoor effect, host only, and it stays.
Use it likeceiling 40 20 20
Takesred red, 0-255, green green, 0-255, blue blue, 0-255
Sent to playersNot in the normal game. Yes with the FMJ onHook DLL (server and players)
MultiplayerRetail: host only (it is not overwritten by time of day, but only the host's PC sees it). With the FMJ onHook DLL on the server and every client it is sent to all players.
How sure are weTraced in the game's code
NotesUsed by retail TAC map Misty Beach. Medium confidence on the visible effect.

closedoors

Closes every door of the buildings in a door group.

Tested in a match (13 Oct)inconclusive - closedoors(16) at s132: no crash, no change.
03TR has no door groups.
Use it likeclosedoors(7)
Takesnumber a door group number (the group number set on the building)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesBuildings only. High confidence.

cloud

Sets the colour of the flat cloud layer.

Tested in a match (13 Oct)inconclusive - cloud(255,0,0) at s68 and colorfade(4)+cloud(0,0,255) at s76: no red or blue anywhere in the host or joiner sky (shots s71-s89).
Confounded: skyheight had just removed the host cloud layer from view. Retest cloud on an unmodified sky.
Use it likecloud(200, 200, 220)
Takesred red, 0-255, green green, 0-255, blue blue, 0-255
Sent to playersNot in the normal game. Yes with the FMJ onHook DLL (server and players)
MultiplayerRetail: host only (it is not overwritten by time of day, but only the host's PC sees it). With the FMJ onHook DLL on the server and every client it is sent to all players.
How sure are weTraced in the game's code
NotesMedium-high confidence.

colorfade

Sets the fade time in seconds for the colour commands that follow it.

Tested in a match (13 Oct)inconclusive - The helper cloud() colour never became visible (see cloud), so the fade could not be seen.
Same confound as cloud.
Use it likecolorfade(5)
Takesnumber a number (or a variable)
Sent to playersNot in the normal game. Yes with the FMJ onHook DLL (server and players)
MultiplayerRetail: host only (it is not overwritten by time of day, but only the host's PC sees it). With the FMJ onHook DLL on the server and every client it is sent to all players.
How sure are weTraced in the game's code
NotesPut it BEFORE the colour commands. Proven in game with the FMJ DLL (2026-10-05). High confidence.

consol

Shows a line in every player's system message area (where triggered text appears).

Tested in a match (13 Oct)works (host + players) - "FMJTEST consol" top-left on host and joiner.
Reliable.
Use it likeconsol("TYPHOON RISING - TAKE CARE!")
Takestext text in double quotes (up to 63 characters)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesHigh confidence.

consol#

Shows text followed by a number in every player's system message area.

Tested in a match (13 Oct)works (host + players) - "FMJTEST consol# humans 2" on host and joiner.
Reliable.
Use it likeconsol#("Round:", V1)
Takestext text in double quotes (up to 63 characters), number a number (or a variable)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesHigh confidence.

crash

An old alias of skyfogcolor with a fourth number that is ignored.

Tested in a match (13 Oct)no visible effect (as documented) - No visible change; no crash.
Use skyfogcolor (with the FMJ DLL) instead.
Use it likecrash(110, 12, 12, 0)
Takesred red, 0-255, green green, 0-255, blue blue, 0-255, green ignored
Sent to playersNo - server only
MultiplayerRetail: host only and overwritten by time of day. The FMJ DLL does not change crash, so use skyfogcolor instead.
How sure are weTraced in the game's code
NotesThe fourth value is ignored. High confidence.

dec

Takes 1 from a variable.

Tested in a match (13 Oct)works (host + players) - G163 0 -> -1 (no clamp).
Reliable.
Use it likedec(V3)
Takesvariable a variable: V0-V255, G0-G255, a VAR name, or a named value such as RND
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code, not tried in a match yet
NotesCan go below 0. High confidence.

disableSSN

Disables a vehicle so it cannot be driven.

Tested in a match (13 Oct)works (host + players) - B5: AI-driven red SUV 34 went from speed 20377 to 0 and stopped in place, with flags +0x10000000, on host and joiner (s68); it stayed stopped until enableSSN at s92. B1: the flag also appeared on helo 44 on both.
Stops a moving AI vehicle for everyone. Helo 44 never tried to take off in B1 or the undisabled B4 control (event 44 never fired), so the aircraft case is still unshown.
Use it likedisablessn(4137)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesVehicles and aircraft check the flag before reading the driver. High confidence.

dropflare

Makes a vehicle or aircraft drop flares.

Tested in a match (13 Oct)inconclusive - dropflare(44) at s44 (players aboard, B2) and dropflare(1714) at s140 (empty Little Bird, B5): no flares in any host or joiner shot 4-15 s later and no new objects in pools 0/1.
Not seen twice; it may need an airborne or manned aircraft, or the flares fell between shots 3-4 s apart.
Use it likedropflare(4137)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesUses the vehicle's own flare points. Whether players see the flares in MP is not verified. High confidence on the code.

enableSSN

Lets a vehicle disabled with disableSSN be driven again.

Tested in a match (13 Oct)works (host + players) - enableSSN(34) at s92: the flag cleared and SUV 34 drove again (speed 18940, then 20291) on host and joiner.
Pairs with disableSSN.
Use it likeenablessn(4137)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesHigh confidence.

face

Sets your own player's facial expression for a while.

Tested in a match (13 Oct)no visible effect (as documented) - Nothing; no crash on host or joiner.
No-op in JO.
Use it likeface(HAPPY)
Takesface a face: NORMAL, HAPPY, SAD, SMIRK, ANGRY, SURPRISE, DISGUST, FEAR or AGGRESSIVE
Sent to playersYes - every player runs it too
MultiplayerDoes nothing useful in multiplayer or single player (see notes).
How sure are weTraced in the game's code
NotesSent to every player (each sets his own face), but there is no visible effect in Joint Operations (no face files, renderer ignores it). High confidence.

fall

Debug: lifts your own player up slightly.

Tested in a match (13 Oct)works (host; players see the result) - Host player lifted from z 3.4 m to z 471.9 m (the joiner saw 460.8 m) with the airborne flag 0x2000: about 470 m, not "slightly". The host shot shows open sky.
Deadly: a ~470 m drop. Host player only.
Use it likefall
Takesnone
Sent to playersNo - server only
MultiplayerSingle player, or the host's own player on a listen server. Other players are not affected, and a dedicated server has no host player.
How sure are weTraced in the game's code
NotesWith no player (dedicated server) retail reads a null pointer: possible crash (not tested). Amount of lift not verified.

farflash

A distant lightning flash with thunder from behind.

Tested in a match (13 Oct)inconclusive - G105 = 6 proves farflash ran on passes s93-s98. No flash in host s95 / joiner s96 or any other shot.
Needs burst screenshots.
Use it likefarflash()
Takesnone
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesHigh confidence.

flash

A lightning flash overhead with close thunder.

Tested in a match (13 Oct)inconclusive - G104 = 6 proves flash ran on 7 passes (s84-s90). No shot shows a flash: lower-scene brightness identical (95,92,78 host / 77,81,71 joiner) in every shot s84-s107, including host s89 and joiner s90.
Shots are 3-4 s apart and a flash lasts ~0.26 s; needs burst screenshots.
Use it likeflash
Takesnone
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesWolfRAT's server.wac uses it. High confidence.

floor

Sets the 'floor' colour block, one of two colours the indoor auto-exposure samples.

Tested in a match (13 Oct)works (host only - players do not see it) - floor(255,0,255) turned the whole hangar interior, the rifle and the HUD panel MAGENTA on the host at once; joiner unchanged. It stayed for the rest of the batch.
Strong indoor effect, host only in retail, and it stays: set it back to the map value.
Use it likefloor(40, 20, 20)
Takesred red, 0-255, green green, 0-255, blue blue, 0-255
Sent to playersNot in the normal game. Yes with the FMJ onHook DLL (server and players)
MultiplayerRetail: host only (it is not overwritten by time of day, but only the host's PC sees it). With the FMJ onHook DLL on the server and every client it is sent to all players.
How sure are weTraced in the game's code
NotesIts visible effect is mostly on indoor brightness; not checked in game. Medium confidence.

fog

Same as fogcolor.

Tested in a match (13 Oct)no visible effect (as documented) - No visible change.
Alias of fogcolor; needs the FMJ DLL.
Use it likefog(110, 12, 12)
Takesred red, 0-127, green green, 0-127, blue blue, 0-127
Sent to playersNot in the normal game. Yes with the FMJ onHook DLL (server and players)
MultiplayerRetail: host only, and also overwritten every tick by the map's time-of-day colours, so nobody sees it. Needs the FMJ onHook DLL (super DLL TEST9 or newer) on the server AND every client: then it is sent to all players and held over the day/night cycle (proven in game 2026-10-05).
How sure are weTraced in the game's code
NotesHalf scale 0-127. High confidence.

fogcolor

Sets the ground fog colour.

Tested in a match (13 Oct)no visible effect (as documented) - No visible change on host or joiner (fog at 1024 m, view indoors).
Retail: repainted by TOD; needs the FMJ DLL.
Use it likefogcolor(110, 12, 12)
Takesred red, 0-127, green green, 0-127, blue blue, 0-127
Sent to playersNot in the normal game. Yes with the FMJ onHook DLL (server and players)
MultiplayerRetail: host only, and also overwritten every tick by the map's time-of-day colours, so nobody sees it. Needs the FMJ onHook DLL (super DLL TEST9 or newer) on the server AND every client: then it is sent to all players and held over the day/night cycle (proven in game 2026-10-05).
How sure are weTraced in the game's code
NotesHalf scale: use 0-127 per channel (the game doubles it; 128 and above saturate). Same as fog. High confidence.

fogdist

Sets the fog (view) distance in metres.

Tested in a match (13 Oct)works (host; players see the result) - fogdist(60): host AND joiner screens went to thick grey fog inside the hangar at once.
Reliable in MP (weather update).
Use it likefogdist 200
Takesdistance a distance in metres (decimals allowed; add F for feet, e.g. 30F)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: the command runs on the host only, but the result reaches every player through the game's regular weather update.
How sure are weTraced in the game's code
NotesKept between 2 m and the game's fog limit (1024 m on a server). High confidence.

fogtype

Sets the fog type: 0 = thick exponential fog, 1 = even fog starting at the camera, 2 and 3 = even fog that starts further out (half and quarter of the way, scaled by fog density).

Tested in a match (13 Oct)inconclusive - fogdist(80)+fogtype(0) at s148, fogtype(3) at s156, fogtype(1) at s164: host frames identical within 1-2 levels across all three (joiner too).
The host view (inside helo 44) has no objects between ~5 m and 80 m, so the fog types had nothing to show on. Retest looking at objects 20-80 m away.
Use it likefogtype(3)
Takesnumber fog type 0-3
Sent to playersNo - server only
MultiplayerHost only: not sent to players and not part of the weather update, so players on other PCs do not see it.
How sure are weTraced in the game's code, not tried in a match yet
NotesHigh confidence on the code; not checked in game.

forceanim

Debug: forces every AI soldier into one animation; forceanim(0) turns it off.

Tested in a match (13 Oct)inconclusive - The host shows "force anim_idle_prone" top left from s60; the joiner does not. No AI soldier was in view, so the forced animation itself was not seen.
Debug line on the host only. Effect on AI unproven.
Use it likeforceanim(0)
Takesanim an animation name (the game looks up anim_ + the name)
Sent to playersNo - server only
MultiplayerRuns on the host, which runs all AI, so it affects AI for everyone. Debug only.
How sure are weTraced in the game's code
NotesAlso prints a 'force ...' line. High confidence.

fov

Sets your own camera's field of view in degrees; it eases there.

Tested in a match (13 Oct)broken - R2: fov(20) and fov(120) seated in 44 (B2, s68/s76) and fov(120) on foot (B3, s84): host framing (weapon, struts) identical in every shot before and after. Round 1 fov(40) on foot: same.
No effect in retail in 4 tries (20, 40, 120; seated and on foot). Do not use.
Use it likefov(40)
Takesnumber degrees
Sent to playersNo - server only
MultiplayerSingle player, or the host's own player on a listen server. Other players are not affected, and a dedicated server has no host player.
How sure are weTraced in the game's code
NotesNile's 'AI View' template fov(SSN,NUMBER) has the wrong arguments: fov takes one number and is not per-AI. High confidence.

fx2ssn

Starts a particle effect on an object.

Tested in a match (13 Oct)works (host + players) - fx2ssn(Effect_smkSigB) on tower 49 and helo 46 at s36: a smoke column on tower 49 in every joiner shot from s41, and on 46 in the host view from s44, lasting 60+ s.
Sent; each player sees the smoke in his own view.
Use it likefx2ssn(Effect_UpsTireSmk, 3345)
Takesfx a particle effect name, e.g. Effect_smkSigB, ssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesUses the object's position and facing; a new effect on the same object replaces the old one. High confidence.

fx2tgt

Starts a particle effect at a teleport target marker.

Tested in a match (13 Oct)inconclusive - fx2tgt(Effect_vehicleFireLarge,22) at s164, target ~7 m from the host: no fire or smoke in host shots s166-s182 (host looking up east through a camo net); joiner 2.5 km away.
Host camera faced away. Unproven.
Use it likefx2tgt(Effect_smkSigB, 3)
Takesfx a particle effect name, e.g. Effect_smkSigB, target a teleport target marker number (the target markers placed in MED, 1-99)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesUses the marker's facing. Starting a new one does not stop the old one. High confidence.

fxrain

Starts a particle effect at a random spot about 8 m above your own player.

Tested in a match (13 Oct)inconclusive - fxrain at s76: no smoke in host shots s79-s90 (host looking up at the tower roof) or in joiner shots of the tower.
Unproven; the host camera faced a roof.
Use it likefxrain(Effect_smkSigB)
Takesfx a particle effect name, e.g. Effect_smkSigB
Sent to playersNo - server only
MultiplayerSingle player, or the host's own player on a listen server. Other players are not affected, and a dedicated server has no host player.
How sure are weTraced in the game's code
NotesSame dedicated-server caution as ammorain. High confidence on the code.

gain

Sets the overall scene brightness tint (the exposure colour).

Tested in a match (13 Oct)works (host only - players do not see it) - set(autogain,0)+gain(255,40,40) at s116: whole host scene red in shots s116, s120, s123; joiner normal in s117, s121, s124. set(autogain,1) at s124 removed the red by s126.
Host only. Needs set(autogain,0) first; set(autogain,1) undoes it.
Use it likegain(64, 64, 64)
Takesred red, 0-255, green green, 0-255, blue blue, 0-255
Sent to playersNo - server only
MultiplayerHost only: not sent to players and not part of the weather update, so players on other PCs do not see it.
How sure are weTraced in the game's code
NotesThe automatic exposure re-targets it every frame while the named value autogain is not 0, so it likely needs set(autogain, 0) first (traced, not tested). The FMJ DLL leaves gain host-only. Medium confidence.

Gkill

Kills every member of a script group.

Tested in a match (13 Oct)works (host; players see the result) - All 8 blue AI (1829-1834, 1748, 1750) health 100 -> 0 + dead flag on host and joiner at once; players 10000/10001 untouched (150 health).
Reliable. On 03TR, killing blue group 6 (the downed crew) loses the mission (see B2).
Use it likeGkill(G_redai)
Takesgroup a script group written G_name: G_humans, G_blueplayers, G_redplayers, G_ai, G_blueai, G_redai, G_emptygroup
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesScript groups are the built-in lists (G_humans, G_blueplayers, G_redplayers, G_ai, G_blueai, G_redai), not MED group numbers (use kill for those). G_humans kills every player. Same as killSSN on each: nobody gets kill credit. High confidence.

Gremove

Removes every member of a script group from the game; players are told.

Tested in a match (13 Oct)works (host; players see the result) - Gremove(G_redai) at s92: all 64 red (team 2) soldiers vanished from pool 0 on host and joiner, and red SUVs 34/35/36/38/40 went to health 0 / team 0. Blue units, pilots and players were untouched. No "players are told" line was seen.
The removal reaches players. G_redai also hit red vehicles.
Use it likeGremove(G_blueai)
Takesgroup a script group written G_name: G_humans, G_blueplayers, G_redplayers, G_ai, G_blueai, G_redai, G_emptygroup
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesRemoving a player's body also removes his placed claymores, satchels and mines. High confidence.

ground

Sets the bounce light colour from below.

Tested in a match (13 Oct)no visible effect (as documented) - No colour change on host or joiner.
Retail: no visible effect; needs the FMJ DLL.
Use it likeground(30, 10, 10)
Takesred red, 0-255, green green, 0-255, blue blue, 0-255
Sent to playersNot in the normal game. Yes with the FMJ onHook DLL (server and players)
MultiplayerRetail: host only, and also overwritten every tick by the map's time-of-day colours, so nobody sees it. Needs the FMJ onHook DLL (super DLL TEST9 or newer) on the server AND every client: then it is sent to all players and held over the day/night cycle (proven in game 2026-10-05).
How sure are weTraced in the game's code
NotesFull scale 0-255. High confidence.

GroupAtt

Sets the attack distance of a MED group's AI soldiers.

Tested in a match (13 Oct)inconclusive - Group 7 never fired or moved (positions identical s121-s194).
No baseline.
Use it likeGroupAtt(3, 150)
Takesnumber a MED/Nile group number (the group set on placed units), not a G_ script group, distance a distance in metres (decimals allowed; add F for feet, e.g. 30F)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesSoldiers only. High confidence.

GroupHP

Sets the health of every object in a MED group.

Tested in a match (13 Oct)works (host only - players do not see it) - Birds 14, 15, 16 health 30 -> 33 on the host (above their 30 maximum); joiner stayed 30.
Host-side number like SSNHP; GroupHP can set health above the maximum.
Use it likeGroupHP(3, 200)
Takesnumber a MED/Nile group number (the group set on placed units), not a G_ script group, number health points
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesRaw health number. Does not revive the dead; only soldiers die from health set to 0 (vehicles and buildings just hold the number). High confidence.

GroupMax

Sets the maximum engagement (sight) distance of a MED group's AI soldiers.

Tested in a match (13 Oct)inconclusive - teleport(7,23) moved group 7 to target 23 (~13 m from the host) at s116 on both machines. After GroupMax(7,200) at s124 the host took no damage at all to the end (16836 from s110 to s194) and no group-7 soldier ever had the firing flag.
Either GroupMax did not undo the SSNMax(1) blinding or group 7 does not engage after a teleport. Gsetaccuracy/GroupAtt/GroupMin therefore had no baseline.
Use it likeGroupMax(3, 400)
Takesnumber a MED/Nile group number (the group set on placed units), not a G_ script group, distance a distance in metres (decimals allowed; add F for feet, e.g. 30F)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesSoldiers only. High confidence.

GroupMin

Sets the minimum engagement distance of a MED group's AI soldiers.

Tested in a match (13 Oct)inconclusive - Group 7 never fired, so a minimum distance could not stop anything.
No baseline.
Use it likeGroupMin(3, 20)
Takesnumber a MED/Nile group number (the group set on placed units), not a G_ script group, distance a distance in metres (decimals allowed; add F for feet, e.g. 30F)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesSoldiers only. High confidence.

GroupSpawn

Sets how many times each AI soldier in a MED group comes back after dying.

Tested in a match (13 Oct)works (host; players see the result) - GroupSpawn(25,100)+kill(25) at s108: 1848 dead (health 0) on host and joiner, back alive at his start point (-346.5,1306.9) by s140. Control 2066, killed at s116, never came back (body removed, absent by s151).
Works; the respawn reaches players.
Use it likeGroupSpawn(3, 100)
Takesnumber a MED/Nile group number (the group set on placed units), not a G_ script group, number respawn count (100+ = unlimited)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
Notes1-99 count down with each respawn; 100 or more never runs out; 0 = no respawn. It does not revive anyone now. High confidence.

Gsetaccuracy

Sets the aim accuracy of every AI soldier in a MED group.

Tested in a match (13 Oct)inconclusive - Group 7 never fired (see GroupMax), so aim could not change anything.
No baseline.
Use it likeGsetaccuracy(3, 80, 60)
Takesnumber a MED/Nile group number (the group set on placed units), not a G_ script group, number accuracy percent, number accuracy percent
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesEach value is a percentage (100 = no aim error). The game stores 100 minus each value (never below 0) into two aim-error settings, in reversed order; which setting is which is not verified. Soldiers only. Medium confidence on the meaning of each value.

GtoWP

Sends every AI unit in a MED group along a waypoint path, starting from the nearest point of the path.

Tested in a match (13 Oct)works (host; players see the result) - All six group 7 soldiers, standing still before, started walking north at once (5-9 m in 1.2 s, ~40 m by the next step) on host and joiner.
Reliable.
Use it likeGtoWP(4, 2)
Takesnumber a MED/Nile group number (the group set on placed units), not a G_ script group, wplist a waypoint path number
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesAI passengers are taken out of their vehicles first. High confidence.

Help

Debug: writes help.wac and events.xml (lists of every command) into the game folder.

Tested in a match (13 Oct)works (host only - players do not see it) - help.wac (5,580 bytes) and events.xml (15,868 bytes) written to C:\GAMES\JO_RM_HOST at 09:00:22 (step 7); the host screen showed "help.wac file saved / Current events.xml file saved". Nothing was written in the joiner folder.
Debug only; never ship it.
Use it likeHelp
Takesnone
Sent to playersNo - server only
MultiplayerHost only (it writes files on the host's PC). Do not ship it in a map.
How sure are weTraced in the game's code
NotesThe files are written to the game's working folder. High confidence.

hideSSN

Hides an object. Retail and TAC maps use it to make objects disappear and hideSSN/unhideSSN to swap them.

Tested in a match (13 Oct)works (host + players) - 1844 flags bit 0 set on host and joiner 1.2 s after the command.
Reliable in MP (sent to players).
Use it likehidessn(3188)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesHidden objects are also ignored by area checks, AI targeting and zone capture. High confidence.

holdSSN

Makes an AI soldier stand still (stop moving).

Tested in a match (13 Oct)works (host + players) - Patroller 1973 walked 13-15 m per 8 s step before; after holdssn it moved 0 m over steps 8 and 9, on host and joiner.
Reliable in MP.
Use it likeholdssn(1415)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesHigh confidence.

inc

Adds 1 to a variable.

Tested in a match (13 Oct)works (host + players) - G160 -2 -> -1.
Reliable.
Use it likeinc(V3)
Takesvariable a variable: V0-V255, G0-G255, a VAR name, or a named value such as RND
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code, not tried in a match yet
NotesHigh confidence.

kill

Kills every object in a MED group (soldiers, vehicles, buildings), including ones already dead.

Tested in a match (13 Oct)works (host; players see the result) - Birds 6, 7, 8: health 30 -> 0 + dead flag on host and joiner; they came back alive ~30 s later (wildlife respawn).
Reliable. Wildlife comes back after ~30 s.
Use it likekill(6)
Takesnumber a MED/Nile group number (the group set on placed units), not a G_ script group
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesGroup 0 does nothing. High confidence.

killSSN

Kills an object (health to 0 and its death event). Nobody gets kill credit.

Tested in a match (13 Oct)works (host; players see the result) - 1704 health 100 -> 0 and dead flag (bit 1) on host and joiner 1.2 s after the step; the body was removed from both pools ~30 s later.
Reliable. The body is cleaned up after ~30 s, so later ssndead/ssnexists tests on it read false.
Use it likekillssn(4125)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesDoes not add to bluekills/greenkills. High confidence.

lightning

Sets the colour of lightning flashes.

Tested in a match (13 Oct)inconclusive - lightning(255,0,0) + flash at s100, helper flashes s101-s106 (G106 = 6). No red (or any) flash in host s100/s103/s106 or joiner s101/s104/s107. (The red cast at s116-s123 is gain, not lightning.)
Needs burst screenshots.
Use it likelightning(255, 0, 0)
Takesred red, 0-255, green green, 0-255, blue blue, 0-255
Sent to playersNot in the normal game. Yes with the FMJ onHook DLL (server and players)
MultiplayerRetail: host only (it is not overwritten by time of day, but only the host's PC sees it). With the FMJ onHook DLL on the server and every client it is sent to all players.
How sure are weTraced in the game's code
NotesThere is no 'off': note the map's colour and set it back. With the FMJ DLL any value above 255 returns to the map's colour. High confidence.

load

Makes a value the current result. A bare number on its own does the same.

Tested in a match (13 Oct)works (host + players) - load(42) then store(G162): G162 0 -> 42.
Works.
Use it likeload(5)
Takesvalue a number or a variable
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code, not tried in a match yet
NotesMostly internal: extra arguments after a command quietly become loads. Medium confidence.

lose

Shows the 'team killed' line and ends the round as a loss (Red wins).

Tested in a match (13 Oct)works (host; players see the result) - lose(1) at s100: shots up to s99 normal; at s103 host and joiner show the round-end panel "Draw - No winner!" (0:0), then the scoreboard. The host shows "You have killed a teammate" (probably the STRMISC killed line).
Ends the round for everyone; shown as a draw, not a Red win.
Use it likelose(1)
Takesteam a team number (1 = Blue, 2 = Red, 0 = neutral/green)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesOnly 0 or 1 is accepted (anything else does nothing), and Red (2) always wins whichever you pass. The line comes from the Misc text keys STRMISC_KILLEDGREEN/STRMISC_KILLEDBLUE. High confidence.

movefog

Moves the fog distance to N metres over S seconds.

Tested in a match (13 Oct)works (host; players see the result) - movefog(1024, 6): host and joiner both clear again at the next shot.
Reliable in MP.
Use it likemovefog(200, 5)
Takesdistance a distance in metres (decimals allowed; add F for feet, e.g. 30F), seconds seconds
Sent to playersNo - server only
MultiplayerWorks in multiplayer: the command runs on the host only, but the result reaches every player through the game's regular weather update.
How sure are weTraced in the game's code
Notes0 seconds counts as one tick (instant). High confidence.

music

Meant to start a music entry. Does nothing in Joint Operations: the music stream it uses is never opened.

Tested in a match (13 Oct)no visible effect (as documented) - Nothing; no crash.
No-op in JO.
Use it likemusic(3)
Takesnumber a number (or a variable)
Sent to playersYes - every player runs it too
MultiplayerDoes nothing useful in multiplayer or single player (see notes).
How sure are weTraced in the game's code
NotesNo-op (it just reports success). High confidence.

opendoors

Opens every door of the buildings in a door group.

Tested in a match (13 Oct)inconclusive - opendoors(16) at s124: no crash, no pool change; G206 dooropen(16) stayed 0.
03TR has no door groups: negative only.
Use it likeopendoors(7)
Takesnumber a door group number (the group number set on the building)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesBuildings only (the BMS action also opens items). High confidence.

overcast

Fades the cloud cover (overcast) to N percent over S seconds.

Tested in a match (13 Oct)works (host; players see the result) - overcast(100,4) at s124: the sky closes to flat dark grey on host (s126, s130) and joiner (s127, s131) and stays.
Reaches players through the weather update.
Use it likeovercast(100, 40)
Takesnumber percent 0-100, seconds seconds
Sent to playersNo - server only
MultiplayerWorks in multiplayer: the command runs on the host only, but the result reaches every player through the game's regular weather update.
How sure are weTraced in the game's code, not tried in a match yet
NotesGive both numbers: a missing value takes the next word of the script. High confidence on the code.

pconsol

Shows a line in the system message area of the player PLOOP has picked only.

Tested in a match (13 Oct)works (host + players) - "FMJTEST pconsol host only" in the host system line (s48-s59); never on the joiner.
Per-player system line works.
Use it likePLOOP if onptick(25) then pconsol("Good luck") endif END
Takestext text in double quotes (up to 63 characters)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: sent only to the player picked by PLOOP (or GLOOP); outside a loop it runs on the host.
How sure are weTraced in the game's code
NotesHigh confidence.

pkillpunt

Kicks the player PLOOP has picked (as a 'kill punt'); it does not damage him.

Tested in a match (13 Oct)works (host; players see the result) - pkillpunt for slot 89 at s116: the joiner was at the main menu by s125; the host shows "WacJoin is leaving the game" and 1 player; the host was unaffected.
Kicks the picked player.
Use it likePLOOP if pisvar(10) then pkillpunt endif END
Takesnone
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesFiled under triggers (kind byte 0x01); acts when tested. Different kick reason code from ppunt. Use it inside PLOOP (it works on the player PLOOP has picked). High confidence.

ppunt

Kicks the player PLOOP has picked off the server.

Tested in a match (13 Oct)works (host; players see the result) - ppunt inside PLOOP gated on eq(player,89) at s148: the joiner was at the main menu by ~s151; the host shows "WacJoin is leaving the game" and "Number of players: 1"; the joiner left the host pool. Text# showed both 88 and 89.
Kicks exactly the picked player; the host stays.
Use it likePLOOP if pisvar(9) then ppunt endif END
Takesnone
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesThe game files it under triggers (kind byte 0x01); it acts when it is tested and reports true for a real player. Use with care. Use it inside PLOOP (it works on the player PLOOP has picked). High confidence.

psetvar

Sets flag N (0-16) on the player PLOOP has picked.

Tested in a match (13 Oct)works (host + players) - pisvar(3) (G152) went 0 -> 1 on the step-19 poll; pisvar(4) never fired.
Reliable.
Use it likePLOOP if pisvar(13) and not pisvar(14) then ptext("No such command") psetvar(14) endif END
Takesnumber a flag number 0-16
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesOnly sets a flag; a script cannot clear it. Flags clear when a player joins (new slot), not on death or team change. Numbers outside 0-16: do not use. High confidence.

ptext

Shows a line of text in the chat area of the player PLOOP has picked only.

Tested in a match (13 Oct)works (host + players) - "FMJTEST ptext joiner only" appeared in the joiner chat area only (s42-s56); the host never showed it. Text# lines for 88 and 89 on both.
Per-player text works with an eq(player, slot) gate.
Use it likePLOOP if onptick(23) then ptext("Chat commands: !ping") endif END
Takestext text in double quotes (up to 63 characters)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: sent only to the player picked by PLOOP (or GLOOP); outside a loop it runs on the host.
How sure are weTraced in the game's code
NotesOutside PLOOP it shows on the host. Up to 63 characters. High confidence.

pwave

Plays a voice .wav for the player PLOOP has picked only.

Tested in a match (13 Oct)inconclusive - Ran for the host (s76) and the joiner (s84) through the slot gate; waveready was already stuck at 2, so neither the host positive nor the joiner negative could be read.
Audio not captured.
Use it likePLOOP if onptick(5) then pwave("welcome.wav") endif END
Takesfilename a .wav file name, e.g. "alarm9.wav"
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: sent only to the player picked by PLOOP (or GLOOP); outside a loop it runs on the host.
How sure are weTraced in the game's code
NotesHigh confidence.

quake

Shakes every player's view.

Tested in a match (13 Oct)works (host + players) - quake(40) at s108: the host shot at ~s110 and the joiner shot at ~s111 are displaced as a whole frame against the shot 4 s earlier (edges doubled everywhere; joiner lower-frame difference 2.7 vs a normal 0.1-0.8), while both cameras are otherwise still.
Shakes host and joiner. Only one shot per machine fell inside the ~4 s shake.
Use it likequake 10
Takesnumber length (about 0.1 s per unit)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesLength is 6 game ticks per unit: quake(10) lasts about 1 second. Nile calls the number seconds; it is closer to tenths of a second. High confidence.

rain

Fades rain to N percent over S seconds.

Tested in a match (13 Oct)works (host; players see the result) - rain(100,4) at s132: rain streaks on host and joiner at s134-s136 (brightened crops); gone when snow replaced it at s140.
Reaches players. Faint in dark overcast light.
Use it likerain(100, 40)
Takesnumber percent 0-100, seconds seconds
Sent to playersNo - server only
MultiplayerWorks in multiplayer: the command runs on the host only, but the result reaches every player through the game's regular weather update.
How sure are weTraced in the game's code, not tried in a match yet
NotesRain and snow share one level: rain switches it to rain, snow to snow. Over 100 counts as 100. High confidence on the code.

remove

Removes every object in a MED group from the game; players are told.

Tested in a match (13 Oct)works (host; players see the result) - Birds 9-13 vanished from pool 0 on host and joiner; groupalive(14) went false within the next 5 s and stayed false.
Reliable.
Use it likeremove(6)
Takesnumber a MED/Nile group number (the group set on placed units), not a G_ script group
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesGroup 0 does nothing. Same as the BMS 'vaporize group' action. High confidence.

removeSSN

Removes an object from the game; players are told.

Tested in a match (13 Oct)works (host; players see the result) - 1703 vanished from pool 0 on host and joiner at once; SSNexists (G102) went to 2 on the same poll.
Reliable in MP.
Use it likeremovessn(3405)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesRemoving a player's body also removes his placed claymores, satchels and mines. High confidence.

reset

Re-arms a named IF: clears its 'has fired' state and timers, and those of the IFs nested inside it, so never/elapse/chain work again.

Tested in a match (13 Oct)works (host + players) - A: reset(rsta) inside an IF placed after IF [rsta] never: G221 1 -> 2. B: same with elapse(1000): G222 1 -> 2. C: top-level reset(rstc) after IF [rstc] never: G223 counted every pass, 133 by the end. D (round-1 layout, reset before its IF in the file): G224 stayed 1.
Works, but only when the reset line comes AFTER its named IF in the script; a forward reference silently resets the first IF instead (the round-1 failure).
Use it likeif ssndead(3404) and never then reset(alarm) endif
Takesifname the name of a named IF (written IF [name] ...)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesName the IF with IF [name] .... A misspelled name is not reported and resets the FIRST IF in the script instead. High confidence.

set

Sets a variable to a value.

Tested in a match (13 Oct)works (host + players) - G160 0 -> 5.
Reliable.
Use it likeset(V105, 1)
Takesvariable a variable: V0-V255, G0-G255, a VAR name, or a named value such as RND, value a number or a variable
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code, not tried in a match yet
Notesset(tod, 09:00) does not work: tod is a command, not a variable (use tod(9:00)). High confidence.

setaccuracy

Sets one AI unit's aim accuracy.

Tested in a match (13 Oct)inconclusive - After setaccuracy(1845,0,0) at s76 the damage rate from 1845 (the only shooter) fell from ~85 hp/s (s68-s77) to ~25 hp/s (s77-s83).
Strong hint that it works, but one 6-s window of random hits is not proof.
Use it likesetaccuracy(500, 90, 70)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), number accuracy percent, number accuracy percent
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesSame rules as Gsetaccuracy (percentages; the two values land in reversed order). Medium confidence on the meaning of each value.

sky

Sets the light colour from above.

Tested in a match (13 Oct)no visible effect (as documented) - No colour change on host or joiner.
Retail: no visible effect; needs the FMJ DLL.
Use it likesky(40, 220, 60)
Takesred red, 0-255, green green, 0-255, blue blue, 0-255
Sent to playersNot in the normal game. Yes with the FMJ onHook DLL (server and players)
MultiplayerRetail: host only, and also overwritten every tick by the map's time-of-day colours, so nobody sees it. Needs the FMJ onHook DLL (super DLL TEST9 or newer) on the server AND every client: then it is sent to all players and held over the day/night cycle (proven in game 2026-10-05).
How sure are weTraced in the game's code
NotesFull scale 0-255. High confidence.

skyfog

Same as skyfogcolor.

Tested in a match (13 Oct)no visible effect (as documented) - No visible change.
Needs the FMJ DLL.
Use it likeskyfog(110, 12, 12)
Takesred red, 0-127, green green, 0-127, blue blue, 0-127
Sent to playersNot in the normal game. Yes with the FMJ onHook DLL (server and players)
MultiplayerRetail: host only, and also overwritten every tick by the map's time-of-day colours, so nobody sees it. Needs the FMJ onHook DLL (super DLL TEST9 or newer) on the server AND every client: then it is sent to all players and held over the day/night cycle (proven in game 2026-10-05).
How sure are weTraced in the game's code
NotesHalf scale 0-127. High confidence.

skyfogcolor

Sets the horizon fog band colour.

Tested in a match (13 Oct)no visible effect (as documented) - No visible change.
Needs the FMJ DLL.
Use it likeskyfogcolor(110, 12, 12)
Takesred red, 0-127, green green, 0-127, blue blue, 0-127
Sent to playersNot in the normal game. Yes with the FMJ onHook DLL (server and players)
MultiplayerRetail: host only, and also overwritten every tick by the map's time-of-day colours, so nobody sees it. Needs the FMJ onHook DLL (super DLL TEST9 or newer) on the server AND every client: then it is sent to all players and held over the day/night cycle (proven in game 2026-10-05).
How sure are weTraced in the game's code
NotesHalf scale 0-127, like fogcolor. Same as skyfog. High confidence.

skyheight

Sets the sky/cloud height.

Tested in a match (13 Oct)works (host only - players do not see it) - skyheight(65536000) at s52: the host cloud texture disappeared between s51 and s54 (smooth pink gradient, no cloud detail) and stayed so; the joiner kept normal moving cloud texture throughout. skyheight(1) at s60 gave no further visible change on the host.
Host only. A huge value pushes the cloud layer out of sight. skyspeed ran 8 s earlier, so the attribution rests on the s51 -> s54 timing.
Use it likeskyheight(500)
Takesnumber a height number (scale not verified)
Sent to playersNo - server only
MultiplayerHost only: not sent to players and not part of the weather update, so players on other PCs do not see it.
How sure are weTraced in the game's code, not tried in a match yet
NotesThe raw number is stored as-is; its scale is not verified. Low-medium confidence on what you see.

skyspeed

Sets how fast the clouds scroll.

Tested in a match (13 Oct)works (host; players see the result) - Cloud pattern identical on host and joiner from s29 to s44 (before the command); after skyspeed(200) at s44 the clouds are in a different place in every shot on BOTH machines (joiner s49, s51, s55, s59, s62).
Reaches players through the weather update. At 200 the movement is obvious within 5 s.
Use it likeskyspeed(4)
Takesnumber a speed number (scale not verified)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: the command runs on the host only, but the result reaches every player through the game's regular weather update.
How sure are weTraced in the game's code, not tried in a match yet
NotesScale not verified. Medium confidence.

snow

Fades snow to N percent over S seconds.

Tested in a match (13 Oct)works (host; players see the result) - rain(0,0)+snow(100,4) at s140: snowflakes (not streaks) on host and joiner at s140-s146; gone after snow(0,0) at s148.
Reaches players.
Use it likesnow(100, 10)
Takesnumber percent 0-100, seconds seconds
Sent to playersNo - server only
MultiplayerWorks in multiplayer: the command runs on the host only, but the result reaches every player through the game's regular weather update.
How sure are weTraced in the game's code, not tried in a match yet
NotesShares the rain level (see rain). High confidence on the code.

sound

Plays a sound set at a distance and bearing from each listener.

Tested in a match (13 Oct)broken - Right after sound(SS_PSP_LOST,50,0) the joiner dropped out: all 150 objects vanished from its pools, its screenshot failed, and the host screenshot took 77 s. The host carried on. The sound-set name is a guess.
Likely crashes or drops players (host-address bug D-WAC-5). Do not use in MP.
Use it likesound(SS_THUNDER, 100, 0)
Takessoundset a sound set name (SS_ in front is optional), distance distance from the listener in metres, heading bearing (scale not verified)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesFiled under debug commands by the game but still sent to all players. Same multiplayer caution as SS2SSN. Bearing scale not verified.

sound2tgt

Plays a sound set at a teleport target marker.

Tested in a match (13 Oct)inconclusive - sound2tgt(SS_EXPLO_BASE,20) at s36: the joiner stayed connected with normal pools and shots.
A valid sound-set name is MP-safe here; audio not captured.
Use it likesound2tgt(SS_THUNDER, 3)
Takessoundset a sound set name (SS_ in front is optional), target a teleport target marker number (the target markers placed in MED, 1-99)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesSame multiplayer caution as SS2SSN (the sound is sent as a host memory address). Not verified in game.

squadclear

Clears the selected squad event values (SquadSSN, SquadWho).

Tested in a match (13 Oct)no visible effect (as documented) - Nothing; no crash.
No-op in JO.
Use it likesquadclear
Takesnone
Sent to playersNo - server only
MultiplayerDoes nothing useful in multiplayer or single player (see notes).
How sure are weTraced in the game's code
NotesHarmless; squad events never happen in Joint Operations. High confidence.

SS2SSN

Plays a sound set at an object's position.

Tested in a match (13 Oct)inconclusive - SS2SSN(SS_EXPLO_BASE,44) at s44: the joiner stayed connected, normal pools and shots.
A valid sound-set name is MP-safe here; audio not captured.
Use it likeSS2SSN(SS_THUNDER, 3403)
Takessoundset a sound set name (SS_ in front is optional), ssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesIn multiplayer the host sends the sound as an address in its own memory; whether each player hears the right sound depends on matching sound data, and the RE notes say a wrong value can crash a client. Not verified in game; test before relying on it in MP.

ssn2ssn

Orders a unit to board an object: it goes there and takes a free seat.

Tested in a match (13 Oct)works (host; players see the result) - ssn2ssn(1748,46) at s44: 1748 walked ~57 m (s55 at -519,-1069; s66 at -505,-1082) and boarded Blackhawk 46 (parent 2, flag 0x40) by s77, on host and joiner; G208 ssnride(46) 1 -> 2.
The unit walks; nothing teleports.
Use it likessn2ssn(4138, 4139)
Takesssn the unit's SSN, ssn the vehicle or seat's SSN
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesThe unit walks there; nothing is teleported. TAC maps also use ssn2ssn(player, chair) followed by ssnuse(player) inside PLOOP to seat a player at once. High confidence.

SSNADDHP

Adds health to an object (or takes it away if negative), never above its maximum or below 0.

Tested in a match (13 Oct)works (host only - players do not see it) - 1702 health 100 -> 40 on host; joiner still 100. SSNwounded (G101) went to 2 on the same poll.
Same as SSNHP: the number is host-side, the gameplay effect is real.
Use it likessnaddhp(4137, 500)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), number health points to add
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesHigh confidence.

SSNanim

Sets an AI soldier's body animation state.

Tested in a match (13 Oct)inconclusive - SSNanim(1846,idle_prone) at s156: 1846 not in the host view (camo net overhead); no anim field in the pools.
Unproven.
Use it likessnanim(1415, idle)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), anim an animation name (the game looks up anim_ + the name)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesAn unknown animation name is a compile error. Medium confidence that players see it (the state is replicated in OpenNova's port; retail wire not checked here).

SSNAtt

Sets one AI soldier's attack distance.

Tested in a match (13 Oct)inconclusive - SSNAtt(1847,1) at s100: 1847 moved ~5 m towards the host and had flag 0x4000 at s110; only -88 hp. SSNAtt(1847,300) at s108 was not captured and the damage stayed flat after it.
Meaning still unclear.
Use it likeSSNAtt(500, 150)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), distance a distance in metres (decimals allowed; add F for feet, e.g. 30F)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesHigh confidence.

ssncspd

Sets an AI vehicle's combat speed in km/h.

Tested in a match (13 Oct)inconclusive - The host was teleported onto moving red SUV 36 at s132 and was dead within ~1-3 s (health 20000 -> 0, "WacHost is dead" on both); SUV 36 kept ~20000 speed. No combat, so no combat speed.
Still untested in practice. tele onto a fast vehicle killed a 20000-hp player.
Use it likessnCspd(1323, 40)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), number speed in km/h
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesOnly vehicles with a vehicle AI. High confidence.

ssnface

Sets an object's facial expression for a while.

Tested in a match (13 Oct)no visible effect (as documented) - No change, no crash.
Documented no-op in JO; do not use.
Use it likessnface(1415, ANGRY)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), face a face: NORMAL, HAPPY, SAD, SMIRK, ANGRY, SURPRISE, DISGUST, FEAR or AGGRESSIVE
Sent to playersNo - server only
MultiplayerDoes nothing useful in multiplayer or single player (see notes).
How sure are weTraced in the game's code
NotesNo visible effect in Joint Operations: JO ships no face (.grm) files and its renderer never uses the result. High confidence.

ssnguard

Turns an AI unit's guard flag on (1) or off (0).

Tested in a match (13 Oct)works (host + players) - 21 gained flags bit 0x40 on host and joiner at once; no behaviour change could be seen. The same 0x40 bit is set on soldiers who mount gun seats, so its meaning is not certain.
A flag is set and replicated; what guard changes in behaviour is still unknown.
Use it likessnguard(1415, 1)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), number 1 = on, 0 = off
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesSame flag as the BMS GUARD AI setting; what it changes in behaviour is not described here. Medium confidence.

SSNHP

Sets an object's health.

Tested in a match (13 Oct)works (host only - players do not see it) - 1701 health 100 -> 37 on the host; the joiner copy stayed 100. The same command on SUV 38 (8000 -> 1500) did reach the joiner.
Soldier health is host-side only (players never see AI health); vehicle health replicates. The host decides damage and death, so it still works in MP.
Use it likeSSNHP(4137, 8000)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), number health points
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesDoes not revive a dead object. TAC's Kutu Tower Assault uses it to repair helipads. High confidence.

SSNMax

Sets one AI soldier's maximum engagement (sight) distance.

Tested in a match (13 Oct)works (host; players see the result) - The host at the north base lost ~145 hp/s to the reds (20000 -> 19198 by s50). After GLOOP SSNMax(item,1) at s52 his health was flat at 18378 from s55 to s66. Giving 1845 300 m back at s68 restarted the damage (~85 hp/s, s68-s77).
Stops an engagement already in progress within ~3 s. Strong evidence.
Use it likeSSNMax(500, 400)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), distance a distance in metres (decimals allowed; add F for feet, e.g. 30F)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesHigh confidence.

SSNMin

Sets one AI soldier's minimum engagement distance.

Tested in a match (13 Oct)inconclusive - SSNMin(1844,200) at s84 (host 19 m away): 1844 had the firing flag 0x4000 at s88 and damage continued (~30 hp/s). After SSNMin(1844,0) at s92 he ran to 2 m from the host and the damage stopped.
Opposite of the expectation; maybe a keep-distance setting, or the damage came from 1845 who was blinded only at s84. Unresolved.
Use it likeSSNMin(500, 20)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), distance a distance in metres (decimals allowed; add F for feet, e.g. 30F)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesWorks even on an object without an AI (does nothing then). High confidence.

ssnname

Gives an object a display name taken from the mission's text table.

Tested in a match (13 Oct)inconclusive - ssnname with real keys STRWPNAME027/029/030 on 44, 1748, 1750 at s52: no name text in any shot (s55-s70).
Name tags may need someone aiming at the unit; still unproven.
Use it likessnname(1268, alpha_1)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), texttoken a mission text KEY from the mission's text table (TT_ in front is optional)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesThe second value is a text KEY looked up in <mission>.bin (else medmssn.bin), then gametext. A key that is not found names nothing, and a quoted "name" also names nothing. Whether players other than the host see the name is not verified. High confidence on the lookup.

ssnpspd

Sets an AI vehicle's patrol speed in km/h.

Tested in a match (13 Oct)works (host; players see the result) - ssnpspd(35,5) at s76: SUV 35 slowed from ~20000 to ~1450 speed units and stayed there to the end, on host and joiner.
5 km/h shows as ~1450 in the speed field.
Use it likessnPspd(1323, 35)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), number speed in km/h
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesOnly vehicles with a vehicle AI (not foot soldiers). It takes effect on the AI's next update. High confidence.

SSNradio

Plays a .wav as a radio message from a unit: heard by the listener, with that unit as the speaker.

Tested in a match (13 Oct)inconclusive - waveready already stuck at 2; nothing measurable.
Audio not captured.
Use it likessnradio(1415, "ampr120.wav")
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), filename a .wav file name, e.g. "alarm9.wav"
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesUses the mission voice channel. High confidence.

ssnrelease

Takes a unit out of the vehicle or seat it is in and clears its boarding order.

Tested in a match (13 Oct)works (host; players see the result) - Pilot 1748 left 44 (parent 2 -> 0, off the helo) at s36; 1750 left 44 (s52) and later Little Bird 1714 (s100); the host left gun 49 (s100) and truck 29 (s124). Each time parent_slot -> 0 on host and joiner and the me* triggers went back to 1. Text# "release player 88/89" proves the gate.
Works on AI and on players. Releasing from Little Bird left 1750 standing on it (SSNride stays true).
Use it likessnrelease(player)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesHigh confidence.

SSNSpawn

Sets how many times one AI soldier comes back after dying.

Tested in a match (13 Oct)works (host; players see the result) - Helper killssn(19): health 0 + dead flag on both; 19 came back 24-32 s later (health 100, flags 0, at its start (-363.4,305.4)) on host and joiner.
Reliable; respawn takes about 25-30 s.
Use it likeSSNSpawn(500, 3)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), number respawn count (100+ = unlimited)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
Notes1-99 count down; 100 or more never runs out; it does not revive now. High confidence.

SSNtoWP

Sends one AI unit along a waypoint path, starting from the nearest point.

Tested in a match (13 Oct)works (host; players see the result) - Static soldier 1847 started walking at once (7 m in 1.2 s), reached path 22 near (-405,1378) by step 10 and stopped at (-377,1174) by step 15; joiner within ~2 m of the host.
Reliable in MP.
Use it likeSSNtoWP(1323, 4)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), wplist a waypoint path number
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesUnlike GtoWP it does not take the unit out of a vehicle first. High confidence.

ssnturn

Turns an AI soldier to face a compass heading.

Tested in a match (13 Oct)works (host; players see the result) - ssnturn(1846,90) at s60: 1846 yaw_bam 445293496 (~37 deg) -> 4 on the host and -3 on the joiner (0 = east = compass 90).
Players see the turn.
Use it likessnturn(1415, 90)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), heading a compass heading in degrees
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesOn a player it writes a different setting (a jump timer) instead, so do not use it on players. High confidence.

ssnuse

Puts a unit straight into the vehicle or seat it was ordered to board with ssn2ssn (no walking).

Tested in a match (13 Oct)works (host; players see the result) - 1750 put straight into Little Bird 1714 (32 m away) at s60: pos jumped, parent 2, flag 0x40 on host and joiner by s66. The host was seated on gun 49 (s92) and in the driver seat of truck 29 (s108; driving keyboard tip shown).
In B3 the step-1 PLOOP seat failed for the host (he stood next to 44, parent 0) while the joiner was seated; it worked in the other 7 batches.
Use it likessnuse(4138)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesDoes nothing without an earlier ssn2ssn; no search for a nearby vehicle. A unit already mounted is left alone. High confidence.

SSNwave

Plays a voice .wav from an object, heard by players within the distance.

Tested in a match (13 Oct)inconclusive - waveready already stuck at 2 from the wave step; nothing measurable.
Audio not captured.
Use it likessnwave(3403, "alarm9.wav", 50)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), filename a .wav file name, e.g. "alarm9.wav", distance how far it can be heard, in metres
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesUses the mission voice channel (a new wave cuts off the one playing). The sound follows the object. High confidence.

store

Copies the current result (the value of the last command or test) into a variable.

Tested in a match (13 Oct)works (host + players) - eq(3,3) then store(G161): G161 0 -> 1.
Works.
Use it likestore(V20)
Takesvariable a variable: V0-V255, G0-G255, a VAR name, or a named value such as RND
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code, not tried in a match yet
NotesAdvanced; most scripts use set instead. Medium confidence.

sub

Subtracts a value from a variable.

Tested in a match (13 Oct)works (host + players) - G160 8 -> -2 (goes below 0).
Reliable; no clamp at 0.
Use it likesub(V10, 5)
Takesvariable a variable: V0-V255, G0-G255, a VAR name, or a named value such as RND, value a number or a variable
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code, not tried in a match yet
NotesCan go below 0. High confidence.

sun

Sets the sun (or moon) light colour.

Tested in a match (13 Oct)no visible effect (as documented) - No colour change on host or joiner.
Retail: repainted by time of day; needs the FMJ DLL. The view was mostly indoors.
Use it likesun(255, 80, 40)
Takesred red, 0-255, green green, 0-255, blue blue, 0-255
Sent to playersNot in the normal game. Yes with the FMJ onHook DLL (server and players)
MultiplayerRetail: host only, and also overwritten every tick by the map's time-of-day colours, so nobody sees it. Needs the FMJ onHook DLL (super DLL TEST9 or newer) on the server AND every client: then it is sent to all players and held over the day/night cycle (proven in game 2026-10-05).
How sure are weTraced in the game's code
NotesFull scale 0-255. With the FMJ DLL a value above 255 returns to the map's colour. High confidence.

sunfade

Meant to dim the sun over time. Does nothing in retail: the sun-dim channel's limit is never set above 0.

Tested in a match (13 Oct)no visible effect (as documented) - Nothing; no crash.
No-op in JO.
Use it likesunfade(50, 10)
Takesnumber percent, seconds seconds
Sent to playersNo - server only
MultiplayerDoes nothing useful in multiplayer or single player (see notes).
How sure are weTraced in the game's code
NotesNo-op. High confidence.

targetfx

Starts the particle effect set on a teleport target marker, at that marker.

Tested in a match (13 Oct)inconclusive - targetfx(23) at s172: no explosion in host shots s173-s182; nothing changed in the pools.
Unproven.
Use it liketargetfx(3)
Takestarget a teleport target marker number (the target markers placed in MED, 1-99)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesThe effect name comes from the marker itself (like BMS action 27). High confidence.

tele

Debug/cheat: moves your own player to an object and sets your health to 20000.

Tested in a match (13 Oct)works (host; players see the result) - Host player moved to (-573.5,-1026.3, 8.5) at tower 49 on host and joiner; host health 150 -> 18811 (20000 minus ~1,190 damage from the fall speed he kept).
Host player only. Speed is kept, so it can hurt: with normal health he would have died.
Use it liketele(1415)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player)
Sent to playersNo - server only
MultiplayerSingle player, or the host's own player on a listen server. Other players are not affected, and a dedicated server has no host player.
How sure are weTraced in the game's code
NotesSpeed and pose are not reset. High confidence.

teleport

Teleports every member of a MED group to a teleport target marker.

Tested in a match (13 Oct)works (host; players see the result) - 1848 jumped from (-346.7,1306.6) to (-398.9,1482.5) = teleport target 21, on host and joiner; SSNarea(1848,5) went false on the same poll.
Reliable; use this instead of teleSSN.
Use it liketeleport(5, 2)
Takesnumber a MED/Nile group number (the group set on placed units), not a G_ script group, target a teleport target marker number (the target markers placed in MED, 1-99)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
NotesSame as the BMS group-teleport action. High confidence.

teleSSN

Meant to teleport an object to a teleport target marker, but in retail it does NOT move the object.

Tested in a match (13 Oct)broken - 1705 stayed exactly at (-849.7,820.2) on host and joiner.
Broken in retail, as the wiki says. Use teleport(group, target) (proven in B2 S4).
Use it liketeleSSN(1415, 2)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player), target a teleport target marker number (the target markers placed in MED, 1-99)
Sent to playersYes - every player runs it too
MultiplayerDoes nothing useful in multiplayer or single player (see notes).
How sure are weTraced in the game's code
NotesBROKEN in retail (checked in the game code): it moves the target marker onto itself and leaves the object where it is. Use teleport(group, target) or the BMS single-teleport action instead. High confidence.

text

Shows a line of text in every player's chat area.

Tested in a match (13 Oct)works (host + players) - "FMJTEST text" in the chat area on host and joiner; gone after 16-24 s.
Reliable.
Use it liketext("Map made by onedead")
Takestext text in double quotes (up to 63 characters)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesStays about 15 seconds. Up to 63 characters in the script. A bare "string" without the word text is a compile error and nothing shows (AD-Catacombs has this mistake). High confidence.

text#

Shows text followed by a number (e.g. a variable) to every player.

Tested in a match (13 Oct)works (host + players) - Two lines on both screens: "FMJTEST text# player 89" and "FMJTEST text# player 88". `player` is the pool slot (88 host, 89 joiner), NOT the SSN 10000/10001.
Works; and it shows that `player` holds the slot number, not the SSN.
Use it liketext#("Blue kills:", bluekills)
Takestext text in double quotes (up to 63 characters), number a number (or a variable)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesPrinted as the text, a space, then the number. High confidence.

TOD

Sets the time of day.

Tested in a match (13 Oct)works (host; players see the result) - TOD(12:00) at s84: dusk turned to bright noon with a blue sky on host (s88, s93) and joiner (s89, s94).
Reaches players through the weather update.
Use it liketod 19:45
Takeshour a time of day: hours (8) or hours:minutes (19:45)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: the command runs on the host only, but the result reaches every player through the game's regular weather update.
How sure are weTraced in the game's code
Notestod(8) is 08:00. The day wraps round: tod(-1:00) is 23:00. High confidence.

unhideSSN

Shows an object hidden with hideSSN.

Tested in a match (13 Oct)works (host + players) - 1844 flags bit 0 cleared on host and joiner.
Reliable in MP.
Use it likeunhidessn(3188)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesHigh confidence.

unholdSSN

Lets an AI soldier held with holdSSN move again.

Tested in a match (13 Oct)works (host + players) - 1973 moved again: 1.6 m in the first 1.2 s, then 11-15 m per step (steps 11-21) on host and joiner.
Reliable in MP.
Use it likeunholdssn(1415)
Takesssn an object's SSN (the number MED/Nile gives a placed object; players are 10000 + slot; inside PLOOP write player)
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code
NotesHigh confidence.

wave

Plays a voice .wav for every player (not positional).

Tested in a match (13 Oct)inconclusive - waveready (G220) was 1 at s50 and 2 by s60, so the host voice channel went busy after wave("command1.wav") at s52; it then stayed 2 for the remaining ~110 s.
Host playback likely; players not measurable (no audio capture). Because waveready never returned to 1, SSNwave/SSNradio/pwave could not be told apart.
Use it likewave("command1.wav")
Takesfilename a .wav file name, e.g. "alarm9.wav"
Sent to playersYes - every player runs it too
MultiplayerWorks in multiplayer: the host runs it and also sends it to every player.
How sure are weTraced in the game's code, not tried in a match yet
NotesUses the mission voice channel: a new wave cuts off the one playing. Takes one value only; a distance after it (wave(x.wav, 600) in TD-ShippingPort) is quietly ignored. Medium-high confidence.

win

Ends the round with that team winning.

Tested in a match (13 Oct)works (host; players see the result) - win(1) at s172: by s172-s174 host and joiner show the round-end panel, then the scoreboard. The panel reads "Draw - No winner!" (Joint Ops 0, Rebel 0), not a Blue win. No chat line.
Ends the round for everyone, but this co-op mission showed it as a draw.
Use it likewin(1)
Takesteam a team number (1 = Blue, 2 = Red, 0 = neutral/green)
Sent to playersNo - server only
MultiplayerWorks in multiplayer: runs on the host; players see the result through the game's normal updates.
How sure are weTraced in the game's code
Notes1 = Blue, 2 = Red, 0 = green. Only the first round end counts. No chat line is shown. High confidence.