Skills

skills

Skills are the rolled actions characters attempt, each tied to one attribute that contributes to the check total.

In the editor

"Skills that characters can learn and improve"

Editor location
Files → Mechanics → Skills
Editor type
Edit in Studio + View JSON
Size limits
  • skills (entry count) — 250 entries

Schema

json
{
  "skills": {
    "<key>": {
      "name": "string",
      "attribute": "string",
      "type": "string",
      "description": "string",
      "startingItems": [
        {
          "item": "string",
          "quantity": "number"
        }
      ]
    }
  }
}

Example

json
{
  "skills": {
    "acrobatics": {
      "name": "acrobatics",
      "type": "utility",
      "attribute": "dexterity",
      "description": "Tumbling, balancing, and escaping restraints. A modest success keeps the character on their feet; a great success pulls off feats of agility that look impossible.",
      "startingItems": [
        { "item": "leather boots", "quantity": 1 }
      ]
    },
    "athletics": {
      "name": "athletics",
      "type": "combat",
      "attribute": "strength",
      "description": "Melee combat, climbing, swimming, and grappling. A modest success lands a solid blow or clears an obstacle; a great success delivers crushing strikes and feats of raw strength.",
      "startingItems": [
        { "item": "Shortsword", "quantity": 1 }
      ]
    }
  }
}

Fields

name

Display name of the skill, shown to players. Required, and the outer key must match it exactly: Voyage rejects a world whose key and name differ.

type

The skill's type, looked up in skillSettings.skillTypeDifficultyBonus for its check bonus; a type with no entry there gets no bonus, and the validator warns. The default world defines none, magic, combat, and utility, and you can define any others.

Note ("combat" is mechanically special): The exact type string "combat" is the only type that adds damage from its attribute. When an attack uses a type: "combat" skill, it gains a flat bonus of +1 damage per 2 points of the skill's linked attribute above 6, so an attribute of 14 adds +4. Skills of any other type deal no attribute-scaled damage, so give a skill type: "combat" if it is meant to deal damage. The percentage attributeDamageModifiers are a separate bonus.

attribute

The attribute that contributes to this skill's checks. Must be a name in attributeSettings.attributeNames; Voyage warns when it isn't.

description

The primary AI guidance for this skill. Describe what actions it covers and how strong its effects are at different levels of success; the AI reads it when the skill is used in play.

startingItems

Items a character receives with this skill, whether they start with it or learn it during play. Each entry is { item, quantity }. Use [] if no gear is attached.

Task resolution

Skill check formula

successScore = totalBonus - totalDifficulty

totalBonus = skillBonus + attributeBonus + earlyGameBonus + randomBonus + modifierBonus

skillBonus     = skillBonusModifier * effectiveSkillLevel
attributeBonus = (effectiveAttribute - 10) * attributeBonusModifier
earlyGameBonus = 10 if gameTick < 50, else 0

The success level comes from successScore, on the engine's ladder: impossible, critical failure, failure, mixed results, basic success, success, great success, critical success.

maxSkillSuccessLevel cap

skillSettings.maxSkillSuccessLevel (default 25) caps the absolute contribution any single skill, attribute, ability, random roll, or context modifier can add to a check.

Progression

Skill XP rewards

In skillSettings.skillXPRewards:

SizeDefault XP
small40
medium60
large100
huge150

XP to next skill level

xpToNextLevel = startingXPToLevelUpSkill + (currentLevel * additionalXPRequiredPerSkillLevel)

With the defaults (startingXPToLevelUpSkill: 100, additionalXPRequiredPerSkillLevel: 40): level 1 = 100 XP, level 10 = 460 XP, level 30 = 1,260 XP. skillSettings.maxSkillLevel (default 25) caps how high any skill can climb.

Learning new skills

When a character uses a skill they don't have:

chanceToLearn = baseChanceToLearnNewSkill + (attributeValue * skillLearningBonusModifier)

If the roll succeeds, the skill is added at level 0, the character gains xpFromNewSkill (default 200) character XP, and the skill's startingItems are added to inventory. Set both baseChanceToLearnNewSkill and skillLearningBonusModifier to 0 to lock the skill set at character creation.

Training

Players can train skills between uses, with a cooldown of skillSettings.trainingCooldown (default 10) ticks between sessions. Training adds skill XP directly.

Skills from traits

Granting a trait whose skills modifiers name a skill the character doesn't have creates that skill on the character, so the bonus always applies. The player-skill trigger effect only updates skills the character already has.

Authoring tips

  • Don't create multiple overlapping skills (e.g., 4 sword-fighting styles). Skills level through use, so spreading XP across many similar skills weakens all of them.
  • Give combat and utility skills a spread of attributes, so no single attribute dominates every character.