Home › Modding Info › Standard hacks
Chapter 12

Standard hacks

The documented rules a profile may switch on, each with its key, values and the behaviour it came from. Simulation hacks must agree between players.

The 91 documented rules a profile may turn on, grouped by the part of the game they touch. A sim hack changes the match for every player and must agree between players; a view hack changes only what one player sees. Each title opens the rule's page in the engine docs, which gives the profile key, its values and the behaviour it came from.

Interfaceui · 22

Allied Unit Displayviewui.allied-unit-displayUnits of players who ally the viewer show on the minimap as the viewer's own do, and the unit panel
Audioviewui.audioMusic can come from a folder of MP3 files instead of the game disc's
Build Previewviewui.build-previewWhile the player places a building, it is drawn at its site as a
Build Toolsviewui.build-toolsIn build mode, holding the autoclick key lets the player lay a line of
Camera Sharingviewui.camera-sharingThe minimap draws a rectangle for each allied player who shares their
Click Snapviewui.click-snapA build click with a metal extractor moves to the nearest metal spot,
Display Modesviewui.display-modesThe options screen offers only display modes of at least 768 rows and the
Effects Tweaksviewui.effects-tweaksA weapon with endsmoke=1 shows its explosion as well as its smoke puff
End-of-Game Statisticsviewui.endgame-statsThe end-of-game statistics list players who dropped out of the game or
Explosion Flashviewui.explosion-flashSets the level a mod designs its explosions' flashes at: full, as 3.1c
External Exportsviewui.external-exportsLets a profile ask for two outside integrations: a live export of unit state for external viewers, and an export of the battle room's game state for outside lobbies. Neither changes anything a player sees or plays; 3.1c publishes neither.
Interface Fixesviewui.interface-fixesCorrects a set of small display faults in the 3.1c interface: range circles, the top panel's art, the cursor over air bases and after a unit dies, how unfinished mobile units are drawn, and one misspelled caption. The profile picks the fixes it wants from a list.
Map Features Always Drawnviewui.map-features-ignore-losDraws the features a map places, such as rocks and trees, even where the viewer has no line of sight, instead of hiding them under the fog as 3.1c does for features that hide under the gray fog.
Megamapviewui.megamapAdds a full-screen strategic map: Tab or the mouse wheel replaces the battlefield with the whole map, drawn with its indestructible features, unit category icons and sensor rings, and the player can select units and give orders on it. It can also redraw the minimap at a finer quality. 3.1c has only the minimap. The hack acts only while the player's Mouse wheel zoom setting is off: with the setting on, as it is by default, the wheel's zoom takes the megamap's place.
Options Dialogviewui.options-dialogAdds an in-game options dialog on Ctrl+F2 where the player sets the keys, builder behaviour, snap radii and display switches that the other display hacks use, and a chat macro sent with F11. 3.1c has neither.
Resource Panelviewui.resource-panelAdds a floating panel that lists allied players' stored resources, storage bars and incomes (every player's, for a watcher), and the wind, the tidal strength and the game time in the top bar, or on a window 1024 pixels wide or narrower at the battlefield's top left. A watcher can also switch to a player's view from the panel and follow that player's camera. 3.1c shows only the player's own resources.
Selection Shortcutsviewui.selection-shortcutsAdds selection shortcuts: a double-click selects every on-screen unit of the selected types, Ctrl+S, Ctrl+B and Ctrl+F select mobile combat units or cycle idle builders and factories, W, B and Y filter a drag box, and Ctrl with Shift steps a build queue by 100. 3.1c has none of these.
Share Dialog and Lobby Buttonsviewui.share-dialog-and-lobby-buttonsExtends the in-game share dialog with switches for sharing metal and energy, shooting at all and screen shake, a ready button and sliders for the share thresholds, each giving the game's own console commands; and adds host buttons to the battle room. 3.1c's dialog has none of these.
Text Renderingviewui.text-renderingGame text can travel and be read as UTF-8, so chat in any language reaches
Unit Voice Fixesviewui.unit-voice-fixesUnits speak at better moments: a builder reclaiming a feature says "working" once instead of at every reclaim step, an aircraft reclaiming a unit speaks when it starts reclaiming instead of as it sets off, and a landing that finds no free pad may use a voice other than "cannot comply".
Veterancy Labelviewui.veterancy-labelThe unit panel labels a veteran unit's kill line with its veterancy level, "Vet1", "Vet2" and so on, from level 1 on. 3.1c shows "Veteran" from five kills on.
Whiteboardviewui.whiteboardAllies can draw lines, dots and text markers on the battlefield to plan together. Markers another player places are echoed to the chat, and a key moves the view to the newest one. 3.1c has no whiteboard.

Weaponsweapons · 4

High-Arc Ballisticssimweapons.high-arc-ballisticA ballistic weapon that cannot reach its target on a flat arc lobs its shot on a high arc (above 45°) instead. In 3.1c such a target is out of reach and the weapon does not fire.
Retarget Out of Rangesimweapons.retarget-out-of-rangeA weapon whose target has moved out of range drops it and picks a target it can reach. In 3.1c the weapon keeps an out-of-range target for as long as it lives (target locking).
Timed Shell Detonationsimweapons.timed-shell-detonationA ballistic shell whose weapontimer runs out explodes, unless its weapon has noautorange=1. In 3.1c it explodes only when the weapon has burnblow=1 and otherwise goes out in a small puff without damage.
Vertical Launch Before Turretsimweapons.vlaunch-before-turretA weapon with both vlaunch=1 and turret=1 fires as a vertical launcher, straight up, instead of as a turret along its aim. It is still aimed as a turret.

Sharingsharing · 3

Take and Give Commandssimsharing.recorder-take-giveAdds chat commands with which a player lets named players take over their units: .give <names>
Structure Gift Rate Limitsimsharing.structure-gift-rate-limitStructures given away through the share panel go across at once only while few structures went
Take Waits for Commander Deathssimsharing.take-requires-live-commanderA .take or .takecmd chat line is held back while another player's commander lies destroyed but

Intelligenceintel · 2

Ignore Allied Jammerssimintel.allied-jammers-ignoredRadar and sonar jammers of players you ally no longer hide units from your own radar picture. A watching player sees no jamming at all.
Allied Line of Sightsimintel.allied-los-sharingAllies share vision. When a player allies you, you see what that player's units see, get their radar and sonar coverage, and see their units even when cloaked or out of your own sight, without any shared-radar setting.

Veterancyveterancy · 1

Veterancy Modelsimveterancy.modelSets how a unit's kills become veterancy levels and what each level does. With the hack on, levels come from kill thresholds that each unit type can set, and the bonuses to damage, armour, reload, aim lead, accuracy and capture time follow the parameters instead of 3.1c's fixed rules (a level per 5 kills, at most 5 levels).

Computer playersai · 11

Attack Wave Sizesimai.attack-wave-sizeThe computer player's land and naval attack groups gather until they hold N units (default 10) before they set off. In 3.1c they set off at six. Once attacking, a group keeps attacking while it has more than three units, as in 3.1c.
Commander Builder Limitsimai.builder-withhold-thresholdA computer player's commander keeps building until the player owns N build-capable units (default 10). In 3.1c it stops taking build jobs once the player owns five, and leaves building to the other builders.
Commander Keeps Orders When Hitsimai.commander-keeps-orders-when-damagedA computer player's commander keeps its orders when it is hit. In 3.1c, damage to it clears all its orders and stops it taking build jobs for a short while.
Difficulty Namessimai.difficulty-namesThe three difficulties carry different names. By default Easy and Hard swap places: the game's first difficulty, which 3.1c calls Easy, is called Hard, and the third is called Easy. Every menu label, the computer player's plan selection, its report and the campaign mission's schema choice follow the new names.
Factory Tick Filtersimai.factory-tick-filterThe computer player's factory and power management passes over buildings that are busy with a background order, such as a stockpile build, and switches on and off any building that uses 32 or more energy. In 3.1c it gives orders to busy buildings and switches only metal makers.
Income Multiplierssimai.income-multipliersComputer players earn resources at a rate the profile sets for each difficulty. 3.1c gives an Easy computer player half its income, a Medium one 70 percent and a Hard one its full income; with the hack on, the default rates are half, full and four times the income. Production and feature reclaim have separate lists.
Ignore Submerged Targetssimai.nearest-enemy-filterWhen the computer player looks for the nearest enemy to attack, its land groups ignore fully submerged units, and every search also passes over a wider set of units. Its naval group still finds submerged units.
Patrol Group Sizesimai.patrol-group-sizeThe computer player's aircraft patrol out to a random point on the map edge only once the wing holds N aircraft (default 15). Smaller wings stay near the base and scout around it. In 3.1c a wing goes out at five.
Patrol Edge Fallbacksimai.patrol-null-enemy-skipA computer player's small air wing that has no base yet patrols to a random map edge instead of heading for the nearest enemy. In 3.1c the same wing is sent at the nearest enemy unit, which the search may not find.
Squad Assignmentsimai.squad-assignmentChanges how a computer player sorts its idle units into squads and which standing orders it gives them. With the role-squad rules, buildings are split by what they do rather than whether they are armed, unarmed mobile units join a squad instead of staying idle, and only commanders get the Maneuver move order.
Commander Runs Factoriessimai.squad5-factory-tickA computer player's armed buildings (squad 5) run the same task as its other buildings: armed factories queue units from their build lists and power users follow the energy surplus. In 3.1c squad 5 has no task, so an armed building that builds, such as a silo that builds its own stockpile weapons, never builds anything for a computer player.

Ordersorders · 7

Build Site Kickoutsimorders.build-site-kickoutPlayers can place buildings on top of their own units. A builder whose
Builder Patrol and Guard Optionssimorders.con-patrol-guard-optionsEach player chooses, for each standing move order (Hold Position, Maneuver, Roam), what their patrolling builders look for: features to reclaim, units to repair and assist, or both. They also choose where guarding units stand: close, at the usual random spot, or at the full guard distance. 3.1c always looks for both and always stands at the random spot.
Reclaim Cursor on Any Unitsimorders.reclaim-command-any-unitWith the Reclaim command armed, the pointer shows the reclaim cursor over every unit. In 3.1c the cursor changes back to normal over a unit that cannot be reclaimed, such as a commander, so hovering tells the player which units those are.
Repair Finish Checksimorders.repairing-state-target-activityA unit that goes to a repair pad is repaired when the pad is switched on, whatever the unit's own on/off state. In 3.1c the check reads the unit being repaired instead of the pad, so a unit that is switched off is turned away by an active pad.
Resurrectors Reclaim Wreckssimorders.resurrector-reclaims-featuresA unit that can resurrect reclaims a wreck when the player uses the Reclaim command on it (its button or the E key). In 3.1c the Reclaim command resurrects such a wreck instead. The default order, a right-click, still resurrects.
Selective Weapon Usesimorders.selective-weapon-occupyAn Attack order holds only the weapon it was given, and a D-gun fired at the ground holds only the third weapon. The unit's other weapons keep choosing their own targets, where 3.1c makes them wait while the order runs.
Fire While Buildingsimorders.weapons-free-while-busyA builder's weapons keep choosing their own targets while it builds or does other busy work, where 3.1c holds them idle until the work ends. The profile names which kinds of work leave the weapons free.

Consoleconsole · 5

AI and Control Cheatsviewconsole.ai-control-cheat-grouphacks:
ATM Amountviewconsole.atm-amountSets how much metal and energy the +ATM cheat gives. The default fills any storage at once; 3.1c gives 1000 of each.
Game Speed Rangeviewconsole.game-speed-rangeSets the slowest and fastest game speed players can choose, and lets the host lock the speed to a narrower range for one game. The default allows speed 0, at which the game stands still without being paused; 3.1c allows 1 to 20 and has no lock.
Key Remapsviewconsole.key-remapsThe backslash key no longer repeats the last console line, leaving it free for the whiteboard. Insert repeats the last line instead, and F10 becomes a second key for toggling the debug keys.
LOS Type Cheatviewconsole.lostype-cheat-groupThe +LOSType console command becomes a cheat. It runs only where cheats are allowed, and using it is announced to every player.

Aircraftair · 3

Guard Respects Hold Positionsimair.guard-respects-hold-positionAn aircraft guarding another unit no longer flies off to attack whoever hit that unit while its move order is Hold Position. In 3.1c a guarding aircraft always goes after the attacker.
Gunships Hover to Strafesimair.gunships-hover-to-strafeAircraft that hover to attack (HoverAttack=1, such as the Brawler and the
No Repair Retreatsimair.no-repair-retreat-flagAircraft whose unit definition sets a chosen tag never break off to a repair pad when damaged, and the Move command does not land them on a pad. In 3.1c every aircraft below three quarters of its health leaves its order to find a pad.

Economyeconomy · 2

Deterministic Windsimeconomy.deterministic-windEvery machine draws the wind from one generator, seeded the same way everywhere, instead of from its own random numbers. Wind generators then earn the same energy on every machine, and the wind's timing no longer depends on the machine's local random stream.
Statistics Exclude Shared Incomesimeconomy.stats-exclude-shared-incomeResources a player receives from allies no longer count as "produced" in that player's statistics. Income and storage are unchanged: the shared resources still arrive and can be spent.

Repairrepair · 2

Self-Repair by Heal Timesimrepair.healtime-self-healUnits whose type has a HealTime regenerate at a pace set by that HealTime
Repair Ratesimrepair.rateBuilders repair damaged units at a speed that grows with the builder's

Networknetwork · 9

Chat Extension Channelsimnetwork.chat-extension-channelChat records whose text starts with a zero byte carry private binary messages between machines, such as integrity checks and votes to reject a player. They are handed to their handlers and never shown as chat.
Commander Start Syncsimnetwork.commander-start-syncEarly in a network game each machine sends the start positions of its players' first units, and the other machines move their copy of each player's commander there. This keeps the commander from appearing in different places on different machines at the start.
Host Stays as Watchersimnetwork.host-stays-as-watcherWhen the player hosting a network game is defeated, they stay in the game
Lag Guardsimnetwork.lag-guardWhile no other player in a network game has been heard from for a short
Keep Remote Player Colourssimnetwork.preserve-remote-player-colourWhile a game runs, a setup update from another player no longer
Recorder Session Commandssimnetwork.recorder-session-commandsPlayers can type a set of optional session commands into chat, in the
Clear Session Descriptionsimnetwork.session-desc-clearWhen the host publishes the session description again, for example
Version Checksimnetwork.vercheckEach player's machine checks that every other human player runs the
Vote to Remove Playerssimnetwork.vote-rejectThe host's dialog for dropping a player is replaced by a vote of every

Unitsunits · 8

Build Rotationsimunits.build-rotationBuildings whose unit definition allows it can be placed facing east, north or west as well as south. The facing turns the building's yardmap and footprint. In 3.1c every building faces south.
Unit Slot Reuse Delaysimunits.id-reuse-delayA dead unit's slot is not handed to a new unit until a delay has passed since its death. Late network records about the dead unit then cannot reach a newly built unit in the same slot. 3.1c reuses a slot as soon as it is free.
Ignore Unit 0 Deathssimunits.ignore-null-death-recordA unit-death record that names unit index 0 is ignored entirely, so no unit dies and nothing else changes. 3.1c runs its whole death processing for such a record.
Cloak After Buildsimunits.init-cloaked-after-buildA unit still under construction neither cloaks nor pays cloak upkeep, so the nanoframe of a unit that starts cloaked stays visible until it is finished. In 3.1c such a nanoframe cloaks and pays from the start.
Mobile Unit Yard Mapssimunits.mobile-unit-yardmapA mobile unit's YardMap key is read and compiled into a yard, as a building's is. In 3.1c only buildings have a yard, so a mobile unit placed on the map is tested against a plain footprint; with this hack its own yard cells decide which ground it needs.
Placement by Buildersimunits.placement-by-builderA click on a build-menu item places it on the map or adds it to the queue according to the selected builder, not the item. A mobile builder places everything it can build, mobile units included, as frames on the map; a factory queues everything it can build.
Skip Empty Yard Mapssimunits.skip-empty-yardmapA unit file with no YardMap key, or with a footprint 0 cells wide or deep, gets no yard block when it loads. Play does not change: such a building is still treated as having a yard of empty cells.
Water State Rulessimunits.water-state-rulesChanges how the engine works out a unit's water state, the code it passes to the unit script's SetSFXoccupy. Every unit at or below its waterline gets a state, where 3.1c leaves some deep units with a stale one, and a unit created fully under water can start in the submerged state.

Game setupsetup · 7

AI Player Namessimsetup.ai-player-name-formatComputer players added in the multiplayer battle room are named from a format
Start with One Humansimsetup.allow-start-with-aiThe host can start a multiplayer game with only one human player and
Commander Warpsimsetup.commander-warpWith the game recorder's .cmdwarp command, a network game starts held:
Map Scripted Unitssimsetup.map-scripted-unitsIn skirmish and multiplayer games, a map whose schema lists units places them
Several Local AI Playerssimsetup.multiple-local-aiOA's battle room seats several computer players for each human, up to the
Prebuilt Basesimsetup.recorder-prebuilt-baseWith the game recorder's base commands, the host can offer every player a
Team Start Positionssimsetup.team-start-positionsPlayers on the same team start next to each other in the order of the map's start positions,

Teamsteams · 3

Alliance Menu Everywheresimteams.alliance-menu-all-game-typesThe Tab key opens the team menu in every game type, and its ALLIES button is offered there, so a
Keep Allied Victorysimteams.allied-victory-keptIn the battle room a player's Allied Victory setting stays as the player set it, even when the player
Team Number Alliancessimteams.team-number-alliancesA player's team number in the battle room decides alliances: every machine allies its own players

Recorderrecorder · 2

Game Recorderviewrecorder.ta-demo-recorderThe game recorder is present: every network game is recorded to a file, and the engine takes part in the recorder traffic that recorder-equipped players exchange inside the game's packets. In 3.1c there is no recorder: games are not recorded and no recorder traffic is sent or read.
Ten-Player Replayviewrecorder.ten-player-replayA recording of a full ten-player game can be watched. In 3.1c the viewer needs a player slot of its own, so a recording that uses all ten slots is refused.