Character Leveling


As characters gain experience points, they gain new levels. This improves many aspects of the character, and gives the player options to improve the character via new skill points and ability selections. A large part of a character's progression in level is dictated by their Role.

Skill Progression

Skills are used in game to represent the various non-combat capabilities of each character. By default, skills are defined in "hale/core/skills". Each time a character levels up, they are given a certain number of skill points to distribute. This is based on a base number defined by the character's role, and then a bonus of one additional skill point for each point of Intelligence over the base value of 10. Skill points are distributed to skills in groups of 5, with any left over points saved until the next time the character levels up.

Ability Progression

As they gain levels, characters are granted new abilities. Some of these abilities are predefined (for example, the Rogue role gains the "Hide" ability at level 1). Most abilities, however, are chosen from a list of possible selections.

These choices are defined in two ways: by overall character level or by individual role level.

Character Level

All characters gain ability options at level up based on their race. These options are defined for each race in the resources contained in the "races/" directory. The defaults can be found in "hale/core/races".

For example, the relevant lines in the "Human.json" file look like this:

"abilitySelectionsFromList" : {
    "General" : [ 2, 5, 8, 11, 14, 17, 20, 23, 26, 29,
               32, 35, 38, 41, 44, 47, 50, 53, 56, 59 ]

This means that at levels 2, 5, 8, etc, Human characters get to select a new ability from the "General" list.

Role Level

Characters also gain ability selections base on their role level, or the number of levels they currently possess in the role they are adding. This progression is defined by default in the files contained in "hale/core/roles/base".

For example, the relevant lines in the "Warrior.json" file look like this:

"abilitySelectionsFromList" : {
    "Warrior" : [
      1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16, 18, 19, 21, 22, 24, 25, 27, 28, 30,
      31, 33, 34, 36, 37, 39, 40, 42, 43, 45, 46, 48, 49, 51, 52, 54, 55, 57, 58

At the specified levels, Warrior characters will get to select an ability from the "Warrior" list.


The above files can easily be modified by the user. You can edit the files directly, or they can be overridden. To override a resource, place a file with the same name in the appropriate sub directory within a campaign package. This will override the resource for that campaign.

For example, the file "hale/core/roles/base/Warrior.txt" can be copied and placed in "hale/campaigns/Pale Pass/roles/Warrior.json". This will then override the Warrior data definition, but only for the "Pale Pass" campaign. Note that all roles are picked up whenever they are in the "roles/" directory of a package. So, the use of the "base" directory is just for organizational purposes, and is not mandatory.


Wiki: Home

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks