Rune sockets, enchantment effects, and +N equipment upgrading.

Enchanting & Upgrading

Two optional gear-progression systems, each behind its own feature flag (Enchanting and Equipment Upgrade). Turn either off and the intents are rejected and the windows are hidden — nothing else changes.

SystemWhat the player doesWhat it costs
EnchantingSockets a rune into a piece of gear to grant an effectThe rune, plus a skill-gated success roll
UpgradingPushes an item to +1, +2, +3… with upgrade materialsMaterials, plus a skill-gated success roll

Runes Carry Their Own Enchantment

A rune is an ordinary item with a Rune config — authored under Items → Items, in the same editor as everything else. Creating a new rune opens a tabbed modal (Details / Enchantment) and you author the effect right there; the rune owns its effect, so there's no "create an effect first, then link it" dance. Power users can still point a rune at an existing shared effect.

Type-conditional effects

An enchantment is a list of branches, each gated by what it's applied to. One rune can read completely differently depending on the slot:

Branch gateExample effect
Applies to weapons15% chance to apply Burn on hit
Applies to armor+12 fire resistance
Applies to a specific item typePrecise overrides beat the general gate

Branch gates offer your world's authored weapon and armor types, not a fixed engine list, and each branch shows a live summary. An optional worn aura VFX plays while the enchanted item is equipped, and a dry-run shows exactly what a given item would receive.

Sockets

Gear defines how many rune sockets it has (Rune sockets on the item's gear config). New item instances inherit that count when they're created; older instances fall back to the definition's count when a player tries to enchant them. Applying a rune consumes it, rolls against the enchanting skill, and — on success — writes the enchantment onto that specific item instance. The effects are live in combat, not cosmetic.

Upgrading (+N)

Upgrade materials are their own item type with:

  • Min. Gear Tier — the lowest item tier this material can upgrade
  • Tags — which items the material is valid for
  • A max upgrade level per item, and a gating skill that governs the success roll
Success, failure and material consumption are all resolved server-side, and upgrade level travels with the item instance — so an upgraded item keeps its +N through trades, mail, bank deposits, and death.

Refine rules (fixed odds, reset on failure)

For a Ragnarok-style refine — the chance of each level set in stone, a failure sending the item back to +0, and stones that change the odds or protect the item — use the refine settings instead of the skill-driven defaults.

Where to author it: open the item → StatsEnchant & Upgrade for the item's rules, and Items → Upgrade Materials (or the item's Upgrade Material Configuration) for the stones.

1. On the item, tick This item can be upgraded and set Max Level. 2. Set Scaling Mode to Grade × curve (refine), then its Grade, Curve and Stats it raises. 3. Fill in Success % per level, tick A failed attempt resets it to +0, and set a Material cost if an attempt uses several stones. 4. Make the base stone an upgrade material with Upgrade Increment 1. 5. Make each special stone an upgrade material with Upgrade Increment 0 — a catalyst — and give it its odds, protection or guarantee.

Item fields:

FieldWhat it does
Grade × curveEach level's stat bonus is grade × the curve's value at that level. The curve is cumulative: 1, 2.5, 5.5 gives 1× grade at +1 and 5.5× at +3
Success % per levelOne chance per level, the first for reaching +1. Replaces the world's odds for this item — skill no longer changes them
A failed attempt resets it to +0A failure loses every level, not just the materials
Material costHow many of the level-granting material each attempt uses

Stone fields:

FieldWhat it does
Upgrade Increment 0A catalyst: it goes into the attempt beside the base stone and grants no level itself
Own success % per levelReplaces the item's odds while the stone is used. With several such stones, the best odds win
On a failed attemptLose at most one level or Lose no levels — protection against the reset
Guaranteed below +NSuccess is certain while the item is below that level
  • A catalyst can't be used alone. An attempt always needs a stone that grants a level.
  • Protection beats the reset. "Lose no levels" beats "Lose at most one level", which beats the reset.
  • An item at +0 has nothing to lose — its failures only cost the stones.
  • The forge shows the real odds. It uses the same rules the server rolls with, and its risk strip reads Reset — back to +0 when that's what a failure does.

Affix Reroll

A third gear-progression window (feature flag Affix Reroll, on by default): players pay a cost to re-roll a gear piece's prefixes and suffixes from your world's affix pool. Costs are consumed on every attempt; whether the attempt actually replaces the affixes is a separate authored chance — a failed roll leaves the item exactly as it was.

Where to author it

The rules live on the Items → Affixes page, in the Reroll rules card:

FieldWhat it does
Success chance0–100% chance an attempt replaces the affixes. Costs are spent either way.
Silver feeSilver charged per attempt. 0 = no silver cost.
Catalyst itemAn item consumed per attempt. Leave empty for no item cost.
Catalyst countHow many catalyst items each attempt consumes.

You decide the cost model freely: silver only, items only, both, or neither (a free reroll shrine).

How to set it up

1. Author affixes under Items → Affixes (a world with no affixes has nothing to reroll — the vendor politely refuses). 2. Open the Reroll rules card on the same page and set the chance and costs. 3. Decide how players reach it (all routes work out of the box): - The Reroll button in the top bar's character cluster (hide it in the UI & HUD editor's Top Bar tab for an NPC-only feel). - An NPC with the enchanter role offers "Reroll an item's affixes" in dialogue. - The Open Affix Reroll event command, or Show/Hide Menu → Affix Reroll. - A custom HUD menu button targeting the Affix Reroll panel.

Gotchas

  • Only gear that can carry affixes appears in the window — an item whose affix config is disabled, or whose type no authored affix fits, is filtered out. The same server log lines as gear drops name the reason (see Items & Equipment).
  • A reroll can legitimately come up blank (no affixes) when the item's max prefix/suffix counts allow it — that's a roll, not a bug.
  • A player's custom item rename survives rerolls; only auto-composed affix names are replaced.
  • The success chance and costs sync to players on login — change them and new sessions see the new price.

In Game

Enchanting and Upgrading are two HUD windows — the rune table and the forge — drawn as one system so players learn them once. By default each has its own button in the top bar's character cluster, so players can open them anywhere. Two more routes exist: talking to an NPC with the matching role (an enchanter, or a blacksmith with the right station), and an event command that opens the window directly. Prefer the NPC-only feel? Hide the two buttons in the UI & HUD editor's Top Bar tab — the NPC and event routes keep working.

Picking the item

Each window offers three ways to choose what to work on, so it is never a dead end:

RouteHow it works
The railThe strip at the top of the window holds only gear the window can act on — items with an upgrade config, or with at least one rune socket — from the bag and what the player is wearing (worn items carry an E). Each tile shows its current +N or its filled sockets. A filter box and a count sit beside it for a full bag.
Drag from the bagWith the inventory open beside the window, drag any item onto the window (the dashed cell at the end of the rail, or anywhere on it). An ineligible item is refused with the reason, never silently. Dropping a rune onto the rune table picks the rune instead.
From the item itselfOpen an eligible item's details in the bag and press Upgrade or Enchant — the window opens with that item already staged.

What the windows show

  • The forge stages the item on a plaque wearing its +N, with a pip track from +0 to the authored max (the next level lit in green) and a before → after table of what that level actually buys, stat by stat. Chosen materials sit in a tray with their level increment and odds contribution totalled; the rest of the bag's materials are chips beneath it. The risk strip names the failure outcomes — keep, downgrade, destroy — and the +N at which each begins, straight from your Combat → Tuning thresholds. The odds shown are the world's own, not an estimate.
  • The rune table arranges the item's sockets in a ring around it: filled sockets glow with their rune's tier colour, the selected one is ringed in green, empty ones stay dashed. Picking a rune shows exactly what it grants in that item before anything is spent; picking a filled socket shows what is already there and offers Extract.
  • Both lead with a success meter that reads qualitatively first ("Likely", "Risky") with the percentage demoted, on a bar that runs ember → gold → green with the band thresholds ticked.

What you can change

Everything is edited in the UI & HUD editorPanelsEnchanting / Upgrading, like any other panel. Sections can be reordered or hidden (the forge's gear rail is a section of its own), the body can be fully recomposed with widgets, and the accent, frame, skin and placement follow the panel's Appearance card. The redesign adds these knobs to that card — all presentation; the server rolls the same odds whatever the window shows:

KnobWindowDefaultWhat it does
Pip trackUpgradingOnShow the +0 … max ladder, or just the numbers.
Before → after statsUpgradingOnShow the next level's stat delta, or hide it for a world that keeps its maths secret.
Risk stripUpgradingOnShow the keep / downgrade / destroy rungs; turn off where failure can never cost the item.
Socket layoutEnchantingRingSockets in a ring around the item, or a flat row.
Success meterBothLabel firstLabel first with the percentage demoted, percentage first, or label only for a world that never quotes odds.
Drag from bagBothOnAccept an item dragged out of the bag onto the window.
Bag shortcutBothOnOffer the Upgrade / Enchant button on an eligible item's details in the bag.

Every string in both windows is a vocabulary key (ui.upgrade., ui.enchant.), so "Forge" can be "Temper", "Reforge", or another language.

> Balance lives with the rest of your combat tuning: success formulas, skill gating, the downgrade / destroy thresholds and the gear-drop affix chance are all editable under Combat → Tuning. The forge reads those thresholds live, so the risk strip always matches what a failed roll will really do.