Since this thread is already becoming a place for dumping D:OS2 info, I'll shamelessly put this here :P
CharScript/ItemScript Functions
Set(OUT OBJECT:variable, OBJECT:value)
Set the value of a variable
SetVar(CHARACTER|ITEM:object, FIXEDSTRING:variableName, OBJECT:value)
Set the value of a global variable
Cast(OUT OBJECT variable, OBJECT value)
Casts the value to the variable
Print(OUT STRING:output, STRING:text)
Prints the text to the output with possible parameters: [1], [2], ...
Add(INOUT INT|FLOAT|FLOAT3:variable, INT|FLOAT|FLOAT3:value)
Adds both values and stores it in the first variable
Subtract(INOUT INT|FLOAT|FLOAT3:variable, INT|FLOAT|FLOAT3:value)
Subtracts both values and stores it in the first variable
Multiply(INOUT INT|FLOAT|FLOAT3:variable, INT|FLOAT:value)
Multiplies both values and stores it in the first variable
Divide(INOUT INT|FLOAT|FLOAT3:variable, INT|FLOAT:value)
Divides both values and stores it in the first variable
Abs(INOUT INT|FLOAT:variable)
Takes the absolute value of a variable
Clamp(INOUT INT|FLOAT:variable, INT|FLOAT:min, INT|FLOAT:max)
Clamps a variable between min and max
GetRandom(OUT OBJECT:variable, OBJECT:value, OBJECT:value, OBJECT:value)
Fills in the variable with random one of the values.
GetWeightedRandom(OUT OBJECT:variable, OBJECT:value, INT|FLOAT:weight, ...)
Gets a weighted random of the given values!
GetRandomBetween(OUT INT|FLOAT:variable, INT|FLOAT:min, INT|FLOAT:max)
Gets a random value between min and max (both included)
GetRandomPositionInTrigger(OUT FLOAT3:variable, TRIGGER:areaTrigger)
Get a random position in a trigger area
GetElement(OUT OBJECT:variable, INT:index, OBJECT:value, OBJECT:value, OBJECT:value)
Fills in the variable with the index one of the values (starting from 0)
SetPriority(FIXEDSTRING:reactionName, INT:priority)
Changes the priority of a reaction. Priority 0 and below are not executed!
DelayReaction(FIXEDSTRING:reactionName, FLOAT:timeInSeconds)
The reaction will not be chosen for the specified time
SetScriptFrame(CHARACTER:character, FIXEDSTRING:frame)
Sets the scriptframe on the character.
ClearScriptFrame(CHARACTER:character)
Clears the scriptframe on the character.
Goto(FIXEDSTRING:labelName)
Jumps to the label
GotoIfEqual(OBJECT:variable, OBJECT:value, FIXEDSTRING:labelName)
Jumps to the label if the 2 objects are equal
GotoRand(FIXEDSTRING:labelName, FIXEDSTRING:labelName, FIXEDSTRING:labelName, FIXEDSTRING:labelName, FIXEDSTRING:labelName)
Jumps to a random label in the list
CreatePuddleAt(GAMEOBJECT|FLOAT3:target, SURFACE:type, INT:cellAmountMin, INT:cellAmountMax, INT:growAmountMin, INT:growAmountMax, )
Spawn a puddle at the target's position for a certain lifetime (in turns)
CreateSurfaceAt(GAMEOBJECT|FLOAT3:target, SURFACE:type, FLOAT:radius, INT:lifeTime[, GAMEOBJECT:owner])
Spawn a surface at the target's position for a certain lifetime (in turns)
CreateSurfaceInPolygon(GAMEOBJECT:owner, SURFACE:type, FLOAT:duration, FLOAT:growTimer, INT:growStep, GAMEOBJECT|FLOAT3:point1, GAMEOBJECT|FLOAT3:point2, GAMEOBJECT|FLOAT3:point3, ...)
Spawn a polygon surface at the target's position. Grows <growStep> every <growTimer>.
CreateSurfaceInAreaTrigger(GAMEOBJECT:owner, SURFACE:type, FLOAT:duration, FLOAT:growTimer, INT:growStep, TRIGGER:areaTrigger)
Spawn a surface within <areaTrigger>. Grows <growStep> every <growTimer>.
CreateConeSurfaceAt(GAMEOBJECT|FLOAT3:start, GAMEOBJECT|FLOAT3:target, SURFACE:type, FLOAT:radius, FLOAT:angle, FLOAT:duration)
Spawn a Cone surface at the target's position
PlayEffectAt(GAMEOBJECT|FLOAT3:target, STRING:effectName)
Plays an effect at the target's position
PlayLoopEffectAt(OUT INT64:effectHandle, GAMEOBJECT|FLOAT3:target, STRING:effectName)
Plays an effect at the target's position
ExplodeAt(GAMEOBJECT|FLOAT3:target, SKILL:projectileSkill, [INT:casterLevel=-1, CHARACTER|ITEM:cause])
Trigger an explosion of a projectile skill at the target's position. The cause will trigger NPC behavior as if the cause casted the projectile
DisplayText(CHARACTER|ITEM:target, FIXEDSTRING:text, FLOAT:timeInSeconds)
Displays text above the character/item for a certain amount of time. It will replace the current text, including dialogtext
DisplayCombatInfoText(CHARACTER|ITEM:target, FIXEDSTRING:text, FLOAT:timeInSeconds)
Displays text above the character/item for a certain amount of time. It will replace the current text, including dialogtext
StatusText(CHARACTER|ITEM:target, FIXEDSTRING:text)
Adds statustext above the character/item for a short amount of time. Will not replace texts or dialogtexts
DebugText(CHARACTER|ITEM:target, STRING:text)
Adds debugtext above the character/item for a short amount of time.
CombatLogText(CHARACTER|ITEM:target, FIXEDSTRING:text, INT:filterID, INT:broadcastID)
Adds combatlog text inside the combat log window. Color-/SizeFormatting should already be applied, if not color and size of the string will be NORMAL. filterID determines what filter shows/hides the text. broadcastID determines who will be able to see the message (0 hearingrange. 1 party. 2 all)
Log(STRING:text, ...)
Log's the the scriptlog. (for debugging purposes)
Output(STRING:text, ...)
Pass text with optional parameters to the output panel (e.g. Output("An int [1]", INT:10))
Assert(STRING:text, ...)
Pass text with optional parameters to display as an assert message (e.g. Assert("This number is wrong: [1]", INT:666))
Label(FIXEDSTRING:name)
Marks this line as a label where Goto actions can jump to
StartTimer(FIXEDSTRING:timerName, FLOAT:timeInSeconds, INT:repeatCount)
Start a timer which will throw the timer event. Set repeatcount < 0 for a permanent timer.
StopTimer(FIXEDSTRING:timerName)
Stop a timer which will throw the timer event
DialogStart(OUT INT:instanceId, STRING:dialog, CHARACTER|ITEM:target, CHARACTER|ITEM:target, CHARACTER|ITEM:target, CHARACTER|ITEM:target)
Start a dialog between the targets
DialogRequestStop(CHARACTER|ITEM:speaker, STRING:dialog)
Stops a certain dialog on a certain speaker
Check(-)
Reevaluate the conditions in the CHECK section of this reaction
Reset(-)
Resets the current reaction. It will start from the beginning again
Interrupt(FIXEDSTRING:reactionName)
Interrupt the reaction.
GlobalSetEvent(FIXEDSTRING:eventName)
Sets a global event. Scripts and Story can catch it.
GlobalClearEvent(FIXEDSTRING:eventName)
Clears a global event. Scripts and Story can catch it.
StopLoopEffect(INT64:fxHandle)
Stops a looping effect
IterateItems(FIXEDSTRING:eventname[, FIXEDSTRING:tag])
Launch iterate event for each item. If you pass a tag, it has to have that tag.
IterateItemsNear(GAMEOBJECT:source, FLOAT:radius, FIXEDSTRING:eventname[, FIXEDSTRING:tag])
Launch iterate event for each item in range. If you pass a tag, it has to have that tag.
IterateItemsOnObject(CHARACTER|ITEM:source, FIXEDSTRING:eventname[, FIXEDSTRING:tag])
Launch iterate event for each item standing on the source. If you pass a tag, it has to have that tag.
IterateParty(FIXEDSTRING:eventname, [COMPARE:howTo, COMPAREFUNC:compareFunc, CHARACTER:partyMember, FIXEDSTRING:tag])
Launch iterate event for each member of all parties. If you pass a party member only members of that party will be considered. If you pass compare parameters, it will iterate over them in the requested order. If you pass a tag, it has to have that tag.
IterateCharacters(FIXEDSTRING:eventname, [COMPARE:howTo, COMPAREFUNC:compareFunc, FIXEDSTRING:tag])
Launch iterate event for each character. If you pass compare parameters, it will iterate over them in the requested order. If you pass a tag, it has to have that tag.
IterateCharactersNear(GAMEOBJECT:source, FLOAT:radius, FIXEDSTRING:eventname, [COMPARE:howTo, COMPAREFUNC:compareFunc, FIXEDSTRING:tag])
Launch iterate event for each character in range. If you pass compare parameters, it will iterate over them in the requested order. If you pass a tag, it has to have that tag.
IterateCharactersOnObject(CHARACTER|ITEM:source, FIXEDSTRING:eventname, [COMPARE:howTo, COMPAREFUNC:compareFunc, FIXEDSTRING:tag])
Launch iterate event for each character standing on the source. If you pass compare parameters, it will iterate over them in the requested order. If you pass a tag, it has to have that tag.
IterateCharactersInCombat(CHARACTER|ITEM:source, FIXEDSTRING:eventname, [COMPARE:howTo, COMPAREFUNC:compareFunc, FIXEDSTRING:tag])
Launch iterate event for each character in combat with the source. If you pass compare parameters, it will iterate over them in the requested order. If you pass a tag, it has to have that tag.
IterateHostilesFor(CHARACTER:source, FIXEDSTRING:eventname, [COMPARE:howTo, COMPAREFUNC:compareFunc, FIXEDSTRING:tag])
Launch iterate event for each character who is targetting the source. If you pass compare parameters, it will iterate over them in the requested order. If you pass a tag, it has to have that tag.
SpawnCharacter(OUT CHARACTER:result, CHARACTERTEMPLATE:rootTemplate, GAMEOBJECT|FLOAT3:position, INT:playSpawn, [INT:isSummon=0, CHARACTER:summonOwner=null, INT:overrideLevel=-1])
Spawns a character
SpawnItem(ITEMTEMPLATE:rootTemplate,GAMEOBJECT|FLOAT3:position, OUT ITEM:result)
Spawns an item
ShootLocalProjectile(SKILL:projectileSkill,CHARACTER|ITEM:source,FLOAT3:localOffset,FLOAT3:direction,[INT:casterLevel, CHARACTER|ITEM:caster])
Spawns a projectile at the source (with offset, can be null) shooting at the target
ShootLocalProjectileAt(SKILL:projectileSkill,CHARACTER|ITEM:source,FLOAT3:localOffset,GAMEOBJECT|FLOAT3:target,[INT:casterLevel, CHARACTER|ITEM:caster])
Spawns a projectile at the source (with offset, can be null) shooting at the target
ShootWorldProjectile(SKILL:projectileSkill,CHARACTER|ITEM:source,FLOAT3:worldPos,FLOAT3:direction,[INT:casterLevel])
Spawns a projectile at worldPos shooting at the target. Source can be null.
ShootWorldProjectileAt(SKILL:projectileSkill,CHARACTER|ITEM:source,FLOAT3:worldPos,GAMEOBJECT|FLOAT3:target,[INT:casterLevel])
Spawns a projectile at worldPos shooting at the target. Source can be null.
ShootLocalCone(SKILL:coneSkill,CHARACTER|ITEM:source,FLOAT3:localOffset,FLOAT3:direction,[INT:casterLevel, CHARACTER|ITEM:caster])
Shoots a cone from source (with offset, can be null) in a direction
ShootLocalConeAt(SKILL:coneSkill,CHARACTER|ITEM:source,FLOAT3:localOffset,GAMEOBJECT|FLOAT3:target,[INT:casterLevel, CHARACTER|ITEM:caster])
Shoots a cone from source (with offset, can be null) at the target
ShootWorldCone(SKILL:coneSkill,CHARACTER|ITEM:source,FLOAT3:worldPos,FLOAT3:direction,[INT:casterLevel])
Shoots a cone from worldPos in a direction. Source can be null.
ShootWorldConeAt(SKILL:coneSkill,CHARACTER|ITEM:source,FLOAT3:worldPos,GAMEOBJECT|FLOAT3:target,[INT:casterLevel])
Shoots a cone from worldPos at the target. Source can be null.
SetVisible(CHARACTER|ITEM:object, INT:visible)
Sets a character or item visible or not.
GetPosition(GAMEOBJECT:object,OUT FLOAT3:src)
Get the current position of an object
GetForwardDirection(GAMEOBJECT:object,OUT FLOAT3:direction)
Get the current forward direction of an object
GetRightDirection(GAMEOBJECT:object,OUT FLOAT3:direction)
Get the current right direction of an object
GetUpDirection(GAMEOBJECT:object,OUT FLOAT3:direction)
Get the current up direction of an object
GetDirection(GAMEOBJECT|FLOAT3:src,GAMEOBJECT|FLOAT3:target,OUT FLOAT3:direction[, OUT FLOAT:distance])
Get the direction from src to target (optional: returns the distance between the objects as well)
GetRotation(GAMEOBJECT:object, OUT FLOAT3:vector)
Get the rotation of an object
RotateY(INOUT FLOAT3:vector, FLOAT:degrees)
Rotate the vector around the Y-axis for a certain angle (in degrees)
SetHealth(CHARACTER|ITEM:target, FLOAT:procent)
Set a characters or items health on the given percentage. (percentage between 0 and 1)
PlaySound(CHARACTER|ITEM:target, STRING:soundEvent)
Plays a sound event at the target
PlayMusicForEveryone(STRING:musicEvent)
Plays a music event on all the clients
PlayMusicOnCharacter(CHARACTER:target, STRING:musicEvent)
Plays a music event on a character for all peers (3D)
PlayMusicForPeer(CHARACTER:target, STRING:musicEvent)
Plays a music event on the peer of the character
PlayMusicForPeerWithInstrument(CHARACTER:target, CHARACTER:charInstrument, STRING:musicEvent)
Plays a music event on the peer of the character concated with _INSTRUMENT
SetX(INOUT FLOAT3:vector, FLOAT|INT:value)
Sets the X component of the FLOAT3
SetY(INOUT FLOAT3:vector, FLOAT|INT:value)
Sets the Y component of the FLOAT3
SetZ(INOUT FLOAT3:vector, FLOAT|INT:value)
Sets the Z component of the FLOAT3
SetAtmosphere(FIXEDSTRING:atmosphereTriggerUUID, FIXEDSTRING:atmosphere)
Changes the atmosphere of the trigger
ResetAtmosphere(FIXEDSTRING:atmosphereTriggerUUID)
Resets the atmosphere of the trigger
AddStatusInfluence(CHARACTER|ITEM:object, STATUS:statusId, FLOAT:strength, [FIXEDSTRING:extraData=""], [INT:isWeather=1], [INT:force=1])
Adds the status influence strength on the object.
RemoveStatusInfluence(CHARACTER|ITEM:object, STATUS:statusId, FLOAT:strength, [FIXEDSTRING:extraData=""], [INT:isWeather=1])
Removes the status influence strength on the object.
AddTemporaryStatusInfluence(CHARACTER|ITEM:source, CHARACTER|ITEM:object, STATUS:statusId, FLOAT:strength, [FIXEDSTRING:extraData=""], [INT:isWeather=1])
Adds a temporary status influence strength on the object.. It will be gone in a few seconds if it's not set again
CallFunction(FIXEDSTRING:functionName)
Calls a function with the ID
SetMaterial(CHARACTER|ITEM:object, FIXEDSTRING:materialUUID, INT:duration, INT:applyOnBody, INT:applyOnArmor, INT:applyOnWeapon[)
Changes the material of the object for a set time (in turns), -1 is infinite. applyNormalMap: Copy the original materials normal map
TeleportTo(CHARACTER|ITEM:object, GAMEOBJECT|FLOAT3:target, [INT:Force=0])
Teleport object to or near the target
Transform(CHARACTER|ITEM:object, CHARACTERTEMPLATE|ITEMTEMPLATE:root [, FIXEDSTRING:fx, INT:replaceScripts=1, OUT FLOAT:currentHP])
Transforms <object> using <root>, returns <currentHP>, plays <fx>.
SaveGame(FIXEDSTRING:saveGameName)
Save the savegame with name <saveGameName>
LoadGame(FIXEDSTRING:saveGameName)
Load the savegame with name <saveGameName>
LoadLevel(FIXEDSTRING:levelName)
Load the level with name <levelName>
KillCombat(CHARACTER:character)
Kill all the enemies in the combat which contains <character>
SetTag(CHARACTER|ITEM:object, FIXEDSTRING:tag)
Sets the Tag on the Object
ClearTag(CHARACTER|ITEM:object, FIXEDSTRING:tag)
Clears the Tag on the Object
SetGlobalFlag(FIXEDSTRING:flagname)
Sets the Global Flag
ClearGlobalFlag(FIXEDSTRING:flagname)
Clears the Global Flag
SetFlag(CHARACTER|ITEM:object, FIXEDSTRING:flagname)
Sets the Flag on the Object
ClearFlag(CHARACTER|ITEM:object, FIXEDSTRING:flagname)
Clears the Flag on the Object
SetUserFlag(CHARACTER:object, FIXEDSTRING:flagname)
Sets the Flag on the user's characters
ClearUserFlag(CHARACTER|ITEM:object, FIXEDSTRING:flagname)
Clears the Flag on the user's characters
SetPartyFlag(CHARACTER|ITEM:object, FIXEDSTRING:flagname)
Sets the Flag on the party's characters
ClearPartyFlag(CHARACTER|ITEM:object, FIXEDSTRING:flagname)
Clears the Flag on the party's characters
StartVoiceBark(STRING:barkName, CHARACTER:character)
Start a voicebark on character
ConfrontationDone(INT: CrimeID, CHARACTER:lead, CHARACTER:criminal, ...)
Resolve the crime with id CrimeID for the specified criminals
CrimesceneInvestigationDone(CHARACTER:investigator)
Crimescene is considered investigated by this NPC, start looking for culprits
ListAdd(LIST<OBJECT>:list, OBJECT:entry)
Add <entry> at the back of <list>
ListRemove(LIST<OBJECT>:list, INT:index)
Remove the entry at <index> of <list>
ListSet(LIST<OBJECT>:list, INT:index, OBJECT:entry)
Set the entry at <index> of <list> to <entry>
ListClear(LIST<OBJECT>:list)
Remove all entries of <list>
EndTurn(CHARACTER|ITEM:Target)
Ends the object's current turn
SetCanFight(CHARACTER|ITEM:entity, INT:enabled[, INT:wholeGroup=0])
Enables/Disables the fact if the entity can fight. Optional for the whole group
SetCanJoinCombat(CHARACTER|ITEM:entity, INT:enabled[, INT:wholeGroup=0])
Enables/Disables the fact if the entity can join combats. Optional for the whole group
SetIsBoss(CHARACTER|ITEM:entity, INT:enabled)
Enables/Disables the fact if the entity is a boss.
GetAIHintTriggers(OUT LIST<TRIGGER>:triggers[, [LIST]FIXEDSTRING:tags, INT:needsAllTags = -1)
Returns all AIHintAreaTriggers in <triggers>. Uses contraints if set.
SetCombatTimeout(CHARACTER|ITEM:entity, FLOAT:timer)
Overwrites the entity's combat timeout check.
ResetCombatTimeout(CHARACTER|ITEM:entity)
Resets the entity's combat timeout check.
EnterCombat(CHARACTER|ITEM:source, CHARACTER|ITEM:target)
Enters combat with target
LeaveCombat(CHARACTER|ITEM:source)
Leaves the combat
SetFaction(CHARACTER|ITEM:target, FIXEDSTRING:faction)
Changes the faction of a character or item
SetInvulnerable(CHARACTER|ITEM:target, INT:bool)
Makes the character or item invulnerable or not. (Allow damage)
JumpToTurn(CHARACTER|ITEM:Target)
Jumps to targets turn (ends the current turn)
Sleep(FLOAT:timeInSeconds)
Sleeps for a certain amount of time
CharacterAttack(CHARACTER|ITEM|FLOAT3:target [,INT:alwaysHit])
Moves in weapon range and attacks the target
CharacterAttackWithoutMove(CHARACTER|ITEM|FLOAT3:target [,INT:alwaysHit])
Attacks the target without checking weaponranges and without moving
CharacterMoveTo(GAMEOBJECT|FLOAT3:target, [INT:running=0, INT:shouldArrive=0, INT:longPath=0, FLOAT:minDistance=1.5, FLOAT:maxDistance=minDistance+2.5])
Move to the target. Set shouldArrive to 1 if you want a guaranteed move. (teleports on fail)
CharacterAiMove(FLOAT3:target, CHARACTER:targetCharacter, ITEM:targetItem)
Moves to the target, calculated by the AI. Should only be used with results from the AI!
CharacterMoveInRange(GAMEOBJECT|FLOAT3:target, FLOAT:rangeMin, FLOAT:rangeMax, INT:running, [LIST<TRIGGER>:hintTriggers=null, INT:mustBeInTrigger=0])
Move within a certain range of target. Optionally pass hinttriggers in which the result is preferred/necessary.
CharacterMoveInWeaponRange(GAMEOBJECT|FLOAT3:target, INT:running, [LIST<TRIGGER>:hintTriggers=null, INT:mustBeInTrigger=0])
Move within weapon range of target. Optionally pass hinttriggers in which the result is preferred/necessary.
CharacterMoveInSkillRange(GAMEOBJECT|FLOAT3:target, SKILL:skill, INT:running, [LIST<TRIGGER>:hintTriggers=null, INT:mustBeInTrigger=0])
Move within skill range of target. Optionally pass hinttriggers in which the result is preferred/necessary.
CharacterMoveOutOfSight(FLOAT:angle)
Move out of screen
CharacterPlayAnimation(FIXEDSTRING:animation [, INT:exitOnFinish=1, INT:waitForCompletion=1])
Plays a certain animation ExitOnFinish means if the exit will kill itself after it was played (revert back to still)
CharacterStopAnimation(-)
Stops all animations.
CharacterPickUpItem(ITEM:item)
Moves close enough to the item if necessary and picks it up
CharacterUseItem(ITEM:item [, INTEGER:LongPath])
Moves close enough to the item if necessary and uses it
CharacterMoveItem(ITEM:item, INTEGER:ignoreWeight, INTEGER:ignoreAPCost [, INTEGER:ignoreDangerousSurfaces=1, INT:amount=-1, GAMEOBJECT|FLOAT3:destination])
Moves close enough to the item if necessary and moves it to the destination. Will try to find a destination if not supplied.
CharacterAddSkill(CHARACTER:character, SKILL:skill[, INT:ShowNotification=0])
Adds <skill> to <character>
CharacterRemoveSkill(CHARACTER:character, SKILL:skill)
Removes <skill> from <character>
CharacterUseSkill(SKILL:skill, GAMEOBJECT|FLOAT3:target [, GAMEOBJECT|FLOAT3:target2, ITEM:skillItem, INT:ignoreHasSkill=0])
Cast a skill
CharacterAppearAt(GAMEOBJECT|FLOAT3:target, INT:playspawn)
Appear at the target
CharacterAppearOutOfSightTo(GAMEOBJECT:target, FLOAT:angle, INT:playspawn)
Appears out of sight to the players from a certain angle while being able to reach target
CharacterAppearOnTrailOutOfSightTo(CHARACTER:target, FLOAT:angle, INT:playspawn)
Appears out of sight to the players, on its previous locations, from a certain angle while being able to reach target
CharacterDisappear(FLOAT:angle[, INTEGER:isRunning=0])
Move out of screen and go of stage, will run if <isRunning> is not 0
CharacterSetOffStage(-)
Set Off Stage
CharacterSetOnStage(-)
Set On Stage
CharacterLookAt(GAMEOBJECT|FLOAT3|SPLINE:target[, INT:snapToTarget=0, INT:angleTolerance=0])
Rotates the character to look at the target (Closest spline point in case of a spline).
CharacterLookFrom(GAMEOBJECT|SPLINE:target[, INT:snapToTarget=0])
Rotates to the character so it has the same rotation as the target (Closest spline point in case of a spline).
CharacterFollow(CHARACTER:target, FLOAT:durationInSeconds, INT:run)
Follow the target for a certain time
CharacterFollowOwnerOrLeader(FLOAT:durationInSeconds, INT:run)
Follow the leader or owner for a certain time
CharacterWander(FLOAT|TRIGGER:range, FLOAT:durationInSeconds [, INT:run, GAMEOBJECT:anchor])
Wander around for a certain time
CharacterSwitchWeaponType(WEAPON:type)
If necessary switch to the new weapon type
CharacterFleeFrom(RELATION:relation, FLOAT:range)
Run away from certain characters if necessary
CharacterFleeFromSurface(SURFACE:surface)
Run away from a certain surface if necessary
CharacterFleeFromDangerousSurface(-)
Run away from a dangerous surfaces if necessary
CharacterAddSourcePoints(CHARACTER:character, INT:amount)
Adds x source points (x can be negative to substract)
CharacterDie(CHARACTER:character[, DEATH:type=DoT])
Kills the character
CharacterHeal(CHARACTER:character, FLOAT:percentage)
Heals the character
CharacterConsume(CHARACTER:character, POTION:potion)
Makes the character consume a potion. Doesn't cost any AP and will just execute the result of the potion.
CharacterDisableAllCrimes(CHARACTER:target)
Disables all generic behaviours for <target>.
CharacterEnableAllCrimes(CHARACTER:target)
Enables all generic behaviours for <target>.
CharacterEnableCrime(CHARACTER:target, STRING:crime, ...)
Enables the specified generic behaviours for <target>.
CharacterDisableCrime(CHARACTER:target, STRING:crime, ...)
Disables the specified generic behaviours for <target>.
CharacterSetLongInvestigationDuration(CHARACTER:target)
Doubles the time it takes for the investigation to time out. Use this when the character needs to move a long path before investigating.
CharacterAiCalculate(-)
Calculate the AI of the character
CharacterAiStopCalculate(-)
Stop the calculation of the AI of the character
CharacterAiFinishMoveSkill(-)
Finish the current MoveSkill.
CharacterAiAddInterestingItem(CHARACTER:character, ITEM:item)
Make it interesting for the AI to destroy that Item
CharacterAiRemoveInterestingItem(CHARACTER:character, ITEM:item)
Make it no longer interesting for the AI to destroy that Item
CharacterSetArchetype(CHARACTER:character, ARCHETYPE:archetype)
Sets the archetype of the character, used in AI calculations
CharacterSetStoryNPC(CHARACTER:character, INT:bool)
Makes the character storyNPC or not.
CharacterAddActionPoints(CHARACTER:character, INT:amount)
Give character some action points
CharacterSetImmortal(CHARACTER:character, INT:bool)
Makes the character immortal or not. (Allow dying)
CharacterPlayEffect(CHARACTER:character, STRING:effect [,FIXEDSTRING:boneName])
Plays an effect on the character and it follows the character
CharacterPlayLoopEffect(OUT INT64:effectHandle, CHARACTER:character, STRING:effect [,FIXEDSTRING:boneName])
Plays a looping effect on the character and it follows the character
CharacterEvent(CHARACTER:character, STRING:eventName)
Throw a character event which you can catch in scripts and story
CharacterItemEvent(CHARACTER:character, ITEM:item, STRING:eventName)
Throw a character/item event which you can catch in scripts and story
CharacterCharacterEvent(CHARACTER:character1, CHARACTER:character2, STRING:eventName)
Throw a character/character event which you can catch in scripts and story
CharacterSetRelationIndivToIndiv(CHARACTER:source, CHARACTER:target, INT:relation)
Changes the relationship between 2 characters.
CharacterForceUpdate(INT:forceUpdate)
Makes sure the attached character is always being update or not.
CharacterSetEnemy(CHARACTER:character, CHARACTER:enemy)
Sets the current enemy of character
CharacterApplyStatus(CHARACTER:character, STATUS:statusId [, INT:turns=null, INT:force=0])
Applies the status to the character When turns is -1 it's a permanent status When turns is -2 it's a keep alive status (which means it will die if it's not applied again within 1 second)
CharacterRemoveStatus(CHARACTER:character, STATUS:statusId [, STATUS:reasonStatusID=null])
Removes the status from the character
CharacterDestroy(CHARACTER:character)
Destroys the character
CharacterSetCanSpotSneakers(CHARACTER:character, INT:enabled)
Enables/Disables the fact if the character can spot sneaking characters.
CharacterSetAttackOfOpportunity(CHARACTER:character, INT:enabled)
Enables/Disables the fact if the character can do attack of opportunities.
CharacterResurrect(CHARACTER:character [, INT:Percentage = 100])
Resurrects the character at [2]% health.
CharacterAddToInventory(CHARACTER:character, FIXEDSTRING:itemStatsObject[, INT:amount, INT:showInTrade=1])
Add the item to the character
CharacterRemoveFromInventory(CHARACTER:character, FIXEDSTRING:itemStatsObject[, INT:amount])
Remove the item from the character. If Amount is -1, then all are removed
CharacterDrinkPotion(FIXEDSTRING:statID)
Makes the character drink a potion from the inventory.
CharacterSetAnimationOverride(CHARACTER:character, FIXEDSTRING:animation)
Sets an animation override, only walk/run/die animations can override it.
CharacterUseActionPoints(CHARACTER:character, INT:amount [, OUT INT:succeeded])
Uses x action points
CharacterAddTreasureTable(CHARACTER:character, FIXEDSTRING:treasureTable)
Adds <treasureTable> to the treasure list of <character>
CharacterRemoveTreasureTable(CHARACTER:character, FIXEDSTRING:treasureTable)
Removes <treasureTable> from the treasure list of <character>
CharacterClearTreasureTables(CHARACTER:character)
Removes all treasure tables from <character>
CharacterSetTemporaryHostileRelation(CHARACTER:character, CHARACTER:otherCharacter)
Creates a temporary hostile relation between the 2 characters!
CharacterSetFightMode(CHARACTER:character, INT:fight [, INT:force=0])
Set the character in sheath/unsheated mode.
CharacterSetStats(CHARACTER:character, FIXEDSTRING:statsEntry [, INT:keepVitality=0, INT:keepAP=0, INT:keepLevel=0, OUT FLOAT:currentHP])
Applies <statsEntry> from character.xlsm to <character>, returns <currentHP>.
CharacterSetWalkSpeedOverride(CHARACTER:character, INTEGER:override [, FLOAT:walkSpeed])
Sets walk speed override of <character>, removes it if <override> is 0
CharacterSetRunSpeedOverride(CHARACTER:character, INTEGER:override [, FLOAT:runSpeed])
Sets run speed override of <character>, removes it if <override> is 0
CharacterSetHasDialog(CHARACTER:character, INTEGER:bool)
Enables/Disables the dialog of the character
CharacterInitPatrol(SPLINE:spline, INT:splineIndex, INT:reversed, INT:running)
Start patroling from the given index along the given spline with the given character.
CharacterStartPatrol(SPLINE:spline, INT:splineIndex, INT:reversed, INT:running)
Start patroling from the given index along the given spline with the given character.
CharacterStopPatrol(-)
Let the character stop patrolling whatever spline he's on!
CharacterInterruptPatrol(-)
Call when the patrol should interrupt so the guard stops moving to the next spline. If this is called when the character is deactivated, a caret will take his place.
CharacterGetTargetSpline(INT: SplineIndex)
Returns the spline index the character is currently walking towards, or -1 if he is not active on a spline.
CharacterSetAnimationSetOverride(CHARACTER:source, FIXEDSTRING:override)
Sets an animation set override for a character. Empty fixedstring clears the override.
CharacterSetFloating(CHARACTER:target, INTEGER:isFloating)
Sets <target> floating if <isFloating> is not 0
CharacterResetCooldowns(CHARACTER:target)
Resets the skill cooldowns for <target>
ItemEvent(ITEM:item, STRING:eventName)
Throw an item event which you can catch in scripts and story
ItemPlayAnimation(FIXEDSTRING:animation)
Plays an animation on the item
ItemPlayAnimationTo(FIXEDSTRING:animation, FLOAT:targetPercentage, [FLOAT:speed])
Plays an animation on the item to the target time (percentage of the total duration)
ItemPlayEffect(ITEM:item, STRING:effect [,FIXEDSTRING:boneName])
Plays an effect on the item and it follows the item
ItemPlayLoopEffect(OUT INT:effectHandle, ITEM:item, STRING:effect [,FIXEDSTRING:boneName])
Plays a looping effect on the item and it follows the item
ItemSetOnStage(ITEM:item, INTEGER:bool)
Sets an item on or offstage
ItemSetCanInteract(ITEM:item, INTEGER:bool)
Sets an item (not) interactible
ItemClose(ITEM:item)
Close an item
ItemOpen(ITEM:item)
Open an item
ItemDrop(ITEM:item)
Drop an item
ItemLock(ITEM:item, FIXEDSTRING:key)
Lock an item
ItemUnlock(ITEM:item)
Unlock an item
ItemApplyStatus(ITEM:item, STATUS:statusId [, INT:turns=null, INT:force=0])
Applies the status to the item When turns is -1 it's a permanent status When turns is -2 it's a keep alive status (which means it will die if it's not applied again within 1 second)
ItemRemoveStatus(ITEM:item, STATUS:statusId)
Removes the status from the item
ItemDie(ITEM:item)
Kills the item
ItemMoveTo(GAMEOBJECT|FLOAT3:target, FLOAT:velocity, FLOAT:acceleration, INTEGER:matchTargetRotation)
Moves the item to the target
ItemToInventory(ITEM:item, CHARACTER|ITEM:target [,INT:amount=-1])
Moves the item to the target's inventory
ItemLookAt(GAMEOBJECT:target, FLOAT:degreesPerSecond)
Rotates the item to look at the target
ItemDestroy(ITEM:item)
Destroys the item
ItemSetAmount(ITEM:item, INT:amount)
Change the amount of the item
IterateItemsInInventory(CHARACTER|ITEM:source, FIXEDSTRING:eventname[, FIXEDSTRING:tag])
Launch iterate event for each iten in source's inventory. If you pass a tag, it has to have that tag.
ItemAddCharges(ITEM:TargetItem, INT:charges)
Add/subtract charges from an item
ItemResetChargesToInitial(ITEM:TargetItem)
Resets charges from item to initial state
MakePeace(CHARACTER:Source, CHARACTER:Target[, INT:IgnoreVote = 1])
Make peace between users of the characters
MakeWar(CHARACTER:Source, CHARACTER:Target[, INT:IgnoreVote = 1])
Make war between users of the characters
IsEqual(OBJECT:variable, OBJECT:variable)
Compares both objects and see if they are equal.
IsLessThen(INT|FLOAT:variable, INT|FLOAT:variable)
Compares both objects and see if the first one is smaller.
IsGreaterThen(INT|FLOAT:variable, INT|FLOAT:variable)
Compares both objects and see if the first one is bigger.
IsRandom(FLOAT:percentage)
Each time this condition is checked, it will succeed with a chance of the percentage (between 0 and 1)
IsRound(INT:roundNumber)
Checks if we are currently in combat in round x
IsInSurface(OBJECT|FLOAT3:target, SURFACE:type[, FLOAT:radius])
Check if the character, item, trigger or position is currently within the specific surface.
IsInDangerousSurface(OBJECT|FLOAT3:target[, CHARACTER:character, FLOAT:radius])
Check if <target> is currently in on a dangerous surface. Uses <character> for path influences if provided (is necessary with non-character targets)
IsInDialog(CHARACTER|ITEM:target[, INT:ignoreAutomatedDialogs=0])
Check if the character or item is currently in a dialog, optionally ignoring automated dialogs
IsInAutomatedDialog(CHARACTER|ITEM:target)
Check if the character or item is currently in an automated dialog
GetDistance(OUT FLOAT:distance, GAMEOBJECT|FLOAT3:source, GAMEOBJECT|FLOAT3:target)
Returns the distance between 2 positions
GetDistance2D(OUT FLOAT:distance, GAMEOBJECT|FLOAT3:source, GAMEOBJECT|FLOAT3:target)
Returns the 2D distance between 2 positions (ignores height)
GetInnerDistance(OUT FLOAT:distance, GAMEOBJECT:source, GAMEOBJECT:target)
Returns the distance between 2 gameobjects (character, item, trigger, ...) Their bounds are already subtracted.
GetPosition(GAMEOBJECT:object, OUT FLOAT3:position)
Returns the position of a gameobject (character, item, trigger, ...)
GetVar(OUT OBJECT:returnValue, CHARACTER|ITEM:target, FIXEDSTRING:varName)
Gets a global variable from the target
GetClosestPlayer(OUT CHARACTER:player, GAMEOBJECT|FLOAT3:source)
Gets the closest player near the source, default being being the object itself
GetPlayerCount(OUT INT:playerCount)
Gets the number of players in the party
GetPlayerByIndex(OUT CHARACTER:returnCharacter, INT:playerIndex)
Gets a player from the party by index
GetRandomCharacter(OUT CHARACTER:returnCharacter, [INT:canBeSelf=0, INT:canBePlayer=0])
Gets a random character in the current level
ContainsSurface(GAMEOBJECT|FLOAT3:source, FLOAT:radius, SURFACE:type,)
Checks if there is any surface of the type within a radius of the source
IsSurface(GAMEOBJECT|FLOAT3:source, FLOAT:radius, SURFACE:type,)
Checks if the whole radius around the source is the specified surface type
IsObjectOnObject(CHARACTER|ITEM:source,CHARACTER|ITEM:target)
Checks if the source is standing on the target
GetX(FLOAT3:vector, OUT FLOAT:value)
Returns the X component of the vector
GetY(FLOAT3:vector, OUT FLOAT:value)
Returns the Y component of the vector
GetZ(FLOAT3:vector, OUT FLOAT:value)
Returns the Z component of the vector
FindSurface(OUT FLOAT3:result, GAMEOBJECT|FLOAT3:source, FLOAT:minRange, FLOAT:maxRange, SURFACE:type [,CHARACTER:alignSource, INT:minEnemiesInSurface, INT:maxAlliesInSurface, INT:minimumCellCount])
Finds the closest surface of a specific type.
FindValidPosition(INOUT FLOAT3:position, FLOAT:radius[, CHARACTER|ITEM:object=null])
Finds the closest valid position (where the object can stand.)
FindPosition(INOUT FLOAT3:position, CHARACTER:source, INT:canStand, INT:checkSight, FLOAT:minRadius, FLOAT:maxRadius, FLOAT:rangeCheck, CHARACTER:alignSource, INT:minAllies, INT:maxAllies, INT:minEnemies, INT:maxEnemies [,FIXEDSTRING:AiHintTag=null, INT:forceHint=0, FLOAT3:SourcePosition])
Finds the closest position from the source (within radius) where the conditions are matched.
CanSee(GAMEOBJECT|FLOAT3:source, GAMEOBJECT|FLOAT3:target[, INT:addProjectileTargetGroundOffset=0])
Check if the sight is blocked between 2 points.
IsVisible(CHARACTER|ITEM:object)
Check if the object is set invisible or not with SetVisible.
GetTextDuration(CHARACTER|ITEM:object, FIXEDSRTING:key, OUT FLOAT:duration)
Gets how long a text needs to be displayed
IsCasual(-)
Returns if the current game mode is Casual
IsHardcore(-)
Returns if the current game mode is Hardcore
IsTagged(GAMEOBJECT:object, FIXEDSTRING:tag)
Check if the object is tagged.
TranslatedStringKeyExists(FIXEDSTRING:key)
Check if the TranslatedString key exists.
IsInCombat(CHARACTER|ITEM:object)
Returns true if the object is in combat.
IsInCombatWith(CHARACTER|ITEM:object, CHARACTER|ITEM:object)
Returns true if the objects are in combat with each other.
IsFacing(GAMEOBJECT:source, GAMEOBJECT|FLOAT3:target, [INT:angle=90])
Returns true if the object is facing the position within the given angle.
GameIsSaving(-)
Returns true if the game is saving.
GameIsLoading(-)
Returns true if the game is loading.
GetUserCount(OUT INT:userCount)
Returns the user count.
GetCurrentCharacter(OUT CHARACTER:character, INT:user)
Returns the character currently being controlled by the specified user.
GetCurrentLevel(OUT FIXEDSTRING:currentLevel)
Returns the current levelname
GetAIBounds(CHARACTER|ITEM:source, OUT FLOAT:bounds)
Returns AI bounds of <source> in <bounds>
HasGlobalFlag(FIXEDSTRING:flagName)
Returns if the Global Flag is set
HasFlag(CHARACTER|ITEM:object, FIXEDSTRING:flagName)
Returns if the Flag is set on the Object
HasUserFlag(CHARACTER:object, FIXEDSTRING:flagName)
Returns if the Flag is set on the user's characters
HasPartyFlag(CHARACTER:object, FIXEDSTRING:flagName)
Returns if the Flag is set on the party's characters
DialogExists(STRING:dialogue)
Returns true if the dialogue exists.
IsActive(CHARACTER|ITEM:Object)
Returns if the character or item is currently active.
ListGetSize(LIST<OBJECT>:list, out INT:size)
Returns the number of elements in <list>
ListGet(LIST<OBJECT>:list, INT:index, out OBJECT:entry)
Returns <entry> at <index> of <list>
ListGetRandom(LIST<OBJECT>:list, out OBJECT:entry)
Returns a random <entry> of <list>
IsBoss(CHARACTER|ITEM:Object)
Returns true if the entity is tagged as a boss
IsProjectileSkill(SKILL:skill)
Returns true if the skill is a ranged skill (uses a projectile)
IsValidSkillTarget(CHARACTER:source, OBJECT|FLOAT3:target, SKILLID:skill[, INTEGER:ignoreRangeCheck=0])
Checks whether <target> is a valid target for <skill> at <source>
GetFaction(OUT FIXEDSTRING:faction, CHARACTER|ITEM:character)
Returns the faction of the provided character or item
IsInActiveTurn(CHARACTER|ITEM:target)
Returns true if it's the character's or item's turn in combat.
IsSkillActive(CHARACTER:character, SKILL:skillId)
Returns true if <character> has <skillId> active (in memory).
HasSkillAi(SKILLID:skillId)
Returns true if the skill is using the new Ai system
IsInArena(CHARACTER::character)
Returns true if the character is in an arena fight
CrimeGetType(INTEGER:crimeId, OUT STRING:crimeType)
Returns the type of the crime with this id.
CrimeGetCriminals(INTEGER:crimeId, OUT CHARACTER:criminal1, OUT CHARACTER:criminal2, OUT CHARACTER:criminal3, OUT CHARACTER:criminal4)
Returns the criminals of that crime. They might all be null.
Cast(OUT OBJECT variable, OBJECT value)
Casts the value to the variable.
StringConcatenate(STRING:stringA, STRING:stringB, OUT STRING:resultingString)
Appends stringB to stringA. Resulting string is stored in the third parameter.
IsSourceSkill(SKILL:skill)
Returns true if the skill is a source skill.
IsInGameMasterMode(-)
Returns true if the game in game master mode.
CharacterGet(OUT CHARACTER:character, GAMEOBJECT|FLOAT3:src, FLOAT:range, COMPARE:howTo, COMPAREFUNC:compareFunc[, RELATION: relation, SURFACE:surface, STATUS:status, TALENT:talent, CHARACTER:inSightOf, FIXEDSTRING:tag])
Get a character within a certain range conforming to the filled in restraints.
CharacterCount(OUT INT:count, GAMEOBJECT|FLOAT3:src, FLOAT:range, [RELATION: relation, SURFACE:surface, STATUS:status, TALENT:talent, CHARACTER:inSightOf])
Counts the characters within a certain range conforming to the filled in restraints.
CharacterGetOwner(OUT CHARACTER:owner, CHARACTER:source)
Get the character's owner
CharacterGetFollow(OUT CHARACTER:to follow, CHARACTER:source)
Get the character to follow
CharacterGetEnemy(OUT CHARACTER:current enemy, CHARACTER:source)
Get current enemy of character
CharacterCanCast(CHARACTER:source, SKILL:skillId, [ITEM:skillItem=null, INT:ignoreActionPoints=0])
Check if the character source can cast the skill: will check cooldown, actionpoints
CharacterCanSitOnItem(CHARACTER:source, ITEM:item)
Check if the character source can sit or lie on an item.
CharacterCanDrinkPotion(CHARACTER:source, FIXEDSTRING:potionID[, INT:ignoreActionPoints=0])
Check if the character source can drink the potion: will check inv and actionpoints
CharacterCanUseItem(CHARACTER:source, ITEM:item[, INT:ignoreActionPoints=0])
Check if the character source can use the item in the world
CharacterCanUseItemInInventory(CHARACTER:source, ITEM:item[, INT:ignoreActionPoints=0])
Check if the character source can use the item in his inventory
CharacterCanSee(CHARACTER:watchingChar, CHARACTER|ITEM:target [, INT:forceUpdate=0])
Check if character has target in his line of sight.
CharacterCanShoot(CHARACTER:source, GAMEOBJECT|FLOAT3:target)
Check if the character can shoot the target.
CharacterIsPlayer(CHARACTER:character)
Check if the character is a player
CharacterIsInParty(CHARACTER:character)
Check if the character is in the party
CharacterIsEnemy(CHARACTER:source, CHARACTER:target)
Check if target is enemy of source
CharacterIsAlly(CHARACTER:source, CHARACTER:target)
Check if target is ally of source
CharacterIsNeutral(CHARACTER:source, CHARACTER:target)
Check if target is neutral of source
CharacterIsDead(CHARACTER:character)
Check if character is dead
CharacterIsMoving(CHARACTER:character)
Check if character is moving (speed > 0)
CharacterIsSummon(CHARACTER:character)
Check if character is a summon
CharacterIsPartyFollower(CHARACTER:character)
Check if character is a party follower
CharacterIsStoryNPC(CHARACTER:character)
Check if character is a story NPC
CharacterInWeaponRange(CHARACTER:character, CHARACTER:target)
Check if target is in the current's weapon range
CharacterInTouchRange(CHARACTER:character, CHARACTER:targetChar)
Check if target is in the character's touch range
CharacterHasStatus(CHARACTER:character, STATUS:statusId[, FIXEDSTRING:extraData])
Check if character currently has the status. ExtraData can be filled in for some statuses: - Consume: statsid of the item - Shield: skillid of the shield
CharacterGetStatusSourceCharacter(CHARACTER:character, STATUS:statusId, OUT CHARACTER:source[, FIXEDSTRING:extraData])
Get the source character of a status
CharacterGetStatusSourceItem(CHARACTER:character, STATUS:statusId, OUT ITEM:source[, FIXEDSTRING:extraData])
Get the source item of a status
CharacterHasTalent(CHARACTER:character, TALENT:talent)
Check if character currently has the talent
CharacterHasSkill(CHARACTER:character, SKILL:skillId)
Check if character currently has the skill
CharacterHasWeaponType(CHARACTER:character, WEAPON:weaponTYPE [, INT:equipped])
Check if character currently has a weapon of this type in his inventory or equipped
CharacterGetStat(OUT FLOAT:statValue, CHARACTER:character, CHARACTERSTAT:statType)
Returns the current value of the stat (Vitality, ...)
CharacterGetSightRange(OUT FLOAT:range, CHARACTER:character)
Returns the character's sight range
CharacterGetWeaponRange(OUT FLOAT:minRange, OUT FLOAT:maxRange, CHARACTER:character)
Returns the character's current weapon range
CharacterGetTouchRange(OUT FLOAT:touchRange, CHARACTER:character)
Returns the character's current touch range
CharacterGetSkillRange(OUT FLOAT:minRange, OUT FLOAT:maxRange,CHARACTER:character, SKILL:skillId)
Returns the character's skill range
CharacterGetSkillImpactRange(OUT FLOAT:areaRange, CHARACTER:character, SKILL:skillId)
Returns the character's skill range
CharacterIsInTrigger(CHARACTER:character, TRIGGER:trigger)
Check if character is in given trigger
CharacterGetAbility(OUT INT:value, CHARACTER:character, ABILITY:ability)
Returns the character's value of the specified ability
CharacterGetHostileCount(OUT INT:value, CHARACTER:character)
Returns how many characters are targeting this character right now... You can iterate over them with IterateEnemiesOf.
CharacterCanFight(CHARACTER:character)
Returns true if the character can fight.
CharacterGetTemplate(CHARACTER:character, OUT CHARACTERTEMPLATE:root)
Returns the roottemplate of the character.
CharacterCanSpotSneakers(CHARACTER:character)
Returns true if the character can spot sneaking characters
CharacterIsFloating(CHARACTER:character)
Check if character is a floating character
CharacterInCreation(CHARACTER:character)
Returns true if the character is in character creation
CharacterAvoidsTraps(CHARACTER:character)
Returns true if the character avoids traps
CharacterCheckRelation(CHARACTER:character, RELATION:relation)
Returns true if relation check succeeds
CharacterIsBetterOrEqualClass(CHARACTER:character, INT:currentScore, OUT INT:newScore, INT warriorScore, INT rogueScore, INT mageScore, INT clericScore, INT rangerScore)
Returns true if score is higher or equal than the current score
CharacterHasBeenHitBy(CHARACTER:character, DAMAGE_TYPE:damageType)
Returns true if the character was hit by this type.
CharacterHasCastedSpellLastTurn(CHARACTER:character)
Returns true if the character has casted a spell in his last turn.
CharacterHasHadStatus(CHARACTER:character, STATUS:status)
Returns true if the character has had a specific status this combat.
CharacterHasAnimationOverride(CHARACTER:character)
Returns true if the character has an animation override.
CharacterCanUnlock(CHARACTER:character, ITEM:item)
Returns true if the character can unlock the item (if the item is already unlocked it returns true!)
CharacterGetReservedUserID(OUT INT:user, CHARACTER:character)
Returns the character's reserved User id.
CharacterGetRace(CHARACTER:character, OUT FIXEDSTRING:race)
Returns the <character>'s race in <race>.
CharacterIsRace(CHARACTER:character, FIXEDSTRING:race)
Returns true if <character>'s race is <race>.
CharacterCanMoveItem(CHARACTER:character, ITEM:item, FLOAT:minRadius, FLOAT:maxRadius [, OUT FLOAT3:destination])
Returns true + <destination> if <character> can move <item> somewhere between <minRadius> and <maxRadius>.
CharacterGetDeathType(CHARACTER:character, OUT FIXEDSTRING:deathType)
Returns death type of <character> in <deathType>.
CharacterGetStillAnimation(CHARACTER:object, OUT FIXEDSTRING:stillAnimation)
Returns the still animation to play
CrimeTransferLeadership(INT: CrimeID[, FIXEDSTRING:Tag1,...])
Try and transfer the leadership of this crime to someone else.
CrimeGetLeadInvestigator(OUT CHARACTER:lead, INT: CrimeID)
Returns the lead investigator for the crime.
CharacterCanHitTargetWithRangedWeapon(CHARACTER:source, OBJECT|FLOAT3:target[, SKILL:skill = null])
Returns true if <source> can hit <target> with currently equipped ranged weapon. Will use <skill> instead of equipped weapon if provided.
CharacterHasRangedWeapon(CHARACTER:character[, INT:checkInventory = 0])
Returns true if <character> has has ranged weapon. Checks for non-wielded weapons if <checkInventory> is 1
CheckInteractionReach(CHARACTER:character, CHARACTER|ITEM: target)
Returns true if <character> could interact with <target>. This is not checking ranges, but checking if there's too much of a height difference or too many obstacles in between.
CharacterGetSourcePoints(CHARACTER:character, OUT INT: amount)
Returns the amount of sourcepoints of <character>.
CharacterAiIsCalculating(-)
Returns if the character is still calculating the AI.
CharacterAiFetchMoveSkillCommand(OUT SKILL:skill, OUT ITEM:skillItem, OUT FLOAT3:target)
Returns if the character has a Move Skill command to execute according to the AI.
CharacterAiFetchSkillCommand(OUT SKILL:skill, OUT ITEM:skillItem, OUT FLOAT3 endPosition, OUT FLOAT3:target, OUT CHARACTER:target, OUT ITEM:target, OUT FLOAT3:target2, OUT CHARACTER:target2, OUT ITEM:target)
Returns if the character has a Skill command to execute according to the AI.
CharacterAiFetchConsumeCommand(OUT ITEM:item)
Returns if the character has a Consume command to execute according to the AI.
CharacterAiFetchAttackCommand(OUT FLOAT3:endPosition, OUT FLOAT3:target, OUT CHARACTER:target, OUT ITEM:target)
Returns if the character has a Attack command to execute according to the AI.
CharacterAiFetchFallbackCommand(OUT FLOAT3:targetPosition, OUT FLOAT3:lookAtPosition)
Returns if the character has a Fallback command to execute according to the AI.
CharacterGetArchetype(CHARACTER:character, OUT ARCHETYPE:archetype)
Returns the archetype of the character.
CharacterIsPolymorphedInto(CHARACTER:character, FIXEDSTRING:race)
Returns true if <character> is polymorphed into <race>. Race can be a race (like HUMAN), but also a template (in case of a polymorph skill like Chicken Touch).
CharacterIsPolymorphInteractionDisabled(CHARACTER:character)
Returns true if <character> has his interaction disabled because of a polymorph.
ItemGet(OUT ITEM:item, GAMEOBJECT|FLOAT3:src, FLOAT:range, COMPARE:howTo [, COMPAREFUNC:compareFunc, FIXEDSTRING:rootTemplate, FIXEDSTRING:tag])
Get an item within a certain range conforming to the filled in restraints.
ItemGetFromInventory(OUT ITEM:item, CHARACTER|ITEM:object [, FIXEDSTRING:statsId, FIXEDSTRING:tag, INT:isEquiped])
Returns the first item in the inventory conforming to the filled in restraints.
ItemIsInCharacterInventory(ITEM:item, CHARACTER:object)
Returns if the item is in the inventory of the character
ItemIsInTrigger(ITEM:item, TRIGGER:trigger)
Check if item is in given trigger
ItemGetStat(OUT FLOAT:statValue, ITEM:item, ITEMSTAT:statType)
Returns the current value of the stat (Weight, ...)
ItemIsMoving(ITEM:item)
Returns if the item is moving or not.
ItemIsFalling(ITEM:item)
Returns if the item is falling or not. (after teleport)
ItemIsOpening(ITEM:item)
Returns if the item is opening or not.
ItemIsClosing(ITEM:item)
Returns if the item is closing or not.
ItemIsLocked(ITEM:item)
Returns if the item is locked or not.
ItemIsMovable(ITEM:item)
Returns if the item is movable or not.
ItemCanBeLockPicked(ITEM:item)
Returns if the item is can be opened by lockpicking.
ItemIsOpen(ITEM:item)
Returns if the item is open or not.
IsStoryItem(ITEM:item)
Returns if the item is a story item.
ItemHasStatus(ITEM:item, STATUS:statusId)
Returns if the item has the status.
ItemIsDestroyed(ITEM:item)
Returns if the item is destroyed.
ItemGetTemplate(ITEM:item, OUT ITEMTEMPLATE:root)
Returns the roottemplate of the item.
ItemGetSkillId(ITEM:item, OUT SKILL:root)
Returns the skillid of the item if it has one.
ItemGetItemType(ITEM:item, OUT FIXEDSTRING:itemType)
Returns the itemtype of the item: common, unique, rare, ...
ItemGetStatusSourceCharacter(ITEM:item, STATUS:statusId, OUT CHARACTER:source)
Get the source character of a status
ItemGetStatusSourceItem(ITEM:item, STATUS:statusId, OUT ITEM:source)
Get the source item of a status
ItemCanBeMoved(ITEM:item)
Returns if the item can be moved.
CharScript/ItemScript Events
OnCharacterEvent(CHARACTER:character, STRING:eventName)
Thrown from scripts or story
OnCharacterItemEvent(CHARACTER:character, ITEM:item, STRING:eventName)
Thrown from scripts or story
OnCharacterCharacterEvent(CHARACTER:character, CHARACTER:character, STRING:eventName)
Thrown from scripts or story
OnItemEvent(ITEM:item, STRING:eventName)
Thrown from scripts or story
OnItemDestroyed(ITEM:item)
Thrown when an item is destroyed
OnItemDestroying(ITEM:item)
Thrown when an item is being destroyed
OnItemOpened(ITEM:item)
Thrown when an item is opened
OnItemClosed(ITEM:item)
Thrown when an item is closed
OnItemDropped(ITEM:item, STRING:itemTemplate)
Thrown when an item is dropped
OnGlobalFlagSet(FIXEDSTRING:eventName)
Thrown when a global event is set
OnGlobalFlagCleared(FIXEDSTRING:eventName)
Thrown when a global event is cleared
OnCharacterFlagSet(FIXEDSTRING:eventName, CHARACTER:character)
Thrown when a dialog event is set on a character
OnCharacterFlagCleared(FIXEDSTRING:eventName, CHARACTER:character)
Thrown when a dialog event is cleared on a character
OnItemFlagSet(FIXEDSTRING:eventName, ITEM:item)
Thrown when a dialog event is set on an item
OItemFlagCleared(FIXEDSTRING:eventName, ITEM:item)
Thrown when a dialog event is cleared on an item
OnTimer(FIXEDSTRING:timerName)
Thrown when a timer has ended
OnInit(-)
Thrown when the script is set
OnLoaded(INT:major, INT:minor, INT:revision, INT:build)
Thrown when the script is loaded from the savegame
OnShutdown(-)
Thrown when the character's script is removed
OnVariableCleared(FIXEDSTRING:varName)
Thrown when this object's script variable is cleared from Osiris with ClearVarObject
OnCombatStarted(CHARACTER:source, ITEM:source)
Thrown when the character entered a combat
OnCombatSwitched(CHARACTER:source, ITEM:source)
Thrown when the character switch from one combat to another
OnCombatEnded(CHARACTER:source, ITEM:source)
Thrown when the character left the combat
OnTurn(CHARACTER:source, ITEM:source)
Thrown when the character's turn starts
OnTurnEnded(CHARACTER:source, ITEM:source)
Thrown when the character's turn ended
OnCharacterVitalityChanged(CHARACTER:character, FLOAT:percentage)
Thrown when the characters's vitality changed
OnItemVitalityChanged(ITEM:item, FLOAT:percentage)
Thrown when the item's vitality changed
OnAttackOfOpportunity(CHARACTER:target)
Thrown when the characters gets an attack of opportunity on an enemy
OnDamage(DAMAGE:type, FLOAT:percentage, CHARACTER:source, ITEM:source)
Thrown when the object receives damage
OnMiss(CHARACTER:source, ITEM:source, CHARACTER:target, ITEM:target)
Thrown when the character dodges something
OnCriticalHit(CHARACTER:source, ITEM:source, CHARACTER:target, ITEM:target)
Thrown when the character is critical hit
OnBlock(CHARACTER:source, ITEM:source, CHARACTER:target, ITEM:target)
Thrown when the character blocks something
OnDie(CHARACTER:character, DAMAGE:type, CHARACTER:source, ITEM:source)
Thrown when the character dies
OnCharacterStatusAttempt(CHARACTER:character, STATUS:status)
Thrown when the character attempts to gain a status
OnCharacterStatusApplied(CHARACTER:character, STATUS:status)
Thrown when the character gains a status
OnCharacterStatusRemoved(CHARACTER:character, STATUS:status)
Thrown when the character loses a status
OnItemStatusAttempt(ITEM:item, STATUS:status)
Thrown when the item attempts to gain a status
OnItemStatus(ITEM:item, STATUS:status)
Thrown when the item gains a status
OnItemStatusRemoved(ITEM:item, STATUS:status)
Thrown when the item loses a status
OnStatusCreateVisuals(STATUS:status)
Thrown when the item should create the visuals for this status
OnStatusDestroyVisuals(STATUS:status)
Thrown when the item should destroy the visuals for this status
OnSight(CHARACTER:character)
Thrown when the character sees another character
OnLostSight(CHARACTER:character)
Thrown when the character doesn't see another character anymore
OnUseItem(CHARACTER:source, ITEM:item)
Thrown when a character uses an item
OnPickupItem(CHARACTER:source, ITEM:item)
Thrown when a character picks up an item
OnCharacterMovedItem(CHARACTER:source, ITEM:item)
Thrown when a character moved an item
OnItemEquipped(CHARACTER:source, ITEM:item)
Thrown when a character equips an item
OnItemUnequipped(CHARACTER:source, ITEM:item)
Thrown when a character unequips an item
OnIterateCharacter(CHARACTER:character, FIXEDSTRING:eventId)
Thrown by iterators
OnIterateItem(ITEM:source, FIXEDSTRING:eventId)
Thrown by iterators
OnIterateCount(FIXEDSTRING:eventId, INTEGER:Count)
Thrown by iterators after all iterations to inform you of the count.
OnStoryOverride(-)
Throw when story overrides what the character was doing: teleport, movement, on/offstage
OnTriggerEnter(CHARACTER:character, ITEM:item, FIXEDSTRING:eventId)
Thrown by a character or item entering an EventTrigger
OnTriggerLeave(CHARACTER:character, ITEM:item, FIXEDSTRING:eventId)
Thrown by a character or item leaving an EventTrigger
OnEnemyChanged(CHARACTER:character, CHARACTER:newEnemy)
Thrown when the character's currentenemy changes
OnTalentUnlocked(CHARACTER:character, TALENT:newTalent)
Thrown when the character unlocks a new talent
OnCharacterClassChanged(CHARACTER:character, FIXEDSTRING:class)
Thrown when the character changes class in the character creation screen
OnCharacterCreationStarted(CHARACTER:character, TRIGGER:creationPoint)
Thrown when the character creation has started, and gives where the character should walk to
OnCharacterCreationStopped(CHARACTER:character)
Thrown when the character creation has stopped
OnFunction(FIXEDSTRING:functionName)
Throws an event on itself with the functionName. This is to fake function calls
OnSkillCast(CHARACTER:character, SKILL_ID:skillID)
Thrown when the character casts a skill
OnSkillCombatComment(CHARACTER:character, SKILL_ID:skillID)
Thrown when the character needs to make a comment
OnCharacterUsedSkillOnMe(CHARACTER:character, SKILL_ID:skillID)
Thrown when you are hit by a skill from a character
OnItemUnlocked(ITEM: item, CHARACTER:character, ITEM:key)
Thrown when an item gets unlocked by a character.
OnAutomatedDialogEnded(STRING:dialogName, INT:instanceID)
Thrown when a automated dialog is ended for this speaker
OnAutomatedDialogStarted(STRING:dialogName, INT:instanceID)
Thrown when a automated dialog is started for this speaker
OnDialogEnded(STRING:dialogName, INT:instanceID)
Thrown when a dialog is ended for this speaker
OnCrimeSensibleAction(INT:IsPrimary; FIXEDSTRING:regionID, INT:crimeID, FIXEDSTRING:reactionName, STRING:primaryDialog, CHARACTER:criminal1, CHARACTER:criminal2, CHARACTER:criminal3, CHARACTER:criminal4)
Thrown when a character needs to perform a sensible action against criminals
OnCrimeInterrogationRequest(FIXEDSTRING:regionID, INT:crimeID, CHARACTER:criminal1, CHARACTER:criminal2, CHARACTER:criminal3, CHARACTER:criminal4)
Thrown when a character needs to perform an interrogation against criminals
OnCrimeInvestigate(INT:crimeID; FLOAT3:CrimePosition)
One NPC investigates a crimescene
OnCrimeAlarmed(INT:crimeID; FLOAT3:CrimePosition)
All NPCs in a crimearea start looking around.
OnCrimeReturnToNormal(-)
Investigation or Alarm timed out.
OnCrimeAborted(-)
The game interrupted the sensible action of this NPC.
OnSplineControlPointReached(INT:Index, INT:EndReached, STRING:EventString)
Thrown when a character reached a spline node.
OnFinishCalculationAi(-)
Thrown when the calculation of the AI is finished.
OnGrenadeLand(INT:hitObstacle, CHARACTER:caster)
Thrown when the grenades lands
FetchCharacterApplyStatusData(LIST<STATUS>:removeStatuses, STATUS:applyStatus, INT:turns; CHARACTER:character, STATUS:status)
Fetch from script which statuses to remove and apply.
FetchItemApplyStatusData(LIST<STATUS>:removeStatuses, STATUS:applyStatus, INT:turns; ITEM:item, STATUS:status)
Fetch from script which statuses to remove and apply.
FetchItemSkillOnDamage(INT:hasSkill, SKILL_ID:skillID, INT:casterLevel; INT:damage, DAMAGE_TYPE:damageType)
Fetch from script what skill to execute on damage.
OnActivate(-)
Thrown when a character/item activates
OnDeactivate(-)
Thrown when a character/item deactivates
OnCharacterUsedSourcePoint(CHARACTER:character)
Thrown when a character uses a source point
OnSkillAdded(CHARACTER:character, SKILL_ID:skillId, INT:learned)
Thrown when a character learns a skill
OnSkillActivated(CHARACTER:character, SKILL_ID:skillId)
Thrown when a character activates (=adds to memory) a skill
OnSkillDeactivated(CHARACTER:character, SKILL_ID:skillId)
Thrown when a character deactivates (=removes from memory) a skill
OnBetterReactionFound(FIXEDSTRING:reactionName)
Thrown when the reaction is interrupted by another reaction
OnNoReactionFound(-)
Thrown when the reaction is interrupted because no reaction is valid
OnScriptDisabled(-)
Thrown when the reaction is interrupted because the scriptcontroller is disabled
OnManualInterrupt(FIXEDSTRING:reactionName)
Thrown when the reaction is interrupted using the interrupt action
OnException(-)
Thrown when the reaction is interrupted by an exception
OnMovementFailed(FLOAT3:targetPos)
Thrown when the reaction is interrupted by a move action failing
OnItemFlagShared(FIXEDSTRING:eventName, ITEM:item, INT:newValue)
Thrown when a dialog event is shared with an item
OnCharacterFlagShared(FIXEDSTRING:eventName, CHARACTER:character, INT:newValue)
Thrown when a dialog event is shared with a character
OnItemOffStageChanged(CHARACTER:character)
Thrown when a character is set on/off stage
OnCharacterOffStageChanged(ITEM:item)
Thrown when a item is set on/off stage
OnCharacterTeleported(CHARACTER:target, CHARACTER:cause, FLOAT3:oldPosition, FLOAT3:newPosition, SKILL_ID:skillId)
Thrown when a character gets teleported with a teleport skill
OnCombatTick(-)
Thrown when this object ticks in combat. Only thrown for objects that don't get a turn.