Difference between revisions of "Part 1: creating a new skill"

From Divinity Engine Wiki
Jump to: navigation, search
Line 1: Line 1:
 
== Introduction ==
 
== Introduction ==
 
Creating skills in your mod is easier than ever with our newly introduced tool, the [[Stats editor]].
 
Creating skills in your mod is easier than ever with our newly introduced tool, the [[Stats editor]].
 
To create a new, useable skill you need 3 things:
 
* A new skill entry in the stats editor
 
* A new skillbook entry in the stats editor
 
* A skillbook template
 
  
 
<br />
 
<br />
== Creating our skill ==
+
== Creating a skill ==
 
=== Step 1: Opening the Stats Editor ===
 
=== Step 1: Opening the Stats Editor ===
 
[[File:Step1_OpenStatsEditor.png|none]]
 
[[File:Step1_OpenStatsEditor.png|none]]
Line 24: Line 19:
  
 
<br />
 
<br />
[[File:Step2_CreateObjectStats.png|none]]
+
=== Step 2: Adding a projectile skill entry ===
<sub>Creating the Object document</sub>
+
[[File:Step2_BlankProjectileSkillEntry.png|none]]
 
+
<sub>Creating a blank projectile skill entry</sub>
 
 
Finally, we need to create the Object stats document. Create and open the document the same way as we did for the skill_projectile document.
 
 
 
<br />
 
=== Step 2: Creating a new Skill ===
 
[[File:Step3_CopySkill.png|800px|none]]
 
<sub>Copying an existing skill</sub>
 
 
 
 
 
After creating the necessary documents in our project, we copy the "LightningBolt" skill from the Shared project. Copying an existing skill makes creating new skills much easier.
 
 
 
To copy the LightningBolt skill, first open the Skill_Projectile document in the Shared project <span style="color:#FCFF27">(1)</span>. In the image, I docked the Shared Skill_Projectile document under the Skill_Projectile document in my own project. You can do this by clicking and dragging the tab.
 
 
 
Then, select the LightningBolt stats entry, copy it (Ctrl+C), select the empty row in your project's Skill_Projectile document, and paste (Ctrl+V) <span style="color:#FCFF27">(2)</span>.
 
 
 
<br />
 
[[File:Step5_EditSkill.png|800px|none]]
 
<sub>Editing the new skill</sub>
 
 
 
 
 
Once we copied an existing skill, we can begin editing it. I:
 
* Renamed the skill (LightningBolt to WaterBolt)
 
* Changed the action point cost (2 to 1)
 
* Changed the cooldown (3 turns to 0)
 
* Changed whether the skill can target terrain
 
* Changed the projectile template (see next step)
 
* Changed the DisplayName, the name the skill will get in-game
 
* Changed the Description, which will be visible in game
 
* Removed the MemorizationRequirements, from 1 Aerotheurge to nothing
 
 
 
 
 
Note that all these modifications except for renaming the skill are optional.
 
 
 
<br />
 
[[File:Step4_CopyProjectileId.png|800px|none]]
 
<sub>Copying a projectile Id</sub>
 
 
 
  
I also changed the projectile template, which is the object a projectile skill spawns as it is flying from the caster to the target.
 
 
The value that needs to be assigned is a projectile template ''GUID''. I:
 
* Opened up the [[Root template panel]]
 
* Opened up the [[Sidebar]]
 
* Filtered the root template panel by projectiles <span style="color:#FCFF27">(1)</span>
 
* Filtered the projectile templates by those containing "water" <span style="color:#FCFF27">(2)</span> (you can also create a custom projectile template, which is explained further down)
 
* Selected the "RS3_Projectile_Wand_Water" projectile <span style="color:#FCFF27">(3)</span>
 
* Right clicked the "GUID" property and clicked "Copy Value" <span style="color:#FCFF27">(4)</span>
 
 
 
Once the GUID of the projectile template is copied to your clipboard, simply go back to the Stats Editor, double click the "Template" field on your new projectile and paste the GUID.
 
 
<br />
 
=== Step 4: Creating a Skillbook ===
 
[[File:Step6_EditObject.png|800px|none]]
 
<sub>Copying a skillbook stats entry, like we did for the skill</sub>
 
 
 
Our skill has now been created, and is ready to be used in the game. However, we do not have a way for characters to learn the skill yet. Next, we will be creating a skillbook.
 
 
First, we need to create a new skillbook stats entry. We do this the same way we did it for the skill:
 
* Open the Object stats document in your project
 
* Open the Object stats document in the Shared project
 
* Find and copy the SKILLBOOK_Air_LightningBolt entry
 
 
 
I modified the following fields:
 
* Name (required)
 
* RootTemplate (see further down for creating a new skillbook template, we assign this the same way we did the projectile template)
 
* Requirements, from 1 Aerotheurge to none
 
 
<br />
 
[[File:Step7_CopyTemplate1.png|800px|none]]
 
<sub>Copying a root template</sub>
 
 
 
To create our new skillbook template we:
 
* Open the [[Root template panel]]
 
* Filter the root templates by item templates
 
* Filter the item templates by "lightningbolt"
 
* Select and right-click the "BOOK_Skill_Air_LightningBolt" template, which is the skillbook for the LightningBolt skill
 
* Click "Create new from selected..."
 
 
<br />
 
[[File:Step7_CopyTemplate2.png|none]]
 
<sub>The Create Object Wizard</sub>
 
 
 
To create our new skillbook template, we perform the following steps in the create object wizard:
 
* Select our project <span style="color:#FCFF27">(1)</span>
 
* Assign skillbook stats entry in the "Stats" property <span style="color:#FCFF27">(2)</span>
 
* Rename the template <span style="color:#FCFF27">(3)</span>
 
* Create the template <span style="color:#FCFF27">(4)</span>
 
 
 
Note that the "OnUseAction" property also needs to be changed to be able to learn our skill, but I did this later.
 
 
<br />
 
[[File:Step8_CreateFolder.png|none]]
 
<sub>Creating a new folder</sub>
 
 
 
Our root template also has to be in a folder to be assignable in the stats editor. If you already have a folder of your own, you can skip this step.
 
 
To create a new folder:
 
* Right click the "Root Templates" folder (at the top) in the root template panel
 
* Click "Add Folder"
 
* Name your folder
 
 
<br />
 
[[File:Step9_MoveTemplate.png|none]]
 
<sub>Moving our skillbook template to the new folder</sub>
 
 
 
Don't forget to move our new template to our newly created folder <span style="color:#FCFF27">(1)</span> and save the root templates <span style="color:#FCFF27">(2)</span>!
 
 
<br />
 
[[File:Step10_AssignRootTemplate.png|800px|none]]
 
<sub>Assigning a root template to our object stats entry</sub>
 
 
 
There is one last thing we need to do in the Stats Editor: assign our root template to the object's stats entry. To do this:
 
* Open your Object document in the Stats Editor
 
* Navigate to the "RootTemplate" field on your stats entry and double click it
 
* Find your root template in the root template selector (the popup box)
 
* Double click it
 
 
 
Then you can save and close the Stats Editor.
 
 
<br />
 
[[File:Step11_SetOnUseAction.png|none]]
 
<sub>Setting the On Use action on our skillbook template</sub>
 
 
 
We also need perform one final (very important) step on our skillbook root template; choosing what to do when the item is used.
 
 
To change the "On Use" actions:
 
* Find your root template in the root template panel <span style="color:#FCFF27">(1)</span>
 
* Find the "OnUseActions" property and open the custom editor (select the property and click the [..] button) <span style="color:#FCFF27">(2)</span>
 
* Select our skill in the "SkillBookID" dropdown on the "Skill book" action <span style="color:#FCFF27">(3)</span> <sup>[1]</sup>
 
* Apply the changes <span style="color:#FCFF27">(3)</span>
 
 
 
<sup>[1]</sup> You may need to reload your project in order for the SkillBookID dropdown to refresh.
 
 
<br />
 
=== Step 5: Using our Skill ===
 
[[File:Step12_PlaceTemplate.png|800px|none]]
 
<sub>Place an instance of our skillbook template in the level</sub>
 
 
 
And that's it, our skill is ready to use!
 
 
To learn our skill, we need to place our skillbook in a level:
 
* Select the template in the root template panel <span style="color:#FCFF27">(1)</span>
 
* Select the Creation Interaction Mode <span style="color:#FCFF27">(2)</span>
 
* Place the item anywhere in your level (preferably near your player character) <span style="color:#FCFF27">(3)</span>
 
 
<br />
 
[[File:Step13_UseSkill.png|none]]
 
<sub>Using our skill</sub>
 
  
 +
Finally, we create an entry in the Skill_Projectile document. You can add a new entry either by editing the empty row at the bottom or by clicking the [+] button at the top of the document.
  
Last but not least, start the game (Ctrl+Enter), pick up the skillbook, learn your skill and destroy your enemies!
+
The only two required fields are the "Name" which serves as a (unique) identifier for the skill, and the SkillType. The SkillType can simply be set to the name of the document (Projectile in our case).
  
 
<br />
 
<br />

Revision as of 18:06, 11 September 2017

Introduction

Creating skills in your mod is easier than ever with our newly introduced tool, the Stats editor.


Creating a skill

Step 1: Opening the Stats Editor

Step1 OpenStatsEditor.png

The Stats Editor button


First, we need to open up the stats editor. To do this, locate the "Stats Editor" button on the menu bar (under "Editors").


Step3 CreateSkillDataStats.png

Creating the Skill_Projectile document


Next, we need to create the Skill_Projectile stats document in our project. If the document already exists, you can skip this step. To open the document, expand the "SkillData" item and double click the "Skill_Projectile" item.


Step 2: Adding a projectile skill entry

Step2 BlankProjectileSkillEntry.png

Creating a blank projectile skill entry


Finally, we create an entry in the Skill_Projectile document. You can add a new entry either by editing the empty row at the bottom or by clicking the [+] button at the top of the document.

The only two required fields are the "Name" which serves as a (unique) identifier for the skill, and the SkillType. The SkillType can simply be set to the name of the document (Projectile in our case).