Reset System Configuration

The Reset System allows characters to reset their level in exchange for rewards, creating an extended progression system beyond the level cap.

File Location#

Data/Plugins/Characters/ResetSystem.xml

Reset Types#

TypeCommandPurpose
Reset/resetStandard level reset
Grand Reset/grandreset or /grMeta-reset after accumulating resets
Master Reset/masterreset or /mrMaster level reset

Configuration Structure#

<ResetSystem Enabled="true">
    <Settings>
        <!-- What happens during reset -->
    </Settings>
    <ItemRequirements>
        <!-- Items consumed during reset -->
    </ItemRequirements>
    <Rewards>
        <!-- What players receive -->
    </Rewards>
    <Requirements>
        <!-- Conditions to perform reset -->
    </Requirements>
</ResetSystem>

Sections#

Root Element#

<ResetSystem Enabled="true">
AttributeTypeDefaultDescription
EnabledboolfalseEnable/disable the entire plugin

Settings#

Defines what happens when a reset is performed.

<Setting Index="0" ResetStats="true" ResetCommand="true"
         ResetLevelUpPoints="true" TeleportToBaseMap="true" />
AttributeTypeDefaultDescription
IndexintRequiredUnique identifier for this setting group
ResetStatsbooltrueReset STR/AGI/VIT/ENE/CMD to class defaults
ResetCommandbooltrueReset Command stat (for Dark Lord)
ResetLevelUpPointsbooltruetrue clears the character's unspent level-up points on reset. false preserves them - the character keeps whatever points they had not yet distributed, and reset reward points are added on top
ResetInventoryboolfalseClear inventory (except equipped)
ResetSkillsboolfalseClear learned skills
ResetSkillTreeboolfalseClear master skill tree
TeleportToBaseMapbooltrueTeleport to class starting location

ItemRequirements#

Defines items that must be consumed for reset.

<ItemReq Index="0" ItemType="-1" Count="0" />
<ItemReq Index="1" ItemType="14" ItemIndex="13" Count="10" />
AttributeTypeDefaultDescription
IndexintRequiredUnique identifier
ItemTypeint-1Item category (-1 = no item required)
ItemIndexint-1Item index within category
ItemLevelint-1Required item level (-1 = any)
LifeOptionint-1Require life option (-1 = any)
Skillint-1Require skill option (-1 = any)
Luckint-1Require luck option (-1 = any)
Excellentint-1Require excellent (-1 = any)
Durabilityint-1Required durability (-1 = any)
Countint0Number of items required

Example: ItemType="14" ItemIndex="13" = Jewel of Bless

Rewards#

Defines what players receive after reset.

<Reward Index="0" PointsType="LEVEL_POINTS_MULTI_RESET"
        LevelUpPoints="500" GrandResetBonusPoints="15000"
        WCoins="500" BagIndex="100" />
AttributeTypeDefaultDescription
IndexintRequiredUnique identifier
PointsTypeenumLEVEL_POINTSHow points are calculated
LevelUpPointsint0Base points per reset
GrandResetBonusPointsint0Bonus points per grand reset
MasterResetBonusPointsint0Bonus points per master reset
WCoinsint0WCoins awarded
WPCoinsint0WPCoins awarded
GoblinPointsint0Goblin Points awarded
BagIndexint-1Item bag to drop (-1 = none)

PointsType Values#

ValueFormulaUse Case
LEVEL_POINTSFixed pointsSame points every reset
LEVEL_POINTS_MULTI_RESETPoints × Reset#Scaling with resets
LEVEL_POINTS_MULTI_GRAND_RESETPoints × GrandReset#Scaling with grand resets
MASTER_LEVEL_POINTSFixed master pointsMaster reset rewards
MASTER_LEVEL_POINTS_MULTIPoints × MasterReset#Scaling master rewards

Example Calculations:

Regular Reset:

  • Settings: PointsType="LEVEL_POINTS_MULTI_RESET", LevelUpPoints="500", GrandResetBonusPoints="15000"
  • Player performing their 10th regular reset (going from 9→10) with 2 existing Grand Resets:
    • Base points: 500 × 10 = 5,000
    • Grand Reset bonus: 15000 × 2 = 30,000
    • Total: 35,000 points

Grand Reset:

  • Settings: PointsType="LEVEL_POINTS_MULTI_GRAND_RESET", LevelUpPoints="15000"
  • Player performing their 2nd Grand Reset (going from 1→2) with 100 regular resets:
    • Base points: 15000 × 2 = 30,000
    • Grand Reset bonus: 0 (not applied to Grand Reset type)
    • Total: 30,000 points
    • Note: Regular reset count is zeroed AFTER the rewards are calculated

Requirements#

Defines conditions and costs for performing resets.

<Requirement Index="0" Type="RESET" AccountLevel="*"
             SettingsIndex="0" RequiredLevel="400"
             ResetRange="000-999" ZenType="REMOVE_MULTI" ZenValue="100000"
             ItemReqIndex="1" RewardIndex="0" />
AttributeTypeDefaultDescription
IndexintRequiredUnique identifier
TypeenumRESETRESET, GRAND_RESET, or MASTER_RESET
AccountLevelstring*Account level filter (*, AL0-AL3)
SettingsIndexint0Which Settings to apply
RequiredLevelint1Level needed for reset. For RESET, Talent Tree nodes with the reset-level-cut effect (shipped: "Swift Rebirth") lower this per character. It never goes below 1
RequiredResetsint0Resets needed (for grand reset)
RequiredMasterLevelint0Master level needed
RequiredGrandResetsint0Grand resets needed (gate requirement)
RequiredMasterResetsint0Master resets needed (gate requirement)
ResetRangestring000-999Valid reset count range
ZenTypeenumNO_REMOVEHow zen is consumed
ZenValueint640Base zen cost (64-bit; can exceed 2.1 billion)
WCoinsint0WCoins cost
WPCoinsint0WPCoins cost
GoblinPointsint0GoblinPoints cost
ItemReqIndexstring-Item requirement indices (comma-separated)
RewardIndexstring-Reward indices (comma-separated)
ResetResetsOnGrandResetboolfalseZero reset count on grand reset

AutoReset#

Optional top-level <AutoReset> block. Enabled is the master switch that allows or disallows the automatic-reset feature. When it is on, players can turn on auto reset from the Reset window in the client (there is an auto-reset button alongside the manual reset and stat-distribution controls), and each character's tick handler attempts a reset on its own once the character qualifies. This block also controls how often that attempt runs.

<AutoReset Enabled="true" TickIntervalMs="5000" JitterMs="2000">
    <AccountLevel Index="0" Allowed="1" />
    <AccountLevel Index="1" Allowed="1" />
    <AccountLevel Index="2" Allowed="1" />
    <AccountLevel Index="3" Allowed="1" />
</AutoReset>
AttributeTypeDefaultDescription
EnabledboolfalseMaster switch for the AutoReset feature. When false, the client UI toggle is rejected with result 1 (disabled)
TickIntervalMsint5000Server-side polling interval (ms) per character. Clamped to a minimum of 1000
JitterMsint2000Random additional delay (ms) added per tick to spread load across characters

The <AccountLevel> children gate which account tiers may toggle AutoReset on. Index is the AccountLevel (0 = Free, 1-3 = VIP tiers). Allowed="0" rejects the toggle with result 2 for that tier. Unspecified tiers default to allowed.

When AutoReset is on, the per-character tick re-runs the same ExecuteReset pipeline that /reset uses, so all <Requirements> / <Caps> checks still apply.

Stat allocation (Points or Percent)#

Each character sets in the Reset window how the points of a reset are spread over STR / AGI / VIT / ENE / CMD (CMD only for Dark Lord). There are two modes, picked per character:

ModeMeaning
PointsEach value is a flat number of points. Capped at the max stat for the account level
PercentEach value is a share (%) of the points that reset gives, not of all unspent points. Values above 100 total are cut: later stats lose what earlier stats already took. Example: 50 / 50 / 0 / 0 splits the reset reward evenly between STR and AGI

The allocation runs after an automatic reset and after the panel's "Reset Now" button for a normal reset. Grand and master resets do not run it. Every stat is still capped by the max stat and by the points left; anything not given stays as unspent points.

Caps#

Top-level <Caps> block. One entry per reset type — the cap applies to every <Requirement> of that Type, no matter how many AccountLevel / ResetRange slices are defined.

<Caps>
  <Reset       MaxTotal="10000" MaxPerDay="-1" MaxPerWeek="-1" MaxPerMonth="-1" />
  <GrandReset  MaxTotal="-1"    MaxPerDay="-1" MaxPerWeek="-1" MaxPerMonth="-1" />
  <MasterReset MaxTotal="-1"    MaxPerDay="-1" MaxPerWeek="-1" MaxPerMonth="-1" />
</Caps>
AttributeTypeDefaultDescription
MaxTotalint-1Lifetime cap. -1 (or omitted) = unlimited. Compared against the character's lifetime count for this type (Reset / GrandReset / MasterReset on the character row)
MaxPerDayint-1Cap per calendar day. -1 = unlimited
MaxPerWeekint-1Cap per ISO week. -1 = unlimited
MaxPerMonthint-1Cap per calendar month. -1 = unlimited

Period counters live per-character in dbo.ResetSystemSettings together with a per-type last-reset timestamp. On every cap check (and at login) the plugin compares the stored timestamp against the current local time and zeroes any counter whose backing period has rolled over.

To unlock more lifetime resets server-wide, raise MaxTotal on the matching <Caps> child and reload. No per-character cleanup needed — the lifetime check reads the existing Reset / GrandReset / MasterReset count on the character row.

ZenType Values#

ValueBehaviorExample
NO_REMOVENo zen costFree reset
REMOVE_FLATFixed costAlways 1,000,000 zen
REMOVE_MULTICost × (Current# + 1)Player with 9 resets doing 10th: 100,000 × 10 = 1,000,000 zen

ResetRange#

Format: MIN-MAX

Limits which reset counts this requirement applies to:

  • 000-099 - Applies to resets 0-99
  • 100-999 - Applies to resets 100+

Important Behavior#

Examples#

<ResetSystem Enabled="true">
    <Settings>
        <Setting Index="0" ResetStats="true" ResetCommand="true"
                 ResetLevelUpPoints="true" TeleportToBaseMap="true" />
    </Settings>
    <ItemRequirements>
        <ItemReq Index="0" ItemType="-1" Count="0" />
    </ItemRequirements>
    <Rewards>
        <Reward Index="0" PointsType="LEVEL_POINTS_MULTI_RESET"
                LevelUpPoints="500" WCoins="100" />
    </Rewards>
    <Requirements>
        <Requirement Index="0" Type="RESET" AccountLevel="*"
                     SettingsIndex="0" RequiredLevel="400"
                     ResetRange="000-999" ZenType="REMOVE_MULTI"
                     ZenValue="100000" RewardIndex="0" />
    </Requirements>
</ResetSystem>

Common Issues#

Chat Commands#

CommandAction
/resetPerform regular reset
/grandreset or /grPerform grand reset
/masterreset or /mrPerform master reset

Command matching is case-insensitive and requires an exact match (no arguments after the command). A client-side Reset Panel window can also trigger the same pipeline without a chat command.

  • common.dat - provides the AccountLevel values matched by AccountLevel="AL0".."AL3"
  • command.dat - Command (Leadership) stat baseline restored when ResetCommand="true"
  • Item configuration - item identity used by ItemReq ItemType/ItemIndex

Last updated October 1, 2026