Skip to content

Difficulty settings and handicaps

Turns the chosen difficulty into one slot per house and scales that house's damage, speed, armor, rate of fire, prices and build times by the figures the slot holds.

Features & systemsScenarios & AIAI & teams

Changed in 0.1.0

This section introduces the difficulty slot the rest of the page turns on. Anyone who already knows that a computer house is handed the inverse of the setting the player chose can skip to what one difficulty section sets.

A scenario carries two difficulty slots. In a campaign game both come from Difficulty=, the campaign setting kept in sun.ini; outside a campaign both come from the difficulty chosen for the session. One slot is the setting itself and the other is 2 minus it, so the two always move in opposite directions.

A slot selects one of three sections in the rules: [Easy] is slot 0, [Normal] slot 1 and [Difficult] slot 2. The section names describe the house reading them rather than the player’s skill.

The table gives the section each kind of house ends up reading, for each setting a player can choose. Read the two right-hand columns against each other: they are mirror images, and every later table on this page is a consequence of that one step.

Setting chosenA player-controlled house in a campaignEvery other house
Easy[Easy][Difficult]
Normal[Normal][Normal]
Hard[Difficult][Easy]

Outside a campaign game the right-hand column reaches computer houses only. Every human house is handed slot 1 whatever the session was set to, so the setting tunes the computer alone there.

In a campaign the handicap is given to each house as the scenario’s [Houses] list is read, one house at a time, and the only thing that puts a house in the left-hand column is PlayerControl=yes in that house’s own section. More than one house may carry it, and each one that does takes the player’s column.

A difficulty section carries eight settings that reach a decision, and the table gives all eight together with what a house in that slot does with each. Each of the six multipliers states in its own row which way a figure above 1 moves, because the direction is not the same for all of them: above 1 makes a house deal more damage, move faster and survive longer, but it also makes that house fire more slowly, pay more and build more slowly. None of the figures is inverted the way the slot is — a house simply reads what its own section holds.

SettingEffect on a house in that slot
FirePower=Multiplies the damage its objects deal by firing a weapon; above 1 deals more. Projectiles the engine creates outside that path — a nuke silo, either EM pulse, a superweapon, a trigger action, a splitting bullet — are never scaled
Groundspeed=Multiplies the speed of its ground movement; above 1 travels faster
Armor=Divides the damage its objects take; above 1 survives longer
ROF=Multiplies the delay between its shots; above 1 fires more slowly
Cost=Multiplies every price it pays; above 1 pays more
BuildTime=Multiplies the build time of everything it produces; above 1 builds more slowly
RepairDelay=Scales the wait a computer house takes between starting one building repair and the next, the result being drawn at random between a quarter of the scaled figure and twice it, in minutes
DestroyWalls=no stops its computer objects scoring walls as targets
rules.ini
[Difficult]
FirePower=1.2
Groundspeed=1.1
Armor=1.2
ROF=0.9
Cost=0.9
BuildTime=0.9
RepairDelay=.02
DestroyWalls=yes

The first seven are folded into figures the house keeps. DestroyWalls is read from the section itself at the moment the decision is made, so no country setting and no per-house value can shift it.

The seven copied figures are worked out once, at the moment the house is given its slot, and not per shot, per order or per frame. The table gives what each of the seven is combined with in each mode; the difference to read off it is that outside a campaign game the house’s country section contributes a second multiplier to six of them, and a campaign game drops that contribution and keeps everything else.

Difficulty settingCampaign gameOutside a campaign
FirePower=On its ownTimes the country’s Firepower=
Groundspeed=Times GameSpeedBiasTimes the country’s Groundspeed= and GameSpeedBias
Armor=On its ownTimes the country’s Armor=
ROF=On its ownTimes the country’s ROF=
Cost=On its ownTimes the country’s Cost=
BuildTime=Times GameSpeedBiasTimes the country’s BuildTime= and GameSpeedBias
RepairDelay=Taken as writtenTaken as written

The country’s own multipliers sit in its HouseType section and each default to 1, so a rules tree that never sets them leaves the two columns identical. How long it takes places the build-time figure in the production chain, and when the computer repairs covers what the repair delay does with its value.

  • Campaign scenario load or restart. Each house in the scenario’s [Houses] list, as it is created. Applying carry-over state afterward does not replace that handicap.
  • Every other mode. As the session’s houses are assigned: humans to slot 1, computer houses to the inverted slot minus the bonus below. The Neutral and Special houses created alongside them are never handicapped and keep a multiplier of 1 throughout.
  • A house passing to the computer. The house is re-handicapped with 2 minus the slot it already holds.

That last one runs only on a house a person was playing, and it is the same inversion applied a second time. The table traces a campaign house through it. The right-hand column is exactly what the table above gives every other house at the same setting, so a base captured from the player ends up handicapped as though the computer had held it from the start.

Setting chosenSlot the house holds while a person plays itSlot after it passes to the computer
Easy0, the [Easy] section2, the [Difficult] section
Normal1, the [Normal] section1, the [Normal] section
Hard2, the [Difficult] section0, the [Easy] section

Outside a campaign every human house sits in slot 1 whatever the session was set to, so there the inversion leaves the house exactly where it was.

[General] carries lists with one entry per difficulty. Every one of them is indexed with the raw slot and the inversion is left in place, so entry 0 is the hardest game setting and entry 2 the easiest.

TeamDelays, TotalAITeamCap, MinimumAIDefensiveTeams, MaximumAIDefensiveTeams and FillEarliestTeamProbability are read in every mode, and so are the twelve lists of the same shape that score the kinds of object the computer’s Ion Cannon prefers. AIHateDelays and MultiplayerAICM are applied once, as a scenario outside a campaign finishes loading, and never in a campaign game.

MultiplayerAICM adds to what a computer house holds rather than replacing it. Its entry is a percentage of the house’s credits plus the value of its stored Tiberium, and that percentage is handed to the house on top of what it already had, so an entry of 100 leaves it with twice its starting money and an entry of 0 changes nothing.

The team-creation countdown that TeamDelays sizes runs for every house, human or computer, and each house reads the list with its own slot. In a campaign game that puts the player’s house and the computer’s houses at opposite ends of one list. The table gives the entry each of them takes; the two columns are mirror images, and the entry the player’s own house takes at the Easy setting is the entry a computer house takes at the Hard setting.

Setting chosenEntry a player-controlled campaign house readsEntry a computer house reads
Easy02
Normal11
Hard20

AI triggers and team production covers what the AI lists do and why an AI trigger’s difficulty flags mean the same thing in both modes while these lists do not.

The computer’s bonus with more than one human

Section titled “The computer’s bonus with more than one human”

Outside a campaign game, CompEasyBonus=yes drops a computer house one slot as it is assigned, provided the session holds more than one human entry and the house is not already in slot 0. A skirmish registers exactly one human entry, so the bonus never fires there; it takes a LAN or online session.

The name says easy and the step does the opposite. A computer house already holds the inverse of the setting the player chose, so dropping it a slot moves it to the slot the next harder setting would have given it. The table traces one computer house through both steps; the right-hand column is the setting its handicap then matches, and it is never easier than the one chosen.

Setting chosenSlot the computer house holdsSlot after the bonusSetting it then behaves like
Easy2, the [Difficult] section1, the [Normal] sectionNormal
Normal1, the [Normal] section0, the [Easy] sectionHard
Hard0, the [Easy] section0, the [Easy] section; no dropHard

Every row below reads a house’s own slot directly, with no second inversion applied on top of it. So a row naming slot 0 or the [Easy] section describes what a computer house does when the player chose Hard, and a row naming slot 2 describes what it does when the player chose Easy.

WhereWhat the slot changes
The computer’s base planThe 2 - slot extra refineries and the 3 - slot term in the extra defense placeholders
The GDI wall ringThe 3 - slot term in the cap on wall defenses
A computer house’s harvestersOutside a campaign, a house needs two harvesters per refinery on hand before it builds a replacement, or one when it sits in slot 2
The computer’s Ion CannonIn slot 0 it also rates objects still under construction
Crushing an attackerA computer house in slot 2 never answers fire by running the attacker down
A map’s triggersA trigger whose difficulty flags exclude the scenario’s difficulty is disabled as it is created, and the enable-trigger action leaves it alone; outside a campaign the difficulty is the one the lobby’s computer skill sets

The difficulty sections carry four settings no gameplay path reads, in three different states. BuildSlowdown has no reader at all. ContentScan is compared in a routine nothing calls. Airspeed and BuildDelay are folded into figures the house keeps, but no gameplay path reads those figures either. A country’s own Airspeed= is stored the same way and read no further. [General] carries FineDiffControl, and the ContentScan threshold in [IQ] is the other half of the same unreachable comparison.

The slot reaches nothing in a map’s own triggers, which answer to the difficulty itself rather than to a house’s slot. A trigger declares three per-difficulty fields and is disabled as it is created when the one for the scenario’s difficulty is clear; Trigger springing covers what that leaves it able to do. The three flags an AI trigger declares are a different set and do decide whether it is drawn.

20 of 20

KeyDescriptionValueWhen omitted
AIHateDelaysglobal rulesThe frames a computer house waits before picking its first enemy, one entry per difficulty.list of integers(empty)
ArmorNo effect in some scopes14 applicable typesAn object type's armor class, or on a country or difficulty setting the divisor of the damage its objects take.ArmorTypeVaries by type
BuildTimeHouseType, difficulty settingsThe build-time multiplier a country applies to everything it produces, or the one a difficulty setting applies.floating pointVaries by type
CompEasyBonusglobal rulesWhether a computer house drops one difficulty slot when the session holds more than one human player.booleanyes
Cost6 applicable typesThe credit price of one object of this type, or the multiplier a country or a difficulty applies to every price it pays.integerVaries by type
DestroyWallsdifficulty settingsWhether a computer house in this difficulty slot scores walls as targets while it scans.booleanyes
Difficultyclient settingsThe campaign difficulty as a slider position, 0 for Easy, 1 for Normal and 2 for Hard.integer1
FillEarliestTeamProbabilityglobal rulesThe percent chance that the next vehicle, infantryman or aircraft chosen goes to the oldest waiting team, one entry per difficulty.list of integers(empty)
FirePowerdifficulty settingsThe multiplier a difficulty setting applies to the damage its houses deal by firing a weapon.floating point1
FirepowerHouseTypeThe multiplier a country applies to the damage its houses deal by firing a weapon.floating point1.0
GameSpeedBiasglobal rulesThe multiplier folded into every house's build-time and ground-speed figures.floating point1
GroundspeedHouseType, difficulty settingsThe multiplier a country or a difficulty setting applies to the speed of the ground movement its houses make.floating pointVaries by type
MaximumAIDefensiveTeamsglobal rulesThe number of defensive teams above which a house passes over its defensive AI triggers, one entry per difficulty.list of integers(empty)
MinimumAIDefensiveTeamsglobal rulesThe number of defensive teams a house must hold before any non-defensive AI trigger may spring, one entry per difficulty.list of integers(empty)
MultiplayerAICMglobal rulesThe percentage of its own starting money added to each computer house outside a campaign, one entry per difficulty.list of integers(empty)
PlayerControlHouse (per-scenario)Marks a scenario's house as the one the local player is playing, which in a campaign decides the difficulty slot it is given and whether it is spoken to.booleanno
ROFHouseType, WeaponType, difficulty settingsA weapon's frames between shots, or the multiplier a country or a difficulty setting applies to that delay.floating pointVaries by type
RepairDelaydifficulty settingsThe wait a computer house takes between starting one building repair and starting the next.floating point.02
TeamDelaysglobal rulesThe frames a house waits between team creation passes, one entry per difficulty.list of integers(empty)
TotalAITeamCapglobal rulesThe number of live teams a house may hold before its AI triggers stop springing, one entry per difficulty.list of integers(empty)

History

  1. Changed0.1.0In development

    Keep selected difficulty when restarting missions