This is the main scripting tool. It’s massive. It’s used for:
For further details on scripting consult scripting tutorial, HOW TO TREE, behavioral trees documentation, AI messages documentation, quest system documentation.
For further details on how to use this tool consult the documentation.
You can customize the toolbar by creating/editing the config file at ../user_editor/sandbox/xgennpceditor/MBTNodesToolbar.xml
.
<?xml version="1.0" encoding="us-ascii"?>
<MBTNodesToolbar size="30">
<Node node="AtomicDecorator" shortcut="a" />
<Node node="Sequence" shortcut="s" />
<Node node="Parallel" shortcut="p" />
<Node node="Expression" shortcut="e" />
<Node node="IfCondition" shortcut="i" />
<Node node="IfElseCondition" shortcut="o" />
<Node node="GraphSearch" shortcut="g" />
<Node node="LinkTagFilter" shortcut="t" />
<Node node="EntityClassFilter"/>
<Node node="CategoryFilter" shortcut="c" />
<Node node="Nodalyzer" shortcut="n" />
<Node node="Move" shortcut="m" />
<Node node="ExactMove" shortcut="," />
<Node node="Wait" shortcut="w" />
<Node node="ReadMessage" shortcut="r" />
<Node node="InstantSendMessageToNPC"/>
<Node node="Loop" shortcut="l" />
<Node node="While" shortcut="h" />
<Node node="For" shortcut="f" />
<Node node="ForEach" shortcut="d" />
<Node node="ExecuteLua" shortcut="x" />
<Node node="LuaGate" shortcut="z" />
<Node node="VarOperation" shortcut="v" />
<Node node="NumericalOperation" shortcut="n" />
<Node node="Synchronize" shortcut="j" />
<Node node="Success" shortcut="[" />
<Node node="Fail" shortcut="]" />
<!-- Action -->
<Group name="Action" shortcut="i" icon="ForceUpdate">
<Group name="Bow" shortcut="b" icon="BowAim">
<Node node="BowAim" shortcut="a" />
<Node node="BowLoad" shortcut="l" />
<Node node="BowShoot" shortcut="s" />
<Node node="StopAim" shortcut="t" />
</Group>
<Node node="AttachObject" shortcut="a" />
<Node node="CircularSpatialQuery" shortcut="c" />
<Node node="DetachObject" shortcut="d" />
<Node node="ForceUpdate" shortcut="f" />
<Node node="GetAnimationHelperData" shortcut="t" />
<Node node="GetHelper" shortcut="h" />
<Node node="GetHelperData" shortcut="d" />
<Node node="GetHelperUserData" shortcut="u" />
<Node node="GetSpatialInfo" shortcut="i" />
<Node node="HandCheck" shortcut="k" />
<Node node="Look" shortcut="l" />
<Node node="DoPickUp" shortcut="u" />
<Node node="DoPlace" shortcut="p" />
<Node node="PickUpBehavior" shortcut="u" />
<Node node="PlaceBehavior" shortcut="p" />
<Node node="SetSpatialInfo" shortcut="n" />
<Node node="TurnBody" shortcut="t" />
<Node node="StopMinigame" shortcut="m" />
</Group>
<!-- Animations -->
<Group name="Animations" shortcut="a" icon="PlayAnimation">
<Node node="PlayAnimation" shortcut="f" />
<Node node="StopAnimation" shortcut="f" />
<Node node="AnimationEventCatch" shortcut="c" />
<Node node="AnimationEndWait" shortcut="c" />
<Node node="AnimationEndGate" shortcut="c" />
<Node node="AnimationTagWrapper" shortcut="w" />
<Node node="BehaviorTagCatch" shortcut="b" />
<Node node="DisableMoveTransitions" shortcut="d" />
<Node node="TryCatch" shortcut="t" />
</Group>
<!-- Combat -->
<Group name="Combat" shortcut="o" icon="EnableCombatGrid">
<Group name="Actions" shortcut="a" icon="WeaponAttack">
<Node node="DoRiposteAttack" shortcut="r" />
<Node node="WeaponAttack" shortcut="a" />
<Node node="WeaponBlock" shortcut="b" />
</Group>
<Group name="Management" shortcut="m" icon="SweetSpot">
<Group name="Reactors" shortcut="r" icon="MissingIcon">
<Node node="OnPerfectBlock" shortcut="b" />
<Node node="OnRiposte" shortcut="r" />
<Node node="OpponentStateChange" shortcut="s" />
<Node node="OpponentZoneChange" shortcut="z" />
</Group>
<Node node="CombatReady" shortcut="c" />
<Node node="DisableCombatGrid" shortcut="d" />
<Node node="EnableCombatGrid" shortcut="e" />
<Node node="SetOpponent" shortcut="o" />
<Node node="SetSweetSpot" shortcut="s" />
<Node node="SetZone" shortcut="z" />
<Node node="SweetSpot" shortcut="w" />
<Node node="TargetPlayer" shortcut="t" />
</Group>
<Group name="Movement" shortcut="v" icon="Move">
<Node node="CombatMove" shortcut="c" />
<Node node="SweetSpotFollower" shortcut="s" />
</Group>
</Group>
<!-- Composite -->
<Group name="Composite" shortcut="c" icon="RollBackSequence">
<Node node="ContinuousSwitch" shortcut="c" />
<Node node="Parallel" shortcut="p" />
<Node node="RollBackSequence" shortcut="b" />
<Node node="RollBacker" shortcut="r" />
<Node node="Selector" shortcut="e" />
<Node node="Sequence" shortcut="s" />
<Node node="Switch" shortcut="w" />
<Node node="TimedSwitch" shortcut="t" />
</Group>
<!-- Debug -->
<Group name="Debug" shortcut="g" icon="LogToConsole">
<Node node="AssertCondition" shortcut="a" />
<Node node="Counter" shortcut="c" />
<Node node="Fail" shortcut="f" />
<Node node="Invertor" shortcut="i" />
<Node node="LogToConsole" shortcut="l" />
<Node node="ReachTargetCheck" shortcut="r" />
<Node node="Success" shortcut="s" />
<Node node="TestGuard" shortcut="t" />
</Group>
<!-- Decorator -->
<Group name="Decorator" shortcut="d" icon="RandomGate">
<Node node="FuseBox" shortcut="f" />
<Node node="IfCondition" shortcut="i" />
<Node node="IfElseCondition" shortcut="e" />
<Node node="LockOrientation" shortcut="o" />
<Node node="Loop" shortcut="l" />
<Node node="LoopUntil" shortcut="u" />
<Node node="RandomGate" shortcut="r" />
<Node node="HasHelpers" shortcut="m" />
<Node node="VariableExistsGate" shortcut="m" />
<Node node="Semaphore" shortcut="m" />
<Node node="SuppressFailure" shortcut="s" />
<Node node="Synchronize" shortcut="c" />
<Node node="TimedLoop" shortcut="t" />
<Node node="While" shortcut="w" />
</Group>
<!-- Dialogs -->
<Group name="Dialogs" shortcut="u" icon="DoDialog">
<Node node="DoDialog" shortcut="d" />
</Group>
<!-- Items -->
<Group name="Item" shortcut="i" icon="CreateItem">
<Node node="InstantPutItemInHand" shortcut="d" />
<Node node="InstantPutItemInInventory" shortcut="d" />
<Node node="InstantDrawWeapon" shortcut="d" />
<Node node="InstantHolsterWeapon" shortcut="d" />
<Node node="CreateItem" shortcut="d" />
<Node node="RemoveItem" shortcut="d" />
<Node node="EquipItem" shortcut="d" />
<Node node="UnEquipItem" shortcut="d" />
<Node node="MoveItem" shortcut="d" />
<Node node="PutItemInHand" shortcut="d" />
<Node node="PutItemInInventory" shortcut="d" />
<Node node="DrawWeapon" shortcut="d" />
<Node node="HolsterWeapon" shortcut="d" />
<Node node="GetItemType" shortcut="d" />
<Node node="GetItemProperty" shortcut="d" />
</Group>
<!-- LinkNetwork -->
<Group name="LinkNetwork" shortcut="n" icon="GraphSearch">
<Group name="Aggregators" shortcut="a" icon="IntersectionOp">
<Node node="IntersectionOp" shortcut="i" />
<Node node="UnionOp" shortcut="u" />
<Node node="NegationOp" shortcut="n" />
</Group>
<Group name="Data" shortcut="d" icon="Datalyzer">
<Node node="Datalyzer" shortcut="d" />
<Node node="Nodalyzer" shortcut="n" />
</Group>
<Group name="Sorting" shortcut="d" icon="RangeSorter">
<Node node="RangeSorter" shortcut="d" />
</Group>
<Group name="Filters" shortcut="f">
<Node node="CategoryFilter" shortcut="c" />
<Node node="EntityClassFilter" shortcut="l" />
<Node node="EntityPropertiesFilter" shortcut="l" />
<Node node="ExistPath" shortcut="e" />
<Node node="HasBehaviorFilter" shortcut="b" />
<Node node="IsHiddenFilter" shortcut="b" />
<Node node="IsShownFilter" shortcut="b" />
<Node node="InAreaFilter" shortcut="a" />
<Node node="ItemClassFilter" shortcut="i" />
<Node node="ItemParamFilter" shortcut="i" />
<Node node="LinkTagFilter" shortcut="t" />
<Node node="RangeFilter" shortcut="r" />
<Node node="SlotClassFilter" shortcut="r" />
<Node node="WUIDFilter" shortcut="w" />
</Group>
<Group name="Ops" shortcut="o" icon="AddLink">
<Node node="AddLink" shortcut="a" />
<Node node="RemoveLink" shortcut="r" />
</Group>
<Node node="GraphSearch" shortcut="l" />
</Group>
<!-- Logic
<Group name="Logic" shortcut="x" icon="Conjunction">
<Node node="Conjunction" shortcut="c" />
<Node node="Disjunction" shortcut="d" />
<Node node="ExtendedConjunction" shortcut="s" />
<Node node="ExtendedDisjunction" shortcut="x" />
<Node node="ExtendedNegation" shortcut="m" />
<Node node="Negation" shortcut="n" />
<Node node="PlainIfCondition" shortcut="i" />
<Node node="PlainTimer" shortcut="t" />
</Group>
-->
<!-- Lua -->
<Group name="Lua" shortcut="l" icon="ExecuteLua">
<Node node="AssertLua" shortcut="a" />
<Node node="ExecuteLua" shortcut="e" />
<Node node="LuaGate" shortcut="g" />
<Node node="LuaWrapper" shortcut="w" />
</Group>
<!-- Message -->
<Group name="Message" shortcut="m" icon="SendMessageToNPC">
<Node node="ClearInbox" shortcut="c" />
<Node node="InstantMultiSendMessageToNPC" shortcut="t" />
<Node node="InstantReadMessage" shortcut="e" />
<Node node="InstantSendMessageToLockParticipants" shortcut="l" />
<Node node="InstantSendMessageToNPC" shortcut="n" />
<Node node="MultiSendMessageToNPC" shortcut="m" />
<Node node="ReadMessage" shortcut="r" />
<Node node="SendMessageToNPC" shortcut="s" />
</Group>
<!-- Move -->
<Group name="Move" shortcut="w" icon="Move">
<Node node="ExactMove" shortcut="e" />
<Node node="Move" shortcut="m" />
<Node node="DisableMoveTransitions" shortcut="m" />
<Node node="ShapePosition" shortcut="p" />
<Node node="StopMovement" shortcut="s" />
<Node node="GetRandomPos" shortcut="s" />
</Group>
<!-- Perception -->
<Group name="Perception" shortcut="p" icon="SpawnPerceptibleVolume">
<Node node="AddPerceivableState" shortcut="a" />
<Node node="HasPerceivableState" shortcut="h" />
<Node node="SetPerceivability" shortcut="s" />
<Node node="AddRecognitionThreshold" shortcut="t" />
<Node node="IgnorePerception" shortcut="g" />
<Node node="CancelPerceptionIgnore" shortcut="c" />
<Node node="SpawnPerceptibleVolume" shortcut="e" />
<Node node="SpawnExpiringPerceptibleVolume" shortcut="m" />
<Node node="DeSpawnPerceptibleVolume" shortcut="h" />
<Node node="PerceptionSearch" shortcut="a" />
<Node node="DismissSearchCandidate" shortcut="d" />
<Node node="GetCurrentPerceptionFocus" shortcut="f" />
<Node node="NotSeenByPlayer" shortcut="n" />
<Node node="AddAreaLabel" shortcut="d" />
<Node node="RemoveAreaLabel" shortcut="r" />
<Node node="IsInsideAreaWithLabel" shortcut="l" />
</Group>
<!-- Informations -->
<Group name="Informations" shortcut="f">
<Node node="CreateInformation" shortcut="c" />
<Node node="DestroyInformationFromHolder" shortcut="d" />
<Node node="InformationEmittingStart" shortcut="e" />
<Node node="InformationEmittingEnd" shortcut="r" />
<Node node="StopAllEmitting" shortcut="p" />
<Node node="TransferInformation" shortcut="t" />
<Node node="GetInformationUserInfo" shortcut="u" />
<Node node="LockDynamicInformationValues" shortcut="l" />
<Node node="SetDynamicInformationValue" shortcut="s" />
<Node node="GetDynamicInformationValue" shortcut="g" />
<Node node="ClearDynamicInformationValue" shortcut="a" />
<Node node="GetEmittingInformations" shortcut="m" />
<Node node="GetKnownInformations" shortcut="n" />
<Node node="IgnoreEmittedInformations" shortcut="i" />
<Node node="StopIgnoringEmittedInformations" shortcut="o" />
</Group>
<!-- Quest -->
<Group name="Quest" shortcut="q" icon="GetQuest">
<Node node="SetQuest" shortcut="s" />
<Node node="GetQuest" shortcut="g" />
<Node node="SetQuestObjective" shortcut="g" />
<Node node="QuestCondition" shortcut="g" />
<Node node="QuestObjectiveCondition" shortcut="g" />
<Node node="QuestObjectiveGate" shortcut="g" />
</Group>
<!-- RPG -->
<Group name="RPG" shortcut="r" icon="RPG">
<Node node="GetAngryness" shortcut="g" />
<Node node="SetAngryness" shortcut="s" />
<Node node="AddAngryness" shortcut="a" />
</Group>
<!-- SmartArea -->
<Group name="SmartArea" shortcut="r" icon="SetBehaviorState">
<Node node="GetAreaInhabitants" shortcut="i" />
<Node node="GetBehaviorHolders" shortcut="h" />
<Node node="InstantSendMessageByBehavior" shortcut="b" />
<Node node="InstantSendMessageToInhabitants" shortcut="h" />
<Node node="SendMessageByBehavior" shortcut="b" />
<Node node="SendMessageToInhabitants" shortcut="t" />
<Node node="SetBehaviorMaxInstances" shortcut="n" />
<Node node="SetBehaviorState" shortcut="s" />
<Node node="SetSituationMaxInstances" shortcut="x" />
<Node node="SetSituationState" shortcut="e" />
</Group>
<!-- SmartObject -->
<Group name="SmartObject" shortcut="b" icon="SmartObjSetBehaviorState">
<Node node="SmartObjInstantSendByBehavior" shortcut="i" />
<Node node="SmartObjSendByBehavior" shortcut="b" />
<Node node="SmartObjSetBehaviorMaxInstances" shortcut="n" />
<Node node="SmartObjSetBehaviorState" shortcut="s" />
</Group>
<!-- StateMachine -->
<Group name="StateMachine" shortcut="s" icon="StateMachineTransition">
<Node node="StateMachine" shortcut="m" />
<Node node="StateMachineSignal" shortcut="g" />
<Node node="StateMachineState" shortcut="s" />
<Node node="StateMachineTransition" shortcut="t" />
</Group>
<!-- Time -->
<Group name="Time" shortcut="t" icon="Wait">
<Node node="Timeout" shortcut="t" />
<Node node="TimerBox" shortcut="b" />
<Node node="Wait" shortcut="w" />
</Group>
<!-- TreeTag -->
<Group name="TreeTag" shortcut="e" icon="UseSmartArea">
<Node node="IncludeTree" shortcut="i" />
<Node node="SmartAreaBehaviorTag" shortcut="a" />
<Node node="SmartObjectBehaviorTag" shortcut="o" />
<Node node="UseSmartArea" shortcut="u" />
</Group>
<!-- Variables -->
<Group name="Variables" shortcut="v" icon="Expression">
<Node node="Expression" shortcut="e" />
<Node node="For" shortcut="f" />
<Node node="ForEach" shortcut="c" />
<Node node="NumericalOperation" shortcut="n" />
<Node node="SetVariable" shortcut="s" />
<Node node="VarOperation" shortcut="o" />
</Group>
<!-- Subbrains -->
<Group name="Subbrains" shortcut="z" icon="Subbrains">
<Node node="ActivateSubbrain" shortcut="s" />
</Group>
<!-- Daycycle -->
<Group name="Daycycle" shortcut="p" icon="GetCurrentActivity">
<Node node="GetCurrentActivity" shortcut="c" />
<Node node="AddPatch" shortcut="a" />
<Node node="RemovePatch" shortcut="r" />
<Node node="SkipToNextActivity" shortcut="s" />
</Group>
</MBTNodesToolbar>