WH XGEN NPC Editor Documentation

From Nexus Mods Wiki
Revision as of 11:20, 18 February 2020 by Ali3kaa (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Wh_xgen_npc_editor.png

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.
 

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