AI Lua API: Difference between revisions

From Off Grid Wiki
Jump to navigation Jump to search
(Update)
No edit summary
 
(15 intermediate revisions by 4 users not shown)
Line 4: Line 4:
API to control the logic of AI in the mission
API to control the logic of AI in the mission
== Functions ==
== Functions ==
=== AlterNPCMotivation ===
=== Pause ===
<syntaxhighlight source lang="lua">AI.AlterNPCMotivation(characterName, motivationDelta)</syntaxhighlight>
<syntaxhighlight source lang="lua">AI.Pause(characterName)</syntaxhighlight>
'''Expected parameter types'''
'''Expected parameter types'''
{| class="wikitable"
{| class="wikitable"
|-
! Name !! Type
|-
| characterName || string
|}
'''Description''': Pauses the agent, and stops it from doing anything.
'''Returns''': Nothing
'''Notes''': The AI will be hidden from networks, meaning it will no longer interact with devices or send/receive messages.
=== Unpause ===
<syntaxhighlight source lang="lua">AI.Unpause(characterName)</syntaxhighlight>
'''Expected parameter types'''
{| class="wikitable"
|-
! Name !! Type
|-
| characterName || string
|}
'''Description''': Unpauses a hidden agent, resuming standard behaviour.
'''Returns''': Nothing
=== IsPaused ===
<syntaxhighlight source lang="lua">AI.IsPaused(characterName)</syntaxhighlight>
'''Expected parameter types'''
{| class="wikitable"
|-
! Name !! Type
|-
| characterName || string
|}
'''Description''': Returns a bool based on if a character is currently paused or not
'''Returns''': bool
=== AddGoal ===
<syntaxhighlight source lang="lua">AI.AddGoal(characterName, goal)</syntaxhighlight>
'''Expected parameter types'''
{| class="wikitable"
|-
! Name !! Type
|-
| characterName || string
|-
| goal || Lua Table
|}
'''Description''': Adds a defined goal
'''Returns''': Nothing
=== RemoveGoal ===
<syntaxhighlight source lang="lua">AI.RemoveGoal(characterName, goalName)</syntaxhighlight>
'''Expected parameter types'''
{| class="wikitable"
|-
! Name !! Type
|-
| characterName || string
|-
| goalName || string
|}
'''Description''': Removes any defined goals
'''Returns''': Nothing
=== AddTemporaryGoal ===
<syntaxhighlight source lang="lua">AI.AddTemporaryGoal(characterName, goal)</syntaxhighlight>
'''Expected parameter types'''
{| class="wikitable"
|-
! Name !! Type
|-
| characterName || string
|-
| goal || Lua Table
|}
'''Description''': Adds a goal, taking top priority, to the named AI
'''Returns''': Nothing
'''Notes''': This goal will be removed from the AI once complete. If it isn't achievable it will be removed immediately.
=== GetNPCProfileByTag ===
<syntaxhighlight source lang="lua">AI.GetNPCProfileByTag(characterName, tag)</syntaxhighlight>
'''Expected parameter types'''
{| class="wikitable"
|-
! Name !! Type
|-
| characterName || string
|-
| tag || string
|}
'''Description''': Get all values of a tag from a chaarcter's profile, if the tag exists.
'''Returns''': System.String[]
=== Lua_CheckNPCProfile ===
<syntaxhighlight source lang="lua">AI.Lua_CheckNPCProfile(characterName, tag, value)</syntaxhighlight>
'''Expected parameter types'''
{| class="wikitable"
|-
! Name !! Type
|-
| characterName || string
|-
| tag || string
|-
| value || string
|}
'''Description''': Check if character's profile data contains a specific tag wiht a specific value
'''Returns''': bool
=== GetNPCStat ===
<syntaxhighlight source lang="lua">AI.GetNPCStat(characterName, statName)</syntaxhighlight>
'''Expected parameter types'''
{| class="wikitable"
|-
! Name !! Type
|-
| characterName || string
|-
| statName || string
|}
'''Description''': Returns current value of NPC's stat
'''Returns''': number
'''Notes''': This is only intended for debugging purposes, and not recommended in any actual game scripts.
=== SetNPCStat ===
<syntaxhighlight source lang="lua">AI.SetNPCStat(characterName, statName, newValue)</syntaxhighlight>
'''Expected parameter types'''
{| class="wikitable"
|-
! Name !! Type
|-
| characterName || string
|-
| statName || string
|-
| newValue || number
|}
'''Description''': Sets an NPC's AI stat to absolute value
'''Returns''': Nothing
'''Notes''': This is only intended for debugging purposes, and not recommended in any actual game scripts.
=== AlterNPCStat ===
<syntaxhighlight source lang="lua">AI.AlterNPCStat(characterName, statName, statDelta)</syntaxhighlight>
'''Expected parameter types'''
{| class="wikitable"
|-
! Name !! Type
|-
|-
| characterName || string
| characterName || string
|-
|-
| motivationDelta || number
| statName || string
|-
| statDelta || number
|}
|}
'''Description''': Alters an NPCS motivation state
'''Description''': Alters an NPC's AI stat by relative value


'''Returns''': Nothing
'''Returns''': Nothing


'''Notes''': When an NPCs motivation hits 0, they're no longer motivated and will attempt to take a break
=== AlterNPCWorldState ===
=== CreateReactable ===
<syntaxhighlight source lang="lua">AI.AlterNPCWorldState(characterName, state, value)</syntaxhighlight>
<syntaxhighlight source lang="lua">AI.CreateReactable(actionType, attraction, targetObject)</syntaxhighlight>
'''Expected parameter types'''
'''Expected parameter types'''
{| class="wikitable"
{| class="wikitable"
|-
|-
| actionType || AIReaction+Type
! Name !! Type
|-
| characterName || string
|-
|-
| attraction || number
| state || string
|-
|-
| targetObject || MissionObject
| value || Lua Type
|}
|}
'''Description''': Create a new distraction that AI can pick up on
'''Description''': Change the World State of an NPC.


'''Returns''': Nothing
'''Returns''': Nothing


=== FavourInterest ===
<syntaxhighlight source lang="lua">AI.FavourInterest(characterName, device, permanent)</syntaxhighlight>
'''Expected parameter types'''
{| class="wikitable"
|-
! Name !! Type
|-
| characterName || string
|-
| device || string
|-
| permanent || bool
|}
'''Description''': Reduce the cost of an AI using a particular Interest
'''Returns''': Nothing
'''Notes''': If permanent is false, the cost will revert to normal the next time this is successfully used
=== AvoidInterest ===
<syntaxhighlight source lang="lua">AI.AvoidInterest(characterName, device, permanent)</syntaxhighlight>
'''Expected parameter types'''
{| class="wikitable"
|-
! Name !! Type
|-
| characterName || string
|-
| device || string
|-
| permanent || bool
|}
'''Description''': Increase the cost of an AI using a particular Interest
'''Returns''': Nothing
'''Notes''': If permanent is false, the cost will revert to normal the next time this is successfully used
=== SetNPCFavouredComputer ===
=== SetNPCFavouredComputer ===
<syntaxhighlight source lang="lua">AI.SetNPCFavouredComputer(characterName, computer)</syntaxhighlight>
<syntaxhighlight source lang="lua">AI.SetNPCFavouredComputer(characterName, computer)</syntaxhighlight>
'''Expected parameter types'''
'''Expected parameter types'''
{| class="wikitable"
{| class="wikitable"
|-
! Name !! Type
|-
|-
| characterName || string
| characterName || string
Line 43: Line 238:
|}
|}
'''Description''': Set NPC's computer, this will be used for a variety of actions
'''Description''': Set NPC's computer, this will be used for a variety of actions
'''Returns''': Nothing
=== AddAction ===
<syntaxhighlight source lang="lua">AI.AddAction(characterName, action)</syntaxhighlight>
'''Expected parameter types'''
{| class="wikitable"
|-
! Name !! Type
|-
| characterName || string
|-
| action || Lua Table
|}
'''Description''': Adds an action that can be used immediately
'''Returns''': Nothing
=== RemoveAction ===
<syntaxhighlight source lang="lua">AI.RemoveAction(characterName, actionName)</syntaxhighlight>
'''Expected parameter types'''
{| class="wikitable"
|-
! Name !! Type
|-
| characterName || string
|-
| actionName || string
|}
'''Description''': Removes any action


'''Returns''': Nothing
'''Returns''': Nothing
Line 50: Line 275:
This file is auto generated, please don't edit manually!
This file is auto generated, please don't edit manually!


'''Docs last hacked together on''': 13/09/2017 13:56
'''Docs last hacked together on''': 29/08/2023 16:24
[[Category:Modding]][[Category:LuaAPI]]

Latest revision as of 13:50, 29 August 2023

AI

Description

API to control the logic of AI in the mission

Functions

Pause

AI.Pause(characterName)

Expected parameter types

Name Type
characterName string

Description: Pauses the agent, and stops it from doing anything.

Returns: Nothing

Notes: The AI will be hidden from networks, meaning it will no longer interact with devices or send/receive messages.

Unpause

AI.Unpause(characterName)

Expected parameter types

Name Type
characterName string

Description: Unpauses a hidden agent, resuming standard behaviour.

Returns: Nothing

IsPaused

AI.IsPaused(characterName)

Expected parameter types

Name Type
characterName string

Description: Returns a bool based on if a character is currently paused or not

Returns: bool

AddGoal

AI.AddGoal(characterName, goal)

Expected parameter types

Name Type
characterName string
goal Lua Table

Description: Adds a defined goal

Returns: Nothing

RemoveGoal

AI.RemoveGoal(characterName, goalName)

Expected parameter types

Name Type
characterName string
goalName string

Description: Removes any defined goals

Returns: Nothing

AddTemporaryGoal

AI.AddTemporaryGoal(characterName, goal)

Expected parameter types

Name Type
characterName string
goal Lua Table

Description: Adds a goal, taking top priority, to the named AI

Returns: Nothing

Notes: This goal will be removed from the AI once complete. If it isn't achievable it will be removed immediately.

GetNPCProfileByTag

AI.GetNPCProfileByTag(characterName, tag)

Expected parameter types

Name Type
characterName string
tag string

Description: Get all values of a tag from a chaarcter's profile, if the tag exists.

Returns: System.String[]

Lua_CheckNPCProfile

AI.Lua_CheckNPCProfile(characterName, tag, value)

Expected parameter types

Name Type
characterName string
tag string
value string

Description: Check if character's profile data contains a specific tag wiht a specific value

Returns: bool

GetNPCStat

AI.GetNPCStat(characterName, statName)

Expected parameter types

Name Type
characterName string
statName string

Description: Returns current value of NPC's stat

Returns: number

Notes: This is only intended for debugging purposes, and not recommended in any actual game scripts.

SetNPCStat

AI.SetNPCStat(characterName, statName, newValue)

Expected parameter types

Name Type
characterName string
statName string
newValue number

Description: Sets an NPC's AI stat to absolute value

Returns: Nothing

Notes: This is only intended for debugging purposes, and not recommended in any actual game scripts.

AlterNPCStat

AI.AlterNPCStat(characterName, statName, statDelta)

Expected parameter types

Name Type
characterName string
statName string
statDelta number

Description: Alters an NPC's AI stat by relative value

Returns: Nothing

AlterNPCWorldState

AI.AlterNPCWorldState(characterName, state, value)

Expected parameter types

Name Type
characterName string
state string
value Lua Type

Description: Change the World State of an NPC.

Returns: Nothing

FavourInterest

AI.FavourInterest(characterName, device, permanent)

Expected parameter types

Name Type
characterName string
device string
permanent bool

Description: Reduce the cost of an AI using a particular Interest

Returns: Nothing

Notes: If permanent is false, the cost will revert to normal the next time this is successfully used

AvoidInterest

AI.AvoidInterest(characterName, device, permanent)

Expected parameter types

Name Type
characterName string
device string
permanent bool

Description: Increase the cost of an AI using a particular Interest

Returns: Nothing

Notes: If permanent is false, the cost will revert to normal the next time this is successfully used

SetNPCFavouredComputer

AI.SetNPCFavouredComputer(characterName, computer)

Expected parameter types

Name Type
characterName string
computer MissionObject

Description: Set NPC's computer, this will be used for a variety of actions

Returns: Nothing

AddAction

AI.AddAction(characterName, action)

Expected parameter types

Name Type
characterName string
action Lua Table

Description: Adds an action that can be used immediately

Returns: Nothing

RemoveAction

AI.RemoveAction(characterName, actionName)

Expected parameter types

Name Type
characterName string
actionName string

Description: Removes any action

Returns: Nothing


This file is auto generated, please don't edit manually!

Docs last hacked together on: 29/08/2023 16:24