RF455-096 RF 4.55: Booster's cooldown is 180 s on the server but 15 s in the client, so recasts are refused
Game: RF 4.55 (Dragonborn), server v0.3.1, Windows build (stock gameserver.exe).
Client: the supported Taiwan build, RF_Online.bin SHA-256 46528aac…2bbc558 (2025-07-16), Language=Taiwan.
Data: the shipped db\gamedata_rf455.db.
Summary
The server's skill table and the client's own copy disagree on 9 cast delays (m_fActDelay). Only Booster shows
up in play: the client's cooldown is shorter than the server's.
| Code | Name | Server m_fActDelay | Client SkillForce.edf | Effect |
|---|---|---|---|---|
AF1F2 (skill 48) | Booster | 180000 ms | 15000 ms | the client allows a recast after 15 s; the server refuses it until 180 s |
9506 (force 78) | Refresh | 2000 ms | 6000 ms | client stricter: no visible effect |
AF222 (skill 83) | Mount | 1000 ms | 15000 ms | client stricter: no visible effect |
AF216–AF221 (skill 77–82) | race rank buffs | 1000 ms | 0 ms | not player-cast |
rfdatabase.net (NA/PH) also lists Booster at 15 s. Every other skill, force and class skill has the same delay, costs (HP/FP/SP) and per-level durations in both copies.
How it's known (read)
- Server:
(*client).armCastDelay0x140895600addscastDelayPlus(0x1408954e0) to the effect row'sm_fActDelay(addsd xmm0, [row+0x30]at0x1408956d5) and arms it withsetSFDelay0x140919320.castOnDelayrefuses a cast before then (inferred from its name and its place beforespendFP; its compare wasn't traced). - Client:
DataTable\SkillForce.edf, the skill section (0x464-byte records, row =m_dwIndex): the cast delay is the f32 at+0x204, which equalsm_fActDelayon the other 667 of the 676 skill, force and class-skill rows.
How to reproduce
Cast Booster, wait for the client's cooldown to end (15 s), and cast it again. The cast is refused until 3 minutes
have passed. That it is refused is inferred from castOnDelay; not live-tested.
Suggested fix
Set Booster's (AF1F2) m_fActDelay to 15000 in gamedata_rf455.db, to match the client. Optionally align
Refresh and Mount too.