Difference between revisions of "KCD Swift Documentation"

From Nexus Mods Wiki
Jump to: navigation, search
 
(5 intermediate revisions by one other user not shown)
Line 2: Line 2:
 
Swift
 
Swift
  
 +
 
  
 
= Installation and setup =
 
= Installation and setup =
Line 11: Line 12:
 
Set the correct game root folder (This is used for Quest Smart Object creation function).
 
Set the correct game root folder (This is used for Quest Smart Object creation function).
  
 +
 
  
 
= Description =
 
= Description =
Line 26: Line 28:
 
All changes you make are local. Press the “Save” button in order to commit the changes to DB. Saves are made per-listed-item. That means, if you edit two different souls or roles you have to save each of them separately. Unsaved data is indicated by the data state indicator.
 
All changes you make are local. Press the “Save” button in order to commit the changes to DB. Saves are made per-listed-item. That means, if you edit two different souls or roles you have to save each of them separately. Unsaved data is indicated by the data state indicator.
  
 +
 
  
 
= Souls tab =
 
= Souls tab =
Line 35: Line 38:
 
Click on a soul to see its properties.
 
Click on a soul to see its properties.
  
 +
 
  
 
== General sub-tab ==
 
== General sub-tab ==
Line 59: Line 63:
 
This determines NPC’s voice and the name that shown in game. Characters are created in [[KCD_Skald|Skald]]<br/> (Filter narrows down the listed characters. Note: The filter is not cleared when selecting a different soul!)
 
This determines NPC’s voice and the name that shown in game. Characters are created in [[KCD_Skald|Skald]]<br/> (Filter narrows down the listed characters. Note: The filter is not cleared when selecting a different soul!)
  
*By checking “(Unlock soul deletion)” you will get access to the Delete button. This prevents unintended deletion. Again, this is the most convenient place to do that.
+
*By checking “(Unlock soul deletion)” you will get access to the Delete button. This prevents unintended deletion. Again, this is the most convenient place to do that.  
  
 
== Hobbies sub-tab ==
 
== Hobbies sub-tab ==
Line 65: Line 69:
 
Lists soul’s hobbies and their priorities.
 
Lists soul’s hobbies and their priorities.
  
 +
&nbsp;
  
 
== Roles sub-tab ==
 
== Roles sub-tab ==
Line 72: Line 77:
 
Lists roles assigned to the soul and the role ID.<br/> You cannot change the setting. This data is set by [[KCD_Storm|Storm]].
 
Lists roles assigned to the soul and the role ID.<br/> You cannot change the setting. This data is set by [[KCD_Storm|Storm]].
  
 +
&nbsp;
  
 
== Schedule sub-tab ==
 
== Schedule sub-tab ==
Line 78: Line 84:
  
 
Lets you view the core behaviors in the soul’s daycycle schedule.
 
Lets you view the core behaviors in the soul’s daycycle schedule.
 +
 +
&nbsp;
  
 
== Stats sub-tab ==
 
== Stats sub-tab ==
  
[[File:|624x451px]]
+
https://wiki.nexusmods.com/images/2/2a/Stats_sub_tab.png
  
 
Lets you view the soul’s stats.<br/> You cannot change this setting.<br/> The values are determined by
 
Lets you view the soul’s stats.<br/> You cannot change this setting.<br/> The values are determined by
  
 
*Combat level set in Swift  
 
*Combat level set in Swift  
*Rules in Storm (Storm interprets the combat level, among other things)  
+
*Rules in [[KCD_Storm|Storm]] (Storm interprets the combat level, among other things)  
*Overrides in the Soul tab in Skald  
+
*Overrides in the Soul tab in [[KCD_Skald|Skald]]
 +
 
 +
&nbsp;
  
 
&nbsp;
 
&nbsp;
Line 93: Line 103:
 
= Roles tab =
 
= Roles tab =
  
[[File:|624x396px]]
+
https://wiki.nexusmods.com/images/0/0f/Roles_tab.png
  
 
This tab serves only one purpose. You can assign a role to another metarole (and/or create a new metarole)
 
This tab serves only one purpose. You can assign a role to another metarole (and/or create a new metarole)
Line 104: Line 114:
  
 
Allows you to show a singular Dialog sequence if you know its ID. Doesn’t serve any practical purpose anymore as you can get more comprehensive results in Skald.
 
Allows you to show a singular Dialog sequence if you know its ID. Doesn’t serve any practical purpose anymore as you can get more comprehensive results in Skald.
 +
 +
&nbsp;
  
 
= Create quest SO tab =
 
= Create quest SO tab =
  
[[File:|624x396px]]
+
https://wiki.nexusmods.com/images/f/f4/So_tab.png
  
 
This tab describes itself well enough.
 
This tab describes itself well enough.
Line 114: Line 126:
  
 
Enter a technical name for the new quest. This name will stick with you forever so choose wisely. The name must be unique, it should be descriptive, and it shouldn’t be too long.
 
Enter a technical name for the new quest. This name will stick with you forever so choose wisely. The name must be unique, it should be descriptive, and it shouldn’t be too long.
 +
 +
&nbsp;
  
 
== Naming conventions ==
 
== Naming conventions ==
Line 119: Line 133:
 
<prefix>_<modName>_<questName>
 
<prefix>_<modName>_<questName>
  
*<prefix> is either “q” for quests, “a” for activities, “even” for events <ul style="list-style-type:circle">
+
*<prefix> is either “q” for quests, “a” for activities, “even” for events  
<li>Prefix q_ is universal and is also used by non-playable purely technical quests (e.g. q_tutorials). The prefix ensures that some supporting script systems handle these quests as well (e.g. q_master_main).</li>
+
**Prefix q_ is universal and is also used by non-playable purely technical quests (e.g. q_tutorials). The prefix ensures that some supporting script systems handle these quests as well (e.g. q_master_main).  
</ul>  <li><modName> in order to prevent name clashes we strongly advise you differentiate your content by including the name of your modification</li>
+
*<modName> in order to prevent name clashes we strongly advise you differentiate your content by including the name of your modification  
<li><questName> is short and human-readable. Best in lowerCamelCase. To improve readability or to append additional info you use more underscores (_)</li>
+
*<questName> is short and human-readable. Best in lowerCamelCase. To improve readability or to append additional info you use more underscores (_)  
<li>It would be a good idea to incorporate name of your mod i the quest name. That way you will avoid clashes with other mods</li>
+
*It would be a good idea to incorporate name of your mod i the quest name. That way you will avoid clashes with other mods  
</ul>
 
  
 
Examples from vanilla:<br/> q_enteringTheMonastery<br/> event_ambushnpc<br/> q_massacre<br/> q_dlc_revelation_adela<br/> a_bernardTraining
 
Examples from vanilla:<br/> q_enteringTheMonastery<br/> event_ambushnpc<br/> q_massacre<br/> q_dlc_revelation_adela<br/> a_bernardTraining
Line 134: Line 147:
 
After clicking the Create button Swift will:
 
After clicking the Create button Swift will:
  
*Write new DB data <ul style="list-style-type:circle">
+
*Write new DB data  
<li>New definition of a brain of the same name and set it up properly according to the Quest SmartObject template. That is default Mailboxes and variables and the definition of OnUpdate tree with link to a new XML file.</li>
+
**New definition of a brain of the same name and set it up properly according to the Quest SmartObject template. That is default Mailboxes and variables and the definition of OnUpdate tree with link to a new XML file.  
</ul>  <li>Create a new XML file of the same name under ../Data/Libs/AI/quests and fill it with the basic OnUpdate tree according to the Quest SmartObject template</li>
+
*Create a new XML file of the same name under ../Data/Libs/AI/quests and fill it with the basic OnUpdate tree according to the Quest SmartObject template  
</ul>
+
 
 +
&nbsp;
  
 
= Trees tab =
 
= Trees tab =
  
Allows you move definitions of behavior trees into other tree definition XML files.<br/> Not very useful. You can easily perform similar operations in WH XGEN NPC Editor.
+
Allows you move definitions of behavior trees into other tree definition XML files.<br/> Not very useful. You can easily perform similar operations in [[WH_XGen_NPC_Editor|WH XGEN NPC Editor]].
  
 
= Prune trees tab =
 
= Prune trees tab =
Line 148: Line 162:
  
 
[[Category:Documentation]]
 
[[Category:Documentation]]
 +
{{KCDNavigation}}

Latest revision as of 12:27, 14 February 2020

Swift

 

Installation and setup

TBD

Requires the DB to be properly set up.

Set the correct game root folder (This is used for Quest Smart Object creation function).

 

Description

Swift connects to the Database and allows you to view and set several settings.

By default Swift connects to the DB scheme “trunk”. To switch to a different DB scheme click on the DB scheme switcher.

Swift.jpg

(Global controls)

If you switch to a different DB scheme you have to restart the tool for it to load relevant data.

All changes you make are local. Press the “Save” button in order to commit the changes to DB. Saves are made per-listed-item. That means, if you edit two different souls or roles you have to save each of them separately. Unsaved data is indicated by the data state indicator.

 

Souls tab

Souls_tab.png

Use filter to search for specifically named soul.

Click on a soul to see its properties.

 

General sub-tab

On the right you can see its Database ID number.

Possible functions:

  • You can change the souls Name. This is the most convenient place to do that.
  • You can set a faction (mandatory setting)

This affects the soul’s relationship to player and other NCPs according to the faction system settings

  • You can set a social class. (mandatory setting)

This affects several aspect of the NPC behavior

  • You can set combat level.

This affects what stats and skills and combat perks the NPC will be set to by Storm

  • You can set character.

This determines NPC’s voice and the name that shown in game. Characters are created in Skald
(Filter narrows down the listed characters. Note: The filter is not cleared when selecting a different soul!)

  • By checking “(Unlock soul deletion)” you will get access to the Delete button. This prevents unintended deletion. Again, this is the most convenient place to do that.

Hobbies sub-tab

Lists soul’s hobbies and their priorities.

 

Roles sub-tab

Roles_sub-tab.png

Lists roles assigned to the soul and the role ID.
You cannot change the setting. This data is set by Storm.

 

Schedule sub-tab

Schedule_sub_tab.png

Lets you view the core behaviors in the soul’s daycycle schedule.

 

Stats sub-tab

Stats_sub_tab.png

Lets you view the soul’s stats.
You cannot change this setting.
The values are determined by

  • Combat level set in Swift
  • Rules in Storm (Storm interprets the combat level, among other things)
  • Overrides in the Soul tab in Skald

 

 

Roles tab

Roles_tab.png

This tab serves only one purpose. You can assign a role to another metarole (and/or create a new metarole)

By default all newly created roles are assigned to the metarole “NPC”. Unlike other metarole “NPC” is by default always available.

All data is saved in DB.

Sequences tab

Allows you to show a singular Dialog sequence if you know its ID. Doesn’t serve any practical purpose anymore as you can get more comprehensive results in Skald.

 

Create quest SO tab

So_tab.png

This tab describes itself well enough.

It requires that you set a proper directory as the root of you game files.

Enter a technical name for the new quest. This name will stick with you forever so choose wisely. The name must be unique, it should be descriptive, and it shouldn’t be too long.

 

Naming conventions

<prefix>_<modName>_<questName>

  • <prefix> is either “q” for quests, “a” for activities, “even” for events
    • Prefix q_ is universal and is also used by non-playable purely technical quests (e.g. q_tutorials). The prefix ensures that some supporting script systems handle these quests as well (e.g. q_master_main).
  • <modName> in order to prevent name clashes we strongly advise you differentiate your content by including the name of your modification
  • <questName> is short and human-readable. Best in lowerCamelCase. To improve readability or to append additional info you use more underscores (_)
  • It would be a good idea to incorporate name of your mod i the quest name. That way you will avoid clashes with other mods

Examples from vanilla:
q_enteringTheMonastery
event_ambushnpc
q_massacre
q_dlc_revelation_adela
a_bernardTraining

 

 

After clicking the Create button Swift will:

  • Write new DB data
    • New definition of a brain of the same name and set it up properly according to the Quest SmartObject template. That is default Mailboxes and variables and the definition of OnUpdate tree with link to a new XML file.
  • Create a new XML file of the same name under ../Data/Libs/AI/quests and fill it with the basic OnUpdate tree according to the Quest SmartObject template

 

Trees tab

Allows you move definitions of behavior trees into other tree definition XML files.
Not very useful. You can easily perform similar operations in WH XGEN NPC Editor.

Prune trees tab

Don’t use it.

Kingdom Come: Deliverance: Forum | Before you start | Tutorials & Instructions | Basic Mods | Tools | Documentation | Glossary | EULA