KCD Swift Documentation

From Nexus Mods Wiki
Revision as of 13:27, 14 February 2020 by WarhorseStudios (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search



Installation and setup


Requires the DB to be properly set up.

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



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.


(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


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


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


Schedule sub-tab


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


Stats sub-tab


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


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


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> 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:



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