Skip to content

Rappelz Primary and Secondary Type Statistics

In the game Rappelz, character statistics are represented using bit flags. Bit flags allow efficient management of multiple states using a single numeric variable. This guide explains what bit flags are, how to calculate them, and provides tables representing these flags in numeric form.

Bit Flags

Bit flags are used to represent multiple states using a single integer. Each bit in the number can represent a different state. In the case of statistics in Rappelz, each statistic is assigned to a different bit position.

Primary Type Statistics

Table of Primary Type Statistics

Flag NameNumerical ValueDecimal Representation
STR(1 << 0)1
VIT(1 << 1)2
AGI(1 << 2)4
DEX(1 << 3)8
INT(1 << 4)16
WIS(1 << 5)32
LUK(1 << 6)64
ATTACK_POINT(1 << 7)128
MAGIC_POINT(1 << 8)256
DEFENCE(1 << 9)512
MAGIC_DEFENCE(1 << 10)1024
ATTACK_SPEED(1 << 11)2048
CAST_SPEED(1 << 12)4096
MOVE_SPEED(1 << 13)8192
ACCURACY(1 << 14)16384
MAGIC_ACCURACY(1 << 15)32768
CRITICAL(1 << 16)65536
BLOCK(1 << 17)131072
BLOCK_DEFENCE(1 << 18)262144
AVOID(1 << 19)524288
MAGIC_RESISTANCE(1 << 20)1048576
MAX_HP(1 << 21)2097152
MAX_MP(1 << 22)4194304
MAX_SP(1 << 23)8388608
HP_REGEN_ADD(1 << 24)16777216
MP_REGEN_ADD(1 << 25)33554432
SP_REGEN_ADD(1 << 26)67108864
HP_REGEN_RATIO(1 << 27)134217728
MP_REGEN_RATIO(1 << 28)268435456
MAX_WEIGHT(1 << 30)1073741824

Secondary Type Statistics

Table of Secondary Type Statistics

Flag NameNumerical ValueDecimal Representation
ET_NONE_RESIST(1 << 0)1
ET_FIRE_RESIST(1 << 1)2
ET_WATER_RESIST(1 << 2)4
ET_WIND_RESIST(1 << 3)8
ET_EARTH_RESIST(1 << 4)16
ET_LIGHT_RESIST(1 << 5)32
ET_DARK_RESIST(1 << 6)64
ET_ATTACK_RANGE(1 << 8)256
ET_PERFECT_BLOCK(1 << 9)512
ET_IGNORE_PHYSICAL_DEFENCE(1 << 10)1024
ET_IGNORE_MAGICAL_DEFENCE(1 << 11)2048
ET_PHYSICAL_PENETRATION(1 << 12)4096
ET_MAGICAL_PENETRATION(1 << 13)8192
ET_NONE_DAMAGE(1 << 14)16384
ET_FIRE_DAMAGE(1 << 15)32768
ET_WATER_DAMAGE(1 << 16)65536
ET_WIND_DAMAGE(1 << 17)131072
ET_EARTH_DAMAGE(1 << 18)262144
ET_LIGHT_DAMAGE(1 << 19)524288
ET_DARK_DAMAGE(1 << 20)1048576
ET_NONE_ADDITIONAL_DAMAGE(1 << 21)2097152
ET_FIRE_ADDITIONAL_DAMAGE(1 << 22)4194304
ET_WATER_ADDITIONAL_DAMAGE(1 << 23)8388608
ET_WIND_ADDITIONAL_DAMAGE(1 << 24)16777216
ET_EARTH_ADDITIONAL_DAMAGE(1 << 25)33554432
ET_LIGHT_ADDITIONAL_DAMAGE(1 << 26)67108864
ET_DARK_ADDITIONAL_DAMAGE(1 << 27)134217728
CRITICAL_DAMAGE(1 << 28)268435456
HP_REGEN_STOP(1 << 29)536870912
MP_REGEN_STOP(1 << 30)1073741824

Simple Calculation Code in Python

Here is a simple code snippet in Python that allows users to calculate the numeric value of combined bit flags. This code can be tested in any online Python interpreter.

class PrimaryTypeFlags:
FLAG_STR = (1 << 0)
FLAG_VIT = (1 << 1)
FLAG_AGI = (1 << 2)
FLAG_DEX = (1 << 3)
FLAG_INT = (1 << 4)
FLAG_WIS = (1 << 5)
FLAG_LUK = (1 << 6)
FLAG_ATTACK_POINT = (1 << 7)
FLAG_MAGIC_POINT = (1 << 8)
FLAG_DEFENCE = (1 << 9)
FLAG_MAGIC_DEFENCE = (1 << 10)
FLAG_ATTACK_SPEED = (1 << 11)
FLAG_CAST_SPEED = (1 << 12)
FLAG_MOVE_SPEED = (1 << 13)
FLAG_ACCURACY = (1 << 14)
FLAG_MAGIC_ACCURACY = (1 << 15)
FLAG_CRITICAL = (1 << 16)
FLAG_BLOCK = (1 << 17)
FLAG_BLOCK_DEFENCE = (1 << 18)
FLAG_AVOID = (1 << 19)
FLAG_MAGIC_RESISTANCE = (1 << 20)
FLAG_MAX_HP = (1 << 21)
FLAG_MAX_MP = (1 << 22)
FLAG_MAX_SP = (1 << 23)
FLAG_HP_REGEN_ADD = (1 << 24)
FLAG_MP_REGEN_ADD = (1 << 25)
FLAG_SP_REGEN_ADD = (1 << 26)
FLAG_HP_REGEN_RATIO = (1 << 27)
FLAG_MP_REGEN_RATIO = (1 << 28)
FLAG_MAX_WEIGHT = (1 << 30)
class SecondaryTypeFlags:
FLAG_ET_NONE_RESIST = (1 << 0)
FLAG_ET_FIRE_RESIST = (1 << 1)
FLAG_ET_WATER_RESIST = (1 << 2)
FLAG_ET_WIND_RESIST = (1 << 3)
FLAG_ET_EARTH_RESIST = (1 << 4)
FLAG_ET_LIGHT_RESIST = (1 << 5)
FLAG_ET_DARK_RESIST = (1 << 6)
FLAG_ET_ATTACK_RANGE = (1 << 8)
FLAG_ET_PERFECT_BLOCK = (1 << 9)
FLAG_ET_IGNORE_PHYSICAL_DEFENCE = (1 << 10)
FLAG_ET_IGNORE_MAGICAL_DEFENCE = (1 << 11)
FLAG_ET_PHYSICAL_PENETRATION = (1 << 12)
FLAG_ET_MAGICAL_PENETRATION = (1 << 13)
FLAG_ET_NONE_DAMAGE = (1 << 14)
FLAG_ET_FIRE_DAMAGE = (1 << 15)
FLAG_ET_WATER_DAMAGE = (1 << 16)
FLAG_ET_WIND_DAMAGE = (1 << 17)
FLAG_ET_EARTH_DAMAGE = (1 << 18)
FLAG_ET_LIGHT_DAMAGE = (1 << 19)
FLAG_ET_DARK_DAMAGE = (1 << 20)
FLAG_ET_NONE_ADDITIONAL_DAMAGE = (1 << 21)
FLAG_ET_FIRE_ADDITIONAL_DAMAGE = (1 << 22)
FLAG_ET_WATER_ADDITIONAL_DAMAGE = (1 << 23)
FLAG_ET_WIND_ADDITIONAL_DAMAGE = (1 << 24)
FLAG_ET_EARTH_ADDITIONAL_DAMAGE = (1 << 25)
FLAG_ET_LIGHT_ADDITIONAL_DAMAGE = (1 << 26)
FLAG_ET_DARK_ADDITIONAL_DAMAGE = (1 << 27)
FLAG_CRITICAL_DAMAGE = (1 << 28)
FLAG_HP_REGEN_STOP = (1 << 29)
FLAG_MP_REGEN_STOP = (1 << 30)
def main():
primary_type_combined = PrimaryTypeFlags.FLAG_STR | PrimaryTypeFlags.FLAG_VIT | PrimaryTypeFlags.FLAG_AGI
secondary_type_combined = SecondaryTypeFlags.FLAG_ET_FIRE_RESIST | SecondaryTypeFlags.FLAG_ET_WATER_DAMAGE
print(f"Combined Primary Type Flags Value: {primary_type_combined}")
print(f"Combined Secondary Type Flags Value: {secondary_type_combined}")
if __name__ == "__main__":
main()

This code combines multiple flags using bitwise OR operations and prints the resulting values. Users can modify the combinations to calculate other sets of flags as needed.