# MiTschMR Studios

MiTschMR Studios is based in Switzerland, develops games and extensions for Game Creator

### Games

#### Defnite

Defnite is currently in very early stages, but is developing well. If you want to take part in the journey, visit it on [itch.io](https://mitschmr-studios.itch.io/defnite).&#x20;

### Extensions

#### Finder for Game Creator

**Finder for Game Creator** is a module for [Game Creator](https://assetstore.unity.com/packages/templates/systems/game-creator-89443) and allows you to find and edit all Game Creator components and scriptable objects in centralized Editor windows.&#x20;

#### Skills for Game Creator

**Skills** is a module for [Game Creator](https://assetstore.unity.com/packages/templates/systems/game-creator-89443) and allows you to add skills to your game.&#x20;

For more extensions, look [here](/more-extensions/my-extensions).&#x20;

### Guides

I am making guides for Game Creator and its API. Learn more [here](/gc-api-guides/about).&#x20;


# Defnite


# Skills

{% hint style="danger" %}
The documentation has moved to: <https://mitschmr-studios.io/documentation/skills/>

This version will no longer be updated and maintained.&#x20;
{% endhint %}

**Skills** is a module for [Game Creator](https://assetstore.unity.com/packages/templates/systems/game-creator-89443) and allows you to add skills to your game.&#x20;

{% hint style="info" %}
Download the Skills module:[ http://u3d.as/24o8](http://u3d.as/24o8)
{% endhint %}

![](/files/-MLEmJJ9XitqbCKosuJo)

## Key Features

* Create **skills** for gameobjects to unlock and execute
* Add **types** for automatically generating a **skill tree** (or make your own)
* Easily debug your **skills** directly on the gameobjects
* Define conditions before executing or unlocking a skill
* Add actions to every **stage of execution** of the skill (Activation, Casting, Execution, Finishing)
* Use a skill bar to quickly assign skills to buttons with visualiation of the current state
* Let users have the possibility to **reset** the skills
* Tight integration with the stats module and the variable system for level and skill points

## Setup

Download the package from the the **Unity Asset Store**. You need **Game Creator** and the **Stats** module installed first.&#x20;

Then, bring up the *Module Manager* by clicking on the Game Creator option in the toolbar and selecting `Module Manager`. Click the Skills Module **Enable** button.

{% hint style="danger" %}
This asset requires **Game Creator** and the **Stats** module and won't work without it. Don't attempt to extract the package inside the Plugins/ folder as it will throw errors.
{% endhint %}

{% hint style="warning" %}
The demo scene of this asset requires the free mixamo assets [Magic Pack](https://assetstore.unity.com/packages/3d/animations/magic-pack-36269) and [Melee Axe Pack](https://assetstore.unity.com/packages/3d/animations/melee-axe-pack-35320) and won't work properly without them.&#x20;
{% endhint %}


# Skills Overview

The skills module consists of four pieces, the **Skills Window**, the **Skills component**, the **Skill Tree** and the **Skill Bar**:

* **Skills tab in the Game Creator Preferences Window:** Manage all your skills, types and settings
* **Skills component on Game Objects:** This is where the skills data is stored and most logic is handled
* **Skill Tree:** Create a skill tree by choosing between two prefabs (automatic and manual)
* **Skill Bar:** Bring skills to life with the skill bar

Learn more on the following sites:&#x20;

* [Skills Window](/skills/skills/skills-window)
* [Skills Component](/skills/skills/skills-component)
* [Skill Tree](/skills/skills/skill-tree)
* [Skill Bar](/skills/skills/skill-bar)


# Skills Window

Skills, what skills?

## Preferences

You must define skills before you can use them. In order to do this, open the Game Creator Preferences window and click on the skills tab:&#x20;

![](/files/-MLEprUcZCFdKU7fMZxp)

You can also open the skills window directly by pressing `CTRL + ALT + S` on Windows or `⌘ + ALT + S` on Mac.&#x20;

Look below for more information on every tab in the window:&#x20;

* [Skills](/skills/skills/skills-window/skills): Here you can add new skills and define what they do and how they are connected between each of them
* [Types](/skills/skills/skills-window/types): Define the types of skill (i.e. Melee, Range, Warrior etc.)
* [Settings](/skills/skills/skills-window/settings): Configure settings like what stat or global variable the level property should use


# Skills

The skills tab allows you to add new skills and configure all settings about it:&#x20;

![](/files/-ML6lP9dwEKRPnSl1hJJ)

As you can see, a skill has many settings.&#x20;

### General Settings:&#x20;

* **Skill Name**: The name of the skill
* **Skill Description**: The description of the skill
* **Icon**: The icon of the image (used in the Skills component and skill tree)

### Skill Settings:&#x20;

* **Skill Type**: What type of skill is this one (you can only choose one type per skill). This type is also used to procedurally generate a skill tree
* **Assignable to Skill Bar**: Can you add the skill to a skill bar (like a hotbar with skills to execute)?
* **Skill Execution Type**: What execution type is the skill? There are three types of skill:&#x20;

  * **Instant Execute** --> Instantly executes a skill (skips the casting phase)
  * **Cast Execute** --> This skill needs a cast time before it executes
  * **Permanent Execute** --> Constantly executing this skill, like having an HP buff (only executes the execution phase, skips every other)
  * **Stored** --> “Reloads” a skill after executing, can store up to a certain amount of skill executions. The "reload" will be reset when you execute the skill again. Only a full "reload" gives you an execution back

  You can specify the time for the cast and execution phase before the next phase starts. &#x20;
* **Cast time**: Time for casting a skill (i.e. a magic spell with a preparation time)
* **Execution time**: Time for a skill to execute
* **Cooldown time**: Time until a skill can be used again. Does not apply to Permanent Execute skills
* **Cooldown time between**: Time to wait for a stored skill to wait until it can be used again
* **Max amount**: Maximum amount of executions of a stored skill
* **Start amount**: The starting amount of executions of a stored skill
* **Conditions for activating a skill**: These conditions must be true to activate the skill
* **Skill State**: The state a skill has at the start of the game. Ideal for specifying beginner skills that are active from the start
* **Use Skill Points**: Use the skill points property in the settings to unlock this skill
* **Skill Points Needed**: The amount of skill points to use to unlock the skill
* **Requires Level**: Use the level property in the settings as a requirement to unlock the skill
* **Level**: The level the character needs to have to unlock the skill
* **Relies On Skills**: Rely on these skills (they need to be unlocked)
* **Additional conditions to unlock the skill**: Use these additional conditions to check if someone can to unlock the skill
* **Reset Skills Settings:** These actions will get executed when the skill is being reset (usually when doing a reset of all skills)

### Skill Events:&#x20;

* **On Activate**: Execute these actions when the skill gets activated
* **On Cast**: Execute these actions when the skill is in the casting phase
* **On Execute**: Execute these actions when executing the skill
* **On Finish**: Execute these actions when the skill reaches the finishing phase


# Types

In this list you can define the type of skills you want to have in your game. A skill can only be assigned to one type. Based on this type and the "Relies On Skills" property the skills are grouped together in the skill tree.&#x20;

![](/files/-MI_zy9RCn8b_T4I9xia)

{% hint style="warning" %}
You are limited to 32 types of skills.&#x20;
{% endhint %}


# Settings

On this page you define the settings for the module:&#x20;

![](/files/-MPBUQcYLXzyJwqfkCHX)

### User Interface

* **Skill Tree Selection:** Choose between Automatical and Manual skill tree
* **Skill Tree UI Prefab:** If none is set it takes the default one for the type selected

### Behavior Configuration

* **Pause Time On UI:** Should the time be paused when you open the skill tree
* **Drag Drop Skills:** Enable the drag and drop skills feature for assigning skills to the skill bar
* **Drag Drop Hotspot:** How many pixels is the difference from the center of the image to the cursor
* **Level Selection:** Choose between a stat and a global number variable for the level
* **Level Variable:** Select a global number variable for the level
* **Level Stat:** Select a stat for the level
* **Skill Points Selection:** Choose between a stat and a global number variable for the skill points
* **Skill Points Variable:** Select a global number variable for the skill points
* **Skill Points Stat:** Select a stat for the skill points


# Skills Component

The skills component stores the data for each skill and handles operations like executing a skill or unlocking one:&#x20;

![](/files/-MLE09T-_nJDhbMDQbd-)

It has a UI which only works in runtime and allows you to see the current state of every skill (unlocked or not), if it is executing or not, the cooldown time left and finally on which skills it relies on and their states.&#x20;

If you decide to use a skill bar, you need to set a reference to it here. Each skills component also has an ID in order to save the state of your skills and restore them.&#x20;


# Actions/Conditions/Triggers

This page provides an overview of every action, condition and trigger that comes with this module.&#x20;

### Actions

| Name                            | Description                                                                                     |
| ------------------------------- | ----------------------------------------------------------------------------------------------- |
| Assign Skill                    | Assigns a skill to the skill bar at a certain index on the selected target                      |
| Cancel All Skills               | Cancels all executing skills on the selected target                                             |
| Cancel Skill                    | Cancels an executing skill on the selected target                                               |
| Change Skill Execution Settings | Changes the cooldown, execution and cast time of a skill on the selected target                 |
| Change Skill Icon               | Changes the icon of a skill on the selected target                                              |
| Change Skill Type               | Changes the type of a skill on the selected target                                              |
| Debug Skill                     | Prints out the name and state of the selected skill (unlocked or locked) on the selected target |
| Execute Skill                   | Executes the selected skill on the selected target                                              |
| Reset Skill                     | Resets the skill on the selected target                                                         |
| Reset All Skills                | Resets all skills on the selected target                                                        |
| Set Skill State                 | Sets the selected skill on the selected target to unlocked or locked                            |
| Skill Tree UI                   | Opens / Closes the skill tree UI for the selected target                                        |
| Unassign Skill                  | Unassigns the assigned skill on the skill bar at a certain index on the selected target         |

### Conditions

| Name                          | Description                                                               |
| ----------------------------- | ------------------------------------------------------------------------- |
| Skill State                   | Is the selected skill on the selected target unlocked or locked?          |
| Is Skill Executing            | Is the selected skill on the selected target executing or not?            |
| Is Skill in Cooldown          | Is the selected skill on the selected target in cooldown or not?          |
| Skill Tree Element Skill Type | Is the selected skill on the selected target of the selected type or not? |
| Skill Tree UI State           | Is the skill tree UI opened or not?                                       |

### Triggers

| Name                      | Description                                                                                     |
| ------------------------- | ----------------------------------------------------------------------------------------------- |
| On Skill Activation Start | Fires when the selected skill on the selected target starts the activation phase                |
| On Skill Activation End   | Fires when the selected skill on the selected target ends the activation phase                  |
| On Skill Casting Start    | Fires when the selected skill on the selected target starts the casting phase                   |
| On Skill Casting End      | Fires when the selected skill on the selected target ends the casting phase                     |
| On Skill Execution Start  | Fires when the selected skill on the selected target starts the execution phase                 |
| On Skill Execution End    | Fires when the selected skill on the selected target ends the execution phase                   |
| On Skill Finishing Start  | Fires when the selected skill on the selected target starts the finishing phase                 |
| On Skill Finishing End    | Fires when the selected skill on the selected target ends the finishing phase                   |
| On Skills Reset           | Fires when skills reset button is pressed for the selected target                               |
| On Skill State Change     | <p>Fires when the selected skill on the selected target changes to the selected</p><p>state</p> |


# Skill Tree

Skills for Game Creator allows you to add a skill tree system to your game.&#x20;

![](/files/-MLE4goHWrn34xpHK005)

There are two skill tree prefabs, one for the **automatic** generation of a skill tree based on the types and skills one relies on, and a **manual** one. Both feature the following functionality:&#x20;

* **Context Menu support:** Unlock a skill, add or remove it to/from the skill bar
* **Hover over informations:** Hover over a skill to see informations about it like the required level
* **Skill Bar Assignments** via keyboard

{% hint style="info" %}
You can find the prefabs under Plugins/MiTschMRStudios/Skills/Resources/SkillTree
{% endhint %}

A skill tree is built like this:&#x20;

* Root
  * Header
  * ContainerSkills
    * SkillTreeContentAutomatical
      * SkillType
        * SkillHolder
          * Skill1
          * Skill2
          * Skill...
    * Skill Bar

A skill type contains so called skill holders, which contain all skills that directly rely on each other and are displayed horizontally in one row. Let's see it in action:&#x20;

![](/files/-MLEPz-Yd6FcpPBWjEJi)

When you compare the hierarchy with the skill tree in the above picture, you will immediately notice what belongs to what.&#x20;

## Automatic Skill Tree

The automatic skill tree, as already mentioned, uses the type of the skill and the ones it relies on to set it up. The prefab consists of three parts, the root gameobject with the `SkillTreeUIManagerAutomatical` component on it and the SkillTreeContentAutomatical prefab with the `SkillTreeItemsListAutomatical` component on it.&#x20;

### Skill Tree Root

The SkillTreeUIManagerAutomatical component has seven settings and references you can set:&#x20;

![](/files/-MLELArDkOsY4ALAPsOD)

| Setting                      | Description                                                                                                                          |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| Skill Bar Elements           | References the Skill Bar where you can assign skills in the UI via keys                                                              |
| Skill Points Left            | Gameobject with a text component on it that displays the amount of skill points left                                                 |
| Skills Content               | Gameobject that will have the skills structure below it                                                                              |
| Skill Distance From Top      | Vertical distance from the top (bottom of the header)                                                                                |
| Distance Between Skill Types | Vertical distance between each type section of skills                                                                                |
| Skill Type Size              | Defines how big the initial cell for a skill type section is                                                                         |
| Skill Type Prefab            | Prefab that should be spawned as a holder of all skills of this type. Has a vertical layout component on it for structuring purposes |

### Skill Tree Content

This gameobject has the component `SkillTreeItemsListAutomatical` on it, which has the following settings and references:&#x20;

![](/files/-MLER-Q0syvs2CVLsNbA)

| Setting                         | Description                                                                                                                                   |
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Skills Container                | The Rect Transform component of this gameobject. Will spawn the skill holders below it.                                                       |
| Prefab Skill                    | Prefab of the skill gameobject                                                                                                                |
| Prefab Skill Connector Enabled  | Prefab for the enabled skill connector                                                                                                        |
| Prefab Skill Connector Disabled | Prefab for the disabled skill connector                                                                                                       |
| Distance Between Skills In Line | Distance between the skills in one row, meaning the ones that rely on each other. In the middle of them the skill connectors will be spawned. |
| Prefab Skill Holder             | Prefab for the skill holder                                                                                                                   |

I recommend to play with the settings so you get a feeling for it.&#x20;

### Skill Element

A skill is the heart component of a skill tree. It has many settings and references:&#x20;

![](/files/-MSmZ2FJoRS2UdATW2SO)

| Setting                                  | Description                                                                                                             |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Skill Icon Enabled                       | References an image component used for the icon when the skill is unlocked                                              |
| Skill Icon Disabled                      | References an image component used for the icon when the skill is locked                                                |
| Tooltip Icon                             | References an image component used for the skill icon in the tooltip                                                    |
| Tooltip Name                             | References a text component where the name of the skill will be                                                         |
| Tooltip Description                      | References a text component where the description of the skill will be shown                                            |
| Tooltip Level Required Value             | References a text component where the required level for the skill will be                                              |
| Tooltip Skill Points Required Value      | References a text component where the required skill points for the skill will be                                       |
| Tooltip Skill State Value                | References a text component where the current state of the skill will be (locked / unlocked)                            |
| Tooltip Skill State Value Color Locked   | The color in which the referenced text component of the tooltip skill state value is painted when the skill is locked   |
| Tooltip Skill State Value Color Unlocked | The color in which the referenced text component of the tooltip skill state value is painted when the skill is unlocked |
| Image Locked                             | References an image component that shows if a skill is locked                                                           |
| Image Unlocked                           | References an image component that shows if a skill is unlocked                                                         |
| Skill Transform                          | The Rect Transform component of this gameobject                                                                         |
| Prefab Context Menu                      | Prefab of the context menu                                                                                              |
| Event On Hover Enter                     | Defines the logic that will be executed when you start hovering over the skill                                          |
| Event On Hover Exit                      | Defines the logic that will be executed when you exit hovering over the skill                                           |

{% hint style="warning" %}
The automatic skill tree has the limitation that it displays skills always in one row, even if you have multiple skills one relies on. It takes the first one and attaches it to this one. If you want skills to rely on multiple skills, you better use the manual skill tree described below.&#x20;
{% endhint %}

## Manual Skill Tree

For more control over the look, use the manual skill tree. Let's see which settings they have.&#x20;

### Skill Tree Root

The root gameobject has only three references to set:&#x20;

![](/files/-MSmYszUBQCMRsCaIO9R)

| Setting            |                                                                                      |
| ------------------ | ------------------------------------------------------------------------------------ |
| Skill Bar Elements | References the Skill Bar where you can assign skills in the UI via keys              |
| Skill Points Left  | Gameobject with a text component on it that displays the amount of skill points left |
| Skills Content     | Gameobject that will have the skills structure below it                              |
| Floating Skill     | Image component of the gameobject used for the drag/drop functionality               |

### Skill Tree Content

This gameobject only needs the `SkillTreeItemsListManual` component on it and is then already set up. Every skill that you add below is detected automatically.&#x20;

### Skill Element

The manual skill element has four settings more than the automatic one:&#x20;

![](/files/-MSmYpkRN5CJ2sPXF-FL)

| Setting                  | Description                                                                       |
| ------------------------ | --------------------------------------------------------------------------------- |
| Skill Tree UI Manager    | The root object of the manual skill tree (automatically set in the automatic one) |
| Skill                    | The skill it represents                                                           |
| Skill Connector Enabled  | References the enabled skill connector used between two skills                    |
| Skill Connector Disabled | References the disabled skill connector used between two skills                   |


# Skill Bar

## Skill Bar Skill Tree

The skill bar in the skill tree UI is used to assign skills to the skill bar of the gameobject that opened the skill tree UI. It looks like the following:&#x20;

* Root
  * Skill Bar Element 1
  * Skill Bar Element 2
  * Skill Bar Element x
  * ...

{% hint style="info" %}
This feature is not a requirement for the skill tree UI, it can be used without it.&#x20;
{% endhint %}

### Root

The root gameobject has one component called `SkillBarSkillTreeElements` which automatically searches all `SkillBarSkillTreeElement` components that are used on the elements.&#x20;

### Skill Bar Element

The skill bar element has the following settings and references:&#x20;

![](/files/-MSmfUlwaDptR-pfQVde)

| Setting                               | Description                                                                                                 |
| ------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| Key Code                              | The key code used to assign a skill to this element                                                         |
| Accept Skill Types                    | Defines whether only a certain type of skill may be assigned                                                |
| Skill Icon                            | References an image component that shows the icon of a skill when assigned                                  |
| Skill Not Assigned                    | References an image component that is shown when no skill is assigned                                       |
| Icon Skill Bar Configuration Mode Off | References an image that is shown when the skill bar configuration mode is turned off                       |
| Icon Skill Bar Configuration Mode On  | References an image that is shown when the skill bar configuration mode is turned on                        |
| Show Key Code Text                    | If activated, the referenced text component is activated when the skill bar configuration mode is activated |
| Allow Replacement                     | Checkbox to determine whether to allow replacement on the skill bar                                         |
| Allow Quick Removal                   | Checkbox to determine whether to allow the quick removal feature on the skill bar                           |
| Event On Hover Enter                  | Defines the logic that will be executed when you start hovering over the element                            |
| Event On Hover Exit                   | Defines the logic that will be executed when you stop hovering over the element                             |

## Skill Bar

The [Skills component](/skills/skills/skills-component) has a toggle to turn on or off the use of this feature. It also consists of a root and slightly different skill bar elements. This one needs to be in the scene, referenced in the skills component.&#x20;

### Root

The root gameobject has one component called `SkillBarElements` which automatically searches all `SkillBarElement` components that are used on the elements.&#x20;

### Skill Bar Element

The skill bar element has the following settings and references:&#x20;

![](/files/-MSmlSMCroFfToSW301G)

I only list the differences between the above one and this one here:&#x20;

| Setting                     | Description                                                                                                         |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| Target                      | The target on which the skill bar settings are applied to                                                           |
| Key Code                    | The key used to execute the skill                                                                                   |
| Skill Cooldown Icon         | The Image component shown when the skill is in cooldown                                                             |
| Show Skill Executing Icon   | If activated, this shows the currently executing skill                                                              |
| Show Key Code Text          | If activated, this shows the referenced text component which is used to display the key to press to execute a skill |
| Show Cooldown Counter       | Checkbox with Text component reference that shows the remaining cooldown time                                       |
| Show Executing Time Counter | Checkbox with Text component reference that shows the remaining execution time                                      |
| Show Amount Counter         | Checkbox with Text component reference that shows the remaining skill executions of a stored skill                  |


# FAQ

**Problem:** You get a NullReferenceException when opening the skill tree and no skills are visible

`NullReferenceException: Object reference not set to an instance of an object`\
`MiTschMR.Skills.SkillTreeItemsUI.UpdateSkills (...) (at ...)`

![](/files/-MTHBYDaqrS9ai7ZnYch)

**Solution:** Unpack all prefabs in the skill tree by right clicking on the blue gameobjects and selecting "Unpack" --> "Unpack Completely" (may differ depending on your version of Unity). Screenshot shows the skill tree prefab with prefabs in it.&#x20;

![](/files/-MTHC9vKg17tANMFFHK7)

**Problem:** When disabling the modules, a warning is thrown and the “Enable” button is still disabled.

`A meta data file (.meta) exists but its folder 'Assets/Plugins/MiTschMRStudiosData/Skills' can't be found, and has been created. Empty directories cannot be stored in version control, so it's assumed that the meta data file is for an empty directory in version control. When moving or deleting folders outside of Unity, please ensure that the corresponding .meta file is moved or deleted along with it.`&#x20;

**Solution:** Locate the folder and delete it.

![](/files/-MWe97ZH1KlUlGdj5uue)

An empty folder is shown with an empty folder icon.


# Example Setup

How to set up a scene to work with Skills for Game Creator

### Preferences Window

The first thing you should do is set up a global variable or a stat for the HP and XP. This can be done in the Skills Preferences Window:&#x20;

![](/files/-MOJGSnbx9XOkI3Wxym1)

For more information see [Settings](/skills/skills/skills-window/settings).&#x20;

### Scene

Now you are prepared for the scene. Either make a new or an existing one, where you feel comfortable. In order to make a gameobject be able to use skills, it needs the [Skills Component](/skills/skills/skills-component) attached to it.&#x20;

On the Skills component you can choose to use a [Skill Bar](/skills/skills/skill-bar) or not. If you decide to use one, you need to drag and drop the Skill Bar prefab into the scene and assign this gameobject to the variable on the gameobject with the Skills component. The prefab can be found under `Assets/MiTschMRStudios/Skills/Prefabs/SkillBar`.&#x20;

If you want to use a Skill Bar you also need to add the SkillBarSillTreeAssignments prefab to the SkillTreeUIManual or SkillTreeUIAutomatical prefabs (done by default). If you decide not to use this feature, you should delete it from the SkillTreeUI prefabs. These can be found under `Assets/MiTschMRStudios/Skills/Resources/SkillTree`.&#x20;

Refer to the Skills Examples for a setup.&#x20;


# API Documentation

Skills for Game Creator has an open API and invites you to add additional functionality if something is not provided by default or you want to change the behavior. Everything is included in its own namespace, `MiTschMR.Skills`, so you don't have to worry about overwriting any functionality.&#x20;

**Note:** This documentation does not include actions, conditions, triggers and the custom editors. If you wish for me to add them, write me on discord in the #skills channel or email me.&#x20;

{% hint style="warning" %}
This page is currently under development and therefore not complete. Please be patient.
{% endhint %}

### Namespace MiTschMR.Skills

#### Classes

| Name                                                                                              | Description                                                                                                                        |
| ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| [ButtonActionsSkills](/skills/skills/api-documentation/buttonactionsskills)                       | Adds right click functionality to the GC Button                                                                                    |
| [DatabaseSkills](/skills/skills/api-documentation/databaseskills)                                 | Scriptable Object used as a database to store all skills and settings                                                              |
| [Skill](/skills/skills/api-documentation/skill)                                                   | Scriptable Object used in saving your skills to disk                                                                               |
| [SkillAsset](/skills/skills/api-documentation/skillasset)                                         | Used as a container for handling skill related actions in order not to change the file on disk                                     |
| [SkillBarElement](/skills/skills/api-documentation/skillbarelement)                               | Contains the logic for the skillbar visible outside the skill tree UI                                                              |
| [SkillBarElements](/skills/skills/api-documentation/skillbarelements)                             | Used to store references of type `SkillBarElement`                                                                                 |
| [SkillBarSkillTreeElement](/skills/skills/api-documentation/skillbarskilltreeelement)             | Contains the logic for the skillbar visible inside the skill tree UI                                                               |
| [SkillBarSkillTreeElements](/skills/skills/api-documentation/skillbarskilltreeelements)           | Used to store references of type `SkillBarSkillTreeElement`                                                                        |
| [SkillContextMenuUI](/skills/skills/api-documentation/skillcontextmenuui)                         | Contains references to the buttons for unlocking a skill and adding/removing it from/to the skill bar                              |
| [SkillHolder](/skills/skills/api-documentation/skillholder)                                       | Base class for selecting a skill from a selection (non-persistent references only, like in actions and conditions)                 |
| [SkillHolderSerialized](/skills/skills/api-documentation/skillholderserialized)                   | Base class for selecting a skill from a selection (persistent references only, like when used in prefabs)                          |
| [SkillRelyOn](/skills/skills/api-documentation/skillrelyon)                                       | Scriptable Object used in saving skills one relies on to disk                                                                      |
| [SkillTreeItemsUI](/skills/skills/api-documentation/skilltreeitemsui)                             | Contains references to all skills shown in the skill tree UI and triggers the setup of them every time the skill tree UI is opened |
| [SkillTreeItemsUIAutomatical](/skills/skills/api-documentation/skilltreeitemsuiautomatical)       | Sets up the automatic skill tree UI items when opening the UI according to the variables set in the inspector                      |
| [SkillTreeItemsUIManual](/skills/skills/api-documentation/skilltreeitemsuimanual)                 | Sets up the manual skill tree items UI                                                                                             |
| [SkillTreeUIManager](/skills/skills/api-documentation/skilltreeuimanager)                         | Contains the logic for handling the skill tree UI                                                                                  |
| [SkillTreeUIManagerAutomatical](/skills/skills/api-documentation/skilltreeuimanagerautomatical)   | Contains the logic for handling the automatic skill tree UI                                                                        |
| [SkillTreeUIManagerManual](/skills/skills/api-documentation/skilltreeuimanagermanual)             | Contains the logic for handling the manual skill tree UI                                                                           |
| [SkillType](/skills/skills/api-documentation/skilltype)                                           | Used for defining types of skills                                                                                                  |
| [SkillUI](/skills/skills/api-documentation/skillui)                                               | Contains the logic for handling the UI of the shown skills in the skill tree UI                                                    |
| [SkillUIAutomatical](/skills/skills/api-documentation/skilluiautomatical)                         | Contains the logic for handling the UI of the shown skills in the automatic skill tree UI                                          |
| [SkillUIManual](/skills/skills/api-documentation/skilluimanual)                                   | Contains the logic for handling the UI of the shown skills in the manual skill tree UI                                             |
| [Skills](/skills/skills/api-documentation/skills)                                                 | Contains the logic of handling all skill related actions like unlocking, executing                                                 |
| [SkillsSingleSkillTypeAttribute](/skills/skills/api-documentation/skillssingleskilltypeattribute) | Used to draw a selection for one type of a skill                                                                                   |


# ButtonActionsSkills

Adds right click functionality to the GC Button.&#x20;

### Implementation

```csharp
public class ButtonActionsSkills : Selectable, IPointerClickHandler, ISubmitHandler
```

### Inheritance

.... --> [Selectable](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/api/UnityEngine.UI.Selectable.html) --> [ButtonActionsSkills](/skills/skills/api-documentation/buttonactionsskills)

[IEventSystemHandler](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/api/UnityEngine.EventSystems.IEventSystemHandler.html) --> [IPointerClickHandler](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/api/UnityEngine.EventSystems.IPointerClickHandler.html) --> [ButtonActionsSkills](/skills/skills/api-documentation/buttonactionsskills)

[IEventSystemHandler](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/api/UnityEngine.EventSystems.IEventSystemHandler.html) --> [ISubmitHandler](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/api/UnityEngine.EventSystems.ISubmitHandler.html) --> [ButtonActionsSkills](/skills/skills/api-documentation/buttonactionsskills)

### Requires

* Component of type [Image](https://docs.unity3d.com/2018.3/Documentation/ScriptReference/UI.Image.html)
* Component of type [Actions](https://docs.gamecreator.io/game-creator/game-creator/actions)

### Classes

| Name                                                                                                  | Description                            |
| ----------------------------------------------------------------------------------------------------- | -------------------------------------- |
| [ButtonActionsEvent](/skills/skills/api-documentation/buttonactionsskills/classes/buttonactionsevent) | Generic Unity Event of type GameObject |

### Fields

| Name                                                                                     | Description                                |
| ---------------------------------------------------------------------------------------- | ------------------------------------------ |
| [actions](/skills/skills/api-documentation/buttonactionsskills/fields/actions)           | Contains the actions for the onClick event |
| [onClickRight](/skills/skills/api-documentation/buttonactionsskills/fields/onclickright) | Unity event of type `ButtonClickedEvent`   |
| [onClick](/skills/skills/api-documentation/buttonactionsskills/fields/onclick)           | Unity event of type `ButtonActionsEvent`   |

### Methods

| Name                                                                                                            | Description                                                                                                            |
| --------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| [Awake()](/skills/skills/api-documentation/buttonactionsskills/methods/awake)                                   | Awake is called when the script instance is being loaded                                                               |
| [OnValidate()](/skills/skills/api-documentation/buttonactionsskills/methods/onvalidate)                         | This function is called when the script is loaded or a value is changed in the Inspector (Called in the editor only)   |
| [OnPointerClick(PointerEventData)](/skills/skills/api-documentation/buttonactionsskills/methods/onpointerclick) | Use this callback to detect clicks                                                                                     |
| [OnSubmit(BaseEventData)](/skills/skills/api-documentation/buttonactionsskills/methods/onsubmit)                | This detects when a Button has been selected via a "submit" key you specify (default is the return key)                |
| [OnFinishSubmit()](/skills/skills/api-documentation/buttonactionsskills/methods/onfinishsubmit)                 | Called at the end of OnSubmit(BaseEventData)                                                                           |
| [Press()](/skills/skills/api-documentation/buttonactionsskills/methods/press)                                   | Called when an [onClick](/skills/skills/api-documentation/buttonactionsskills/fields/onclick) event is fired           |
| [PressRight()](/skills/skills/api-documentation/buttonactionsskills/methods/pressright)                         | Called when an [onClickRight](/skills/skills/api-documentation/buttonactionsskills/fields/onclickright) event is fired |


# Classes

Classes of [ButtonActionsSkills](/skills/skills/api-documentation/buttonactionsskills).

### Classes

| Name                                                                                                  | Description                            |
| ----------------------------------------------------------------------------------------------------- | -------------------------------------- |
| [ButtonActionsEvent](/skills/skills/api-documentation/buttonactionsskills/classes/buttonactionsevent) | Generic Unity Event of type GameObject |


# ButtonActionsEvent

Generic Unity Event of type GameObject.&#x20;

### Implementation

```csharp
public class ButtonActionsEvent : UnityEvent<GameObject>
```

### Inheritance

[ISerializationCallbackReceiver](https://docs.unity3d.com/ScriptReference/ISerializationCallbackReceiver.html) --> [UnityEventBase](https://docs.unity3d.com/ScriptReference/Events.UnityEventBase.html) --> [UnityEvent\<T0>](https://docs.unity3d.com/ScriptReference/Events.UnityEvent_1.html) --> [ButtonActionsEvent](/skills/skills/api-documentation/buttonactionsskills/classes/buttonactionsevent)


# Fields

Fields of [ButtonActionsSkills](/skills/skills/api-documentation/buttonactionsskills).

### Fields

| Name                                                                                     | Description                                |
| ---------------------------------------------------------------------------------------- | ------------------------------------------ |
| [actions](/skills/skills/api-documentation/buttonactionsskills/fields/actions)           | Contains the actions for the onClick event |
| [onClickRight](/skills/skills/api-documentation/buttonactionsskills/fields/onclickright) | Unity event of type `ButtonClickedEvent`   |
| [onClick](/skills/skills/api-documentation/buttonactionsskills/fields/onclick)           | Unity event of type `ButtonActionsEvent`   |


# actions

Contains the actions for the onClick event.&#x20;

### Implementation

```csharp
public Actions actions;
```

### FieldValue

[Actions](https://docs.gamecreator.io/game-creator/game-creator/actions)


# onClickRight

Unity event of type `ButtonClickedEvent`.

### Implementation

```csharp
public ButtonClickedEvent onClickRight;
```

### FieldValue

[ButtonClickedEvent](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/api/UnityEngine.UI.Button.ButtonClickedEvent.html)


# onClick

Unity event of type `ButtonActionsEvent`.

### Implementation

```csharp
public ButtonActionsEvent onClick;
```

### FieldValue

[ButtonActionsEvent](/skills/skills/api-documentation/buttonactionsskills/classes/buttonactionsevent)


# Methods

Methods of [ButtonActionsSkills](/skills/skills/api-documentation/buttonactionsskills).&#x20;

### Methods

| Name                                                                                                            | Description                                                                                                            |
| --------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| [Awake()](/skills/skills/api-documentation/buttonactionsskills/methods/awake)                                   | Awake is called when the script instance is being loaded                                                               |
| [OnValidate()](/skills/skills/api-documentation/buttonactionsskills/methods/onvalidate)                         | This function is called when the script is loaded or a value is changed in the Inspector (Called in the editor only)   |
| [OnPointerClick(PointerEventData)](/skills/skills/api-documentation/buttonactionsskills/methods/onpointerclick) | Use this callback to detect clicks                                                                                     |
| [OnSubmit(BaseEventData)](/skills/skills/api-documentation/buttonactionsskills/methods/onsubmit)                | This detects when a Button has been selected via a "submit" key you specify (default is the return key)                |
| [OnFinishSubmit()](/skills/skills/api-documentation/buttonactionsskills/methods/onfinishsubmit)                 | Called at the end of OnSubmit(BaseEventData)                                                                           |
| [Press()](/skills/skills/api-documentation/buttonactionsskills/methods/press)                                   | Called when an [onClick](/skills/skills/api-documentation/buttonactionsskills/fields/onclick) event is fired           |
| [PressRight()](/skills/skills/api-documentation/buttonactionsskills/methods/pressright)                         | Called when an [onClickRight](/skills/skills/api-documentation/buttonactionsskills/fields/onclickright) event is fired |


# Awake

Awake is called when the script instance is being loaded.&#x20;

### Implementation

```csharp
protected new virtual void Awake();
```

### Reference

[MonoBehaviour.Awake](https://docs.unity3d.com/ScriptReference/MonoBehaviour.Awake.html)


# OnValidate

This function is called when the script is loaded or a value is changed in the Inspector (Called in the editor only).&#x20;

### Implementation

```csharp
protected new virtual void OnValidate();
```

### Reference

[MonoBehaviour.OnValidate](https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnValidate.html)


# OnPointerClick

Use this callback to detect clicks.&#x20;

### Implementation

```csharp
public virtual void OnPointerClick(PointerEventData eventData);
```

### Reference

[OnPointerClick](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/api/UnityEngine.EventSystems.IPointerClickHandler.html#UnityEngine_EventSystems_IPointerClickHandler_OnPointerClick_UnityEngine_EventSystems_PointerEventData_)


# OnSubmit

This detects when a Button has been selected via a "submit" key you specify (default is the return key).&#x20;

### Implementation

```csharp
public virtual void OnSubmit(BaseEventData eventData);
```

### Reference

[OnSubmit](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/api/UnityEngine.EventSystems.ISubmitHandler.html#UnityEngine_EventSystems_ISubmitHandler_OnSubmit_UnityEngine_EventSystems_BaseEventData_)


# OnFinishSubmit

Called at the end of OnSubmit(BaseEventData).&#x20;

### Implementation

```csharp
protected virtual IEnumerator OnFinishSubmit();
```


# Press

Called when an [onClick](/skills/skills/api-documentation/buttonactionsskills/fields/onclick) event is fired.&#x20;

Triggers the execution of the actions in the [actions](/skills/skills/api-documentation/buttonactionsskills/fields/actions) field.&#x20;

### Implementation

```csharp
protected virtual void Press();
```


# PressRight

Called when an [onClickRight](/skills/skills/api-documentation/buttonactionsskills/fields/onclickright) event is fired.&#x20;

Triggers the execution of the methods defined in the editor (similar to the `Call Methods` action).&#x20;

### Implementation

```csharp
protected virtual void PressRight();
```


# DatabaseSkills

Scriptable Object used as a database to store all skills and settings.&#x20;

### Implementation

```csharp
public class DatabaseSkills : IDatabase
```

### Inheritance

[ScriptableObject](https://docs.unity3d.com/ScriptReference/ScriptableObject.html) --> IDatabase --> [DatabaseSkills](/skills/skills/api-documentation/databaseskills)

### Classes

| Name                                                                                   | Description                                            |
| -------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| [SkillsList](/skills/skills/api-documentation/databaseskills/classes/skillslist)       | Contains the definitions for the skills list and types |
| [SkillSettings](/skills/skills/api-documentation/databaseskills/classes/skillsettings) | Contains the definitions for the settings              |

### Fields

| Name                                                                                    | Description                                        |
| --------------------------------------------------------------------------------------- | -------------------------------------------------- |
| [skillList](/skills/skills/api-documentation/databaseskills/fields/skilllist)           | References the skill list of the SkillsList class  |
| [skillsSettings](/skills/skills/api-documentation/databaseskills/fields/skillssettings) | References the settings of the SkillSettings class |

### Methods

| Name                                                                                                              | Description                                                                                  |
| ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| [GetSkillList()](/skills/skills/api-documentation/databaseskills/methods/getskilllist)                            | Returns all skills                                                                           |
| [GetSkillListSkillByIndex(int)](/skills/skills/api-documentation/databaseskills/methods/getskilllistskillbyindex) | Returns skill at index                                                                       |
| [GetSkillTypes()](/skills/skills/api-documentation/databaseskills/methods/getskilltypes)                          | Returns all skill types                                                                      |
| [GetSkillTypesTypeByIndex(int)](/skills/skills/api-documentation/databaseskills/methods/getskilltypestypebyindex) | Returns skill type at index                                                                  |
| [GetSkillSettings()](/skills/skills/api-documentation/databaseskills/methods/getskillsettings)                    | Returns the skill settings                                                                   |
| [GetSkillSuggestions(string)](/skills/skills/api-documentation/databaseskills/methods/getskillsuggestions)        | Returns all skills that have a description or name similar to the input                      |
| [GetSkillTypesNames()](/skills/skills/api-documentation/databaseskills/methods/getskilltypesnames)                | Returns all skill type names                                                                 |
| [GetSkillTypesIDs()](/skills/skills/api-documentation/databaseskills/methods/getskilltypesids)                    | Returns all skill type IDs and name                                                          |
| [Load()](/skills/skills/api-documentation/databaseskills/methods/load)                                            | Loads the skills database                                                                    |
| [InitializeOnLoad()](/skills/skills/api-documentation/databaseskills/methods/initializeonload)                    | Allow an editor class method to be initialized when Unity loads without action from the user |
| [GetProjectPath()](/skills/skills/api-documentation/databaseskills/methods/getprojectpath)                        | Returns the project path                                                                     |


# Classes

Classes of [DatabaseSkills](/skills/skills/api-documentation/databaseskills).&#x20;

### Classes

| Name                                                                                   | Description                                            |
| -------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| [SkillsList](/skills/skills/api-documentation/databaseskills/classes/skillslist)       | Contains the definitions for the skills list and types |
| [SkillSettings](/skills/skills/api-documentation/databaseskills/classes/skillsettings) | Contains the definitions for the settings              |


# SkillsList

Contains the definitions for the skills list and types.&#x20;

### Implementation

```csharp
public class SkillsList
```

### Fields

| Name                                                                                               | Description           |
| -------------------------------------------------------------------------------------------------- | --------------------- |
| [skills](/skills/skills/api-documentation/databaseskills/classes/skillslist/fields/skills)         | References the skills |
| [skillTypes](/skills/skills/api-documentation/databaseskills/classes/skillslist/fields/skilltypes) | References the types  |

###


# Fields

Fields of [SkillsList](/skills/skills/api-documentation/databaseskills/classes/skillslist).&#x20;

### Fields

| Name                                                                                               | Description           |
| -------------------------------------------------------------------------------------------------- | --------------------- |
| [skills](/skills/skills/api-documentation/databaseskills/classes/skillslist/fields/skills)         | References the skills |
| [skillTypes](/skills/skills/api-documentation/databaseskills/classes/skillslist/fields/skilltypes) | References the types  |


# skills

References a list of type Skill.&#x20;

### Implementation

```csharp
public List<Skill> skills;
```

### FieldValue

[Skill](/skills/skills/api-documentation/skill)


# skillTypes

References an array of type SkillType with a size of 32.&#x20;

### Implementation

```csharp
public SkillType[] skillTypes;
```

### FieldValue

[SkillType](/skills/skills/api-documentation/skilltype)


# SkillSettings

Contains the definitions for the settings.&#x20;

### Implementation

```csharp
public class SkillSettings
```

### Fields

| Name                                                                                                                                  | Description                                                         |
| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [skillTreeSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/skilltreeselection)                 | Defines the enum value for the skill tree type selection            |
| [skillTreeUIPrefabAutomatic](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/skilltreeuiprefabautomatic) | Defines the prefab for the automatic skill tree                     |
| [skillTreeUIPrefabManual](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/skilltreeuiprefabmanual)       | Defines the prefab for the manual skill tree                        |
| [pauseTimeOnUI](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/pausetimeonui)                           | Defines whether the time should stop when opening the skill tree UI |
| [levelSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/levelselection)                         | Defines the enum value for the level selection                      |
| [levelVariable](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/levelvariable)                           | Defines the variable used for the level                             |
| [levelStat](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/levelstat)                                   | Defines the statasset used for the level                            |
| [skillPointsSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/skillpointsselection)             | Defines the enum value for the skill points selection               |
| [skillPointsVariable](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/skillpointsvariable)               | Defines the variable used for the skill points                      |
| [skillPointsStat](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/skillpointsstat)                       | Defines the statasset used for the skill points                     |

### Methods

| Name                                                                                                                                           | Description                                                                      |
| ---------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| [GetPauseTimeOnUI()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getpausetimeonui)                           | Returns the boolean value for stopping the time when the skill tree UI is opened |
| [GetSkillTreeSelection()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getskilltreeselection)                 | Returns the enum value for the skill tree selection                              |
| [GetSkillTreeUIPrefabAutomatic()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getskilltreeuiprefabautomatic) | Returns the prefab of the automatic skill tree UI field                          |
| [GetSkillTreeUIPrefabManual()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getskilltreeuiprefabmanual)       | Returns the prefab of the manual skill tree UI field                             |
| [GetLevelSelection()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getlevelselection)                         | Returns the enum value for the level selection                                   |
| [GetLevelVariable()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getlevelvariable)                           | Returns the variable for the level variable field                                |
| [GetLevelStat()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getlevelstat)                                   | Returns the statasset for the level stat field                                   |
| [GetSkillPointsSelection()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getskillpointsselection)             | Returns the enum value for the skill points selection                            |
| [GetSkillPointsVariable()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getskillpointsvariable)               | Returns the variable for the skill points variable field                         |
| [GetSkillPointsStat()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getskillpointsstat)                       | Returns the statasset for the skill points stat field                            |

### Enums

| Name                                                                                                                 | Description                                                                      |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| [SkillTreeSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/enums/skilltreeselection) | Selection between Automatic and Manual use of the skill tree feature             |
| [StatSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/enums/statselection)           | Selection between GlobalVariable and Stat use of the skill points and xp feature |


# Fields

Fields in [SkillSettings](/skills/skills/api-documentation/databaseskills/classes/skillsettings).&#x20;

### Fields

| Name                                                                                                                                  | Description                                                         |
| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [skillTreeSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/skilltreeselection)                 | Defines the enum value for the skill tree type selection            |
| [skillTreeUIPrefabAutomatic](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/skilltreeuiprefabautomatic) | Defines the prefab for the automatic skill tree                     |
| [skillTreeUIPrefabManual](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/skilltreeuiprefabmanual)       | Defines the prefab for the manual skill tree                        |
| [pauseTimeOnUI](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/pausetimeonui)                           | Defines whether the time should stop when opening the skill tree UI |
| [levelSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/levelselection)                         | Defines the enum value for the level selection                      |
| [levelVariable](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/levelvariable)                           | Defines the variable used for the level                             |
| [levelStat](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/levelstat)                                   | Defines the statasset used for the level                            |
| [skillPointsSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/skillpointsselection)             | Defines the enum value for the skill points selection               |
| [skillPointsVariable](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/skillpointsvariable)               | Defines the variable used for the skill points                      |
| [skillPointsStat](/skills/skills/api-documentation/databaseskills/classes/skillsettings/fields/skillpointsstat)                       | Defines the statasset used for the skill points                     |


# skillTreeSelection

Defines the enum value for the skill tree type selection.&#x20;

### Implementation

```csharp
protected SkillTreeSelection skillTreeSelection;
```

### FieldValue

[SkillTreeSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/enums/skilltreeselection)


# skillTreeUIPrefabAutomatic

Defines the prefab for the automatic skill tree.&#x20;

### Implementation

```csharp
protected GameObject skillTreeUIPrefabAutomatic;
```

### FieldValue

[GameObject](https://docs.unity3d.com/ScriptReference/GameObject.html)


# skillTreeUIPrefabManual

Defines the prefab for the manual skill tree.&#x20;

### Implementation

```csharp
protected GameObject skillTreeUIPrefabManual;
```

### FieldValue

[GameObject](https://docs.unity3d.com/ScriptReference/GameObject.html)


# pauseTimeOnUI

Defines whether the time should stop when opening the skill tree UI.&#x20;

### Implementation

```csharp
protected bool pauseTimeOnUI;
```

### FieldValue

[bool](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/bool)


# levelSelection

Defines the enum value for the level selection.&#x20;

### Implementation

```csharp
protected StatSelection levelSelection;
```

### FieldValue

[StatSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/enums/statselection)


# levelVariable

Defines the variable used for the level.&#x20;

### Implementation

```csharp
protected VariableProperty levelVariable;
```

### FieldValue

[VariableProperty (GlobalVariable)](https://docs.gamecreator.io/game-creator/systems/game-creator-api/variables-access#global-variables)


# levelStat

Defines the statasset used for the level.&#x20;

### Implementation

```csharp
protected StatAsset levelStat;
```

### FieldValue

[StatAsset](https://docs.gamecreator.io/stats/stats/stats-overview/stat)


# skillPointsSelection

Defines the enum value for the skill points selection.&#x20;

### Implementation

```csharp
protected StatSelection skillPointsSelection;
```

### FieldValue

[StatSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/enums/statselection)


# skillPointsVariable

Defines the variable used for the skill points.&#x20;

### Implementation

```csharp
protected VariableProperty skillPointsVariable;
```

### FieldValue

[VariableProperty (GlobalVariable)](https://docs.gamecreator.io/game-creator/systems/game-creator-api/variables-access#global-variables)


# skillPointsStat

Defines the statasset used for the skill points.&#x20;

### Implementation

```csharp
protected StatAsset skillPointsStat;
```

### FieldValue

[StatAsset](https://docs.gamecreator.io/stats/stats/stats-overview/stat)


# Methods

Methods of [SkillSettings](/skills/skills/api-documentation/databaseskills/classes/skillsettings).&#x20;

### Methods

| Name                                                                                                                                           | Description                                                                      |
| ---------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| [GetPauseTimeOnUI()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getpausetimeonui)                           | Returns the boolean value for stopping the time when the skill tree UI is opened |
| [GetSkillTreeSelection()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getskilltreeselection)                 | Returns the enum value for the skill tree selection                              |
| [GetSkillTreeUIPrefabAutomatic()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getskilltreeuiprefabautomatic) | Returns the prefab of the automatic skill tree UI field                          |
| [GetSkillTreeUIPrefabManual()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getskilltreeuiprefabmanual)       | Returns the prefab of the manual skill tree UI field                             |
| [GetLevelSelection()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getlevelselection)                         | Returns the enum value for the level selection                                   |
| [GetLevelVariable()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getlevelvariable)                           | Returns the variable for the level variable field                                |
| [GetLevelStat()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getlevelstat)                                   | Returns the statasset for the level stat field                                   |
| [GetSkillPointsSelection()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getskillpointsselection)             | Returns the enum value for the skill points selection                            |
| [GetSkillPointsVariable()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getskillpointsvariable)               | Returns the variable for the skill points variable field                         |
| [GetSkillPointsStat()](/skills/skills/api-documentation/databaseskills/classes/skillsettings/methods/getskillpointsstat)                       | Returns the statasset for the skill points stat field                            |


# GetPauseTimeOnUI

Returns the boolean value for stopping the time when the skill tree UI is opened.&#x20;

### Implementation

```csharp
public virtual bool GetPauseTimeOnUI();
```

### Returns

[bool](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/bool)


# GetSkillTreeSelection

Returns the enum value for the skill tree selection.&#x20;

### Implementation

```csharp
public virtual SkillTreeSelection GetSkillTreeSelection();
```

### Returns

[SkillTreeSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/enums/skilltreeselection)


# GetSkillTreeUIPrefabAutomatic

Returns the prefab of the automatic skill tree UI field.&#x20;

### Implementation

```csharp
public virtual GameObject GetSkillTreeUIPrefabAutomatic();
```

### Returns

[GameObject](https://docs.unity3d.com/ScriptReference/GameObject.html)


# GetSkillTreeUIPrefabManual

Returns the prefab of the manual skill tree UI field.&#x20;

### Implementation

```csharp
public virtual GameObject GetSkillTreeUIPrefabManual();
```

### Returns

[GameObject](https://docs.unity3d.com/ScriptReference/GameObject.html)


# GetLevelSelection

Returns the enum value for the level selection.&#x20;

### Implementation

```csharp
public virtual StatSelection GetLevelSelection();
```

### Returns

[StatSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/enums/statselection)


# GetLevelVariable

Returns the variable for the level variable field.&#x20;

### Implementation

```csharp
public virtual VariableProperty GetLevelVariable();
```

### Returns

[VariableProperty (GlobalVariable)](https://docs.gamecreator.io/game-creator/systems/game-creator-api/variables-access#global-variables)


# GetLevelStat

Returns the statasset for the level stat field.&#x20;

### Implementation

```csharp
public virtual StatAsset GetLevelStat();
```

### Returns

[StatAsset](https://docs.gamecreator.io/stats/stats/stats-overview/stat)


# GetSkillPointsSelection

Returns the enum value for the skill points selection.&#x20;

### Implementation

```csharp
public virtual StatSelection GetSkillPointsSelection();
```

### Returns

[StatSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/enums/statselection)


# GetSkillPointsVariable

Returns the variable for the skill points variable field.&#x20;

### Implementation

```csharp
public virtual VariableProperty GetSkillPointsVariable();
```

### Returns

[VariableProperty (GlobalVariable)](https://docs.gamecreator.io/game-creator/systems/game-creator-api/variables-access#global-variables)


# GetSkillPointsStat

Returns the statasset for the skill points stat field.&#x20;

### Implementation

```csharp
public virtual StatAsset GetSkillPointsStat();
```

### Returns

[StatAsset](https://docs.gamecreator.io/stats/stats/stats-overview/stat)


# Enums

Enums of [SkillSettings](/skills/skills/api-documentation/databaseskills/classes/skillsettings).&#x20;

### Enums

| Name                                                                                                                 | Description                                                                      |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| [SkillTreeSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/enums/skilltreeselection) | Selection between Automatic and Manual use of the skill tree feature             |
| [StatSelection](/skills/skills/api-documentation/databaseskills/classes/skillsettings/enums/statselection)           | Selection between GlobalVariable and Stat use of the skill points and xp feature |


# SkillTreeSelection

Selection between Automatic and Manual use of the skill tree feature.&#x20;

### Implementation

```csharp
public enum SkillTreeSelection
```

### Fields

| Name      | intValue | Description                                 |
| --------- | -------- | ------------------------------------------- |
| Automatic | 0        | Uses the automatically generated skill tree |
| Manual    | 1        | Uses the manual skill tree                  |


# StatSelection

Selection between GlobalVariable and Stat use of the skill points and xp feature.&#x20;

### Implementation

```csharp
public enum StatSelection
```

### Fields

| Name           | intValue | Description                                 |
| -------------- | -------- | ------------------------------------------- |
| GlobalVariable | 0        | Uses a global variable for the calculations |
| Stat           | 1        | Uses a stat for the calculations            |


# Fields

Fields of [DatabaseSkills](/skills/skills/api-documentation/databaseskills).&#x20;

### Fields

| Name                                                                                    | Description                                        |
| --------------------------------------------------------------------------------------- | -------------------------------------------------- |
| [skillList](/skills/skills/api-documentation/databaseskills/fields/skilllist)           | References the skill list of the SkillsList class  |
| [skillsSettings](/skills/skills/api-documentation/databaseskills/fields/skillssettings) | References the settings of the SkillSettings class |


# skillList

References the skill list of the SkillsList class.&#x20;

### Implementation

```csharp
protected SkillsList skillList;
```

### FieldValue

[SkillsList](/skills/skills/api-documentation/databaseskills/classes/skillslist)


# skillsSettings

References the settings of the SkillSettings class.&#x20;

### Implementation

```csharp
protected SkillSettings skillsSettings;
```

### FieldValue

[SkillSettings](/skills/skills/api-documentation/databaseskills/classes/skillsettings)


# Methods

Methods of [DatabaseSkills](/skills/skills/api-documentation/databaseskills).&#x20;

### Methods

| Name                                                                                                              | Description                                                                                  |
| ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| [GetSkillList()](/skills/skills/api-documentation/databaseskills/methods/getskilllist)                            | Returns all skills                                                                           |
| [GetSkillListSkillByIndex(int)](/skills/skills/api-documentation/databaseskills/methods/getskilllistskillbyindex) | Returns skill at index                                                                       |
| [GetSkillTypes()](/skills/skills/api-documentation/databaseskills/methods/getskilltypes)                          | Returns all skill types                                                                      |
| [GetSkillTypesTypeByIndex(int)](/skills/skills/api-documentation/databaseskills/methods/getskilltypestypebyindex) | Returns skill type at index                                                                  |
| [GetSkillSettings()](/skills/skills/api-documentation/databaseskills/methods/getskillsettings)                    | Returns the skill settings                                                                   |
| [GetSkillSuggestions(string)](/skills/skills/api-documentation/databaseskills/methods/getskillsuggestions)        | Returns all skills that have a description or name similar to the input                      |
| [GetSkillTypesNames()](/skills/skills/api-documentation/databaseskills/methods/getskilltypesnames)                | Returns all skill type names                                                                 |
| [GetSkillTypesIDs()](/skills/skills/api-documentation/databaseskills/methods/getskilltypesids)                    | Returns all skill type IDs and name                                                          |
| [Load()](/skills/skills/api-documentation/databaseskills/methods/load)                                            | Returns the skills database                                                                  |
| [InitializeOnLoad()](/skills/skills/api-documentation/databaseskills/methods/initializeonload)                    | Allow an editor class method to be initialized when Unity loads without action from the user |
| [GetProjectPath()](/skills/skills/api-documentation/databaseskills/methods/getprojectpath)                        | Returns the project path                                                                     |


# GetSkillList

Returns all skills.&#x20;

### Implementation

```csharp
public virtual List<Skill> GetSkillList();
```

### Returns

List<[Skill](/skills/skills/api-documentation/skill)>


# GetSkillListSkillByIndex

Returns skill at index.&#x20;

### Implementation

```csharp
public virtual Skill GetSkillListSkillByIndex(int index);
```

### Returns

[Skill](/skills/skills/api-documentation/skill)


# GetSkillTypes

Returns all skill types.&#x20;

### Implementation

```csharp
public virtual SkillType[] GetSkillTypes();
```

### Returns

[SkillType\[ \]](/skills/skills/api-documentation/skilltype)


# GetSkillTypesTypeByIndex

Returns skill type at index.&#x20;

### Implementation

```csharp
public virtual SkillType GetSkillTypesTypeByIndex(int index);
```

### Returns

[SkillType](/skills/skills/api-documentation/skilltype)


# GetSkillSettings

Returns the skill settings.&#x20;

### Implementation

```csharp
public virtual SkillSettings GetSkillSettings();
```

### Returns

[SkillSettings](/skills/skills/api-documentation/databaseskills/classes/skillsettings)


# GetSkillSuggestions

Returns all skills that have a description or name similar to the input.&#x20;

### Implementation

```csharp
public virtual List<int> GetSkillSuggestions(string hint);
```

### Returns

List<[int](https://docs.microsoft.com/en-us/dotnet/api/system.int32)>


# GetSkillTypesNames

Returns all skill type names.&#x20;

### Implementation

```csharp
public virtual string[] GetSkillTypesNames();
```

### Returns

[string\[ \]](https://docs.microsoft.com/en-us/dotnet/api/system.string)


# GetSkillTypesIDs

Returns all skill type IDs and name.&#x20;

### Implementation

```csharp
public virtual string[] GetSkillTypesIDs();
```

### Returns

[string\[ \]](https://docs.microsoft.com/en-us/dotnet/api/system.string)


# Load

Returns the skills database.&#x20;

### Implementation

```csharp
public static DatabaseSkills Load();
```

### Returns

[DatabaseSkills](/skills/skills/api-documentation/databaseskills)


# InitializeOnLoad

Allow an editor class method to be initialized when Unity loads without action from the user.&#x20;

### Implementation

```csharp
[InitializeOnLoadMethod]
private static void InitializeOnLoad();
```

### Reference

[InitializeOnLoadMethod](https://docs.unity3d.com/ScriptReference/InitializeOnLoadMethodAttribute.html)


# GetProjectPath

Returns the project path.&#x20;

### Implementation

```csharp
protected override string GetProjectPath();
```

### Returns

[string](https://docs.microsoft.com/en-us/dotnet/api/system.string)


# Skill

Scriptable Object used in saving your skills to disk

### Implementation

```csharp
public class Skill : ScriptableObject
```

### Inheritance

[ScriptableObject](https://docs.unity3d.com/ScriptReference/ScriptableObject.html) --> [Skill](/skills/skills/api-documentation/skill)

### Fields

| Name                                                                                                             | Description                                                       |
| ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| [uuid](/skills/skills/api-documentation/skill/fields/uuid)                                                       | Unique id of the skill                                            |
| [skillName](/skills/skills/api-documentation/skill/fields/skillname)                                             | Localized string for the name of the skill                        |
| [skillDescription](/skills/skills/api-documentation/skill/fields/skilldescription)                               | Localized string for the description of the skill                 |
| [icon](/skills/skills/api-documentation/skill/fields/icon)                                                       | Icon for the image                                                |
| [skillType](/skills/skills/api-documentation/skill/fields/skilltype)                                             | Type of the skill                                                 |
| [skillExecutionType](/skills/skills/api-documentation/skill/fields/skillexecutiontype)                           | Execution type of the skill                                       |
| [castTime](/skills/skills/api-documentation/skill/fields/casttime)                                               | Cast time duration of the skill in seconds                        |
| [executionTime](/skills/skills/api-documentation/skill/fields/executiontime)                                     | Execution time duration of the skill in seconds                   |
| [cooldownTime](/skills/skills/api-documentation/skill/fields/cooldowntime)                                       | Cooldown time duration of the skill in seconds                    |
| [skillState](/skills/skills/api-documentation/skill/fields/skillstate)                                           | State of the skill at start                                       |
| [useSkillPoints](/skills/skills/api-documentation/skill/fields/useskillpoints)                                   | Checkbox to define whether skill points should be used to unlock  |
| [skillPointsNeeded](/skills/skills/api-documentation/skill/fields/skillpointsneeded)                             | Amount of skill points needed to unlock                           |
| [requiresLevel](/skills/skills/api-documentation/skill/fields/requireslevel)                                     | Checkbox to define whether this skill has a level requirement     |
| [level](/skills/skills/api-documentation/skill/fields/level)                                                     | Level of the skill needed to unlock                               |
| [reliesOnSkills](/skills/skills/api-documentation/skill/fields/reliesonskills)                                   | Contains all skills one relies on                                 |
| [assignableToSkillBar](/skills/skills/api-documentation/skill/fields/assignabletoskillbar)                       | Checkbox to define whether this skill can be added to a skill bar |
| [conditionsExecutionRequirements](/skills/skills/api-documentation/skill/fields/conditionsexecutionrequirements) | Conditions in order to execute the skill                          |
| [actionsOnActivate](/skills/skills/api-documentation/skill/fields/actionsonactivate)                             | Actions called when the skill is in the activation phase          |
| [actionsOnCast](/skills/skills/api-documentation/skill/fields/actionsoncast)                                     | Actions called when the skill is in the casting phase             |
| [actionsOnExecute](/skills/skills/api-documentation/skill/fields/actionsonexecute)                               | Actions called when the skill is in the execution phase           |
| [actionsOnFinish](/skills/skills/api-documentation/skill/fields/actionsonfinish)                                 | Actions called when the skill is in the finishing phase           |
| [conditionsRequirements](/skills/skills/api-documentation/skill/fields/conditionsrequirements)                   | Conditions to unlock the skill                                    |
| [actionsOnReset](/skills/skills/api-documentation/skill/fields/actionsonreset)                                   | Actions called when the skill is reset                            |

### Methods

| Name                                                                                                    | Description                                                                                       |
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| [CopySkill()](/skills/skills/api-documentation/skill/methods/copyskill)                                 | Copies the field values to a new [SkillAsset](/skills/skills/api-documentation/skillasset)        |
| [CopySkillToSkillRelyOn()](/skills/skills/api-documentation/skill/methods/copyskilltoskillrelyon)       | Copies the field values to a new [SkillRelyOn](/skills/skills/api-documentation/skillrelyon)      |
| [CreateSkillRelyOnInstance()](/skills/skills/api-documentation/skill/methods/createskillrelyoninstance) | Creates a new [SkillRelyOn](/skills/skills/api-documentation/skillrelyon) instance in the project |
| [UpdateSkillRelyOnInstance()](/skills/skills/api-documentation/skill/methods/updateskillrelyoninstance) | Updates the values of a [SkillRelyOn](/skills/skills/api-documentation/skillrelyon) instance      |
| [DeleteSkillRelyOnInstance()](/skills/skills/api-documentation/skill/methods/deleteskillrelyoninstance) | Deletes a [SkillRelyOn](/skills/skills/api-documentation/skillrelyon) instance                    |
| [CreateSkillInstance()](/skills/skills/api-documentation/skill/methods/createskillinstance)             | Creates a new [Skill](/skills/skills/api-documentation/skill) instance                            |
| [OnDestroy()](/skills/skills/api-documentation/skill/methods/ondestroy)                                 | Called when a scriptable object is destroyed                                                      |
| [DestroyAsset()](/skills/skills/api-documentation/skill/methods/destroyasset)                           | Deletes a gameobject                                                                              |

### Enums

| Name                                                                                  | Description                             |
| ------------------------------------------------------------------------------------- | --------------------------------------- |
| [SkillExecutionType](/skills/skills/api-documentation/skill/enums/skillexecutiontype) | Defines the execution type of a skill   |
| [SkillState](/skills/skills/api-documentation/skill/enums/skillstate)                 | Defines the state of the skill on start |


# Fields

Fields of [Skill](/skills/skills/api-documentation/skill).&#x20;

### Fields

| Name                                                                                                             | Description                                                       |
| ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| [uuid](/skills/skills/api-documentation/skill/fields/uuid)                                                       | Unique id of the skill                                            |
| [skillName](/skills/skills/api-documentation/skill/fields/skillname)                                             | Localized string for the name of the skill                        |
| [skillDescription](/skills/skills/api-documentation/skill/fields/skilldescription)                               | Localized string for the description of the skill                 |
| [icon](/skills/skills/api-documentation/skill/fields/icon)                                                       | Icon for the image                                                |
| [skillType](/skills/skills/api-documentation/skill/fields/skilltype)                                             | Type of the skill                                                 |
| [skillExecutionType](/skills/skills/api-documentation/skill/fields/skillexecutiontype)                           | Execution type of the skill                                       |
| [castTime](/skills/skills/api-documentation/skill/fields/casttime)                                               | Cast time duration of the skill in seconds                        |
| [executionTime](/skills/skills/api-documentation/skill/fields/executiontime)                                     | Execution time duration of the skill in seconds                   |
| [cooldownTime](/skills/skills/api-documentation/skill/fields/cooldowntime)                                       | Cooldown time duration of the skill in seconds                    |
| [skillState](/skills/skills/api-documentation/skill/fields/skillstate)                                           | State of the skill at start                                       |
| [useSkillPoints](/skills/skills/api-documentation/skill/fields/useskillpoints)                                   | Checkbox to define whether skill points should be used to unlock  |
| [skillPointsNeeded](/skills/skills/api-documentation/skill/fields/skillpointsneeded)                             | Amount of skill points needed to unlock                           |
| [requiresLevel](/skills/skills/api-documentation/skill/fields/requireslevel)                                     | Checkbox to define whether this skill has a level requirement     |
| [level](/skills/skills/api-documentation/skill/fields/level)                                                     | Level of the skill needed to unlock                               |
| [reliesOnSkills](/skills/skills/api-documentation/skill/fields/reliesonskills)                                   | Contains all skills one relies on                                 |
| [assignableToSkillBar](/skills/skills/api-documentation/skill/fields/assignabletoskillbar)                       | Checkbox to define whether this skill can be added to a skill bar |
| [conditionsExecutionRequirements](/skills/skills/api-documentation/skill/fields/conditionsexecutionrequirements) | Conditions in order to execute the skill                          |
| [actionsOnActivate](/skills/skills/api-documentation/skill/fields/actionsonactivate)                             | Actions called when the skill is in the activation phase          |
| [actionsOnCast](/skills/skills/api-documentation/skill/fields/actionsoncast)                                     | Actions called when the skill is in the casting phase             |
| [actionsOnExecute](/skills/skills/api-documentation/skill/fields/actionsonexecute)                               | Actions called when the skill is in the execution phase           |
| [actionsOnFinish](/skills/skills/api-documentation/skill/fields/actionsonfinish)                                 | Actions called when the skill is in the finishing phase           |
| [conditionsRequirements](/skills/skills/api-documentation/skill/fields/conditionsrequirements)                   | Conditions to unlock the skill                                    |
| [actionsOnReset](/skills/skills/api-documentation/skill/fields/actionsonreset)                                   | Actions called when the skill is reset or cancelled               |


# uuid

Unique id of the skill.&#x20;

### Implementation

```csharp
public int uuid;
```

### FieldValue

[int](https://docs.microsoft.com/en-us/dotnet/api/system.int32)


# skillName

Localized string for the name of the skill.&#x20;

### Implementation

```csharp
public LocString skillName;
```

### FieldValue

[LocString](https://docs.gamecreator.io/game-creator/systems/localization#localized-strings)


# skillDescription

Localized string for the description of the skill.&#x20;

### Implementation

```csharp
public LocString skillDescription;
```

### FieldValue

[LocString](https://docs.gamecreator.io/game-creator/systems/localization#localized-strings)


# icon

Icon for the image.&#x20;

### Implementation

```csharp
public Sprite icon;
```

### FieldValue

[Sprite](https://docs.unity3d.com/ScriptReference/Sprite.html)


# skillType

Type of the skill.&#x20;

### Implementation

```csharp
public int skillType;
```

### FieldValue

[int](https://docs.microsoft.com/en-us/dotnet/api/system.int32)


# skillExecutionType

Execution type of the skill.&#x20;

### Implementation

```csharp
public SkillExecutionType skillExecutionType;
```

### FieldValue

[SkillExecutionType](/skills/skills/api-documentation/skill/enums/skillexecutiontype)


# castTime

Cast time duration of the skill in seconds.&#x20;

### Implementation

```csharp
public float castTime;
```

### FieldValue

[float](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types)


# executionTime

Execution time duration of the skill in seconds.&#x20;

### Implementation

```csharp
public float executionTime;
```

### FieldValue

[float](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types)


# cooldownTime

Cooldown time duration of the skill in seconds.&#x20;

### Implementation

```csharp
public float cooldownTime;
```

### FieldValue

[float](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types)


# skillState

State of the skill at start.&#x20;

### Implementation

```csharp
public SkillState skillState;
```

### FieldValue

[SkillState](/skills/skills/api-documentation/skill/enums/skillstate)


# useSkillPoints

Checkbox to define whether skill points should be used to unlock.&#x20;

### Implementation

```csharp
public bool useSkillPoints;
```

### FieldValue

[bool](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/bool)


# skillPointsNeeded

Amount of skill points needed to unlock.&#x20;

### Implementation

```csharp
public float skillPointsNeeded;
```

### FieldValue

[float](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types)


# requiresLevel

Checkbox to define whether this skill has a level requirement.&#x20;

### Implementation

```csharp
public bool requiresLevel;
```

### FieldValue

[bool](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/bool)


# level

Level of the skill needed to unlock.&#x20;

### Implementation

```csharp
public float level;
```

### FieldValue

[float](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types)


# reliesOnSkills

Contains all skills one relies on.&#x20;

### Implementation

```csharp
public SkillHolderSerialized[] reliesOnSkills;
```

### FieldValue

[SkillHolderSerialized\[\]](/skills/skills/api-documentation/skillholderserialized)


# assignableToSkillBar

Checkbox to define whether this skill can be added to a skill bar.&#x20;

### Implementation

```csharp
public bool assignableToSkillBar;
```

### FieldValue

[bool](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/bool)


# conditionsExecutionRequirements

Conditions in order to execute the skill.&#x20;

### Implementation

```csharp
public IConditionsList conditionsExecutionRequirements;
```

### FieldValue

IConditionsList


# actionsOnActivate

Actions called when the skill is in the activation phase.&#x20;

### Implementation

```csharp
public IActionsList actionsOnActivate;
```

### FieldValue

IActionsList


# actionsOnCast

Actions called when the skill is in the casting phase.&#x20;

### Implementation

```csharp
public IActionsList actionsOnCast;
```

### FieldValue

IActionsList


# actionsOnExecute

Actions called when the skill is in the execution phase.&#x20;

### Implementation

```csharp
public IActionsList actionsOnExecute;
```

### FieldValue

IActionsList


# actionsOnFinish

Actions called when the skill is in the finishing phase.&#x20;

### Implementation

```csharp
public IActionsList actionsOnFinish;
```

### FieldValue

IActionsList




---

[Next Page](/llms-full.txt/1)

