Skip to content
RF DataData reference
RU

Characters and creatures

Animus

Eight animus kinds and level tables

Total 50 Known 33 Derived 0 Unused 17

Overview

An animus is a creature that a Cora player summons from an item. There are exactly 8 kinds: Paimon, Hecate, Inanna, Isis and their sealed variants. Kind = row number of AnimusItem.dat; every kind has its own level file whose name is hard-coded by row number: PaimonCharacter.dat, HecateCharacter.dat, InannaCharacter.dat, IsisCharacter.dat and *_S.dat (81 rows, levels 1–81).

What a kind consists of

  1. an AnimusItem.dat row (server) and a group 24 row of Item.edf (client) with the same number — the “Items” category;
  2. the server level table (described here);
  3. 81 records of block 7 of the client Character.edf, starting at number × 81 — derived from the server table;
  4. the models number << 8 | grade in the Animus list of Resource.edf.

How it works

  • The animus's experience, HP and FP are stored in the item itself; on summoning a CAnimus object appears that follows the owner, attacks or heals. The role is set by m_nAnimusClass (1 defender, 2 area attack, 3 healer, 4 shooter), the class requirement by m_nAnimusType and class flags.
  • The level record is selected by accumulated experience: m_nForLvUpExp is the experience to leave the level, strictly increasing.
  • m_nHPRecDelay and m_nFPRecDelay must be 2000, otherwise the client window shows HP/FP differently from the server's computation; m_fPenalty < 1 gives no penalty.
  • The attack and defence fields “in skill units” (m_nAttSklUnit, m_nDefSklUnit) go to the client as a byte, but the client does not read them.

All server table fields are described by the digest tables (automatically, “digest row”); no manual edits were needed.

Files of the category

8 in the registry
FileSideFormatLevelCorporaRecordDigestNote
script\HecateCharacter.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 440, GU 440, Sirin 440animus.mdanimus.md §3
script\HecateCharacter_S.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 440, GU 440, Sirin 440animus.mdanimus.md §3
script\InannaCharacter.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 440, GU 440, Sirin 440animus.mdanimus.md §3
script\InannaCharacter_S.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 440, GU 440, Sirin 440animus.mdanimus.md §3
script\IsisCharacter.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 440, GU 440, Sirin 440animus.mdanimus.md §3
script\IsisCharacter_S.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 440, GU 440, Sirin 440animus.mdanimus.md §3
script\PaimonCharacter.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 440, GU 440, Sirin 440animus.mdanimus.md §3
script\PaimonCharacter_S.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 440, GU 440, Sirin 440animus.mdanimus.md §3

“ready for full” — the format is understood and the fields are described; “derived” — the file is assembled from another; “opaque” — the format is not fully known; “postponed” and “out of scope” — the studio does not edit the file.

Used parameters

Fields read by the server or the client, or assembled from other files. The description says what the field means and how it acts; below it — where that was established.

HecateCharacter.dat, HecateCharacter_S.dat, InannaCharacter.dat … server file

Total 50 Known 33 Derived 0 Unused 17
Schema
Scripts\strs AOP\Animus.strs
Registry level
ready for full
Digest
animus.md §3
Files of the unit
script\HecateCharacter.dat, script\HecateCharacter_S.dat, script\InannaCharacter.dat, script\InannaCharacter_S.dat, script\IsisCharacter.dat, script\IsisCharacter_S.dat, script\PaimonCharacter.dat, script\PaimonCharacter_S.dat
Corrections to the digest
  • animus.md: §3.3: m_nForLvUpExp (+0x48) is a u64; in STRS — two u32 with one tag
OffsetFieldWhat it is and how it actsGoes to client asServer readersRoleStatusData
+0x044m_nLevel
server: level (CAnimus slot 32 1400DE440), FromLv, level thresholds (section 7.2), appearance packets; client: +0x00 (u8): record lookup by level, model grade, tool…
animus.md §3.3 (digest row)
———known66 values; most often 1 (2%)
+0x048m_nForLvUpExp
server: record selection, growth limit (7.1), GM level setting; client: +0x08 (u64): record selection by experience, experience bar
animus.md §3.3 (digest row)
———known66 values; most often 200 (2%)
+0x04Cm_nForLvUpExp
server: record selection, growth limit (7.1), GM level setting; client: +0x08 (u64): record selection by experience, experience bar
animus.md §3.3 (digest row)
———known17 values; most often 0 (76%)
+0x050m_nUseFP
server: deducted every second from the owner's FP; owner FP 0 — the animus returns (1400DDA70); client: —
animus.md §3.3 (digest row)
———known11 values; most often 0 (83%)
+0x054m_fPenalty
server: experience penalty on death — see 7.4; client: —
animus.md §3.3 (digest row)
———knownalways 0.02
+0x058m_fAttGap
server: GetWeaponAdjust (slot 31, 1400E06D0); client: —
animus.md §3.3 (digest row)
———knownalways 1
+0x05Cm_nAttack_DP
server: GetAttackDP (slot 40, 1400E0710; monsters.md, DP destruction); client: —
animus.md §3.3 (digest row)
———knownalways 0
+0x060m_nAttFcStd
server: skill 0 attack power (× 1.0) (1400DA1B0); client: +0x28: the “attack” tooltip round(0.75 × v) … 2v − round(0.75 × v) (00467890, 004678F0)
animus.md §3.3 (digest row)
———known65 values; most often 7088 (3%)
+0x064m_nMinAFSelProb
server: skill 0, lower range part probability; client: —
animus.md §3.3 (digest row)
———known15 values; most often 4 (26%)
+0x068m_nMaxAFSelProb
server: skill 0, upper part probability; client: —
animus.md §3.3 (digest row)
———known19 values; most often 7 (21%)
+0x06Cm_nAttSklUnit
server: hit chance 1400DE650 (8.3); client: +0x34 (u8, low byte): no
animus.md §3.3 (digest row)
———known37 values; most often 693 (26%)
+0x070m_nDefSklUnit
server: defence skill (slot 33, 1400DE4B0); client: +0x39 (u8, low byte): no
animus.md §3.3 (digest row)
———known36 values; most often 743 (26%)
+0x078m_nStdDefFc
server: defence (slot 24, 1400DE390); for role 1 × the owner's Fg_Def effect [Sirin code]; client: +0x2C: no
animus.md §3.3 (digest row)
———known64 values; most often 22 (3%)
+0x07Cm_fDefGap
server: slot 29 1400DE560; client: —
animus.md §3.3 (digest row)
———knownalways 0.575
+0x080m_fDefFacing
server: slot 30 1400DE5B0; client: —
animus.md §3.3 (digest row)
———known65 values; most often 0.0484 (3%)
+0x084m_nFireTol
server: slots 25–28 (1400DE4E0…1400DE540); client: +0x4D…+0x50 (u8): tooltip, non-zero resistances (00467930)
animus.md §3.3 (digest row)
———knownalways 10
+0x088m_nWaterTol
server: slots 25–28 (1400DE4E0…1400DE540); client: +0x4D…+0x50 (u8): tooltip, non-zero resistances (00467930)
animus.md §3.3 (digest row)
———knownalways 10
+0x08Cm_nSoilTol
server: slots 25–28 (1400DE4E0…1400DE540); client: +0x4D…+0x50 (u8): tooltip, non-zero resistances (00467930)
animus.md §3.3 (digest row)
———knownalways 10
+0x090m_nWindTol
server: slots 25–28 (1400DE4E0…1400DE540); client: +0x4D…+0x50 (u8): tooltip, non-zero resistances (00467930)
animus.md §3.3 (digest row)
———knownalways 10
+0x170m_nMaxHP
server: max HP; the 30% threshold at summoning; recovery cap; HP of a new item; client: +0x10: max HP when summoned and in the bag, HP bar
animus.md §3.3 (digest row)
———known65 values; most often 59710 (3%)
+0x174m_nHPRecDelay
server: no (the server recovery timer is a fixed 2 s, 6.3); client: +0x1C: the HP recovery period in the bag on the client (6.3)
animus.md §3.3 (digest row)
———knownalways 2000
+0x178m_nHPRecUnit
server: HP recovery in the bag (6.3); client: +0x18: the same on the client
animus.md §3.3 (digest row)
———known32 values; most often 52 (5%)
+0x17Cm_nMaxFP
server: like m_nMaxHP but for FP; client: +0x14: max FP in the bag, FP bar
animus.md §3.3 (digest row)
———knownalways 50
+0x180m_nFPRecDelay
server: no; client: +0x24: FP recovery period on the client
animus.md §3.3 (digest row)
———knownalways 2000
+0x184m_nFPRecUnit
server: FP recovery in the bag; client: +0x20: the same on the client
animus.md §3.3 (digest row)
———knownalways 4
+0x188m_nAttSpd
server: skill delay 0; client: +0x54: no
animus.md §3.3 (digest row)
———knownalways 900
+0x18Cm_nAttMoTime1
server: skill animation time 0; client: —
animus.md §3.3 (digest row)
———knownalways 900
+0x194m_nCrtMoTime
server: after a hit on the animus it is inactive for m_nCrtMoTime + 1000 ms (1400DD9A0); client: —
animus.md §3.3 (digest row)
———knownalways 0
+0x198m_nViewExt
server: follow range (8.2); client: —
animus.md §3.3 (digest row)
———knownalways 340
+0x1A0m_nAttExt
server: skill range 0; slot 35 1400DE340; client: +0x58 (float): attack range (CAnimus slot 49, 0045A800)
animus.md §3.3 (digest row)
———knownalways 225
+0x1A4m_nMovSpd
server: movement speed (1400DD1F0); for role 3 — the owner's speed; client: +0x5C and +0x5D (u8, both = m_nMovSpd): walk and combat speeds (0045A170)
animus.md §3.3 (digest row)
———knownalways 6
+0x1A8m_nScaleRate
server: no; client: +0x60 (float, /100): model scale (0045A170)
animus.md §3.3 (digest row)
———knownalways 100
+0x1ACm_nWidth
server: width (slot 34, 1400DE2F0); client: +0x5E (u8): width (CAnimus slot 42, 0045A380)
animus.md §3.3 (digest row)
———knownalways 20

Unused parameters

Fields that neither the server nor the client reads. For each: why it was decided so and where that was established. The editor keeps their bytes as they are.

HecateCharacter.dat, HecateCharacter_S.dat, InannaCharacter.dat … server file

OffsetFieldWhy unusedData
+0x000m_dwIndex
server: no (rows are taken by position, GetRecord 14000F5F0); client: —
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
66 values; most often 0 (2%)
+0x004m_strCode
server: no (there is no lookup by code in these tables); client: —
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always 0
+0x074m_fWeakPart
server: no; client: +0x4C (i8): no
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always -1
+0x094m_nForceLevel
server: no; client: (+0x3D = 0): no
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always 1
+0x098m_nForceMastery
server: no; client: —
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always 1
+0x09Cm_nForceAttStd
server: no; client: +0x30: no
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always 16
+0x0A0m_strAttTechID1
server: no; client: (+0x40…+0x48, three u32 = 0): no
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always 0
+0x0E0m_nAttTech1UseProb
server: no; client: —
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always 0
+0x0E4m_nAttTechID1MotionTime
server: no; client: —
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always 1000
+0x0E8m_strPSecTechID
server: no; client: —
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always 0
+0x128m_nPSecTechIDMotionTime
server: no; client: —
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always 1000
+0x12Cm_strMSecTechID
server: no; client: —
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always 0
+0x16Cm_nMSecTechIDMotionTime
server: no; client: —
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always 1000
+0x190m_nAttMoTime2
server: no; client: —
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always 900
+0x19Cm_nRefExt
server: no; client: —
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always 340
+0x1B0m_nAttEffType
server: no; client: +0x64: no
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always 10
+0x1B4m_nDefEffType
server: no; client: +0x68: no
animus.md §3.3: “no” in the “Server” and “Client” columns; method — “”
always 273
RF Online is a trademark of its owners. The reference is compiled from research for content development. Built 01.11.2026 · field catalog dated 29.10.2026 · Adagio UI 0.5.0