> For the complete documentation index, see [llms.txt](https://stellarskills.gitbook.io/stellarskills-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stellarskills.gitbook.io/stellarskills-docs/locales.md).

# locales

Use flat scalar YAML and preserve numbered MessageFormat placeholders. Server values take priority over engine fallback values. See [localization guide](file:///4985688/configuration/localization.md). This is English source text, not a machine-translated language pack.

## Server en\_us.yml

```yaml
menu.title: "StellarSkills"
menu.points: "Available: {0} {1}"
menu.rank: "Rank {0}/{1}"
menu.allocate: "Allocate"
menu.refund: "Refund"
menu.settings: "Player Settings"
menu.editor: "Server-authorized Editor"
error.permission: "You do not have permission."
error.stale: "The tree changed. Your view has been refreshed."
error.missing_integration: "Inactive: missing integration {0}"
notice.allocated: "{0} reached rank {1}."
notice.refunded: "{0} was refunded."
notice.editor_session: "Editor session expires in {0} minutes."
accessibility.locked: "Locked node"
accessibility.reachable: "Reachable but unaffordable node"
accessibility.affordable: "Affordable node"
accessibility.purchased: "Purchased node"
accessibility.maxed: "Maximum rank node"

ui.yes: "YES"
ui.no: "NO"
ui.on: "ON"
ui.off: "OFF"
ui.unnamed: "Unnamed"
ui.currency: "Currency"
ui.cycle_value: "{0}  ‹ click to cycle ›"
ui.toggle_value: "{0}: {1}"
ui.bullet: "• {0}"
ui.control.allocate: "ALLOCATE"
ui.control.refund: "REFUND"
ui.control.edit_all_node_settings: "EDIT ALL NODE SETTINGS"
ui.control.connect: "CONNECT"
ui.control.disconnect: "DISCONNECT"
ui.control.undo: "UNDO"
ui.control.redo: "REDO"
ui.control.validate: "VALIDATE"
ui.control.discard: "DISCARD"
ui.control.publish: "PUBLISH"
ui.control.theme: "THEME"
ui.control.progression: "PROGRESSION"
ui.control.profile: "PROFILE"
ui.control.journey: "JOURNEY"
ui.control.settings: "SETTINGS"
ui.control.classes: "CLASSES"

classes.screen.title: "StellarSkills Classes"
classes.title: "Choose Your Calling"
classes.subtitle: "Your class defines the path you begin with. Choose deliberately; the server controls how many callings you may hold."
classes.message.choose_first: "Choose a class before entering the skill trees."
classes.message.tree_locked: "Your selected class cannot access {0}."
classes.message.no_accessible_tree: "Your selected class does not currently grant access to any skill tree. Ask an administrator to check classes.yml."
classes.message.disabled: "The class system is disabled on this server."
classes.message.client_required: "Install the StellarSkills client or ask an administrator to enable the chest menu."
classes.message.minimum: "Select at least {0} class before continuing."
classes.message.ready: "Class oath accepted. Your progression is active."
classes.message.selected: "Class selected. Its progression permissions are active."
classes.message.removed: "Class removed. Starting grants are not issued again if it is reselected."
classes.message.reset: "All class selections were reset by an administrator."
classes.message.hero_forfeited: "Your {0} Hero class was released because you exceeded its configured inactivity timeframe. You cannot obtain that Hero class again."
classes.reason.system_disabled: "Classes are disabled on this server."
classes.reason.unknown: "Unknown class: {0}"
classes.reason.respec_disabled: "Player class respec is disabled by the server."
classes.reason.cooldown: "Class respec is available in {0} seconds."
classes.reason.already_selected: "This class is already selected."
classes.reason.class_disabled: "This class is disabled."
classes.reason.hidden: "This class can only be assigned by the server."
classes.reason.hero_unavailable: "Fate did not reveal this Hero class to you. Its one-time roll cannot be repeated."
classes.reason.hero_reveal_required: "Open the class menu and complete this Hero class's one-time reveal before selecting it."
classes.reason.hero_full: "This Hero class is currently held by {0} of {1} allowed heroes. Its fate roll will reopen when a slot is released."
classes.reason.hero_full_generic: "The final slot for this Hero class was claimed moments ago. Its fate roll will reopen if a holder is released."
classes.reason.hero_forfeited: "You previously forfeited this Hero class through inactivity and cannot roll or select it again."
classes.reason.maximum: "You have reached the maximum class selection count."
classes.reason.permission: "You do not have the permission required for this class."
classes.reason.required: "Select these prerequisite classes first: {0}"
classes.reason.conflict: "This class conflicts with your selected class: {0}"
classes.reason.available: "Available to select"
classes.reason.not_enough: "You do not have enough {0} to respec."
classes.reason.stale: "Your class selection changed. The current server state was refreshed."
classes.reason.not_selected: "That class is not currently selected."
classes.reward: "{0} {1}"
classes.hero.chance: "FATE ODDS {0}"
classes.hero.reveal.title: "A HERO CLASS HAS ANSWERED"
classes.hero.reveal.subtitle: "A rare calling has appeared among your available paths."
classes.hero.reveal.optional: "THIS CALLING IS OPTIONAL — YOU MAY ACCEPT IT OR CHOOSE ANOTHER PATH"
classes.hero.reveal.permanent: "This fate was rolled once and is now permanently recorded by the server."
classes.hero.style.celestial.designation: "CELESTIAL DESIGNATION / FATE VECTOR CONFIRMED"
classes.hero.style.inferno.forged: "SOUL-FORGE VERDICT / CLASS TEMPERED"
classes.hero.style.storm.warning: "TEMPEST ANOMALY / IMPOSSIBLE SIGNATURE DETECTED"
classes.hero.style.void.anomaly: "VOID ANOMALY / IDENTITY RECONSTRUCTION"
classes.hero.fallback: "<gradient:#FFE58A:#B47CFF>✦ HERO CLASS REVEALED ✦</gradient> {0} — {1} {2} This optional calling is now available to you."
classes.selection_status: "SELECTED {0}  /  REQUIRED {1}  /  LIMIT {2}"
classes.state.selected: "SELECTED"
classes.state.available: "AVAILABLE"
classes.state.locked: "LOCKED"
classes.detail.highlights: "CLASS IDENTITY"
classes.detail.starting_rewards: "STARTING GRANTS"
classes.detail.none: "None configured"
classes.action.select: "SELECT THIS CLASS"
classes.action.remove: "RESPEC THIS CLASS"
classes.action.none: "NO CLASS FOCUSED"
classes.action.pending: "AWAITING SERVER..."
classes.action.enter_tree: "ENTER SKILL TREES"
classes.action.locked: "CLASS REQUIRED"
classes.theme.guild.eyebrow: "THE STELLAR ADVENTURERS' GUILD"
classes.theme.guild.contracts: "AVAILABLE GUILD CONTRACTS"
classes.theme.guild.roster: "YOUR ADVENTURING OATH"
classes.theme.guild.oath: "The guild records every oath on the server ledger."
classes.theme.orrery.core: "BOUND CALLINGS"
classes.theme.orrery.readout: "CELESTIAL CLASSIFICATION ARRAY"
classes.theme.tarot.eyebrow: "THE LIVING DECK REVEALS YOUR PATH"
classes.theme.forge.system: "SOUL-FORGE / ARCHETYPE FOUNDRY"
classes.theme.forge.crucible: "SOUL SIGNATURE"
classes.theme.forge.blueprint: "TEMPERING BLUEPRINT"
classes.theme.theatre.presents: "THE CHRONICLE THEATRE PRESENTS"
classes.chest.title: "Choose Your Class"
classes.chest.selection: "Selected {0} / Required {1} / Limit {2}"
classes.chest.instructions: "Class Selection Guide"
classes.chest.left_click: "Left-click an available class to select it."
classes.chest.right_click: "Selected classes can be removed only when respec is enabled."
classes.chest.page: "Page {0} of {1}"
classes.chest.ready: "Progression Ready"
classes.chest.not_ready: "Class Selection Required"
classes.chest.state: "State: {0}"
classes.chest.hero: "✦ {0} ✦"
classes.chest.hero.optional: "Rare optional calling — selection is never forced."
classes.chest.highlights: "Class identity:"
classes.chest.starting_rewards: "One-time starting grants:"
classes.chest.control.selected: "Click to respec when server rules allow it."
classes.chest.control.select: "Click to select this class."
classes.chest.control.locked: "This class is currently unavailable."
classes.chest.previous: "Previous Page"
classes.chest.next: "Next Page"
classes.chest.refresh: "Refresh from Server"
classes.chest.continue: "Enter Skill Trees"
classes.chest.continue.description: "Continue after meeting the required selection count."
classes.chest.close: "Close"
ui.control.recenter: "RECENTER"
ui.control.back_to_tree: "BACK TO TREE"
ui.control.basics: "BASICS"
ui.control.rules_costs: "RULES & COSTS"
ui.control.effects: "EFFECTS"
ui.control.confirm_cascade_delete: "CONFIRM CASCADE DELETE"
ui.control.delete_node: "DELETE NODE"
ui.control.cancel: "CANCEL"
ui.control.server_check: "SERVER CHECK…"
ui.control.create_node: "CREATE NODE"
ui.control.apply_changes: "APPLY CHANGES"
ui.control.next_built_in: "NEXT BUILT-IN"
ui.control.next: "NEXT"
ui.control.add_first_effect: "ADD FIRST EFFECT"
ui.control.add_effect: "ADD EFFECT"
ui.control.remove: "REMOVE"
ui.control.done: "DONE"
ui.control.add_first_xp_task: "ADD FIRST XP TASK"
ui.control.add_task: "ADD TASK"
ui.control.duplicate: "DUPLICATE"
ui.control.add_first_point_objective: "ADD FIRST POINT OBJECTIVE"
ui.control.add_objective: "ADD OBJECTIVE"
ui.control.save_draft: "SAVE DRAFT"
ui.control.on: "ON"
ui.control.off: "OFF"

ui.screen.skills.title: "StellarSkills"
ui.opening.calibrating: "CALIBRATING {0}"
ui.opening.weaving: "WEAVING {0}"
ui.opening.synchronized: "SKILL MATRIX SYNCHRONIZED"
ui.header.points: "{0} {1}"
ui.header.player: "PLAYER SKILLS"
ui.header.editor: "AUTHORIZED EDITOR"
ui.header.identity: "{0} · {1}"
ui.trees.title: "TREES"
ui.inspector.title: "NODE INSPECTOR"
ui.inspector.player: "NODE INSPECTOR"
ui.inspector.editor: "NODE EDITOR"
ui.inspector.select_node: "Select a node to inspect its ranks and benefits."
ui.inspector.rank_cost: "Rank {0}/{1} · Next cost {2}"
ui.inspector.subclass: "Subclass: {0} · Choice group: {1}"
ui.inspector.scroll: "Wheel to view {0} more benefit lines"
ui.editor.canvas_hint: "Infinite workspace · Drag/pan anywhere · Right-click: create · R: fit entire tree · Ctrl+Z/Y: undo/redo"
ui.editor.connection_hint: "{0}: choose a destination for {1}"
ui.search: "Search: {0}"
ui.search.all: "all nodes"
ui.protocol_mismatch: "The StellarSkills client and server versions do not match."
ui.protocol_versions: "Client protocol {0} · Server protocol {1}"
ui.benefits.unlock: "UNLOCK BENEFITS"
ui.benefits.next_rank: "NEXT RANK"
ui.benefits.current: "CURRENT BENEFITS"
ui.benefits.active_max: "ACTIVE BENEFITS · MAX RANK"
ui.benefits.none: "NO ATTRIBUTE BENEFITS"
ui.benefits.none_description: "This node grants no configured gameplay effects."
ui.ascension.level_next: "LEVEL {0} / {1} · NEXT +{2}"
ui.ascension.level_maximum: "LEVEL {0} / {1} · MAXIMUM"
ui.ascension.complete: "MAXIMUM LEVEL REACHED"

state.locked: "LOCKED"
state.reachable: "REACHABLE"
state.affordable: "AFFORDABLE"
state.purchased: "PURCHASED"
state.maxed: "MAX RANK"
state.conflicted: "CONFLICTED"
state.disabled: "DISABLED"
state.hidden: "HIDDEN"
state.upgradeable: "UPGRADEABLE"
status.active: "ACTIVE"
status.unavailable: "UNAVAILABLE"

profile.title: "STELLAR PROFILE"
profile.verified: "SERVER-VERIFIED ATTRIBUTES"
profile.level: "LEVEL {0} / {1}"
profile.maximum_level: "MAXIMUM LEVEL"
profile.xp: "{0} / {1} XP"
profile.stat.nodes: "NODES"
profile.stat.ranks: "RANKS"
profile.stat.invested: "INVESTED"
profile.stat.buffs: "ACTIVE BUFFS"
profile.lifetime_xp: "LIFETIME XP"
profile.currency_balances: "CURRENCY BALANCES"
profile.ledger.title: "ATTRIBUTE LEDGER"
profile.ledger.status: "{0} active"
profile.ledger.status_with_unavailable: "{0} active · {1} unavailable"
profile.ledger.description: "Every active modifier is calculated by the server from purchased skill ranks."
profile.empty.title: "NO ACTIVE ATTRIBUTES YET"
profile.empty.description: "Unlock skill nodes with configured effects to populate this ledger."
profile.scroll: "Showing {0}-{1} of {2}"
profile.benefit.source: "{0} · {1} · Rank {2}"
profile.inactive.unknown_effect: "Unknown effect key"
profile.inactive.missing_integration: "Missing integration {0}"

settings.title: "PER-PLAYER CLIENT SETTINGS"
settings.authority: "The server owns themes, graph data, costs, effects, and editor authority."
settings.reduced_motion: "Reduced motion"
settings.sounds: "Theme sounds"
settings.volume: "Sound volume"
settings.scale: "UI scale"
settings.contrast: "High contrast"
settings.color_vision: "Color vision"
settings.minimap: "Show minimap"
settings.tooltips: "Detailed tooltips"
settings.pulse: "Ambient screen pulse"
settings.confirm: "Confirm keystones"
settings.grid_snap: "Editor grid snap"

chest.title: "StellarSkills · {0}"
chest.tree.theme: "Theme: {0}"
chest.tree.points: "Available: {0} {1}"
chest.navigation.title: "SKILL NAVIGATION"
chest.navigation.allocate: "Left-click a node to allocate or upgrade it."
chest.navigation.refund: "Right-click a purchased node to refund it."
chest.navigation.level: "{0}: level {1}/{2}"
chest.navigation.xp: "XP: {0}/{1}"
chest.navigation.page: "Page {0}/{1}"
chest.profile.open: "PLAYER PROFILE"
chest.profile.open.description: "View every server-calculated buff and progression statistic."
chest.profile.return: "RETURN TO SKILL TREE"
chest.profile.return.description: "Return to node allocation."
chest.profile.switch: "Click to switch views."
chest.client.open: "OPEN CUSTOM UI"
chest.client.open.description: "Open the animated StellarSkills client interface."
chest.client.missing: "CUSTOM CLIENT UNAVAILABLE"
chest.client.missing.description: "Install the matching StellarSkills client to use the animated interface."
chest.page.previous: "PREVIOUS PAGE"
chest.page.next: "NEXT PAGE"
chest.refresh: "REFRESH"
chest.close: "CLOSE"
chest.node.rank: "Rank {0}/{1}"
chest.node.state: "State: {0}"
chest.node.subclass: "Subclass: {0} · Choice group: {1}"
chest.node.next_cost: "Next cost: {0}"
chest.node.current_benefits: "CURRENT BENEFITS"
chest.node.unlock_benefits: "UNLOCK BENEFITS"
chest.node.next_benefits: "NEXT RANK BENEFITS"
chest.node.controls.purchased: "Left-click to upgrade · Right-click to refund"
chest.node.controls.unpurchased: "Left-click to allocate"
chest.profile.level: "{0}: level {1}/{2}"
chest.profile.lifetime_xp: "Lifetime XP: {0}"
chest.profile.unlocked_nodes: "UNLOCKED NODES"
chest.profile.nodes_value: "{0}/{1} nodes unlocked"
chest.profile.ranks_value: "{0} purchased ranks"
chest.profile.invested_points: "INVESTED SKILL POINTS"
chest.profile.invested_description: "Total points spent across every tree."
chest.profile.active_buffs: "ATTRIBUTE LEDGER"
chest.profile.active_value: "{0} active buffs"
chest.profile.unavailable_value: "{0} unavailable buffs"
chest.profile.currency_balances: "CURRENCY BALANCES"
chest.profile.currency_value: "{0}: {1}"
chest.profile.benefit.tree: "Tree: {0}"
chest.profile.benefit.node: "Node: {0} · Rank {1}"
chest.profile.benefit.status: "Status: {0}"
chest.profile.benefit.reason: "Reason: {0}"

editor.workshop.create: "CREATE SERVER NODE"
editor.workshop.edit: "EDIT SERVER NODE"
editor.workshop.authority: "Draft changes remain inert until validation and publish succeed."
editor.workshop.tip: "Tip: right-click a node to reopen this workshop; drag it directly for fast positioning."
editor.position.value: "{0}, {1} · unbounded workspace"
editor.material.description: "Minecraft and Pixelmon item IDs render item models; StellarSkills IDs render custom silhouettes."
editor.material.potion_example: "Potion item example: minecraft:potion_swiftness"
editor.material.pixelmon_example: "Pixelmon Ball example: pixelmon:poke_ball"
editor.material.effect_example: "Potion effect icon example: minecraft:potion_swiftness_icon"
editor.material.catalogue: "BUILT-IN NODE MATERIALS"
editor.rules.requirements_hint: "Required nodes gate allocation. Conflicts make routes mutually exclusive."
editor.rules.publish_hint: "All identifiers are checked again by the server before publish."
editor.rules.color_hint: "AUTO uses the active theme. Hex colors use #RRGGBB and are validated by the server."
editor.effects.empty: "THIS NODE HAS NO GAMEPLAY EFFECTS"
editor.effects.empty_description: "Add an effect to tell players exactly what this node grants."
editor.effects.position: "EFFECT {0} / {1}"
editor.effects.validation_hint: "Values, operations, filters, caps, and integrations are validated by the server."
editor.effects.typed_hint: "* Required · Type fields are validated and stored by the authoritative server."
editor.effects.advanced_hint: "Advanced controls preserve stacking, caps, scope, missing-integration policy, and raw conditions."
editor.effects.field_page: "FIELDS {0}/{1}"
editor.effects.open_fields: "EFFECT FIELDS"
editor.effects.open_core: "CORE & RULES"
editor.effects.core_tab: "CORE"
editor.effects.fields_tab: "FIELDS"
editor.effects.core_hint: "CORE & RULES keeps every original effect setting available, including rank values and raw conditions."
editor.effects.core_schema_hint: "Use EFFECT FIELDS for guided inputs specific to this effect; both pages edit the same server draft."
editor.effects.field_help.required: "Required"
editor.effects.field_help.optional: "Optional"
editor.effects.field_help.meta: "{0} field · input type: {1}."
editor.effects.field_help.example: "Example or default: {0}"
editor.effects.field_help.options: "Allowed values: {0}"
effect.reward.item_received: "&aSkill reward: &f{0} ×{1}"
effect.field.permission.label: "PERMISSION NODE"
effect.field.permission.help: "Exact server permission. It is never shown to players unless you put it in custom display text."
effect.field.provider.label: "PERMISSION PROVIDER"
effect.field.provider.help: "Native covers StellarSkills/API checks. Commands synchronizes an external permission plugin."
effect.field.grant_command.label: "GRANT COMMAND"
effect.field.grant_command.help: "Console command run once when the permission becomes active. Supports the UUID, player-name, and permission placeholders shown in the field example."
effect.field.revoke_command.label: "REVOKE COMMAND"
effect.field.revoke_command.help: "Console command run when the managed permission is no longer active."
effect.field.display.label: "PLAYER-FACING BENEFIT TEXT"
effect.field.display.help: "Overrides generated benefit text so server-only IDs and implementation details stay private."
effect.field.hidden.label: "HIDE FROM BENEFIT LISTS"
effect.field.hidden.help: "The effect remains active but is omitted from the skill inspector and player profile."
effect.field.item.label: "REWARD ITEM ID"
effect.field.item.help: "Exact registered Minecraft or Pixelmon item ID, such as pixelmon:master_ball."
effect.field.min_count.label: "MINIMUM ITEM COUNT"
effect.field.min_count.help: "Smallest stack awarded after a successful roll."
effect.field.max_count.label: "MAXIMUM ITEM COUNT"
effect.field.max_count.help: "Largest stack awarded after a successful roll."
effect.field.notify.label: "NOTIFY PLAYER"
effect.field.notify.help: "Shows a localized reward message when the item is granted."
effect.field.loot_table.label: "LOOT TABLE FILTER"
effect.field.loot_table.help: "Exact table ID or wildcard, such as minecraft:chests/*."
effect.field.dimension.label: "DIMENSION FILTER"
effect.field.dimension.help: "Optional dimension ID restriction."
effect.field.entity.label: "ENTITY FILTER"
effect.field.entity.help: "Optional exact entity ID restriction."
effect.field.block.label: "BLOCK FILTER"
effect.field.block.help: "Optional exact block ID restriction."
effect.field.tool.label: "TOOL FILTER"
effect.field.tool.help: "Optional exact held tool ID restriction."
effect.field.damage_type.label: "DAMAGE TYPE FILTER"
effect.field.damage_type.help: "Optional server damage-source restriction."
effect.field.damage_percent.label: "DAMAGE REFLECTED (%)"
effect.field.damage_percent.help: "Percent of final incoming damage returned to the attacker."
effect.field.status_effect.label: "STATUS EFFECT ID"
effect.field.status_effect.help: "Registered Minecraft status effect, such as minecraft:slowness."
effect.field.duration_ticks.label: "DURATION (TICKS)"
effect.field.duration_ticks.help: "20 ticks equals one second."
effect.field.amplifier.label: "EFFECT AMPLIFIER"
effect.field.amplifier.help: "0 is level I, 1 is level II, and so on."
effect.field.currency.label: "SKILL CURRENCY ID"
effect.field.currency.help: "Configured StellarSkills currency to award."
editor.help.header: "?  {0}"
editor.field.id.label: "NODE ID"
editor.field.id.immutable: "{0} (IMMUTABLE)"
editor.field.title.label: "DISPLAY TITLE"
editor.field.description.label: "DESCRIPTION"
editor.field.icon.label: "NODE MATERIAL / ITEM ID"
editor.field.type.label: "NODE TYPE"
editor.field.max_rank.label: "MAX RANK (1-100)"
editor.field.currency.label: "CURRENCY ID"
editor.field.position.label: "SERVER POSITION"
editor.field.preview.label: "PREVIEW"
editor.field.costs.label: "RANK COSTS (comma separated; last value repeats)"
editor.field.requires.label: "REQUIRED NODE IDS (comma separated)"
editor.field.conflicts.label: "CONFLICTING NODE IDS (comma separated)"
editor.field.aliases.label: "LEGACY ALIASES (comma separated)"
editor.field.subclass_group.label: "SUBCLASS CHOICE GROUP"
editor.field.subclass.label: "SUBCLASS PATH ID"
editor.field.label_id.label: "TEXT ID"
editor.field.label_text.label: "DISPLAY TEXT"
editor.field.label_color.label: "TEXT COLOR (AUTO / #RRGGBB)"
editor.field.label_background.label: "BACKGROUND COLOR (AUTO / #RRGGBB)"
editor.field.label_scale.label: "TEXT SCALE (0.5-4.0)"
editor.field.label_alignment.label: "ALIGNMENT"
editor.field.label_visible.label: "VISIBLE TO PLAYERS"
editor.field.root.label: "ROOT / ENTRY NODE"
editor.field.hidden.label: "HIDDEN UNTIL REVEALED"
editor.field.refundable.label: "PLAYER REFUNDABLE"
editor.field.background_color.label: "NODE BACKGROUND COLOR (AUTO / #RRGGBB)"
editor.field.material_color.label: "CUSTOM MATERIAL COLOR (AUTO / #RRGGBB)"
editor.field.effect.key.label: "EFFECT KEY"
editor.field.effect.operation.label: "OPERATION"
editor.field.effect.values.label: "VALUES BY RANK (comma separated)"
editor.field.effect.stacking.label: "STACKING GROUP"
editor.field.effect.aggregation.label: "AGGREGATION"
editor.field.effect.cap.label: "CAP (0 = none)"
editor.field.effect.priority.label: "PRIORITY"
editor.field.effect.scope.label: "SCOPE"
editor.field.effect.missing.label: "WHEN INTEGRATION IS MISSING"
editor.field.effect.filters.label: "FILTERS (key=value; key=value)"
editor.default.node_title: "New Node"
editor.default.node_description: "Describe this node."
editor.default.label_text: "NEW PATH"
editor.create_menu.title: "CREATE ON CANVAS"
editor.create_menu.node: "SKILL NODE"
editor.create_menu.text: "TEXT / PATH HEADING"
editor.label.create: "CREATE CANVAS TEXT"
editor.label.edit: "EDIT CANVAS TEXT"
editor.label.position: "Server position: {0}, {1}"
editor.label.hint: "Drag the text directly on the tree after applying. It never acts as a purchasable node."
editor.label.delete: "DELETE TEXT"
editor.label.create_button: "CREATE TEXT"
editor.label.apply: "APPLY TEXT"
editor.error.destination_same: "A connection cannot start and end at the same node."
editor.error.effect_limit: "A node cannot contain more effects."
editor.status.waiting_validation: "Waiting for server validation…"
editor.status.confirm_delete: "Click delete again to confirm cascade deletion."
editor.status.waiting_cascade: "Waiting for the server to validate cascade deletion…"
editor.validation.node_id: "Node ID must use lowercase letters, numbers, underscores, dots, colons, or hyphens."
editor.validation.max_rank: "Max Rank must be between 1 and 100."
editor.validation.currency: "Currency ID is invalid."
editor.validation.subclass_pair: "Subclass Group and Subclass Path must either both be filled in or both be empty."
editor.validation.subclass_id: "Subclass IDs must use lowercase letters, numbers, underscores, dots, or colons."
editor.validation.label_id: "Text ID must use lowercase letters, numbers, underscores, dots, or colons."
editor.validation.label_text: "Display Text cannot be empty."
editor.validation.label_scale: "Text Scale must be between 0.5 and 4.0."
editor.validation.label_alignment: "Alignment must be left, center, or right."
editor.validation.costs: "Rank Costs must contain at least one non-negative whole number."
editor.validation.color: "{0} must be AUTO or a #RRGGBB color."
editor.validation.whole_list: "{0} must be a comma-separated list of whole numbers."
editor.validation.decimal_list: "{0} must be a comma-separated list of numbers."
editor.validation.whole_number: "{0} must be a whole number."
editor.validation.finite_number: "{0} must be a finite number."
editor.validation.filters: "Filters must use key=value pairs separated by semicolons."
editor.validation.effect_key: "Effect Key cannot be empty."
editor.validation.effect_values: "Effect Values must contain at least one number."
editor.validation.name.max_rank: "Max Rank"
editor.validation.name.costs: "Rank Costs"
editor.validation.name.background_color: "Node Background Color"
editor.validation.name.material_color: "Custom Material Color"
editor.validation.name.label_scale: "Text Scale"
editor.validation.name.label_color: "Text Color"
editor.validation.name.label_background: "Text Background Color"
editor.validation.name.effect_values: "Effect Values"
editor.validation.name.effect_cap: "Effect Cap"
editor.validation.name.effect_priority: "Effect Priority"
```

## Engine-only English fallback keys

Add the relevant exact keys to server locale files to override new-screen text. Key-binding entries may be handled by Minecraft's normal resource language lookup rather than server synchronization.

| Exact key                               | English fallback                                                             |
| --------------------------------------- | ---------------------------------------------------------------------------- |
| `choices.cancel`                        | CANCEL                                                                       |
| `choices.close_details`                 | BACK TO OPTIONS                                                              |
| `choices.confirm`                       | CONFIRM & UNLOCK                                                             |
| `choices.conflict`                      | This option conflicts with your selected path.                               |
| `choices.count`                         | Selected {0} / {1}                                                           |
| `choices.details`                       | ALL BENEFITS IN THIS OPTION                                                  |
| `choices.full`                          | You can select {0} option(s). Deselect an option to change your choice.      |
| `choices.instructions`                  | Choose exactly {0} option(s). Confirming unlocks this rank for {1} point(s). |
| `choices.pending`                       | AWAITING SERVER...                                                           |
| `choices.pick`                          | CLICK TO CHOOSE                                                              |
| `choices.scroll_details`                | Scroll here to read every benefit.                                           |
| `choices.selected`                      | SELECTED - click to undo                                                     |
| `choices.timeout`                       | No reply yet. Refresh the skill menu before trying again.                    |
| `choices.title`                         | SHAPE YOUR POWER                                                             |
| `classes.theme.covenant.arch`           | CHOOSE THE SIGIL THAT ANSWERS YOU                                            |
| `classes.theme.covenant.eyebrow`        | COVENANT ATRIUM / THE HALL OF POSSIBILITIES                                  |
| `classes.theme.covenant.monument`       | THE OATH MONUMENT                                                            |
| `classes.theme.covenant.warning`        | Your choice is confirmed by the server.                                      |
| `key.categories.stellar_skills_client`  | StellarSkills                                                                |
| `key.stellar_skills_client.hud_studio`  | Open RPG HUD Studio                                                          |
| `progression.quest.default_description` | Describe the task that earns XP.                                             |
| `progression.quest.default_title`       | New Trainer Quest                                                            |
| `progression.quests.empty`              | NO QUESTS CONFIGURED                                                         |
| `progression.quests.empty_description`  | Create standalone quests or connect chapters to award XP through a story.    |
| `progression.tab.quests`                | QUESTS & STORIES ({0})                                                       |
| `quests.accept`                         | START QUEST / CHOOSE PATH                                                    |
| `quests.all`                            | All stories & standalone quests                                              |
| `quests.auto`                           | Progress and rewards are verified by the server.                             |
| `quests.back`                           | BACK TO SKILLS                                                               |
| `quests.campaign`                       | Story: {0}                                                                   |
| `quests.completed`                      | Completed {0} / {1} quests                                                   |
| `quests.empty`                          | No quests match this filter.                                                 |
| `quests.filter`                         | Show: {0}                                                                    |
| `quests.filter.0`                       | All quests                                                                   |
| `quests.filter.1`                       | Active & available                                                           |
| `quests.filter.2`                       | Locked quests                                                                |
| `quests.filter.3`                       | Completed quests                                                             |
| `quests.predecessors`                   | PREVIOUS CHAPTERS - click to inspect                                         |
| `quests.progress`                       | Progress: {0} / {1}                                                          |
| `quests.refresh`                        | REFRESH JOURNAL                                                              |
| `quests.requirements`                   | REQUIREMENTS & PATH RULES                                                    |
| `quests.reset`                          | Next quest cycle in {0}h {1}m                                                |
| `quests.reward`                         | COMPLETION REWARD                                                            |
| `quests.scroll`                         | Scroll here to browse more quests                                            |
| `quests.state.active`                   | In progress                                                                  |
| `quests.state.available`                | Available - choose this path                                                 |
| `quests.state.complete`                 | Completed                                                                    |
| `quests.state.locked`                   | Requirements not met                                                         |
| `quests.subtitle`                       | Complete quests to earn XP. Level up to receive your skill points.           |
| `quests.successors`                     | FOLLOWING CHAPTERS - click to inspect                                        |
| `quests.title`                          | TRAINER QUEST JOURNAL                                                        |
