====== Script Commands ====== //returns the turn count. GetTurn() //returns the tick in the current turn (in 30ths of a second) GetTurnTick() //end the battle setting the denoted side as the winner. Will be ignored if the battle already has a winner... EndBattle(winner) //return a random number [min, max] i.e. with a min value of min and a max value of max inclusive. MUST be multiplayer safe. Rand(min, max) //return a random number [min, max] i.e. with a min value of min and a max value of max inclusive. Can be used for non-multiplayer/visual only tasks which are not multiplayer safe FXRand(min, max) //take a value [0,100] and scale using Sine. Use to make random values clump around 100 more and be less likely to be 0 SinScale(value) //Output a string to the debug stream, for debugging. Can have up to 4 values which will also be logged. Log(string, [value, value, value, value]) //returns the min of the 2 values Min(a, b) //returns the max of the 2 values Max(a, b) //clear out the work array to the specified value. The work array is a set of 256 ints which can be used as a scratchpad. Note that all scripts share the same array, so beware of side effects. ClearArray(value) //get a value from the work array GetArray(index) //set a value in the work array SetArray(index, value) //return the side id set for the mission, for the given side (0 or 1). These are the value set using the side ID buttons in the editor GetSideID(side) //get a rand between and including the values of attrib[index] and attrib[index+1] GetAttribRand(id, string, index) //return the value of the give attrib for the give unit GetAttrib(id, string) //return the value of the give attrib at the index for the give unit (attrib[index]) GetAttribArray(id, string, index) //return the base value of the give attrib for the give unit GetBaseAttrib(id, string) //return the base value of the give attrib at the index for the give unit (attrib[index]) GetBaseAttribArray(id, string, index) //set the value of the give attrib for the give unit SetAttrib(id, string, value) //set the value of the give attrib at the index for the give unit (attrib[index]) SetAttribArray(id, string, index, value) //create a new attrib (which will be available across all units) does nothing is attrib already exists. AddAttrib(string) //create a new attrib array (available across all units) does nothing is attrib already exists. AddAttribArray(string) //return the value of the campaign var, if index is not provided 0 is used. index must be [0, 8] GetCampaignVar(tag, [index]) //set the value of the campaign var, if index is not provided 0 is used. index must be [0, 8] SetCampaignVar(tag, value, [index]) //return the value saved to a univeral variable. Returns 0 and creates if does not exist.This is accessible from any script. GetUniversalVar(tag) //set the value to a univeral variable. Created if doesn't exist This is accessible from any script. SetUniversalVar(tag, value) //return the value of the value stored in the options file. index [0,31] Can be used for global flags to define behaviour. GetOptionValue(index) //set the value into the options file. index [0,31] SetOptionValue(index, value) //returns 1 if in a deployment phase, 0 otherwise IsDeploying() //tells the game to skip the first player turn if the mission is set to have a deploy phase. Obviously only useful to call on turn -1 or 0 SkipFirstPlayerTurn() //tells the game not to show the onscreen start turn UI for this turn. Only works when used in the StartTurn function DisableStartTurn() //returns a map ordinate reworked correctly for the current system (border sizes etc). Should be used anywhere hardcoded coords are used. MapX(x) //returns a map ordinate reworked correctly for the current system (border sizes etc). Should be used anywhere hardcoded coords are used. MapY(y) //return a value denoting whether the tile is valid. 1 means it is on the playable area, 0 means it is in the border, -1 means it is off the map entirely IsValidTile(x,y) //returns 1 if we are currently executing an AI turn in battle mode, 0 otherwise IsAITurn() //return the side whose turn it currently is GetCurrentSide() //returns the side who is currently viewing the map (used for tile LOS etc, to show what should be seen) GetShowSide() //return the id of the currently selected unit. Returns -1 if none GetCurrentSelectedUnit() //set the currently selected unit. Use -1 for none. SetCurrentSelectedUnit(id) //add a unit to the map. The string is the unit name. If the tile is not clear the unit is not added. Returns the id of the new unit, or -1 if there was a problem AddUnit(x, y, side, typeString) //Set a squad to route to the designated tile. react denotes whether the move triggers reaction fire. SetRoute(id, x, y, [react]) //Set a squad to route to the designated tile, but reverse there. react denotes whether the move triggers reaction fire. SetRouteReverse(id, x, y, [react]) //set a squad route, but factor in the threat map denoted by the threatIndex, currently [0,2] SetRouteUsingThreat(id, x, y, threatIndex) //Find the route length for the given squad. -1 if cannot find a route. showroute show it on the map. // ignoreunits 0(can't route), 1(try to avoid), 2(route as if not there) | 128 then treat all tiles as same cost GetRouteCost(id, x, y, [showRoute], [ignoreUnits]) //return 1 if the unit can step to the tile x,y (which must be adjacent). Basically is a shortest route 2 tiles in length. CheckTileStep(id, x, y) //return the cost of this tile for this unit. Useful to find whether a unit can sit on a tile, for example. GetTileCost(id, x, y) //Route cost for the squad. -1 if cannot find route. showroute show it on the map,use threat map denoted by the threatIndex, currently [0,2]. ignoreUnit 1=target, 2=all units GetRouteCostUsingThreat(id, x, y, showRoute, ignoreUnit, threatIndex) //get the X ordinate of the [index] entry into the route just generated by a call to GetRouteCost* GetCheckRouteX(index) //get the Y ordinate of the [index] entry into the route just generated by a call to GetRouteCost* GetCheckRouteY(index) //return the number of tiles in the route generated by a call to GetRouteCost* GetCheckRouteLength() //return the unit side GetUnitSide(id) //returns 1 if the id unit is of type string (e.g. Sherman) as per the Name field in the squads file. 0 otherwise IsUnitType(id, string) //returns 1 if the unit is of the squad type string (e.g. INFANTRY) as defined in the terrain file IsUnitSquadType(id, string) //returns 1 if the unit is moving, 0 otherwise IsUnitMoving(id) //returns 1 if the unit is set as fixed in the editor IsUnitFixed(id) //returns the point cost of the given unit GetUnitCost(id) //get the face that the enemy is presenting to my position. front,side,back = 0,1,2 GetFacingFrom(me_id, enemy_id) //get the angle the enemy is presenting to my position, 0=looking straight at me, 180=I am directly behind them GetAngleFrom(me, enemy) //get the angle the enemy is presenting to the denoted tile, 0=looking straight at me, 180=I am directly behind them GetAngleFromTile(x, y, enemy) //get the face that the enemy is presenting to my position. front,side,back = 0,1,2 GetTurretFacingFrom(me_id, enemy_id) //get the angle the enemy is presenting to my position, 0=looking straight at me, 180=I am directly behind them GetTurretAngleFrom(me, enemy) //get the angle the enemy is presenting to the denoted tile, 0=looking straight at me, 180=I am directly behind them GetTurretAngleFromTile(x, y, enemy) //return the unit's X coord GetUnitX(id) //return the unit's Y coord GetUnitY(id) //return the X coord of the specified man, in 100ths GetManX(id, man) //return the Y coord of the specified man, in 100ths GetManY(id, man) //place this unit on the tile. Fails if the tile is occupied. SetUnitTile(id, x, y) //return how many men are in the unit GetUnitMen(id) //is this man dead? 0 = no, 1 = yes GetUnitManDead(id, man) //is the whole unit dead? 0 = no, 1 = yes GetUnitDead(id) //is the unit active (e.g. not dead, loaded, or removed from the map) 0 = no, 1 = yes GetUnitActive(id) //does this unit have LOS to the tile? 0 means no GetUnitLOS(id, x, y) //does this unit have LOS to the target? 0 means no GetUnitLOSToUnit(id, target) //return an id for the unit on a tile, -1 for none GetUnitOnTile(x, y) //tell our unit to turn and face the tile SetUnitTurnToFace(id, x, y) //flag this unit that enemies can react to what we just did SetUnitForReaction(id) //returns 1 if the unit has a turret, 0 otherwise GetUnitTurret(id) //returns the status of the unit, [0,3] GetUnitStatus(id) //sets the status of a unit. Valid values are 0,1,2,3. Changes the icon set used, and can be used to give extra abilities SetUnitStatus(id, status) //do an immediate switch for a unit to a given facing [0,359] SetUnitFacing(id, angle) //return the unit facing angle GetUnitFacing(id) //call a unit script each tick until fn returns 0. Can only be checking one fn at any time. Must be defined in the unit script. Can ONLY be used to call // functions with up to 6 fixed params, one used forname. SetUnitCheckFunction(id, function, [value, ...]) //show tracer fire, x,y are the end coords (in 100s), point is index of emitter 3d object, time is the duration in ticks, type is the visual type of the tracer SetUnitTracer(me, man, x, y, point, time, type) //set the weather. 0 = none, 1 = rain. 2 = snow. SetWeather(mode) //return the id of the unit if there is a clearable wreck on the tile, -1 if not GetWreckOnTile(x,y) //return 0 if the unit could sit on the tile, 1 if not IsTileBlocked(id, x, y) //move a unit instantly to this tile. If there is a unit already there, it will be swapped with the current unit UnitDeploy(id, x, y) //if the unit script contains the function return the number of params, -1 otherwise GetUnitFunction(id, functionName) //call a function on a unit with params in the expected order, limited to functions with 6 params or less, returns the function result CallUnitFunctionDirect(id, functionName, [value, ...]) //call a function on unit. Assumed to have some/all of the params X, Y, UNIT, ME as per standard menu functions. CallUnitFunction(id, functionName, x, y, me, unit) //flag the men in the unit (as defined by the mask) as being dead DestroyUnit(id, mask) //remove this unit from play. Flags = 0 just remove from tile, =1 immediate removal, =2 sink out of sight and remove RemoveUnit(id, flags) //resurrect the denoted men in a unit. This will remove any dead bodies, will appear in place on the unit tile. WILL NOT work on dead units ReviveUnit(id, mask) //return the width of the map GetMapWidth() //return the height of the map GetMapHeight() //clear threat map index with the provided value [0,255] ClearThreatMap(index, value) //get the threat map value from map index at x,y GetThreatMapValue(x, y, index) //set the threat map value from map index at x,y. Value must be [0,255] SetThreatMapValue(x, y, index, value) //load the toBeLoadedID unit onto the id unit. NOTE: Units can have more than 1 loaded unit LoadUnit(id, toBeLoadedID) //does the unit have another unit loaded onto it. Returns the first unit found if more than one loaded, -1 if none found. GetLoadedUnit(id) //unload the unit that we are carrying onto the given tile, returns 0 on success, -1 otherwise UnloadUnit(id, x, y) //get the terrain cover value for the given x,y GetTerrainCoverValue(x, y, index) //get the terrain cover value for the given x,y, based on side's LOS to the tile GetTerrainCoverValueFromLOS(x, y, index, side) //return 1 if the tile is a water tile, 0 otherwise IsTileWater(x, y) //set the los of a tile. Values are: 0=hide, 1=show SetTileLOS(x, y, side, los) //return the LOS value of a tile. 0=hidden, 1=shown, 2 = cover GetTileLOS(x,y,side) //return the cover flag for a tile. 1 set means can be hidden in GetTileCoverFlag(x,y) //damage a tile by the specified amount. Tile damages ranges [0,255] DamageTile(x, y, amount) //return the damage on a given tile. Tile damages ranges [0,255] GetTileDamage(x, y) //return the height of the center of a given tile, in 100ths. So 0 would be ground level, 100 the top of a 1st level hill, etc GetTileHeight(x,y) //play an effect on these men in a unit, using the mask as per AddVizAnim PlayEffect(id, mask, effect) //return the distance between the two units GetDistanceBetween(id, id) //return the distance between two tiles GetDistanceBetweenTiles(x1, y1, x2, y2) //how far is the unit from the tile GetDistanceFromUnit(id, x, y) //play one of the defined sfxTypes for the the unit. can optionally specify a bank to play from PlayUnitUISFX(id, sfxType, [bank]) //play a specific UI sample. can optionally specify a bank to play from PlayUISFX(sfx. [bank]) //play a world positioned sfx on the specified unit. can optionally specify a bank to play from PlayUnitSFX(id, sfxType, [bank]) //play a sample at a specified position in the world (x,y are in 100ths). can optionally specify a bank to play from PlaySFX(x, y, sfx, [bank]) //play a screen shake for N ticks, the scale determines the amount of movement, in 100ths, so 100 is the default x1 value Shake(ticks, scale) //tell the game whether or not to show the cover ? markers. 1 = yes, 0 = no ShowCoverMarkers(show) //show a text marker at the specified tile center. flags is a mask. 1=show even if tile hidden. id is user defined. must not be zero. colour is a hex string ShowTextMarker(id, x, y, string, fontid, colour, flags) //hide the specified text marker HideTextMarker(id) //show anim at center of tile xy. id is a user handle to allow for turning off etc-must NOT be zero. Use a negative id to loop the effect. sidemask=optional [0,1] // only that side can see. Set MinimapColourString to non-zero to show ShowEffectMarker(id, x, y, animFile, effect, [showside], [MinimapColourString]) //remove an effect marker HideEffectMarker(id) //set the flag for turning on or off the force visible flag. 0 for off, anything else for on SetForceVisible(id, value) //set the flag for player control of a unit. 0 for off, anything else for on SetCannotControl(id, value) //define which viz queue to use. They both execute symultaneously. Remember to set back to 0 when you are done. UseVizQueue(queue) //add a queued anim (string) to the unit, the mask is the men affected (1 == man 0, 2 == man 1, etc) neg mask means play until you tell it play something else AddVizAnim(id, anim, mask) //add a queued anim without a wait until the end (string) to the unit, the mask is the men affected (1 == man 0, 2 == man 1, etc. neg mask means play until you play something else) AddVizAnimNoWait(id, anim, mask) //move the camera (if needed) to show this tile AddVizCam(x, y) //move the camera (if needed) to center the screen on this tile AddVizCamCenter(x, y) //move the camera (if needed) to point to this unit AddVizCamUnit(id) //insert a pause in the viz queue (and thus the game) of delay ticks AddVizDelay(delay) //add a display of text to the tile center, in the colour (colour is a string hex value). alwaysShow means show even if tile is not visible to viewing side AddVizText(x, y, text, colour, [alwaysShow]) //add a display of text to the unit, in the colour (colour is a string hex value). alwaysShow means show even if tile is not visible to viewing side AddVizUnitText(id, text, colour, [alwaysShow]) //on unit id, using the mask for men, play the file with the effect (-1 for none) and define the end time (1000ths of a sec, -1 for end of the anim). // animFile must be in the campaign or core ANIM dir AddVizUnitSpotAnim(id, mask, animFile, effect, endTime) //at x,y (in 100ths) play the file with the effect (-1 for none) and define the end time (1000ths of a sec, -1 for end of the anim). animFile must be in the campaign or core ANIM dir AddVizSpotAnim(x, y, animFile, effect, endTime) //turn the unit to face the specified tile. if nowait!=0 then it doesn't pause the main vizq, only the unit. AddVizUnitTurnToFace(id, x, y, [noWait]) //turn the unit or the unit's turret (if it has one) to face the tile. if nowait!=0 then it doesn't pause the main vizq, only the unit. AddVizUnitTurnToFire(id, x, y, [noWait]) //call a function from the vizQ. Can ONLY be used to call functions with up to 7 fixed params, as one is used for the name. AddVizFunctionCall(function, [value, ...]) //wait until the denoted unit has finished moving AddVizWaitOnMove(id) //Set the value of a global bonus base value SetBonusBaseValue(name, side, value) //Get the value of a global bonus base value GetBonusBaseValue(name, side) //Get the current value (taking into account player bonuses) of the global value. If base is provided, we actually look for the string base+name as the global GetBonusValue(name, side, [base]) //set the icon mask. This is used when working out how to tag units. Each of 8 bits add a different icon to the unit. Sets the value, not OR. Only used to pass the value back to the code. SetIconMask(mask) //set the icon mask. Used by friendly units to show all the time, rather than to show actionable units for the current unit. Uses same icon set. ORs this value with the current value. SetUnitIconMask(id, mask) //turn off the bits in icon mask. Used by friendly units to show all the time, rather than to show actionable units for the current unit. Uses same icon set. Turns off only the bits requested. ResetUnitIconMask(id, mask) //begin a new string construction StartString() //add the string defined by the string id to the current string construct PrintString(stringID) //add the string defined by the string id to the current string construct (e.g. IDS_STRING0 would be accesed by (IDS_STRING, 0) PrintStringIndexed(stringID, index) //print the contents of string into the string construct (mainly for spacing, newlines etc) PrintStringLiteral(string) //print the value into the construct string PrintInt(value) //returns the string height in the requested font GetStringHeight(font) //begin a new work string construction. This is for building filenames etc. Up to 16 strings, uses 0 if no index StartWorkString([index]) //print a literal to the work string PrintWorkStringLiteral(string, [index]) //print an integer to the work string PrintWorkStringInt(value, [index]) //return the work string to any function which takes a string argument GetWorkString([index]) //render the string to the screen. colourString is a hex value (as is borderColourString if used, 0 for not used). Returns the printed text height. Everything done in 1024x768 space RenderString(x, y, font, colourString, [borderColourString], [width], [height]) //flag an area of the screen as UI. Means the UI won't treat the mouse as pointing to the map and will not show icons or options etc. tooltip&1 then //take current string & uses as tooltip. bits 8-15 used as an id passed through. BlockUIArea(x, y, width, height, [tooltip]) //render an image based on its filename (UI/TEXTURES base dir unless path is given. Resets the image area. Neg width/height flips) RenderImage(x, y, width, height, colourString, imageName, [path]) //Sets a restricted area to render from on the next call to RenderImage. All values are in 1000ths, so to only draw the bottom half of the image you would use 0, 500, 1000, 500 SetImageArea(x, y, width, height) //Set the current UI object which is being rendered to the texture and colour (colour is a hex string). Do not use the file extension SetUITexture(filename, colour) //set the current string as the tooltip which should be used by the UI for this control (if applicable) use in CHECK and/or UISETUP SetUITooltip() //set the colour the entire tooltip will be for the current control. SetUITooltipColour(colourString) //add some info to the tile tooltip which shows as the mouse is over the map. Only really useful in the CHECK fn AddTileTooltip() //set the colour the entire tooltip will be. Note if multiple functions attempt to use this in a single tick then the results will be whichever calls it last SetTileTooltipColour(colourString) //flags that this option can act as a single click if it is the only option, use in the CHECK fn AllowUISingleClick() //allows us to sort the order in which the onscreen order icons are shown. Default priority for all icons is 0. Use in the CHECK fn. SetIconPriority(priority) //return the string which is the filename of the icon for the unit whose id is given GetUnitIcon(id) //return the string ID for the unit whose id is given GetUnitStringID(id) //returns the X ordinate of the rect bounded by any prior drawing in the DrawScenarioUI functions GetUIDisplayLeft() //returns the Y ordinate of the rect bounded by any prior drawing in the DrawScenarioUI functions GetUIDisplayRight() //returns the right edge ordinate of the rect bounded by any prior drawing in the DrawScenarioUI functions GetUIDisplayTop() //returns the bottom edge ordinate of the rect bounded by any prior drawing in the DrawScenarioUI functions GetUIDisplayBottom() //returns 1 if the key is down, 0 if not. Valid values are 0 (shift), 1 (control) IsModKeyDown(keyID) //remove the ability of the player to do things. locked should be 1 to lock the UI, and 0 to unlock and return to normal LockUI(locked) //returns 1 if the UI object with the objectName has the provided id. Use in the handler function to see which object has been actioned IsUIObject(id, objectName) //sets the UI object to have the system string (from StartString etc) as its string property (if relevant) SetUIObjectString(objectName) //sets the UI object to have the system string (from StartString etc) as its tooltip property (if relevant) SetUIObjectTooltip(objectName) //enable or disable the UI object, disable if state = 0, otherwise enable SetUIObjectEnabled(objectName, state) //hide or reveal the object. Hidden if state = 0, shown otherwise SetUIObjectVisible(objectName, state) //set the texture of the provided object, if possible. If no path, comes from UI\TEXTURES (campaign or core) SetUIObjectTexture(objectName, textureName, [path]) //cause a UI object to 'bounce' in size SetUIObjectBounce(objectName) //show a tip using the current UI string. The string is made up of two parts, title and body text, seperated by a # symbol. e.g. tip title#this is the tip text ShowSystemTip() //show an arrow pointing to the object. x,y start pt in 1024x768. all vars in 1000ths, extent [0,1000] to animate ArrowUIObject(objectName, x, y, colourString, borderString, size, flare, curve, extent) //turn on tile display - this will show up tiles as per the movement when they have their tile display flag set. Anything which causes a reset of the model, //like movement or selecting a new unit, turns it off ShowTileDisplay() //turn off the tile display HideTileDisplay() //set a texture for a tile display flag value, max of 4 atm SetTileDisplayTexture(index, texture) //returns 0 if tile display mode is off, 1 if it is on GetTileDisplay() //clear all the tile display flags ClearTileDisplayFlags() //set the tile display flag for this tile. -1 is off, any other value is the index of the texture you want to show [0,3] atm SetTileDisplayFlag(x, y, value) //return the X ordinate of the Nth AI point GetAIPointX(id) //return the Y ordinate of the Nth AI point GetAIPointY(id) //set the coordinate of the Nth AI point SetAIPoint(id, x, y) //are all the units in the team at or as close as they can be to the destination. 0 for no, 1 for yes CheckTeamDestination(side, team, x, y) //set the done value of the team SetTeamDone(side, team, value) //return the done value for the team GetTeamDone(side, team) //set the team destination SetTeamDestination(side, team, x, y) //return the X ordinate of the team destination. Usually use -1 for none set GetTeamDestinationX(side, team) //return the Y ordinate of the team destination. Usually use -1 for none set GetTeamDestinationY(side, team) //return the aggression value GetTeamAggression(side, team) //set the aggression value SetTeamAggression(side, team, aggr) //set the target of the team to be the unit index (use -1 unit index to flag no target) SetTeamTarget(side, team, unit) //returns the team targeted unit, or -1 for none GetTeamTarget(side, team) //return an average team position X GetTeamX(side, team) //return an average team position Y GetTeamY(side, team) //return the data from the team. The index can be [0, MAX_TEAM_DATA]. 0 is generally used to denote any AI point that the team will head for, but this is dealt with in the script GetTeamData(side, team, index) //set the team data SetTeamData(side, team, index, value) //make a list of the units closest to the any member of the team - there is only one list. Returns the number of units on the list MakeClosestUnitsToTeamList(side, team, [includeHidden]) //make a list of the units closest to the unit - there is only one list. Returns the number of units on the list MakeClosestUnitsToUnitList(id, [includeHidden]) //returns the smallest distance from the tile x,y to any unit in the defined team, or -1 if the team does not exist (or is all dead) FindDistanceFromTeam(side, team, x, y) //get the closest unit on the current closest unit list. -1 if invalid in some way GetClosestUnit(index) //Set the destination of this unit. Must be a valid tile SetUnitDestination(id, x, y) //clear out the unit destination (set to -1, -1) ClearUnitDestination(id) //return the X unit destination. -1 for none set GetUnitDestinationX(id) //return the Y unit destination. -1 for none set GetUnitDestinationY(id) //set a target for the unit. -1 for none SetUnitTarget(id, target_id) //return the id of the target unit. -1 for none GetUnitTarget(id) //return the team ID of the specificed unit GetUnitTeam(id) //set the team value of the specified unit. team should be [0,7] SetUnitTeam(id, team) //returns the number of sides in the game (usually 2) GetSideCount() //returns the unit count for the side. Includes ALL units including those that are dead or inactive. GetUnitCount(side) //returns 0 if a unit is dead/hidden/inactive (loaded, etc). 1 otherwise IsUnitValid(id) //return the unit id of the Nth unit in a side GetUnitID(side, index) //set a route to a destination, but the actual route set is the route which costs up to the cost value in AP. Always ignores anything on the target tile. SetRouteWithCostWithThreat(id, x, y, cost, threatMapIndex) //set a route to a destination, but the actual route set is the route which costs up to the cost value in AP. Always ignores anything on the target tile. SetRouteWithCost(id, x, y, cost) // Call bonus function. The function is called from a bonus script. Returns function return value. If the function is not in the mission, returns -999. // If the fn does not take a param it will be ignored CallBonusFunction(functionName, side, x, y, unit) //same as ShowUIScreen below, but sets this config as being the briefing screen so it can be reviewed later again by the player. Does not show the screen. SetBriefingScreen(screenName, animName, textTag, [imageTags]) //show the UI object screen, setting up with text of the form textTag_objName for each object. Image tags are 1 or more obj:file pairs seperated by a $ ShowUIScreen(screenName, animName, textTag, [imageTags]) //show the briefing screen (if set up). Just a helper to avoid having to maintain 2 data sets ShowBriefing() //hide a UI screen which is showing HideUIScreen(screenName) //Hides the custom UI if state is 0, otherwise shows it ShowCustomUI(state) //returns the ID of a given pairing of set/tile. -1 means the tile doesn't exist. These are the internal folder/tile names, not the displayed localised names. //NOTE: this will not be a constant as game data and custom data changes, so don't rely on it. GetTileID(set, name) //place a tile in its layer, replacing anything else there. Rotation is [0,3] PlaceTile(x, y, id, rotation) //return the id of the tile on the tile at the layer. Returns -1 if nothing there. GetTileOnTile(layer, x, y) //remove the denoted tile if it is on the tile. You cannot remove the layer 0 (non-overlay) tile RemoveTile(x, y, id) //returns the difficulty mode. 0 for normal, 1 for easy GetDiffMode() //add the object at x,y (in 100ths) to the map. Returns an id for use with other object functions - not constant across game runs. Returns -1 if not valid object PlaceObject(x, y, objectSet, objectName) //return the id of the Nth object on the given tile - not constant across game runs. Returns -1 if no object at that index, so when you run out of objects. GetTileObject(x, y, index) //return the id of the Nth object on the map of the described type. If objectSet is an empty string then any object matching the objectName will be returned. //Returns -1 if no more are found. Not case sensitive GetObjectFromName(objectSet, objectName, index) //returns 1 if the object is part of the set provided, 0 otherwise. Not case sensitive. IsObjectSet(id, setName) //returns 1 if the object is the type named, 0 otherwise. Not case sensitive. IsObjectName(id, objectName) //set the data in an object, index must be [0,3]. SetObjectData(id, index, value) //get the data in an object, index must be [0,3]. GetObjectData(id, index) //change the position of an existing object (in 100ths) SetObjectPosition(id, x, y) //change the rotation of an existing object, in degrees and 100ths SetObjectRotation(id, rotation) //change the scale of an existing object, scale is in 100ths SetObjectScale(id, scale) //return the X position of an existing object in 100ths GetObjectPositionX(id) //return the Y position of an existing object in 100ths GetObjectPositionY(id) //return the rotation of an existing object, in degrees and 100ths GetObjectRotation(id) //return the scale of an existing object, scale is in 100ths GetObjectScale(id) //delete the object denoted by the id DeleteObject(id) //return the data held by tiles. index 0 is used in carryover mechanics. index must be [0,3]. All entries are unsigned bytes [0,255] GetTileData(x, y, index) //set the data held by tiles. index 0 is used in carryover mechanics. index must be [0,3]. value is an unsigned byte so [0,255] SetTileData(x, y, index, value) //return the number of carried over units for the given side from the given mission (first mission is index 0, etc) GetCarryoverCount(missionIndex, side) //return a new unit created from the carryover data for the index'th entry in the carryover data. returns -1 if the unit cannot be created. AddCarryoverUnit(x, y, missionIndex, side, index) //returns 1 if the denoted global exists, 0 otherwise. The script name must be the filename of the script, path is not required. CheckScriptGlobal(scriptName, globalName) //return the value of a global from a known script. The script name must be the filename of the script, path is not required. If either the script or global //cannot be found, zero is returned. Does not autocreate if missing. GetScriptGlobal(scriptName, globalName) //set the value of a global from a known script. The script name is filename of the script, path is not required. If the script or global not found, zero is //returned, otherwise 1. The return value can be ignored as desired. Does not autocreate if missing. SetScriptGlobal(scriptName, globalName, value) //enter the AI placement mode. point must be [0,7] currently. Marker can be 0 (use the default AI marker) or the ID of a user marker already on the map PlaceAIPoint(point, marker) //returns 1 if running in the editor, 0 otherwise. Useful mainly in plugins as normal script functionality is off in the editor. InEditor() //close this plugin. Can only be used within a plugin script ClosePlugin()