Old School Ops

RF455-164 [RF 4.55] Armor Defense Calculation — +7 Upgrade Bonuses Stack Globally and Cause Excessive Defense Loss When Unequipping One Piece

Game server RF Online: Dragonborn v0.6.0 high · filed by Recks
New

Game: RF Online 4.55 Server: GoMMO RF 4.55 (customized v0.4.0 build) Category: Combat System / Armor Defense Calculation Severity: High — Combat Balance Status: Reproducible display observations; root cause and intended behavior require developer confirmation

Bug Description

I discovered unusual behavior in the armor defense calculation system.

Each +7 armor piece provides a +200% Defense Ability upgrade bonus. However, the Character Information calculation appears to accumulate these bonuses globally rather than applying each bonus exclusively to its corresponding armor piece.

As a result, removing a single upgraded armor piece can significantly reduce the calculated defense contribution of all remaining equipped armor.

This creates a much larger defense reduction than expected when removing only one piece.

The behavior appears to be present in the original RF Online 4.55 client calculation and may also be reflected in the GameServer.

I would like the OldSchoolOps team to confirm whether this is intended RF 4.55 behavior or an armor defense calculation issue.

Test Equipment

Accretia Level 55 Empire's Will armor.

ArmorBase Defense+7 Defense
Helmet2,3747,122
Upper2,7308,190
Lower2,6117,833
Gloves2,1366,408
Shoes2,0186,054
Total11,86935,607

The +7 enhancement grants +200% Defense Ability per item.

The client and GameServer base armor defense records were verified to match.

Actual Character Information Observations

Equipment ConfigurationAvg. Def. Pwr.
Helmet +0 only241
Full armor +01,203
Full armor +721,176

These values were captured from the in-game Character Information window.

Technical Investigation

A read-only static analysis of RF_Online.bin identified the client-side Avg. Def. Pwr. calculation routine.

Client routine: 0x441AC0

The reconstructed formula is:

AvgDef = trunc(((G + X) × A + flat) / 2)

Where:

  • A = Weighted armor base defense with additional stat modifiers.
  • G = Accumulated armor upgrade factor.
  • X = Additional character modifier, not yet identified.
  • flat = Additional flat defense values.

The armor weights are:

Armor SlotWeight
Helmet0.20
Upper0.23
Lower0.22
Gloves0.18
Shoes0.17

These weights explain the unupgraded armor defense values closely.

For the five +0 pieces:

Weighted base defense = 2,404.66

2,404.66 / 2 = 1,202.33

Observed Character Information = 1,203

The small difference remains unexplained.

Suspected Global Upgrade Scaling

The client appears to accumulate upgrade bonuses across all equipped armor pieces.

With five +7 armor pieces:

G = 1 + (5 × 2.00)

G = 11.00

This suggests the full armor defense receives a global ×11 upgrade multiplier, rather than each individual armor contributing only its own ×3 upgraded value.

Under the simplified reconstructed calculation:

2,404.66 × 11 / 2 ≈ 13,226

However, the actual observed value is 21,176.

An additional modifier of approximately ×1.60 is still unidentified.

Therefore, the exact full-defense calculation has not yet been completely reconstructed.

GameServer Investigation

Read-only disassembly also identified a corresponding upgrade-related calculation path.

Relevant function:

applyTalik — 0x1409A9C20

The server appears to accumulate upgrade effects into a character-wide defense-related field.

The observed structure suggests that removing one +7 armor piece reduces the shared multiplier from ×11 to ×9.

This affects the remaining armor pieces in addition to removing the unequipped piece's own defense contribution.

However, the exact talic-effect mapping and complete server-side damage impact still require verification.

Expected Behavior — Request for Clarification

If armor enhancement bonuses are intended to apply independently, each +7 piece should receive its own +200% defense contribution.

Removing one piece should remove that piece's defense contribution and any applicable set bonuses, without unnecessarily reducing the enhancement value of unrelated armor pieces.

If global upgrade stacking is intentional, please confirm that this is the official RF 4.55 defense mechanic.

Actual Behavior

The defense calculation appears to use globally accumulated upgrade effects.

This produces disproportionately large changes in Character Information defense when armor equipment changes.

The exact resulting defense with a single +7 piece removed has not yet been captured in a controlled test.

Questions for the OldSchoolOps Team

  1. Is global stacking of armor upgrade Defense Ability the intended RF Online 4.55 behavior?
  2. Should each +7 armor's +200% Defense Ability affect only its own armor defense or the entire equipped armor calculation?
  3. Is the client-side weighted armor defense formula expected to match the GameServer damage-defense calculation?
  4. Could the unexplained additional defense modifier be related to intrinsic item effects, armor set bonuses, or buffs?
  5. If this behavior is unintended, could it be reviewed for a future GoMMO RF 4.55 fix?

Supporting Evidence

Available screenshots show:

  • Single +0 helmet: 241 Character Avg. Def. Pwr.
  • Full +0 armor: 1,203 Character Avg. Def. Pwr.
  • Full +7 armor: 21,176 Character Avg. Def. Pwr.
  • Individual armor upgrade descriptions showing +200% Defense Ability.

All reverse-engineering work was performed read-only using scratchpad copies. No production files were modified.

Request: Please review and confirm whether the global armor defense scaling behavior is intended or requires correction.

Thank you, OldSchoolOps team.

Reported on version 0.6.0
👍 erickson

Replies

Nobody has replied yet.

Sign in to comment.

Top xp sources

How xp works
Loading…

Open the full search page