Glossary
Game terms in plain English: what you see in game, and what it means. Each entry quotes the game's own words. Open “How we know” for the detail and the files behind it.
Gear
Gold (yellow) trait lines Datamined
In game: Trait lines drawn in gold on a gear tooltip
A gold line is a trait that's stronger than a normal roll. It's gold for one of two reasons: an upgrade at the Forge improved it, or it's the item's Masterwork trait. An improved trait is worked out as if the item were 100 levels higher on the game's item scale, which is why gold numbers sit well above the usual range.
The Forge allows you to upgrade and enchant your equipment. Equipment can be upgraded up to five ranks, increasing its strength and adding new abilities. Enchant any item to promote its rarity, up to Legendary. Augments and Common items cannot be enchanted. The masterwork weapons wielded by the Valorian knights cannot be made through mundane processes. Only a special Forge can accommodate a Godsmith's Sacred Flame, but there aren’t many left capable of harnessing that power. Fortunately, the forge within the Seventh Sanctum is capable of upgrading and enchanting any equipment. Even the greatest creation of a Godsmith at any other forge can be improved upon in the Seventh's forge, provided the right resources.Codex: The ForgeAperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → localization → Codex.Resources.Forge.descriptionHow we know
In more detail: Gold marks a trait that is stronger than a normal roll: either it was improved when the item was upgraded, or it is the item's Masterwork trait. Improved traits roll as if the item were many tiers higher (rule U1), which is why they sit well above the normal range.
Rules from the game's code: Gold (yellow) trait lines Datamined · Upgrade-improved traits Datamined · Masterwork trait Datamined
In the files:
trait field masterworkBonusTier (sent by the game with each item) (UI code, see C1)
craftingUpgrade.improvedTraitTierOffset: 100 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → craftingUpgrade)
Upgrade rank (the pips on gear) Datamined
In game: Hexagon pips at the top of a gear tooltip; upgrades are done at the Forge
Each pip is one upgrade at the Forge. Every upgrade makes the item's attribute number (the big Might, Spirit or Vitality number) a little bigger, as if the item were one level higher per upgrade. Upgrades also improve some traits, which then show in gold, and at rank 5 the item gains its Masterwork trait. Ranks 3 to 5 need a Rare or better item.
The Forge allows you to upgrade and enchant your equipment. Equipment can be upgraded up to five ranks, increasing its strength and adding new abilities. Enchant any item to promote its rarity, up to Legendary. Augments and Common items cannot be enchanted. The masterwork weapons wielded by the Valorian knights cannot be made through mundane processes. Only a special Forge can accommodate a Godsmith's Sacred Flame, but there aren’t many left capable of harnessing that power. Fortunately, the forge within the Seventh Sanctum is capable of upgrading and enchanting any equipment. Even the greatest creation of a Godsmith at any other forge can be improved upon in the Seventh's forge, provided the right resources.Codex: The ForgeAperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → localization → Codex.Resources.Forge.descriptionHow we know
In more detail: Each upgrade rank raises the item's Primary Attribute as if the item were one tier higher per rank (rule U2), and improves traits (rule U1). At the top rank the item gains its Masterwork trait (rule U3). Higher ranks need a minimum rarity.
Rules from the game's code: Upgrade rank and the Primary Attribute Datamined · Upgrade-improved traits Datamined · Masterwork trait Datamined
In the files:
craftingUpgrade ranks: rank 1 · coreAttributeTierOffset 1 · minRarity 1rank 2 · coreAttributeTierOffset 2 · minRarity 1rank 3 · coreAttributeTierOffset 3 · minRarity 3rank 4 · coreAttributeTierOffset 4 · minRarity 3rank 5 · coreAttributeTierOffset 5 · minRarity 3 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → craftingUpgrade)
Masterwork trait Datamined
In game: An extra secondary line, always in gold, on fully upgraded gear
An extra trait, always drawn in gold, that an item gains when it reaches upgrade rank 5. Each item has its own list of possible Masterwork traits, shown on its page.
How we know
In more detail: Items have a Masterwork trait slot with its own pool (shown on each item page). The trait is chosen when the item reaches the upgrade rank in rule U3.
Rules from the game's code: Masterwork trait Datamined · Gold (yellow) trait lines Datamined
In the files:
traitSlot type 'Masterwork Trait' and its trait pool (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → traitSlot)
Awakened Datamined
In game: "Awakened Legendary …" on the tooltip; star-shaped trait bullets
What a Cursed item becomes once all of its objectives are done; the game announces it as “<item> AWAKENED”. An Awakened item keeps a stronger Primary Trait: × 2 for most numbers.
Cursed Items have negative traits instead of positive traits until they are Awakened. To Awaken a Cursed Item at the Forge, complete all of its objectives. Rarer items have more objectives to complete before they can be Awakened. Completing a Cursed Item objective will allow you to change a negative trait into a positive trait. Once you start a mission with a Cursed Item equipped you must wield it for the entire mission. Awakening will also reward you with a powerful consumable that can increase future loot rewards from Dark Tears.Codex: Cursed ItemsAperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → localization → Codex.Mechanics.CursedItems.description{itemname} AWAKENEDTutorial textAperion/Content/Localization/Game/en/Game.locres → ST_Mission_Tutorial → Loot.AwakenedHow we know
In more detail: An item mutation. A Cursed item becomes Awakened at the Forge once all its objectives are done. The mutation improves the primary trait through its own scaling multiplier.
In the files:
mutations → Mutation.Item.Awakened: numImprovedTraitSlotIndexes 1 · whitelistImprovedTraitSlotIndexes Primary Trait · canUpgrade true · canEnchant true · canSalvage true · canEquipInActivity true (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → mutations → Mutation.Item.Awakened)
itemScalingMultipliers → Item.Mutation.Awakened.PrimaryTrait.1 (sample columns): coreAttribute 2, 2 · coreAttributePercent 2, 2 · playerPower 2, 2 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → itemScalingMultipliers → Item.Mutation.Awakened.PrimaryTrait.1)
Cursed Datamined
In game: Cursed items with negative traits and objectives ("To lift curse")
A Cursed item drops with curses: one on a Rare item, two on an Epic, three on a Legendary. Each curse turns one Secondary Trait negative (drawn in purple) and weakens the Primary Trait a little, and each curse comes with an objective. Finish an objective and that curse lifts; finish them all and the item is Awakened. Cursed items can only be equipped in the Sanctum. The full rules are on the Cursed items page.
Cursed Items have negative traits instead of positive traits until they are Awakened. To Awaken a Cursed Item at the Forge, complete all of its objectives. Rarer items have more objectives to complete before they can be Awakened. Completing a Cursed Item objective will allow you to change a negative trait into a positive trait. Once you start a mission with a Cursed Item equipped you must wield it for the entire mission. Awakening will also reward you with a powerful consumable that can increase future loot rewards from Dark Tears.Codex: Cursed ItemsAperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → localization → Codex.Mechanics.CursedItems.descriptionCursedOn-screen labelAperion/Content/Localization/Game/en/Game.locres → ST_HUD → CursedCursed Items can only be equipped while inside the SanctumTutorial textAperion/Content/Localization/Game/en/Game.locres → ST_Mission_Tutorial → Lesson.CursedItems.Tip2You cannot weapon swap if your other weapon is not CursedTutorial textAperion/Content/Localization/Game/en/Game.locres → ST_Mission_Tutorial → Lesson.CursedItems.Tip4Awakening or Salvaging Cursed Items will also reward you with Curses. Curses are powerful consumables that can increase the difficulty of your Lightbringer runs for greater rewards.Tutorial textAperion/Content/Localization/Game/en/Game.locres → ST_Mission_Tutorial → Lesson.CursedItems.Dialog4How we know
In more detail: An item mutation. The game's text: a Cursed item has negative traits until it is Awakened, and completing each of its objectives changes a negative trait into a positive one. A Cursed item drops with one curse per rarity step (Rare 1, Epic 2, Legendary 3) plus Awakened. Each curse turns one Secondary Trait negative (x -2 for most columns, drawn purple) and scales the Primary Trait by 0.85 on top of Awakened's x 2 (rules O3, C2); it also opens one Cursed Objective slot, shown one at a time, and completing that objective removes the curse (rule O2). T-0006 checked 7 Cursed items: every number fits.
Rules from the game's code: What a curse does to an item's traits Datamined · Primal and Cursed trait colours Datamined · How Cursed items get and lose objectives Datamined
In the files:
mutations → Mutation.Item.Cursed: numImprovedTraitSlotIndexes 1 · whitelistImprovedTraitSlotIndexes Primary Trait · canUpgrade false · canEnchant false · canSalvage true · canEquipInActivity false (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → mutations → Mutation.Item.Cursed)
itemScalingMultipliers → Item.Mutation.Cursed.PrimaryTrait.1 (sample columns): coreAttribute 0.85, 0.85 · coreAttributePercent 0.85, 0.85 · playerPower 0.85, 0.85 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → itemScalingMultipliers → Item.Mutation.Cursed.PrimaryTrait.1)
Corrected 2026-09-26: this entry used to say purple marks a trait that was turned positive. The menu code gives purple to the '|2' (negative) secondary, so purple marks the cursed line.
Cursed Objective Datamined
In game: A Cursed item's objective line, e.g. "Defeat a Level 50+ Moirax in a Dreamstone (0/3)"
The task on a Cursed item, such as “Defeat a Level 50+ Moirax in a Dreamstone (0/3)”. Each curse has one, and only one shows at a time. Completing it lifts that curse and pays out Curses (the consumables). Some objectives in the files are never picked for new items.
Complete item objectives to remove its CursesKeyword: Cursed ItemsAperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → localization → Keyword.CursedItem.Objective.descriptionTo Awaken a Cursed Item at the Forge, complete all of its objectives Rarer items have more objectives to complete before they can be AwakenedTutorial textAperion/Content/Localization/Game/en/Game.locres → ST_Mission_Tutorial → Lesson.CursedItems.Dialog2Completing a Cursed Item objective will allow you to change a negative trait into a positive trait Once you start a mission with a Cursed Item equipped you must wield it for the entire missionTutorial textAperion/Content/Localization/Game/en/Game.locres → ST_Mission_Tutorial → Lesson.CursedItems.Dialog3How we know
In more detail: The trait slot a Cursed item gets for each curse. Its line is the objective's own text with its numbers filled in from the objective's conditions (rule O1). Objectives come from three pools (Rare, Epic, Legendary, opened in that order as stacks are added), each worth Curse consumables when completed. Objectives with weight 0 are never picked for a new item (rule WP1).
Rules from the game's code: Cursed objective text Datamined · How Cursed items get and lose objectives Datamined · Weighted picks Datamined
Full list with every objective's text, reward and weight: Mechanics > Cursed items.
Primal Datamined
In game: Primal items; primary traits drawn in pale yellow
Another kind of item boost that makes the Primary Trait stronger (× 1.5 for most numbers). Its boosted lines are pale yellow, not the gold of upgraded traits.
PrimalOn-screen labelAperion/Content/Localization/Game/en/Game.locres → ST_HUD → PrimalHow we know
In more detail: An item mutation that improves the primary trait through its own scaling multiplier. Its improved lines are pale yellow in the menus (rule C2), not the gold of upgraded traits.
Rules from the game's code: Primal and Cursed trait colours Datamined
In the files:
mutations → Mutation.Item.Primal: numImprovedTraitSlotIndexes 2 · whitelistImprovedTraitSlotIndexes Primary Trait · canUpgrade true · canEnchant true · canSalvage true · canEquipInActivity true · improvedTraitTextColor #800080 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → mutations → Mutation.Item.Primal)
itemScalingMultipliers → Item.Mutation.Primal.PrimaryTrait.1 (sample columns): coreAttribute 1.5, 1.5 · coreAttributePercent 1.5, 1.5 · playerPower 1.5, 1.5 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → itemScalingMultipliers → Item.Mutation.Primal.PrimaryTrait.1)
Rings, Charms and Amulets Datamined
In game: Separate Armory tabs
Rings, charms and amulets have separate Armory tabs, but the game keeps all three in one list. The wiki's Trinkets section covers all three.
How we know
In more detail: The files keep all three in one trinkets table; each row's class says which it is. The wiki's Trinkets section covers all three.
In the files:
trinkets table: rows 192 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → trinkets)
item classes named in craftingUpgrade: Amulet, Augment, Banner, Bomb, Charm, Consumable, Potion, Ring, Talisman, Weapon (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → craftingUpgrade)
Valorplates
Shards (Valorplate Shards) Datamined
In game: Valorplate > Shards tab; Armory > Shards
Each Valorplate has four Shards that give it new abilities. You unlock a Shard with special objectives while using its Valorplate, equip it on the Valorplate's Shards tab, and can upgrade it up to 5 times at the Forge. The game calls them Shards; the files call them runes.
Shards grant new abilities to each of your ValorplatesTutorial textAperion/Content/Localization/Game/en/Game.locres → ST_Mission_Tutorial → Runes.SystemUnlocked.TutorialPlate.Description.1Unlock up to 4 unique Shards for each Valorplate by completing special objectives Use the Armory to see their unique traits and unlock requirementsTutorial textAperion/Content/Localization/Game/en/Game.locres → ST_Mission_Tutorial → Runes.SystemUnlocked.TutorialPlate.Description.3Shards can be upgraded in the Forge up to 5 times Acquire Shards across all Valorplates to unlock Higher-level upgradesTutorial textAperion/Content/Localization/Game/en/Game.locres → ST_Mission_Tutorial → Runes.SystemUnlocked.TutorialPlate.Description.4Valorplate Shards are items that grant powerful abilities. They can be equipped on the Shards tab of the Valorplate screen, where each Valorplate has 4 unique Shards to choose from. You can save a different Shard configuration in each Loadout to better coordinate your Gear and Skills. Shards can be unlocked by completing special objectives while using the Valorplate that the Shard belongs to. You can view each Shard in the Armory to see their unique traits, as well as the objectives required to unlock them. Once unlocked, each Shard can be upgraded up to 5 times in the Forge, increasing the strength of the Shard's traits. Higher level upgrades require you to first collect a minimum number of total Shards. Collecting all 4 Shards for a Valorplate will cause the Valorplate to become Ascendant, providing the Valorplate with an additional passive ability. Fully upgrading all 4 Shards for a Valorplate will cause the Valorplate to become Exalted, providing the Valorplate with yet another passive ability.Codex: Valorplate ShardsAperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → localization → Codex.Valorplates.Shards.descriptionHow we know
In more detail: Each Valorplate has four Shards. The files call them runes. A Shard's pips are its upgrade rank: rune mutations 1 to 6, which scale its effects through the Rune.Upgrade multipliers.
In the files:
runes table: rows 48 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → runes)
mutations Mutation.Item.Rune.1 … Rune.6 → itemScalingMultipliersType: Mutation.Item.Rune.1 Rune.Upgrade · Mutation.Item.Rune.2 Rune.Upgrade · Mutation.Item.Rune.3 Rune.Upgrade · Mutation.Item.Rune.4 Rune.Upgrade · Mutation.Item.Rune.5 Rune.Upgrade · Mutation.Item.Rune.6 Rune.Upgrade (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → mutations)
Ascendant and Exalted Valorplates Datamined
In game: [ASCENDANT] and [EXALTED] passive lines on the Abilities tab
Unlock all four of a Valorplate's Shards and it becomes Ascendant, which adds a second passive ability. Fully upgrade all four and it becomes Exalted, which adds a third.
A Valorplate becomes Ascendant once you have unlocked all 4 Shards Ascendant Valorplates gain an second passive abilityTutorial textAperion/Content/Localization/Game/en/Game.locres → ST_Mission_Tutorial → Runes.SystemUnlocked.TutorialPlate.Description.5Fully upgrading all 4 Shards allows a Valorplate to become Exalted Exalted Valorplates gain a third passive abilityTutorial textAperion/Content/Localization/Game/en/Game.locres → ST_Mission_Tutorial → Runes.SystemUnlocked.TutorialPlate.Description.6How we know
In more detail: Unlocking all four of a Valorplate's Shards makes it Ascendant (a second passive); fully upgrading all four makes it Exalted (a third passive). The passives are traits named Trait.Passive.<Valorplate>.Ascended / .Exalted.
In the files:
passive traits: Trait.Passive.Aegishorn.Ascended, Trait.Passive.Aegishorn.Exalted, Trait.Passive.Armistice.Ascended, Trait.Passive.Armistice.Exalted, Trait.Passive.Bulwark.Ascended, Trait.Passive.Bulwark.Exalted, Trait.Passive.Greyhawk.Ascended, Trait.Passive.Greyhawk.Exalted, Trait.Passive.Hinterclaw.Ascended, Trait.Passive.Hinterclaw.Exalted, Trait.Passive.Illumina.Ascended, Trait.Passive.Illumina.Exalted, Trait.Passive.Mesa.Ascended, Trait.Passive.Mesa.Exalted, Trait.Passive.Moebius.Ascended, Trait.Passive.Moebius.Exalted, Trait.Passive.Phoenix.Ascended, Trait.Passive.Phoenix.Exalted, Trait.Passive.Silvermane.Ascended, Trait.Passive.Silvermane.Exalted, Trait.Passive.Typhon.Ascended, Trait.Passive.Typhon.Exalted, Trait.Passive.Vertigo.Ascended, Trait.Passive.Vertigo.Exalted (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → trait)
Might, Spirit and Vitality sockets Datamined
In game: Red, blue and green socket symbols in the augment constellation
Augment sockets come in three colours: red is Might, blue is Spirit and green is Vitality, matching the attribute bar. The files only call them Red, Green and Blue.
Defeated enemies and treasure chests may drop Souls in the Spirit Realm. Each Soul will have one of three affinities: Might (red), Spirit (blue), and Vitality (green). You can carry up to 6 Souls at a time, as long as they're of the same affinity. You can use Souls to power artifacts such as the Spirit Gates, Shards of Macros, and Soul Altars. Activating powered artifacts will unlock new paths, challenges, and information.Codex: SoulsAperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → localization → Codex.FreeRoam.Souls.descriptionHow we know
In more detail: The files name augment affinities by colour. In game, red is Might, blue is Spirit and green is Vitality, matching the attribute bar.
In the files:
augmentAffinities: id 0 · name Neutralid 1 · name Redid 2 · name Greenid 3 · name Blue (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → augmentAffinities)
Stats
Resistance cap Corroborated
In game: Resistance lines in Detailed Stats; "+X% cap to all resistances" on gear, skills and Ascension
No resistance can go above 50% at first. Items, the Resistance skill, Ascension and boons raise that cap, and the raises add up. Wyatt: past 50% there's a second ceiling at 75% that only large cap raises reach. The files also hold a 70% and a 90% limit whose purpose isn't known yet (test T-0005).
Reduces damage taken of a specific damage type. Capped at 50%.Keyword: ResistanceAperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → localization → Keyword.Resistance.descriptionMaximum amount of resistance allowed for each damage typeKeyword: Resistance CapAperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → localization → Keyword.Resistance.Cap.descriptionFor each of the six damage types, you can increase your resistance to that type of damage. Increasing your resistances decreases the amount of damage you take from enemies that deal damage of each type. Each resistance cannot exceed 50% unless the resistance cap is increased by an item or ability.Codex: ResistancesAperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → localization → Codex.Mechanics.Resistances.description“the game does start at a base of 50% resistance cap for each element”Wyatt · Navigation demo narration, 2026-09-26 Corroborateddata/observations/wyatt_2026-09-26.json“they are bumped up additively by gear such as this necklace that has plus 3% cap to all resistances”Wyatt · Navigation demo narration, 2026-09-26 Corroborateddata/observations/wyatt_2026-09-26.json“when we hit five, we get the cap to all resistances. So instead of 50, this goes to 55, plus any items you might be wearing that bolster the ceiling”Wyatt · Navigation demo narration, 2026-09-26 Corroborateddata/observations/wyatt_2026-09-26.json“we've got 0.4 capped all resistances for five points, roughly two points of all resist cap raised”Wyatt · Navigation demo narration, 2026-09-26 Corroborateddata/observations/wyatt_2026-09-26.json“Currently still lists the 0.75 "maximum" when that is a secondary ceiling requiring large amounts of raising the cap from 50% in game.”Wyatt · Chat message with the next wiki requests, 2026-09-27 Corroborateddata/observations/wyatt_2026-09-27.jsonHow we know
In more detail: Each resistance starts capped at 50%, and items, the Resistance skill and Ascension raise the cap; the raises add together. The cap can be raised past 50% only up to a second, higher ceiling (Wyatt), which the files hold as a 75% limit for each damage type. Reaching it takes large cap raises. Two more limits are in the files and their roles are UNKNOWN: a 70% limit on the player's attribute curve and a 90% post-modifier limit. Test T-0005 checks them.
In the files:
the player's starting caps and final limit (attribute curve table): Character.Player.ResistancePhysicalMax 0.5 · Character.Player.ResistanceElementalFireMax 0.5 · Character.Player.ResistanceElementalColdMax 0.5 · Character.Player.ResistanceElementalAirMax 0.5 · Character.Player.ResistanceElementalEarthMax 0.5 · Character.Player.ResistanceElementalShadowMax 0.5 · Character.Player.ResistanceFinalMax 0.7 (Aperion/Content/Aperion/Data/Gameplay/Attributes/CT_Attributes_Character_Player (curve table, FModel JSON export))
traits that raise the cap (MaxAllResistance scalars): SkillGridResistance5 0.05 · Trait.Ascension.Stat.AllResistCaps.1 0.004 · Trait.Bane.Nightfall.MaxResist.1 -0.05 · Trait.Bane.Nightfall.MaxResist.2 -0.2 · MaxResistSecondary 0.03 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → trait)
the higher ceiling for each damage type (globalParameters; role from Wyatt): physicalResistanceMax 0.75 · fireResistanceMax 0.75 · waterResistanceMax 0.75 · airResistanceMax 0.75 · earthResistanceMax 0.75 · voidResistanceMax 0.75 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → globalParameters)
post-modifier limits (globalParameters; role UNKNOWN): physicalResistancePostModifierMax 0.9 · fireResistancePostModifierMax 0.9 · waterResistancePostModifierMax 0.9 · airResistancePostModifierMax 0.9 · earthResistancePostModifierMax 0.9 · voidResistancePostModifierMax 0.9 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → globalParameters)
Detailed Stats Datamined
In game: The Detailed Stats screen (Space on the Gear tab)
The character screen's full list of stats. The game works out every number itself; the menu only rounds it for display (whole numbers normally, percentages cut to one decimal). The files swap the labels for Critical Hit Chance and Critical Hit Damage; the wiki follows what the screen says.
How we know
In more detail: The game engine computes every line and the menu only formats it: whole numbers rounded normally, percentages cut to one decimal (rules S2 to S4). Label text comes from the statScreen strings. Two of their keys are swapped in the files: the key ending 'Damage' holds the Critical Hit Chance label and vice versa, so the wiki follows the label, not the key.
Rules from the game's code: Detailed Stats: whole numbers Datamined · Detailed Stats: percentages Datamined · Where Detailed Stats come from Datamined
In the files:
statScreen label strings: count 109 · swapped_crit_keys key StatScreen.Crit.Damage · label Critical Hit Chancekey StatScreen.Crit.Chance · label Critical Hit Damage (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → localization → statScreen)
Numbers
How tooltip numbers are rounded Datamined
In game: The bold numbers inside trait text
Tooltips round down: a roll of 45.9% shows as 45%, not 46%. The + or − comes from the text around the number.
How we know
In more detail: A roll is stored to a few decimals, then shown without its sign (the text carries the + or −) and rounded down. For example, a roll of 45.9% shows as 45%, not 46%.
Rules from the game's code: Roll range Datamined · Stored rounding Datamined · Tooltip numbers Datamined
Weapon DPS (tooltip) Datamined
In game: The big number on a weapon tooltip, e.g. "EARTH DPS"
The big DPS number on a weapon tooltip is double the weapon's attack power (times a display scale), rounded down. Detailed Stats rounds Base DPS normally, so the two can be one apart.
How we know
In more detail: The tooltip shows twice the weapon's attack power (times a DPS scale), rounded down. Detailed Stats shows Base DPS rounded normally, which is why the two can differ by one.
Rules from the game's code: Weapon DPS on the tooltip Datamined · Tooltip headline number Datamined · Detailed Stats: whole numbers Datamined
Banner Overhealth Datamined
In game: The big number on a banner tooltip vs. Base Overhealth in Detailed Stats
The Overhealth number on a banner tooltip is far bigger than Base Overhealth on Detailed Stats because the tooltip multiplies it by 30. Both describe the same banner.
How we know
In more detail: The stat sheet shows the banner's overshield value. The tooltip multiplies it by the display multiplier in rule B2, which is why the tooltip number is far larger.
Rules from the game's code: Banner Overhealth on the tooltip Datamined · Tooltip headline number Datamined
In the files:
statScreen labels: Base Overhealth, Banner Overhealth (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → localization → statScreen)
Life Stone Health Recovery Datamined
In game: The big number on a life stone tooltip; Base Health Recovery in Detailed Stats
The big number on a life stone tooltip is its Health Recovery, rounded normally. Detailed Stats shows the same value as Base Health Recovery.
How we know
In more detail: The tooltip shows the life stone's healing power rounded normally (display multiplier 1).
Rules from the game's code: Tooltip headline number Datamined
In the files:
potions (life stones) and potionBase* parameters: potionBaseHealAmount 50 · potionBaseCharges 3 · potionBaseHealDuration 2 · potionBaseSecondaryTraitDuration 10 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → globalParameters)
What an Ascension level costs Corroborated
In game: Ascension tab: the XP bar under the level dial
Every Ascension Level costs a bit more than the one before, by a fixed percentage, and the rate steps up once partway along. The bar under the level dial is counting toward your next level, not the one you are on. Getting all the way to 450 takes hundreds of millions of XP.
How we know
In more detail: Each level costs a fixed percentage more than the one before, and the rate changes once. The bar measures progress toward the next level, not the one you are on. Reaching level 450 takes 334,566,698 XP in all.
In the files:
the formula: expression cost(n) = round(50,000 x 1.009162^(n-1)) for n < 376; cost(376) = 1,520,000; cost(n) = round(1,520,000 x 1.01065^(n-376)) for n > 376 (tools/extract_ascension.py, asserted against every row)
the level table: rows 450 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → ascensionLevel)
the XP bar in a running game, which the formula reproduces exactly (Wyatt's in-game capture, (W-2026-10-03c-6))
Confirmed against a running game, not only against the table it was fitted to.
Mechanics
Skills (the skill grid) Datamined
In game: Valorplate > Skills: a grid of skills, each with five levels
The Valorplate's grid of skills, each with five levels. A skill level's text can be worded differently from the effect behind it (for example “cap to all resistances” vs “maximum All resistances”), because the two come from different places in the files.
How we know
In more detail: Skill effects are traits named SkillGrid… in the trait table. The level text shown in game comes from the masteryEntitlements strings, which is why it can read differently from the trait text (for example 'cap to all resistances' vs 'maximum All resistances'). The points that buy them are a different pool from Ascension's — see Skill points, and Ascension points below.
In the files:
SkillGrid traits: count 94 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → trait)
masteryEntitlements strings: count 259 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → localization → masteryEntitlements)
Skill points Corroborated
In game: Valorplate > Skills: the Available Points counter
The points that buy skill-grid levels come from two places and nowhere else. Levelling your character to 50 pays 49 of them, and a fixed list of 22 story missions, campaign bosses and Dreamstones pays one each the first time you finish it, for 23 more. That is 72 in total, and the grid has room for 125 — so you cannot have everything, and choosing what to skip is the real decision. Ascension Levels do not pay skill points.
“There are some extra skill points to be earned after level 50 from particular missions in the campaign (base game and DLC) and by completing particular dreamstones.”Wyatt · chat message, 2026-10-03 Corroborateddata/observations/wyatt_2026-10-03b.json“You never get extra skill points for ascension levels, only from the arbitrary objectives after hitting level 50.”Wyatt · chat message, 2026-10-03 Corroborateddata/observations/wyatt_2026-10-03b.jsonHow we know
In more detail: Two sources and no others: character levels pay 49, and a fixed set of 22 story missions, campaign bosses and Dreamstones pay one each the first time you finish them, for 23 more. That is 72 in all, against a grid that holds 125 — so the grid cannot be filled, and what you leave out is the real decision. Ascension levels pay none of it.
In the files:
points per character level: total 49 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → playerTier)
first-completion awards: activities 22 · points 23 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → activities → firstCompletionGrantedSkillPoints)
The files invite two wrong answers here, and the skill points page names both.
Ascension Bonuses and Powers Corroborated
In game: Ascension tab: Bonuses (a numbered row of three, five ranks each) and Powers (two, pick one)
Once you hit level 50 you start earning Ascension Levels instead, and they never reset. Each one pays a point to spend on the Bonuses tab, which is a long list of numbered rows, three bonuses to a row, five ranks each. The number next to a bonus is what one rank gives you, not what all five give. Rows unlock on how many points you have already spent. The Powers tab is a different thing: every 25 Ascension Levels it offers you two powers, you pick one, and it costs you nothing.
Once you've reached level 50, you can earn Ascension Levels. Each Ascension Level takes you beyond 50 and unlocks powerful new traits that apply across all of your Valorplates. Gain a point for each new Ascension Level that you can spend on permanent Ascension Bonuses. Every 25 Ascension levels grants you a new Ascension Power. Each time, you can pick from one of two Ascension Powers. You may change your selection at any time.Codex: Ascension LevelsAperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → localization → Codex.Mechanics.AscensionLevel.description“Ascension levels are activated after the character achieves level 50.”Wyatt · chat message, 2026-10-03 Corroborateddata/observations/wyatt_2026-10-03.jsonHow we know
In more detail: A second layer of levelling that opens at character level 50 and never resets. Each Ascension level pays one point, spent on the Bonuses tab. There are 450 levels and the tree holds 450 points, so filling it takes every level there is. A group opens on points already spent, and the number beside a bonus is what one rank gives, not the total of five. The Powers tab is separate: every 25 levels it offers two powers and you take one, spending nothing.
In the files:
ascensionStatGroups (Bonuses): groups 30 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → ascensionStatGroups)
ascensionPerkGroups (Powers): groups 15 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → ascensionPerkGroups)
the level table: levels 450 · total_xp 334566698 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → ascensionLevel)
the Bonuses screen, checked row by row against the files (Wyatt's in-game capture, (W-2026-10-03c-1))
the Powers screen, checked row by row against the files (Wyatt's in-game capture, (W-2026-10-04-1))
Ascension points are not skill points Corroborated
In game: Two counters that look alike: Available Points on the Skills screen, and on Ascension
Two different counters that both say Available Points. Skill points come from character levels and from finishing certain missions and Dreamstones, and they buy skill-grid levels. Ascension points come one per Ascension Level and buy Ascension bonuses. Neither one can be spent on the other, and Ascension never gives you skill points, however it may look.
“You never get extra skill points for ascension levels, only from the arbitrary objectives after hitting level 50.”Wyatt · chat message, 2026-10-03 Corroborateddata/observations/wyatt_2026-10-03b.json“Ascension points are an entirely separate system from the Skill points + Skill grid system”Wyatt · chat message, 2026-10-03 Corroborateddata/observations/wyatt_2026-10-03b.jsonHow we know
In more detail: Two pools, and nothing crosses between them. Skill points come from character levels and from finishing certain activities, and buy skill-grid ranks. Ascension points come one per Ascension level and buy Ascension bonuses. Ascension grants no skill points at all. The files encourage the mistake — one menu function reads weapon-mastery XP into a point total, and another is named for granting skill points on Ascension — and neither is what the game runs on.
Both traps are named on the skill points page so the next reader does not fall into them.
Weapon mastery (cut content) Corroborated
In game: Nowhere. There is no interface for it in the game.
A second skill system that is in the game's files but was never finished and never switched on. There is no screen for it, nothing to spend on it and no benefit from it. Two of the 5 weapon trees were written out in full, names and descriptions and all, which is the only reason there is anything to read.
“The weapon masteries do not exist in game for any class of weapon.”Wyatt · chat message, 2026-10-03 Corroborateddata/observations/wyatt_2026-10-03d.json“mastery is not a mechanic the players gets to interact with, or benefit from and there's no portion of the UI that even indicates mastery is a real thing to the player”Wyatt · chat message, 2026-10-03 Corroborateddata/observations/wyatt_2026-10-03d.jsonHow we know
In more detail: The files describe a second skill system — a nested tree per weapon, bought with the same points — that never shipped. 2 of the 5 trees were written in full, names and wording and all; the other 3 are one unfinished tree copied. No player can reach any of it.
In the files:
mastery trees: trees 5 (main.27a82b73.chunk.js -> @counterplay/ap-data combat_skillpoint_grid)
XP thresholds: ladders 4 (Aperion/Content/Aperion/Data/Gameplay/SourceData/source_data.json → weaponMastery)
Whether it was ever meant for a later update is UNKNOWN; the files say nothing about intent.
Curses (consumables) Datamined
In game: Resources > Curses: Lesser, regular and Greater curses
Consumables you get by awakening or salvaging Cursed items. Spend them to make Lightbringer runs harder in exchange for better rewards.
Awakening or Salvaging Cursed Items will also reward you with Curses. Curses are powerful consumables that can increase the difficulty of your Lightbringer runs for greater rewards.Tutorial textAperion/Content/Localization/Game/en/Game.locres → ST_Mission_Tutorial → Lesson.CursedItems.Dialog4“they will not be important for the purposes of the build planner or anything like that. It'll just be pages on the wiki that relate to their functions in the light bearer activity”Wyatt · Navigation demo narration, 2026-09-26 Corroborateddata/observations/wyatt_2026-09-26.jsonHow we know
In more detail: Consumables earned by awakening or salvaging Cursed items. They raise the difficulty of Lightbringer runs for better rewards. Wiki pages only; not part of the planner.
Wyatt's transcript says 'light bearer'; the game's text says 'Lightbringer'.
For the curious: rules from the game's code
The game's menus are built from code that ships inside the game files, and that code still carries its original, readable source. Each rule below quotes the lines it rests on. Other pages link here when a number follows one of these rules.
Show the 31 rules
R1 · Roll range Datamined
A trait's value is min + (max − min) × roll, with the roll between 0 and 0.999. min and max are itemScaling[tier, rarity][paramType] × the trait's scalar (× a mutation multiplier for Awakened, Primal and Cursed traits).
Agrees with T-0001: all 4 logged augment cards fit at tier 50 (data/checks/T-0001_roll_check_game.json).
The game's code (3 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapS1 · Stored rounding Datamined
The rolled value is stored rounded (half-up) to the loot effect's magnitudeRoundedDecimals.
Agrees with T-0001: all 4 logged augment cards fit at tier 50 (data/checks/T-0001_roll_check_game.json).
The game's code (1 line)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapD1 · Tooltip numbers Datamined
A trait's number is shown without its sign (the text carries it). Percentages are × 100, trimmed to 5 significant digits and rounded DOWN (45.9 shows as 45). Other numbers are printed by the text's own format: %d keeps the whole part, %f prints the stored number (so a 2-decimal value shows as 6.14).
Replaces D1 (2026-09-25): 'rounded half-up'. That guess was wrong for tooltips. D1 (2026-09-26 morning) rounded every number down; %f numbers keep their decimals (T-0006: 6.14).
Agrees with T-0001: all 4 logged augment cards fit at tier 50 (data/checks/T-0001_roll_check_game.json).
The game's code (4 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapTX1 · Where a trait's words come from Datamined
The tooltip text is the localized string for the trait (localization sheet 'trait', id = the trait's name), not the trait table's own description, which is the developers' copy and differs for about 220 traits. Traits marked showSign get their + or - from the value (a Cursed secondary shows '-').
Agrees with T-0006: Cat Talisman's line reads 'Rampage expiration time' (the localized text); the trait table says 'Rampage reset timer'.
The game's code (3 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapTC1 · Thresholds in trait text (trigger conditions) Datamined
Text like 'If you have 68% or more Water resistance' reads its number from the trait's trigger condition (triggerConditions table): itemScaling[tier, rarity][column].min × scalar, with no roll, times any mutation multiplier, then stored and shown like other numbers (S1, D1).
Agrees with T-0006: Mistveil 68%, Fearless Wolf 45%, Cat Talisman 32567 (with the Cursed multipliers).
The game's code (3 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapU1 · Upgrade-improved traits Datamined
A trait improved by an upgrade is evaluated at tier + improvedTraitTierOffset (craftingUpgrade), i.e. as if the item were that many tiers higher. Which traits get improved is decided when the item is upgraded (server side): UNKNOWN.
Values from the files: improvedTraitTierOffset 100 (source_data.json → craftingUpgrade)
Replaces H1 (2026-09-24): 'rank 3 multiplies secondaries by Item.Upgrade.Rank.3.SecondaryTrait.1'. It matched at tier 50 only by coincidence.
Agrees with T-0001: all 4 logged augment cards fit at tier 50 (data/checks/T-0001_roll_check_game.json).
The game's code (2 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapU2 · Upgrade rank and the Primary Attribute Datamined
An item's Primary Attribute (the big number on trinkets) is evaluated at tier + coreAttributeTierOffset for its upgrade rank.
Values from the files: ranks rank 1 · coreAttributeTierOffset 1 · improvedTraitTierOffset 100 · minRarity 1rank 2 · coreAttributeTierOffset 2 · improvedTraitTierOffset 100 · minRarity 1rank 3 · coreAttributeTierOffset 3 · improvedTraitTierOffset 100 · minRarity 3rank 4 · coreAttributeTierOffset 4 · improvedTraitTierOffset 100 · minRarity 3rank 5 · coreAttributeTierOffset 5 · improvedTraitTierOffset 100 · minRarity 3 (source_data.json → craftingUpgrade)
Replaces H2 (2026-09-24), same rule, now read from the code.
Agrees with T-0001: all 4 logged augment cards fit at tier 50 (data/checks/T-0001_roll_check_game.json).
The game's code (2 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapU3 · Masterwork trait Datamined
The Masterwork trait is chosen when an item reaches the upgrade rank below.
Values from the files: rank 5
The game's code (2 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapC1 · Gold (yellow) trait lines Datamined
A trait line is drawn 'enhanced' in gold when it was improved by an upgrade (masterworkBonusTier > 0) or is the Masterwork trait (also Cursed-item objectives).
The game's code (4 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/css/main.cbecd126.chunk.css.mapAperion/Content/uiresources/static/css/main.cbecd126.chunk.css.mapC2 · Primal and Cursed trait colours Datamined
Primal traits are drawn pale yellow. On a Cursed item, the Secondary Trait(s) the curse turned negative (mutation 'Mutation.Item.Cursed|2', rule O3) are drawn purple with the Cursed bullet.
mutations.improvedTraitTextColor in source_data.json says #800080 for Primal; the menus use the SCSS colour instead.
Replaces C2 (2026-09-26 morning): 'transformed Cursed traits purple'. The class mutation-item-cursed-2 comes from the '|2' (negative secondary) mutation, so purple marks the cursed line, not a lifted one.
The game's code (3 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/css/main.cbecd126.chunk.css.mapAperion/Content/uiresources/static/css/main.cbecd126.chunk.css.mapT1 · Tooltip headline number Datamined
The big number on a gear tooltip is round(primary value × display multiplier).
The game's code (2 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapW2 · Weapon DPS on the tooltip Datamined
A weapon's tooltip DPS is floor(attackPower × 2 × DPS scale).
The game's code (1 line)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapB2 · Banner Overhealth on the tooltip Datamined
A banner's tooltip Overhealth is its overshield × bannerOvershieldDisplayMultiplier (globalParameters). The stat sheet shows the overshield itself.
Values from the files: bannerOvershieldDisplayMultiplier 30 (source_data.json → globalParameters)
The game's code (2 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapS2 · Detailed Stats: whole numbers Datamined
Whole-number lines in Detailed Stats are rounded half-up.
Agrees with T-0001 D2 (Detailed Stats rounds half-up).
The game's code (1 line)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapS3 · Detailed Stats: percentages Datamined
Percent lines: cut to hundredths, snap to the whole number if within 0.09 of it, then cut to tenths.
The game's code (3 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapS4 · Where Detailed Stats come from Datamined
The menu only formats Detailed Stats; the game engine computes the values and sends them to the UI. The formulas are not in the UI code.
The game's code (1 line)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapLD1 · Drop chance by level Datamined
When a loot event fires, each of its lootQuantity groups keeps only the rows whose minTier–maxTier and minThreat–maxThreat contain the event's level and threat. Each roll of a kept row succeeds when a random number is below the row's chance.
The game's code (3 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapLD2 · Rolls per loot event (loot bonus, co-op) Datamined
Rolls = (1 + player loot bonus × playerLootBonusScalar) × (1 + target loot bonus × targetLootBonusScalar) × (1 + (players − 1) × extraLootBonusPerPlayer) ÷ players. The whole part is the number of rolls; the fraction is the chance of one extra roll. Loot bonus adds rolls; it does not change the chance per roll.
Where the player loot bonus comes from is set by the game engine, not the menu code. The trait effect named LootQuantityBonus (Ascension, Banes) is the likely source: UNKNOWN.
The game's code (3 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapLD3 · Level of a dropped item Datamined
A dropped item's level is the event's level (plus the loot category's tierOffset, with chance tierOffsetChance), clamped to the category's minTier–maxTier.
The game's code (2 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapLD4 · Mission level Datamined
The menus show a mission's level as: your level + tierOffset[difficulty], kept within minTier[difficulty]–maxTier[difficulty] (the activity's difficulty arrays).
This is the level the menu shows. That the kill's loot rolls at the same level is the natural reading but is set by the engine: not confirmed.
The game's code (2 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapLD5 · Dreamstone level Datamined
A standard Dreamstone's activities use the dreamstone's activityOverride.minTier; a Volatile Dreamstone uses its own level. Each 'Increase Tier' boss action adds its parameter (1) on top.
The game's code (3 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAS1 · Ascension numbers Datamined
The Ascension screen has its own copy of the tooltip number code. There, percentages are × 100 with no rounding down, so a 0.004 bonus shows as 0.4% (item tooltips would show 0).
The game's code (3 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapRN1 · Shard (rune) values Datamined
A Valorplate Shard (a 'rune' in the files) is evaluated at your level, not at the level it dropped at, and at its own rarity. Its rank (1 to 6: the menu says it can be upgraded up to 5 times) multiplies its Primary Trait values by the Rune.Upgrade row for that rank.
The rank's multiplier row comes from the mutation Mutation.Item.Rune.<rank> (itemScalingMultipliersType Rune.Upgrade, rank offset = rank), which marks up to 3 Primary Traits. Shards are Legendary in every lootItem row.
The game's code (6 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapDS1 · Dreamstone boss actions Datamined
Each round the boss rolls its 'Next Boss Actions' (count set by the server). For each pick, only BossAction rows whose tags match the Dreamstone, whose round window contains the current round, and whose exclusion group hasn't been used yet are valid; of those, only the highest-priority rows are kept, then one is picked by weight. Every pick in a round uses the same seed (Dreamstone id + round), so a repeat pick from an unchanged list gives the same row. A picked row's exclusion group then blocks it for the rest of the Dreamstone.
How many actions each round gets (nextNumBossActions) comes from the server. The Dreamstone row's numBossActions list and initialBossActionIndex suggest a list index that moves each round, but how it moves is not in the menu code: UNKNOWN.
The game's code (7 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapDS2 · Dreamstone level from boss actions Datamined
An 'Increase Tier' boss action is shown as '+1 Dreamstone Level'. The Dreamstone's level offset is the sum of every applied modification's tier, and it is added to the boss fight and to every round activity (rule LD5).
The game's code (4 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAD1 · Adjacent augments Datamined
Two augments are adjacent when their sockets are joined by a line (an edge) in the Valorplate's constellation graph. A trait that depends on adjacent augments looks only at the augments in the sockets joined to its own augment's socket.
The graph itself (sockets, their positions, the lines) is a data file compiled into the menu bundle (@counterplay/ap-data 'constellations'), read by tools/extract_constellations.py. Sockets are matched to augmentGraphs rows by node id (augment_configuration_model.js).
The game's code (4 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapSK1 · Which augments fit a socket Datamined
The augment picker offers an augment for a socket when the socket's affinity is White (0), when the augment's affinity is White, or when the two match.
No augment in the files has the White affinity, so in practice a White socket takes any augment and a coloured socket takes only its own colour.
Agrees with the Codex entry Augments (Codex.Tutorials.Augments), which says augments slot into neutral or matching nodes.
The game's code (3 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapWP1 · Weighted picks Datamined
Loot categories, items and the trait inside a category are picked by weight: a random number up to the total weight walks down the list. A row with weight 0 is never picked (unless every row has weight 0).
The game's code (3 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapO3 · What a curse does to an item's traits Datamined
Each Cursed stack marks the item's last Primary Trait (it can be marked more than once) and one Secondary Trait not yet marked ('Cursed|2'). A marked trait's value is multiplied by the Cursed itemScalingMultipliers row for its paramType column: the Primary row is 0.85 for most columns, the Secondary row −2 for most columns (the negative trait).
Values from the files: Item.Mutation.Cursed.PrimaryTrait.1 minWeaponDamage 0.85 · maxWeaponDamage 0.85 · minPotionHeal 0.85 · maxPotionHeal 0.85 · minBannerOvershield 0.85 · maxBannerOvershield 0.85 · powerDrain 0.85 · itemStrengthIndex 0.85 · coreAttribute 0.85 · coreAttributePercent 0.85 · defensePercent 0.85 · reverseScaling 0.85 · nonScaling 1 · playerPower 0.85 · playerPowerNoMutation 1 · playerPowerNoMutationNoVariance 1 · playerHealth 0.85 · attributeNoVariance 0.85 · healthToDamage 0.85 · nonScalingVariance 1 · noVarianceCoreAttribute 0.85 · coreAttributeNoVarianceNoMutation 1 · noVarianceCoreAttributePercent 0.85 · noVarianceDefensePercent 0.85 · noVariancePlayerPower 0.85 · noVariancePlayerHealth 0.85 · noVarianceHealthToDamage 0.85 · mutationScalingOnly 0.85 · mutationScalingOnlyVariance 0.85 · mutationScalingOnlyInverse 1.1764705882352942 · resistanceThresholdOnly 1.065 · Item.Mutation.Cursed.SecondaryTrait.1 minWeaponDamage -2 · maxWeaponDamage -2 · minPotionHeal -2 · maxPotionHeal -2 · minBannerOvershield -2 · maxBannerOvershield -2 · powerDrain -2 · itemStrengthIndex -2 · coreAttribute -2 · coreAttributePercent -2 · defensePercent -2 · reverseScaling -2 · nonScaling 1 · playerPower -2 · playerPowerNoMutation 1 · playerPowerNoMutationNoVariance 1 · playerHealth -2 · attributeNoVariance -2 · healthToDamage -2 · nonScalingVariance 1 · noVarianceCoreAttribute -2 · coreAttributeNoVarianceNoMutation 1 · noVarianceCoreAttributePercent -2 · noVarianceDefensePercent -2 · noVariancePlayerPower -2 · noVariancePlayerHealth -2 · noVarianceHealthToDamage -2 · mutationScalingOnly -2 · mutationScalingOnlyVariance -2 · mutationScalingOnlyInverse 2 · resistanceThresholdOnly 1.065 (source_data.json → itemScalingMultipliers → Item.Mutation.Cursed.*)
A dropped Cursed item also carries Awakened (x 2 on the Primary Trait for most columns), so its primary is x 2 x 0.85 per curse. The negative lines show with a minus sign and purple bullets (T-0006).
Agrees with the game's tutorial text ('Cursed Items have negative traits instead of positive traits until they are Awakened') and T-0006: 7 Cursed items, every number fits at tier 50 (18 negative secondaries at x -2; primaries at Awakened x Cursed per stack).
The game's code (4 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapO1 · Cursed objective text Datamined
An objective trait's text is the objective's localized string (stringTableKey). {Suffix} becomes ' (progress/needed)', and every {Name} becomes that value from the objective's conditions (for example {MinTier} → 50).
The game's code (4 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapO2 · How Cursed items get and lose objectives Datamined
The Cursed mutation opens Cursed Objective slots (their base chance is 0; the mutation adds increasedTraitChanceOffset). Completing an objective removes one Cursed stack and the objective trait, and the objective's lootQuantityGroups pay out.
Values from the files: numIncreasedTraitChanceTraitSlotIndexes 1 · whitelistIncreasedTraitChanceTraitSlotTypes Trait.Objective · increasedTraitChanceOffset 1 · transformationTraitSlotTypesTraitsRemoved Trait.Objective · transformationMutationRemoved Mutation.Item.Cursed (source_data.json → mutations → Mutation.Item.Cursed)
Cursed items drop with one Cursed stack per the loot category's whitelist (Rare 1, Epic 2, Legendary 3) plus Awakened. Each stack opens one objective slot, in the traitSlot table's order (Rare, Epic, Legendary pools), but the item lists only the first objective at a time (lodash take). T-0006: all 7 captured items show one objective, from the Rare pool.
The game's code (6 lines)
Aperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.mapAperion/Content/uiresources/static/js/main.27a82b73.chunk.js.map