Difference between revisions of "WH XGEN NPC Editor Documentation"

From Nexus Mods Wiki
Jump to: navigation, search
 
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/> ⦁&nbsp;&nbsp; &nbsp;Defining brains and subbrains<br/> ⦁&nbsp;&nbsp; &nbsp;Defining SmartObjects, SmartAreas and NPC brains<br/> ⦁&nbsp;&nbsp; &nbsp;Defining and scripting all behavioral trees<br/> ⦁&nbsp;&nbsp; &nbsp;Defining mailboxes<br/> ⦁&nbsp;&nbsp; &nbsp;Managing Smart area hierarchy<br/> ⦁&nbsp;&nbsp; &nbsp;Live debugging of trees and mailboxes when in Game Mode<br/> ⦁&nbsp;&nbsp; &nbsp;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/> &nbsp;</div>
 
== Customizing Node Toolbar ==
 
== Customizing Node Toolbar ==
  
Line 6: Line 8:
 
Recommended settings:
 
Recommended settings:
  
 +
&nbsp;
 
<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

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