SLIC Function Reference

Originally made by Joe Rumsey
About the author: CTP Programmer, a.k.a Mr Ogre on the forums

Edited by Wouter Snijders (aka Locutus)
The functions have been sorted on subject instead of alphabet, the colors were redone and the still undocumented functions added.

This is a list sorted on subject (unit, player, diplomacy, etc.) of every function available in SLIC scripts for Civilization: Call to Power.

Functions marked with (1.1) were not present until version 1.1, functions marked with (1.2) were not not present until version 1.2 and functions marked with (N.D) were never documented by Activision. Greyed out functions are 'unimplemented', 'obsolete', 'somewhat confusing' (WTF?) or 'don't work', and are normally not used.

Units

  • VOID AddUnit(unit)
    Add a unit to the context.

  • VOID CreateUnit(owner, type, nearlocation, distance[, saveunit])
    Create a unit of the given type belonging to owner approximately distance tiles from nearlocation. If a unit variable is passed in as saveunit, it will contain the newly create unit after this function returns.

  • VOID KillUnit(unit)
    Kill the unit.

  • INT UnitType(unitname)
    Return the DB index of the named unit. The name must be in quotes. E.G. UnitType("UNIT_SETTLER")

  • INT IsUnitSelected()
    True if the player has a unit selected.

  • (1.2)VOID SelectUnit(unit)
    Select the specified unit as if the user clicked on it.

  • (1.2)VOID DamageUnit(unit, hp)
    Subtract hp hit points from unit.

  • (1.2)VOID Heal(unit)
    Fully heal the unit.

  • INT UnitHasFlag(unit, (ID)flag)
    Return true if the given unit has the specified flag (flags are the same as in units.txt. NOTE: a few flags may not work with this function.)

  • INT IsActiveDefender(unit)
    True if the unit is capable of active defense.

  • INT IsBombardingUnit(unit)
    True if the unit is capable of bombarding.

  • INT IsCleric(unit)
    True if the unit is a cleric.

  • INT IsDiplomat(unit)
    True if the unit is a diplomat.

  • INT IsSlaver(unit)
    True if the unit is a slaver.

  • INT IsWormholeProbe(unit)
    True if the unit is a wormhole probe.

  • INT IsSpaceUnit(unit)
    True if the unit is capable of moving in space.

  • INT IsCounterBombardingUnit(unit)
    True if the unit is capable of counter bombarding.

  • INT UnitsInCell(location)
    Return the number of units in the cell.

  • (1.2)INT Stacked(location)
    Are all of the units at the given location in a single group?

  • (1.1) VOID SetUnit(index, unit)
    Set unit.index to unit. Useful to access the attributes of a unit stored in a TypeUnit variable. E.G. SetUnit(1, myUnitVariable) will cause unit.1 to be the unit stored in myUnitVariable.

  • (1.1) VOID SetUnitByIndex(index, player, unitindex)
    Set unit.index to player's unitindexth unit. Useful for looping through all of a player's units for example.

  • (1.2)INT UnitHasUserFlag(unit, flag)
    Returns true if the given unit has a "SET_USER_FLAG <flag>" in it's database record. <flag> is a number from 1 to 32. They are completely unused by the code, this is the only place they mean anything at all.

  • INT IsFlankingUnit(unit)
    Obsolete.

  • INT IsSecondRowUnit(unit)
    Obsolete.

    Orders
  • (1.1) VOID SetOrder(index, order)
    Set an order in the context to the given order. (As of patch 1.1, only an index of 1 is actually useful). Once an order has been set, it can be issued to a unit with AddOrder. Order uses an index from below:
            0 UNIT_ORDER_NONE
            1 UNIT_ORDER_MOVE
            2 UNIT_ORDER_PATROL
            3 UNIT_ORDER_CIRCULAR_PATROL
            4 UNIT_ORDER_ENTRENCH
            5 UNIT_ORDER_SLEEP
            6 UNIT_ORDER_DETRENCH
            7 UNIT_ORDER_UNLOAD
            8 UNIT_ORDER_MOVE_TO_THEN_UNLOAD_THEN_DIE
            9 UNIT_ORDER_MOVE_TO
            10 UNIT_ORDER_TELEPORT_TO
            11 UNIT_ORDER_EXPEL_TO
            12 UNIT_ORDER_GROUP
            13 UNIT_ORDER_UNGROUP
            14 UNIT_ORDER_PARADROP
            15 UNIT_ORDER_LAUNCH
            16 UNIT_ORDER_INVESTIGATE_CITY
            17 UNIT_ORDER_NULLIFY_WALLS
            18 UNIT_ORDER_STEAL_TECHNOLOGY
            19 UNIT_ORDER_INCITE_REVOLUTION
            20 UNIT_ORDER_ASSASSINATE
            21 UNIT_ORDER_INVESTIGATE_READINESS
            22 UNIT_ORDER_BOMBARD
            23 UNIT_ORDER_SUE
            24 UNIT_ORDER_FRANCHISE
            25 UNIT_ORDER_SUE_FRANCHISE
            26 UNIT_ORDER_EXPEL
            27 UNIT_ORDER_ESTABLISH_EMBASSY
            28 UNIT_ORDER_CAUSE_UNHAPPINESS
            29 UNIT_ORDER_PLANT_NUKE
            30 UNIT_ORDER_SLAVE_RAID
            31 UNIT_ORDER_ENSLAVE_SETTLER
            32 UNIT_ORDER_UNDERGROUND_RAILWAY
            33 UNIT_ORDER_INCITE_UPRISING
            34 UNIT_ORDER_BIO_INFECT
            35 UNIT_ORDER_NANO_INFECT
            36 UNIT_ORDER_CONVERT
            37 UNIT_ORDER_REFORM
            38 UNIT_ORDER_INDULGENCE
            39 UNIT_ORDER_SOOTHSAY
            40 UNIT_ORDER_DEFUSE_MINES
            41 UNIT_ORDER_CLOAK
            42 UNIT_ORDER_UNCLOAK
            43 UNIT_ORDER_RUSTLE
            44 UNIT_ORDER_CREATE_PARK
            45 UNIT_ORDER_CREATE_RIFT
            46 UNIT_ORDER_PILLAGE
            47 UNIT_ORDER_INJOIN
            48 UNIT_ORDER_USE_LADDER
            49 UNIT_ORDER_AIRLIFT
            50 UNIT_ORDER_DESCEND
            51 UNIT_ORDER_THROW_PARTY
            52 UNIT_ORDER_INTERCEPT_TRADE
            53 UNIT_ORDER_PARADROP_MOVE
            54 UNIT_ORDER_SET_UNLOAD_MOVEMENT_POINTS
            55 UNIT_ORDER_GROUP_UNIT
            56 UNIT_ORDER_DISBAND
            57 UNIT_ORDER_FINISH_ATTACK
            58 UNIT_ORDER_UNLOAD_ONE_UNIT
            59 UNIT_ORDER_BOARD_TRANSPORT
            60 UNIT_ORDER_WAKE_UP
            61 UNIT_ORDER_PILLAGE_UNCONDITIONALLY
            62 UNIT_ORDER_MOVE_THEN_UNLOAD
            63 UNIT_ORDER_ADVERTISE
            64 UNIT_ORDER_CONDUCT_HIT
            65 UNIT_ORDER_INFORM_AI_CAPTURE_CITY
            66 UNIT_ORDER_UNLOAD_SELECTED_STACK
    		

  • VOID DoPillageOwnLand()
    Causes unit.1 to pillage, even if it belongs to the player who owns the tile it's standing on.

  • VOID AddExpelOrder(unit, location)
    Tells the unit to expel another unit at the given location (must be adjacent, must be expellable, the unit being given the order must be able to expel units, etc.)

  • INT AllUnitsCanBeExpelled(location)
    Return true if all of the units at the location can be expelled. Returns false if there are no units there.

  • VOID ClearOrders(unit)
    Clear the unit's army's orders.

  • VOID AddOrder(unit, location)
    Tell the given unit to execute the order that was previously set in the context. See also SetOrder

  • (1.1) VOID ExecuteAllOrders()
    Cause all units to execute queued up orders.

  • (1.1) VOID AddMovement(unit, amount)
    Give unit an additional amount movement points (will be removed at the end of the turn if not used).

  • (1.2)VOID CantAttackUnit(unit, onoff)
    Make the specified unit immune to attack if onoff is not 0, set it back to normal if 0.

  • VOID DoCannotAffordSupport()
    Does nothing.

  • VOID DoOutOfFuel()
    Does nothing.

  • VOID DoLandInOcean()
    Does nothing.

  • VOID DoAutoUnload()
    Do not use this.

    Messages
  • VOID UseDirector()(Messages only)
    Queue this message up via the animation system instead of displaying it immediately. Useful to synchronize messages with other things happening on screen.

  • VOID Title(stringid)(Messages only)
    Set the title of a message.

  • VOID Show()
    Open this message immediately instead of showing just an icon.

  • VOID Message(player, 'message_id')

    Run the messagebox or alertbox named 'message_id' with player as the recipient.

  • VOID MessageAll('message_id')

    Run the messagebox or alertbox named 'message_id' with every player as a recipient.

  • VOID MessageAllBut(player, 'message_id')
    Run the messagebox or alertbox named 'message_id' with everyone but player as a recipient.

  • VOID MessageClass(int)(Messages only)
    Set the current message to the given class.

  • VOID MessageType(message_type)
    Set the icon for the current message.

  • VOID Kill()(Messages only)
    Kills this message, only works inside buttons. (Use Abort() instead outside a button)

  • VOID KillClass(class)
    Kills all messages of the given class.

  • VOID KillEyepointMessage()
    When a message is called from an eyepoint, kill the original message with this function.

  • VOID KillMessages(objectname)
    Kill all messages from the named object.

  • VOID GetMessageClass(player, index)
    Get the class of message #index belonging to player.

  • VOID EyeDropdown(starting index, builtin variable with list)(Messages only)
    Put a dropdown box on the message.

  • VOID EyePoint(location[, player, messageid])
    Put an eyepoint on the message. If player and messageid are passed, call that message when the eyepoint is clicked.

  • VOID EnableCloseClass(player, class)
    Enable closing of all messages belonging to class, if it was disabled previously.

  • VOID EnableCloseMessage(player, messagename)
    Enable closing of all messages from the named object.

  • VOID EnableMessageClass(class)
    Enable messages belonging to class.

  • VOID Duration(turns)
    Kill this message automatically in n turns.

  • VOID DontSave()(Messages only)
    If this is a tutorial message, don't save it in the tutorial history.

  • VOID DisableMessageClass(class)
    Cause all messages of the given class to not be displayed.

  • VOID DisableClose()(Messages only)
    Disallow closing this message from the UI.

  • VOID Attract(ldlname)
    Draw a highlight box around the named UI component.

  • VOID Abort()(Messages only)
    Causes the current message to not be displayed. The code code following an Abort() is still executed however.

  • VOID Caption(caption)
    Unimplemented

    Location/Terrain
  • INT TerrainType(location)
    Return the terrain type of the location.

  • VOID Terraform(location, terrain)
    Change location into a different terrain type.
            0 TERRAIN_TYPE_FOREST
            1 TERRAIN_TYPE_PLAINS
            2 TERRAIN_TYPE_TUNDRA
            3 TERRAIN_TYPE_GLACIER
            4 TERRAIN_TYPE_GRASSLAND
            5 TERRAIN_TYPE_DESERT
            6 TERRAIN_TYPE_SWAMP
            7 TERRAIN_TYPE_JUNGLE
            8 TERRAIN_TYPE_MOUNTAIN
            9 TERRAIN_TYPE_HILL
            10 TERRAIN_TYPE_WATER_SHALLOW
            11 TERRAIN_TYPE_WATER_DEEP
            12 TERRAIN_TYPE_WATER_VOLCANO
            13 TERRAIN_TYPE_SPACE
            14 TERRAIN_TYPE_WATER_BEACH
            15 TERRAIN_TYPE_WATER_SHELF
            16 TERRAIN_TYPE_WATER_TRENCH
            17 TERRAIN_TYPE_WATER_RIFT
            18 TERRAIN_TYPE_DEAD
            19 TERRAIN_TYPE_BROWN_HILL
            20 TERRAIN_TYPE_BROWN_MOUNTAIN
            21 TERRAIN_TYPE_WHITE_HILL
            22 TERRAIN_TYPE_WHITE_MOUNTAIN
            23 TERRAIN_TYPE_DEAD_HILL 
    		

  • (1.1) VOID SetLocation(index, locationvar)
    Set location.index to locationvar.

  • VOID PlantGood(location)
    Add a special resource at location.

  • (1.1) VOID MakeLocation(locationvar, x, y, z)
    Set locationvar to (x,y,z)

  • VOID LeaveRegion(player, region)
    Unimplemented.

  • INT IsInRegion(location, (ID)region)
    True if location is within the given region.

  • INT IsInZOC(player, location)
    True if player has Zone of Control over location.

  • INT IsContinentBiggerThan(location, size)
    True if the continent at location has at least size squares.

  • INT HasRiver(location)
    return true if there's a river at location.

  • INT HasPop(owner, location)
    Return true if owner has a worker at location.

  • (1.2)INT GetNeighbor(locationIn, direction, locationOut)
    Given the location variable locationIn, fill in the location of it's neighbor in the specified direction in locationOut. The return value is 1 if successful, 0 if not. (Unsuccessful means you tried to get a neighbor off the edge of the world, E.G past the top on an earth shaped map). Direction is one of:
            0 North
            1 Northeast
            2 East
            3 Northwest
            4 Southeast
            5 West
            6 Southwest
            7 South
            8 Up (into space)
            9 Down (from space to ground)
    
    No, I don't think the order makes much sense either.

  • VOID GetRandomNeighbor(location, newlocation)
    Get a random square adjacent to location and put it in newlocation.

  • VOID ExtractLocation(location, locationvar)
    Get a location from built in variable and put it in locationvar.

  • INT ControlsRegion(player, (ID)region)
    True if the given player is the only player who owns tiles in the region (not necessarily all the tiles in the region)

  • INT GetNearestWater(location, locationvar)
    Get the location of the nearest ocean square to location, putting the result in locationvar. Also returns the distance in patched version.

  • VOID CaptureRegion(player, region)
    Unimplemented

    Diplomacy/Trade
  • INT TradeRoutes(player)
    Return how many trade routes the player has.

  • INT TradePoints(player)
    Return how many caravans the player has.

  • INT RegardLevel(player1, player2)
    Return player 1's regard toward player 2.

  • VOID Reject()
    Reject a diplomatic request from the context.

  • VOID RejectTradeBid()
    Reject a trade bid from the context.

  • INT GoodCount(city, type)
    Count the number of goods of a particular type in the city's radius.

  • INT GoodCountTotal(city)
    Count the number of goods of all types in the city's radius.

  • INT GoodType(good_name)
    Turn a named good into a good index.

  • VOID ForceRegard(ofPlayer, forPlayer, toRegard)
    Force the regard ofPlayer forPlayer toRegard.

  • VOID DontAcceptTradeOffer(index)
    Reject a trade offer.

  • VOID DemandWarFromAllies(demandingplayer, againstplayer)
    Send a diplomatic request demanding that all allies of demanding player declare war on againstplayer.

  • INT CityCollectingGood(city, good)
    Return the amount of a particular good being collected in the city (excluding goods being brought in via trade)

  • VOID BreakAgreement(agreement_index)
    Break a diplomatic agreement which is set in the context.

  • VOID BreakAlliance(player)
    Break an alliance between player.1 and and the given player.

  • VOID BreakLeaveOurLands()
    Break a stop trespassing agreement between player.1 and player.2

  • VOID BreakNoPiracy()
    Break a no piracy agreement between player.1 and player.2

  • VOID AddGoods(city)
    Add all the goods in the city's radius to the context.

  • VOID Accept()(Messages only)
    Accepts the diplomatic request associated with this message.

  • VOID AcceptTradeBid()(Messages only)
    Accepts the trade bid associated with this message

  • VOID AcceptTradeOffer(index)(Messages only)
    Accepts the trade offer associated with this message

  • VOID ChangeRegardLevel(player1, (delta)level, player2)
    Unimplemented

  • VOID DoYouWillBreakRoute()
    Does nothing.

  • INT HasSameGoodAsTraded(player)
    A somewhat confusing function.

  • VOID SendTradeBid()
    Obsolete

  • INT GoodVisibutik(city, type)
    Doesn't work.

    City/Build Queue

  • (1.1) VOID SetCity(index, city)
    Set city.index to city. Useful to access the attributes of a city stored in a TypeCity variable. E.G. SetCity(1, myCityVariable) will cause city.1 to be the unit stored in myCityVariable.

  • (1.1) VOID SetCityByIndex(index, player, cityindex)
    Set cityindex to player's cityindexth city. Useful for looping through all of a player's cities for example.

  • (1.2)VOID SelectCity(city)
    Select the specified city as if the user clicked on it.

  • (1.2)VOID KillUnitFromBuildList(city, unit)
    Remove all occurances of that type of unit from the city's build queue.

  • (1.2)VOID KillBuildingFromBuildList(city, building)
    Remove the building type from the city's build queue.

  • (1.2)VOID KillWonderFromBuildList(city, wonder)
    Remove the wonder type from the city's build queue.

  • (1.2)VOID KillEndgameFromBuildList(city, endgame)
    Remove the end game object type from the city's build queue.

  • INT IsUnderseaCity(city)
    True if the city is in the ocean.

  • INT IsSpaceCity(city)
    True if the city is in space. Broken in version 1.2

  • INT IsWonderType(wonder, (string)type)
    True if wonder is named type.

  • INT IsCitySelected()
    True if the player has a city selected.

  • (1.2)INT IsUnitInBuildList(city, unittype)
    Does the city's build queue contain that kind of unit?

  • (1.2)INT IsBuildingInBuildList(city, buildingtype)
    Does the city's build queue contain that type of building?

  • (1.2)INT IsWonderInBuildList(city, wonder)
    Does the city's build queue contain that type of wonder?

  • (1.2)INT IsEndgameInBuildList(city, endgame)
    Does the city's build queue contain that type of end game object?

  • (1.2)VOID GetCityByLocation(location, cityvar)
    Fill in a city variable from the city at location.

  • VOID FinishBuilding(city)
    Finish building a settler that was stopped because building it will disband the city.

  • INT FindCoastalCity(player, cityvar)
    Find a city next to the ocean and put it in cityvar. Returns 0 if no coastal cities are found.

  • INT CreateCity(owner, nearlocation, distance[, savecity])
    Create a city belonging to owner, at approximately distance tiles away from nearlocation. If a city variable is passed in to savecity, it will contain the newly created city after this function returns.

  • INT CreateCoastalCity(owner, nearlocation, distance[, savecity])
    Same as CreateCity, but always finds a square next to ocean.

  • VOID ClearBuildQueue(city)
    Remove all items from the build queue of the given city.

  • INT CityHasBuilding(city, building)
    Return true if the city has a building of the given type. building is a quoted string corresponding to the name in improve.txt.

  • (1.2)VOID CityCantRiotOrRevolt(city, onoff)
    Make the specified city immune to riots and revolts if onoff is not 0, set it back to normal if 0.

  • (1.2)VOID CantAttackCity(city, onoff)
    Make the specified city immune to attack/capture if onoff is not 0, set it back to normal if 0.

  • INT BuildingType(building)
    Return the building database index of the named building (building is a quoted string corresponding to the name in improve.txt)

  • INT AddPops(city, count)
    Increase the population of the given city by count.

  • VOID AddCityByIndex(owner, index)
    Adds the player's nth city to the context.

  • VOID AddCity(builtinwithcity)
    Adds a city to the current context.

  • (1.2)VOID AddUnitToBuildList(city, unittype)
    Add the unit type to the end of the city's queue.

  • (1.2)VOID AddEndgameToBuildList(city, endgame)
    Add the endgame object to the end of the city's queue.

  • (1.2)VOID AddBuildingToBuildList(city, buildingtype)
    Add the building type to the end of the city's queue.

  • VOID DoFreeSlaves()
    Frees the slaves in city.1. Only works if that city was captured this turn.

  • (1.2)VOID AddWonderToBuildList(city, wonder)
    Add the wonder type to the end of the city's queue.

  • VOID CaptureCity(player, city)
    Unimplemented

  • VOID DoCertainRevolution()
    Does nothing.

  • VOID DoCityWillStarve()
    Does nothing.

  • VOID DoSellImprovement()
    Does nothing.

  • VOID DoCannotAffordMaintenance()
    Does nothing.

    Player/Civilization
  • INT UnitCount(player, type)
    Return a count of how many units of a given type the player has.

  • (1.2)VOID SetPW(player, pw)
    Set the player's public works to pw.

  • VOID SetPlayer(index, player)
    Set player.<index> to player.

  • VOID SetGovernment(index)(Messages only)
    Set the recipient's government to the given type.

  • INT PlayerCityCount(player)
    Return how many cities the player has.

  • (1.2)INT PlayerCivilization(player)
    Return the database index of the player's civilization (the same number returned by
    CivilizationIndex)

  • (1.1) VOID Ozone()
    Cause an ozone depletion event.

  • INT IsPlayerAlive(player)
    True if player is still in the game.

  • INT IsHumanPlayer(player)
    True if player is not an AI player.

  • INT GameOver(player, reason)
    End the game for the given player. reason can be either 1 or 2, 1 meaning the player won, 2 meaning they lost.

  • (1.1) VOID Flood(stage)
    Cause a global flood. Stage specifies the effects, stage 0 is somewhat less drastic than later stages.

  • VOID DetachRobot(index)
    Turn the AI off for the given player.

  • (1.2)INT CivilizationIndex(civname)
    Return the database index for the named civilization. Useful for comparing to a player's civilization, for example:
      if(PlayerCivilization(g.player) == CivilizationIndex("AMERICANS")) {
        // the current player is the americans
      }
    
    This is especially useful for creating victory conditions for specific civilizations in scenarios. See also PlayerCivilization and GameOver

  • INT Cities(player)
    Returns the number of cities the player has.

  • VOID AttachRobot(index)
    Cause the given player to be taken over by an AI player

  • (1.2)VOID AddGold(player, amount)
    Give amount gold to player. Negative amounts subtract gold.

  • INT IsHostile(player1, player2)
    Obsolete.

  • VOID Surrender(player)
    Unimplemented.

    System/User Interface
  • (1.1) INT SetPreference(prefname, value)
    Set the value of a boolean or integer variable to value. E.G. SetPreference("UnitAnim", 1) will turn unit animations on.

  • (1.1) INT Preference(prefname)
    Read the value of the given preference (from userprofile.txt/profile.txt). E.G. Preference("Pollution") will return 1 if pollution is enabled for this game, 0 otherwise.

  • VOID QuitToLobby()
    Quit to the network lobby in a network game.

  • INT Random(range)
    Return a random number from 0 to range.

  • VOID PlaySound(soundname)
    Play a sound.

  • (N.D)VOID NetworkAccept(player)
    Not documented by Activision.

  • (N.D)VOID NetworkEject(player)
    Not documented by Activision.

  • (1.2)VOID SetString(index, stringid)
    Set string.<index> to the string (from the string database) stringid. For Example, if you these strings in the database:
    SCENARIO_AUTHOR_MESSAGE "This scenario was written by [string.1.name]"
    		SCENARIO_AUTHOR "Joe Rumsey"
    		
    And you put this in a SLIC messagebox:
      SetString(1, ID_SCENARIO_AUTHOR);
    		  Text(ID_SCENARIO_AUTHOR_MESSAGE);
    		
    The resulting text in the message will be: This scenario was written by Joe Rumsey

  • (1.2)VOID SetStringByDBIndex(index, stringindex)
    Set string.<index> from the integer string id stringindex. See also
    GetStringDBIndex and SetString

  • (1.2)INT GetStringDBIndex(stringid)
    Get an integer string id for the named string ID. For example, if you want to store the id of SCENARIO_AUTHOR for later use:
      scenarioAuthorStringId = GetStringDBIndex(ID_SCENARIO_AUTHOR);
    
    Then to use it later,
      SetStringByDBIndex(1, scenarioAuthorStringId);
      Text(ID_SCENARIO_AUTHOR_MESSAGE);
    

  • (1.2)VOID SetActionKey(index, string)
    Set the key for key.<index>.pressed to the first character in string. (Or to ctrl + second character if the first character is '^'). To write a trigger that fires when the key is pressed, use the trigger variable key.n.pressed, where n is the index you passed to SetActionKey. E.G.:
    ...
       SetActionKey(1, "a");
    ...
    
    trigger 'aKeyPressed' when (key.1.pressed) {
        Message(g.player, "TheAKeyWasPressed");
    }		

  • VOID SaveGame(name)
    Save a game with the given name.

  • VOID LoadGame(name)
    Load the named game. Must have been saved from SLIC with SaveGame.

  • (1.1) VOID GodMode(onoff)
    Turn God mode on (onoff = 1) or off (onoff = 0) (the equivalent of the Show Map button in the editor).

  • VOID ExitToShell()
    Exit to the main screen.

  • VOID EnableTrigger('trigger_id')
    Enable the named trigger.

  • VOID EndTurn()
    End this turn.

  • VOID DisableTrigger('trigger_id')
    Disable the named trigger.

  • (1.1) VOID Deselect()
    Cause the currently selected unit/city/resource to be deselected.

  • VOID DeactivateTutorial()
    Turn off the tutorial.

  • (1.1) VOID CatchUp()
    Cause the graphics system to synchronize with the game's internal state (fast forward unit moves, for example)

  • (1.2)VOID CantEndTurn(onoff)
    When onoff is 1, set the game in a mode where you cannot end the turn. Calling with onoff to 0 sets things back to normal.

  • (1.2)VOID BlankScreen(blank)
    If blank is non-zero, set the screen to blacked out, otherwise turn it back on. Used by hotseat and email messages.

  • (1.2)VOID AddCenter(location)
    Add a recenter event on location to the animation queue.

  • (1.2)VOID AddEffect(location, namestr, soundid)
    Add a special effect at location to the animation queue. namestr is the name from speceffid.txt (E.G. "SPECEFFECT_NUKE"), soundid is the ID from sounds.txt (E.G. "SOUND_D_DEFAULTDEATH"). Example:
      AddEffect(unit.1.pos, "SPECEFFECT_NANO", "SOUND_ID_NANO_TERROR");
    
    Note that if the location is not visible to the onscreen player, this special effect won't be seen.

    Science
  • (N.D)VOID StealRandomAdvance()
    Not documented by Activision, special function for spies.

  • (N.D)VOID StealSpecificAdvance() uses dropdown
    Not documented by Activision, special function for spies.

  • VOID SetResearching(player, what)
    Set the player to research what.

  • VOID SetScience(player, level)
    Set the player's science level to level.

  • VOID GrantAdvance(player, advance)
    Give the player the advance specified.

  • INT HasAdvance(player, advance_name)
    Return true if the player has the advance.

  • VOID EnableChooseResearch()
    Reenable the choose research dialog for the tutorial player.

  • VOID DisableChooseResearch()
    The choose research dialog is disabled for the tutorial player.

  • VOID Research()
    Obsolete

    Timer
  • VOID StopTimer(int)
    Stop the given timer.

  • VOID StartTimer(index, duration)
    Start timer index, set to expire in duration seconds. trigger 'foo' when (timer.<index>) {...} to tell when this timer has expired.

  • VOID SetTimerGranularity(gran)
    Set SLIC's timer mechanism to check timers every gran seconds. 1 second is the best granularity possible. The default is 5 seconds.

    Rank
  • INT UnderseaRank(player)
    The player's rank in terms of undersea cities.

  • INT TradeRank(player)
    The player's rank in terms of number of trade routes.

  • INT SpaceRank(player)
    The rank of this player in terms of space ownership.

  • INT PopulationRank(player)
    Rank of the player in terms of total population.

  • INT MilitaryRank(player)
    The rank for the given player in terms of strength of military units.

  • INT KnowledgeRank(player)
    Rank of the player in terms of number of advances.

  • INT GoldRank(player)
    Get the rank of the player in terms of how much gold they have. 1 being the highest rank.

  • INT GeographicRank(player)
    The rank of the player according to how much land they own, 1 being the most.

  • INT CitiesRank(player)
    Returns the ranking of the player by number of cities (1 being the highest)

    Screens/Tabs
  • VOID OpenCity()
    Open the city status screen.

  • VOID OpenCityTab()
    Set the control panel to the city tab.

  • VOID OpenCiv()
    Open the civ status screen.

  • VOID OpenCivTab()
    Set the control panel to the civ tab.

  • VOID OpenDiplomacy()
    Open the diplomacy screen.

  • VOID OpenInfo()
    Open the info screen.

  • VOID OpenLaborTab()
    Open the labor tab.

  • VOID OpenMaxTab()
    Open the max tab.

  • VOID OpenOptions()
    Open the options screen.

  • VOID OpenProductionTab()
    Open the production tab.

  • VOID OpenScience()
    Open the science screen.

  • VOID OpenThroneRoom()
    Open the throne room.

  • VOID OpenTrade()
    Open the trade screen.

  • VOID OpenUnit()
    Open the unit status screen.

  • VOID EnableScreensButton()
    Enable the screens button.

  • VOID EnableTileImprovementButton()
    Enable the tile improvements button.

  • VOID DisableScreensButton()
    Disable the screens button.

  • VOID DisableTileImprovementButton()
    Disable the tile improvements button.

  • VOID LibraryAdvance(int)
  • VOID LibraryBuilding(int)
  • VOID LibraryConcept(int)
  • VOID LibraryGovernment(int)
  • VOID LibraryTerrain(int)
  • VOID LibraryTileImprovement(int)
  • VOID LibraryUnit([unit|int])
  • VOID LibraryWonder(int)
    All of the above functions open the great library to the appropriate page.

  • Author: Joe Rumsey
    Date: April 1, 1999
    Last Update: May 10, 1999
                                             Edited by: Wouter Snijders (aka Locutus)
    Date: May 23, 2000
    Last Update: May 23, 2000