Difference between revisions of "WH XGEN NPC Editor Documentation"
Line 1: | Line 1: | ||
+ | == https://wiki.nexusmods.com/images/f/fe/Wh_xgen_npc_editor.png == | ||
+ | <div>This is the main scripting tool. It’s massive. It’s used for:<br/> ⦁ Defining brains and subbrains<br/> ⦁ Defining SmartObjects, SmartAreas and NPC brains<br/> ⦁ Defining and scripting all behavioral trees<br/> ⦁ Defining mailboxes<br/> ⦁ Managing Smart area hierarchy<br/> ⦁ Live debugging of trees and mailboxes when in Game Mode<br/> ⦁ Replaying recorded brain trees<br/> For further details on scripting consult [[Scripting_Tutorial|scripting tutorial]], HOW TO TREE, behavioral trees documentation, AI messages documentation, [[Quest_System_Documentation|quest system documentation]].<br/> For further details on how to use this tool consult [[KCD_Tools|Tool documentation]].<br/> </div> | ||
== Customizing Node Toolbar == | == Customizing Node Toolbar == | ||
Line 6: | Line 8: | ||
Recommended settings: | Recommended settings: | ||
+ | | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<?xml version="1.0" encoding="us-ascii"?> | <?xml version="1.0" encoding="us-ascii"?> |
Latest revision as of 11:20, 18 February 2020
This is the main scripting tool. It’s massive. It’s used for:
⦁ Defining brains and subbrains
⦁ Defining SmartObjects, SmartAreas and NPC brains
⦁ Defining and scripting all behavioral trees
⦁ Defining mailboxes
⦁ Managing Smart area hierarchy
⦁ Live debugging of trees and mailboxes when in Game Mode
⦁ Replaying recorded brain trees
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 Tool documentation.
⦁ Defining brains and subbrains
⦁ Defining SmartObjects, SmartAreas and NPC brains
⦁ Defining and scripting all behavioral trees
⦁ Defining mailboxes
⦁ Managing Smart area hierarchy
⦁ Live debugging of trees and mailboxes when in Game Mode
⦁ Replaying recorded brain trees
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 Tool documentation.
Customizing Node Toolbar
You can customize the toolbar by placing file to ../user_editor/sandbox/xgennpceditor/MBTNodesToolbar.xml
Recommended settings:
<?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>
Kingdom Come: Deliverance: Forum | Before you start | Tutorials & Instructions | Basic Mods | Tools | Documentation | Glossary | EULA |