Files
healer-man/docs/ROM_DRUID_SCOUT_499935_NATURE_RIDER_2026-10-02.md

6.0 KiB

type, project, status, last_verified, tags
type project status last_verified tags
source-audit healer-man source-confirmed-partial 2026-10-02
healer-man
rom
druid
scout
source-audit

Druid/Scout 499935 NaturePower Rider

Decision

The linked +1 Nature Power rider and its 30% source chance are confirmed for the Druid/Scout level-50 child 499935. This task records the source only. The generated player catalog currently includes passive 494932 but omits 499935, and the child's other bound healing effects cannot be computed from the stats available to the runtime without guessing. No learner, playable ability, or combat hook was added.

This is a child-ability rider, not evidence that passive 494932 has a known Nature Power proc chance. Keep 494932's separate HP-threshold and proc clauses open. The Lua_Skill499935_main function in ../Runewaker/Resource/luascript/02708.lua:125 contains a below-50% branch, but no 499935 CheckUseScript or linked component plot calls it; it is not a bound mechanic for this skill.

Source identity and acquisition

The source learnmagic.db class-8 primary rows establish:

Skill Learn level Key item Prerequisite
494932 Spring Flower Eulogy 50 543156 490420
499935 child 50 543156 494932

../Runewaker/Resource/luascript/02248.lua:164-166 maps Druid primary class 8 / Scout secondary class 2 to key item 543156 at the level-50 elite milestone. The existing generated row for 494932 confirms the parent passive is present; the child is absent because the exporter selects one learnmagic.db candidate per elite key item. Preserve 499935 as a separate learned row behind 494932 if catalog work resumes. Do not alias the child to another ability ID.

Source snapshot hashes for the relevant RuneWaker inputs:

Source file SHA-256
../Runewaker/Resource/data/learnmagic.db 6148199bcd1484ba1a122a6db5e2b3c2f2a161402bfe67fc67eb53f55fc6cfa3
../Runewaker/Resource/data/magiccollectobject.db 4aae19865cb07b30f99945aa7319a0096db244ff5e5b4b5d902fc6889474f501
../Runewaker/Resource/data/magicobject.db 52af13a2d8cfa9a66d4caa2d3c38832edc232f058995a64ef8135a6b82e43691
../Runewaker/Resource/luascript/02248.lua ee9e337548abd7fc555d85bf2f96813dfd77416c3e65d4cadf74a80838da1486
../Runewaker/Resource/luascript/02708.lua f9dda4ec4c1d86febab580ac0803b9d058ad6df887b4696b8ec86570244d067a
../Runewaker/Resource/luascript/01465.lua 074bbea5d3de4671423f6769dbd71d3696bc039edd60a4f2880605dce42fbe84

Bound child effects

MagicCollect 499935 targets one selected friend (RangeType=Target) and uses MagicSpellGroupType_Normal. Its group 0 is an ordered target-buff ladder:

Target already has Group 0 applies
623115 623115
623111 623115
623109 623111
none of these 623109

Each selected buff is a six-second Assist effect with one-second DoT ticks. Its raw base is 15 for 623109, 25 for 623111, and 35 for 623115; each has DotSkillLVArg=16. Their OnTimeMagicIDs are 494952, 494953, and 494954. The three timeout collections apply fixed max-health healing of 1%, 3%, and 5%, respectively. The native timer runs the one-second DoT pulses and then queues the matching timeout effect once at expiration.

The periodic heal amount also depends on native CalAddDotMagicLv / AssistMagic calculations using MDMG, MND, HealPowerRate, HealPoint, MPow, and target healing absorption. Current src/game/romStats.ts models STR, STA, INT, WIS, AGI, HP, and Mana; src/game/combatHealing.ts resolves a supplied scalar amount. It does not expose the source inputs or full formula needed to represent these ticks accurately. The expiration percentages are known, but they do not complete the child healing envelope.

Separate group-1 rider

MagicCollect 499935 group 1 slot 0 is EM_MagicCheck_Rand with value 30 and MagicObject 505742. Object 505742 is MagicFunc=RunPlot and names lua_star_Skill_NatureBase(0,1) from ../Runewaker/Resource/luascript/01465.lua:145. The script adds one 503827 Nature Power stack to OwnerID() and normalizes the caster's own stack count. Its source cap is 10, with up to five extra points for Druid/Scout when flag 543146 is present.

The native MagicProcessClass::Check_Rand uses rand() % 100 < RandValue for each eligible target. In Normal group mode, group 1 runs independently of group 0. The selected-target range means this cast has one target candidate and one group-1 roll. Magic07_RunPlot dispatches the plot only for HIT or CRITICAL target results; it does not require a positive healing amount. Since NatureBase reads OwnerID(), the rider belongs to the caster even though the selected target is a friend.

This bound 30% child rider does not establish the separate 494932 passive's chance, the passive tooltip's below-50% threshold behavior, or any passive-owned expiration clause. Those remain unresolved. The child group-0 timeout heals above are separately visible source effects; they are not represented as a completed passive implementation.

Future integration boundary

If a later task supplies or implements the missing periodic-heal inputs, keep the work narrowly scoped:

  • Add the exact level-50 Druid/Scout 499935 learner in scripts/runewaker-pipeline/export-player-catalog.mjs, requiring key item 543156 and learned 494932.
  • Suppress only an unconditional translation of component 505742. Preserve the 30% Rand check, Normal group execution, successful target-result phase, and one NaturePower grant to that cast owner, capped by that owner's pool.
  • Preserve the group-0 tier ladder and its three expiration heals. Do not infer HP-threshold behavior from the unbound Lua helper or attach 494932's unknown passive chance to the child rider.
  • Integrate player and generated-companion casts behind the exact learned child and pair in src/game/romCombatMechanics.ts, src/game/combatStore.ts, and src/game/partyRuntime.ts. Keep companion resource gains on the companion's own pool.

No exporter, catalog, runtime, or test changes were made for this note-only task.