Skip to content

Engine symbol reference

One human-authored source (data/symbols.json) generates every downstream artifact:

flowchart LR
    S["data/symbols.json<br/>(canonical, hand-authored)"]
    S -->|"rsmm symbols gen"| H["loader C++<br/>symbols.gen.h + API"]
    S -->|gen| E["event bus<br/>event_table.gen.h"]
    S -->|gen| L["Lua resolver<br/>engine_gen.lua"]
    S -->|gen| P["Python consts<br/>_symbols_gen.py"]
    S -->|gen| D["this page<br/>+ docs/SYMBOLS.md"]
    S -->|"ghidra-export"| G["Ghidra DB names"]

GENERATED by rsmm symbols gen from data/symbols.json — do not edit by hand.

Canonical map of Ravenswatch engine functions/globals/events to stable semantic names. status: ok = resolvable by byte pattern in the current corpus (survives game updates); va = base-relative absolute (data globals); unverified = documented in an older corpus, address not re-confirmed. Functions tagged callable have a typed C++ accessor in engine:: and a Lua resolver entry. See [CLAUDE.md] for the workflow.

Total: 178 symbols across 16 categories.

enemies

nameaddressstatuscallablesignature / note
EnemyCamp_Stage3Filter0x140323830❓ unverifiedvoid(void* candidatesVec, void* searchFilter)
EnemyCamp_TierSelector0x14032e790✅ okvoid(void* selector)
EnemyCamp_TribeEntryBuilder0x14032fe20✅ okvoid(void* selector, void* specialEntry, void* outEntries, float mult)
EnemyDef_PostLoad0x14031a800✅ okbool(void* enemyDef)
EnemyDefinition_ctor0x1401df270✅ okvoid*(void* self)
EnemyTribeDef_PostLoad0x14031bae0✅ okbool(void* tribeDef)
EnemyTribeDefinition_ctor0x1400c5260✅ okvoid*(void* self)
Enemy_RuntimeSpawnPicker0x140364360❓ unverifiedvoid(void* spawnerCpnt)
MapCtx_DistributeEnemyCampTiers0x1401e8830✅ okvoid(void* mapSceneContext)

engine

nameaddressstatuscallablesignature / note
Entry_Ctor0x1402154b0✅ okvoid(void* base, uint32_t count)
Format_String0x1402092a0✅ okprintf-style format/string builder (e.g. ‘Is Hero liked by {}’, ‘Chance to give {} MO’)…
LevelLoad_Orchestrator0x14028e5f0✅ oki64(void* levelGs)
String_Assign0x140529860✅ okvoid(void* dst_slot, const StringDesc* src)
Vector_Grow0x140155230✅ okvoid(void* vec, void* /dead RDX/, uint32_t new_cap /R8/)

engine-core

nameaddressstatuscallablesignature / note
ClassRegistry_FindByKey0x140523a10❓ unverifiedvoid*(void* unused, void* identityKey)
ClassRegistry_Global0x141436690📍 vaGlobal class-descriptor registry: ptr to {descPtr array @+0x0, u32 count @+0x8}. Scanne…
CustomFlagFilter_Serialize0x140189830✅ okbool(void* flagFilter, void* reader)
CustomFlagList_Serialize0x140681e60❓ unverifiedbool(void* flagList, void* reader)
GameScene_FindContextByTester0x14066cad0✅ okvoid*(void* gameScene, void* kindOfTypeTester)
Profiler_GetThreadScopeStack0x14053a660❓ unverifiedvoid*(void)
Property_EvaluateByGuid0x1406ab910✅ okbool(void* ctx, void* container, void* guid16, float* out)
ResourceRef_Serialize0x1401cbba0❓ unverifiedbool(void* reader, void* refSlot)
Serializer_GetClassVersion0x140514570❓ unverifiedvoid*(void* reader, void* out, uint32_t classHash)
Serializer_ReadPolyPtrVector0x14020e000✅ okbool(void* reader, void* vec, const char* label)
ServiceRegistry_Global0x14146f740📍 vaGlobal engine service registry: service array @+0x30, u32 count @+0x38; each entry -> s…
StringVector_Serialize0x140684f30❓ unverifiedbool(void* reader, void* strVec)

entity

nameaddressstatuscallablesignature / note
EntityPool_AllocNode0x140690e50✅ okvoid*(void* pool)
EntitySpawner_InstantiateRecord0x140730f80✅ okvoid(oCEntityCpntEntitySpawner* self, void* spawnRecord)
EntitySpawner_SpawnOne0x140730150✅ okvoid(oCEntityCpntEntitySpawner* self)
EntityStore_CreateEntity0x1406f5dc0✅ okvoid*(void* ctx, void* entityStore, void* xform4x4, void* cbCtx)
EntityValueEntry_Ctor0x140747120✅ okvoid(void*, void*)
EntityValueOverride_Alloc0x140770290✅ okvoid*(void*, uint32_t, uint32_t)
EntityValueStore_ApplyModifierEvent0x14074b2f0✅ okvoid(void* store, void* modifierEvent, void* a3, void* a4)
EntityValueStore_InitBaseValues0x140747f20✅ okvoid(void* store)
EntityValueStore_Recompute0x140749a90✅ okvoid(void* store, void* valueDef)
EntityValueUnion_Compare0x14082ceb0✅ okuint32_t(void*, void*)
EntityValueUnion_CopyAssign0x14082b1d0✅ okvoid(void*, void*)
EntityValueUnion_DefaultCtor0x14082aa60✅ okvoid*(void*)
EntityValueUnion_Destruct0x14082dae0✅ okvoid(void*)
EntityValueUnion_InitAsType0x14082d670✅ okvoid(void*, uint32_t)
EntityValue_Get0x1403c7fa0✅ okvoid(void* valueCtx, oCEntityValueUnion* out, uint32_t crcKey)
EntityValue_Lookup0x140749260✅ okoCEntityValueUnion*(void* store, oCEntityValueUnion* out, uint32_t crcKey)
Entity_AllocInstance0x1406a8d80❓ unverifiedvoid*(void* allocator)
Entity_DispatchHit0x1406e3ce0✅ okvoid(oCEntity* target, oCEntityHitData* hit)
Entity_FindComponentByType0x1406e3210✅ okoIEntityCpnt*(oCEntitySpawnerGo* go, oCMetaClass* meta)
Entity_FindMagicalObjectComponent0x1406fb8a2❓ unverifiedvoid*(void* instance, void* mo_component_meta)
Entity_GainHealthHandler0x140399d00✅ okvoid(oCEntity* hero, void* a2, void* valueCtx)
Entity_GetComponentByTester0x1406e3210✅ okvoid*(void*, void*)
Entity_GetComponentFast0x1406e31a0✅ okvoid*(void*, void*, uint32_t)
Entity_ModifyHealth0x14039a320✅ okvoid(oCEntity* hero, float delta, oCCustomFlagList* sourceTags)
Entity_ResolveAttackHits0x1403dd540✅ okfloat(void* attacker, uint hitDefIndex, TargetList* targets, float damageMul, float bas…
HeroController_Ctor0x14038ec30✅ okoCDtEntityCpntHeroController*(oCDtEntityCpntHeroController* self)
HeroController_HudMirror_Ctor0x1403b3c70✅ okBuilds the hero’s HUD HP-mirror object whose pointer is stored at hero+0x1d80 by HeroCo…
MapCtx_LinkPairedSpawners0x1401ebad0✅ okvoid(void* mapSceneContext)
ModifierEvent_Ctor0x140389fb0✅ okvoid*(void* buf, void* valueDef)
g_MagicalObjectComponentMeta0x141470768📍 vaoCMetaClass* for the magical-object component; passed to Entity_FindMagicalObjectCompon…
oCCustomFlagList_vftable0x140f01650📍 vavftable of oCCustomFlagList. An empty list is the 0x18-byte struct { vftable @+0x0, lis…
oCEntityHitData_vftable0x140f137d8📍 vavftable of oCEntityHitData (the ~0xb0-byte hit descriptor passed to Entity_DispatchHit …
oCEntityValueUnion_vftable0x140f95008📍 vavftable of oCEntityValueUnion, the ~0x20-byte tagged value returned by EntityValue_Look…
oCGameEventNetworkModifier_vftable0x140f322d0📍 vavftable of oCGameEventNetworkModifier — the durable stat-modifier named event (leaf of …

entity-values

nameaddressstatuscallablesignature / note
EntityValueRegistry_RegisterAll0x1401da350✅ okvoid(void)

event

nameaddressstatuscallablesignature / note
Analytics_SubmitNamedEvent0x1401fad70✅ okvoid(void* analytics_mgr, void* payload_kv, StringDesc* event_name, char has_run_ctx)
Crc32_TableInit0x14051ef30✅ okBuilds the 256-entry CRC32 lookup table at DAT_141436710 (lazy, runtime — the table is …
EventQueue_Drain0x1406642d0✅ okvoid(void* queue)
Event_LevelUplevel_up0x1401f6bf0✅ okEmitter whose body references the ‘level_up_reach’ string (xref 0x1401f64a4). void(ctx,…
Event_RunEndrun_end0x1401f59c0✅ okEmitter whose body references the ‘run_end’ string (xref 0x1401f5347). Loader post-deto…
Id_HashString0x14033f7a0❓ unverifiedRuntime string -> 32-bit id hasher: standard CRC32 over the name bytes (init 0xffffffff…
NamedEvent_ChannelMap_Find0x14066dc10✅ okiter*(void* channel_map, iter* out, uint32_t* event_id)
NamedEvent_Delete0x1401273b0✅ okvoid(oCGameNamedEvent* ev)
NamedEvent_Dispatch0x14066b6b0✅ okvoid(void* dispatcher, oCGameNamedEvent* ev)
NamedEvent_EmitNetworkDamageFromHit0x140743a00❓ unverifiedReference emitter for NETWORK_DAMAGE: stack-builds the full oCGameNamedEventNetworkDama…
NamedEvent_GiveMagicalObject_Ctor0x14030fd30✅ okoe::dt::NamedEventGiveMagicalObject*(void* buf)
NamedEvent_HeroSubscribeAll0x140391860✅ okvoid(oCEntity* hero)
NamedEvent_HeroUnsubscribeAll0x140395350✅ okHero teardown twin of NamedEvent_HeroSubscribeAll: walks the same (id global, slot) pai…
NamedEvent_Id_FromCrc0x14051f090✅ okuint32_t(uint32_t ns, uint32_t name_crc)
NamedEvent_NetSend0x14073d730✅ okvoid(void* net_event_cpnt, oCGameNamedEvent* ev)
NamedEvent_NetSendToPeer0x1407216c0✅ okvoid(void* net_event_cpnt, oCGameNamedEvent* ev, uint64_t* peer_session)

hero

nameaddressstatuscallablesignature / note
GroupLevelComponent_Ctor0x1402e1de0✅ okvoid*(void* self)
Hero_GainExperience0x1402e2f00✅ okvoid(void*, void*)
XpComponent_GetMaxLevel0x1402e2d30✅ okuint32_t(void*)
XpComponent_IsMaxLevel0x1402e2d90✅ okbool(void*)
XpComponent_SetLevel0x1402e3190✅ okvoid(void*, uint32_t)
XpComponent_SetXp0x1402e3630✅ okvoid(void*, uint32_t)
XpComponent_TypeTester0x141476e00📍 vaType-tester global (DAT_141476e00) used by the XP component’s own IsKindOf/parent-resol…
XpComponent_XpForLevel0x1402e2c30✅ okuint32_t(void*, uint32_t)
XpComponent_vftable0x140f231b0📍 vaVftable of the hero’s XP/level component. CORRECTED 2026-07-18 from 0x140f23200, which …

heroes

nameaddressstatuscallablesignature / note
ChallengeUnlock_IsUnlocked0x1402b1100✅ okbool(void* condition_data)
HeroDef_LoadBaseEntity0x14031ece0✅ okvoid(void* heroDef, void** outEntityRef)
HeroDef_LoadSkinEntity0x14031ea40✅ okvoid(void* heroDef, uint16_t skinIndex, void* outHandle)
HeroProgressionUnlock_IsUnlocked0x1402b2b10✅ okbool(void* condition_data)
HeroRankLock_IsUnlocked0x1402b1c10✅ okbool(void* condition_data)
HeroStoryUnlock_IsUnlocked0x1402b21a0✅ okbool(void* condition_data)

items

nameaddressstatuscallablesignature / note
Entity_GiveHandler0x1403c7560✅ okvoid(oCEntityValueContext* heroValueCtx, oCEntity* hero, void* hitCtx)
Entity_LookupMagicalObjectComponent0x1406e3280✅ okvoid*(void* componentStore, void** out, oCEntity* entity)
Hero_GrantMagicalObject0x140397aa0✅ okvoid(oCDtEntityCpntHeroController* hero, void* def, uint16_t count, char dupFlag, void*…
InitialLoading_SpawnMagicalObjects0x140259060❓ unverifiedBoot ‘InitialLoading - MagicalObject SpawnAllObjects’ caller that invokes SpawnAllObjec…
MagicalObjectPool_Grow0x140156de0❓ unverifiedvoid(void* pool_plus_0x10, uint32_t count, uint32_t by)
MagicalObjectPool_SourceLookup0x14025e3e0❓ unverifiedvoid*(void* pool, void* out, void* id)
MagicalObject_RegisterInstance0x1403abb90✅ okvoid(oCDtEntityCpntHeroController* hero, void* instance, char addToActive)
MagicalObject_SpawnAllObjects0x140259060✅ okvoid(void* pool, void* scene)
MagicalObject_SpawnContainingFunc0x14025d9b0✅ okOuter function (1283 bytes) that contains the inlined SpawnAllObjects entry at +0x70. T…
g_MagicalObjectPool0x14143cc18📍 va[2026-07-10: re-derived post 2026-07-09 patch (was 0x1414365d0); confirmed via readers …

library

nameaddressstatuscallablesignature / note
AchievementDef_PostLoad0x140312060✅ okbool(void* definition)
ChallengeDef_PostLoad0x140324f30✅ okbool(void* definition)
Definition_DeserializeBase0x140310180✅ okbool(void* def, void* reader)
Definition_PostLoad0x140310200✅ okbool(void* definition)
Definition_PreUnload0x140310230✅ okvoid(void*)
DreamShardDef_PostLoad0x140312690✅ okbool(void* definition)
EnemyCampTierDef_PostLoad0x140319620✅ okbool(void* definition)
GameModeDefaultDef_PostLoad0x140325950✅ okbool(void* definition)
GameModifierDef_PostLoad0x140326250✅ okbool(void* definition)
GameModifierDef_RegisterAssetLoader0x1403260b0✅ okvoid(void* assetClassDesc)
GoPtrOwnerRelay_ForwardCall0x14066bf00✅ okoIGoPtrOwnerRelay base virtual (slot +0x18): resolves owned via slot-0x30, forwards own…
GoPtrOwnerRelay_ForwardGet0x14066be70✅ okoIGoPtrOwnerRelay base virtual (vtable 0x140f06820 slot +0x8): resolves the owned objec…
GoPtrOwnerRelay_ForwardSet0x14066bec0✅ okoIGoPtrOwnerRelay base virtual (slot +0x10): resolves owned via slot-0x30, forwards own…
HasGameModifierStateMachine_Register0x140197780✅ okvoid(void)
HeroDef_PostLoad0x14031fd70✅ okbool(void* definition)
IngredientDef_PostLoad0x140323190✅ okbool(void* definition)
Library_AchievementDefinition_vftable0x1414113b0📍 vavftable of oCTLibraryoe::dt::AchievementDefinition singleton.
Library_ChallengeDefinition_vftable0x141413010📍 vavftable of oCTLibraryoe::dt::ChallengeDefinition singleton.
Library_DreamShardDefinition_vftable0x141411050📍 vavftable of oCTLibrary singleton.
Library_EnemyCampDifficultyDefinition_vftable0x141411710📍 vavftable of oCTLibrary singleton.
Library_EnemyCampTierDefinition_vftable0x141411560📍 vavftable of oCTLibrary singleton.
Library_EnemyDefinition_vftable0x1414118c0📍 vavftable of oCTLibrary singleton.
Library_EnemyTribeDefinition_vftable0x141411200📍 vavftable of oCTLibrary singleton.
Library_EntitySettingsResource_vftable0x141470950📍 vavftable of oCTLibrary singleton.
Library_GameModifierDefinition_vftable0x141411b50📍 vavftable of oCTLibraryoe::dt::GameModifierDefinition singleton. GameModifiers = the ru…
Library_IngredientDefinition_vftable0x141412c50📍 vavftable of oCTLibrary singleton.
Library_MapDefinition_vftable0x141412520📍 vavftable of oCTLibrary singleton.
Library_MelodyDefinition_vftable0x1414129c0📍 vavftable of oCTLibrary singleton.
Library_RewardDefinition_vftable0x141412e00📍 vavftable of oCTLibrary singleton.
Library_TileDefinition_vftable0x141412080📍 vavftable of oCTLibrary singleton.
Library_VersionDefinition_vftable0x141412300📍 vavftable of oCTLibraryoe::dt::VersionDefinition singleton (LiveOps version manifest).
MapDef_PostLoad0x1403234f0✅ okbool(void* definition)
MapDef_RegisterAssetLoader0x140323350✅ okvoid(void* assetClassDesc)
MelodyDef_PostLoad0x140326f50✅ okbool(void* definition)
Mem_Alloc16Zeroed0x14050d5c0✅ okmalloc(0x10) + zero two qwords + bump global alloc counter DAT_1414442b4 = 16-byte zero…
PtrVector_Resize0x140155230✅ okpointer-vector resize: param_3==0 frees vec[0] (free-counter DAT_14146d854), else mallo…
Registry_EnemyDefinition_desc0x141470208📍 vaClass registry descriptor for oCDtEnemyDefinition (set by registrar FUN_14022d940; UID …
Registry_EnemyTribeDefinition_desc0x14146f938📍 vaClass registry descriptor for oCDtEnemyTribeDefinition (registrar FUN_140189410; UID 0x…
RewardDef_RegisterAssetLoader0x140324460✅ okvoid(void* assetClassDesc)
Rt_FailFast0x140cc7e04✅ okCRT fail-fast: FUN_140cc7c90 then _invoke_watson (noreturn). 4459 refs. Naming it de-no…
SharedRef_AddRefCopy0x1401663a0✅ okbase virtual: copies {*(this+0x18) data, *(this+0x20) refblock} into out and addrefs at…
SharedRef_AddRefCopy_b0x14021e390✅ okidentical twin of SharedRef_AddRefCopy (separate TU); base virtual in 298 vtables. Deco…
SharedRef_Release0x140111cf0✅ okvoid(void*)
TypeDesc_HashName0x1404fd5d0✅ okbase virtual: vcall slot0 -> type descriptor, reads its oCString name (inline @+8 / hea…
TypeDesc_HashName_b0x1401c96e0✅ okidentical twin of TypeDesc_HashName (separate TU); base virtual in 292 vtables. Decompi…
oCString_Dtor0x140111d90✅ okoCString destructor: SSO threshold 0xf; heap buffer’s real alloc ptr at [buf-8], frees …

netcode

nameaddressstatuscallablesignature / note
Entity_GetNetComponent0x140312db0✅ okvoid*(oCEntity* entity)
Netcode_Channel_LookupById0x140241a50✅ okiter*(void* channel_map, iter* out, uint32_t* event_id)
Netcode_Channel_Unsubscribe0x1401c8da0✅ okvoid(void* node_plus_8, void** sub_slot)
Netcode_DropPeer0x1402b4d50✅ okDrops a peer after the reconnect window (default 60s) elapses. Pattern-verified 2026-07…
Netcode_EntityReplSetup0x14073dda0❓ unverifiedvoid(void* replContext)
Netcode_PeerStateTick0x1402b03a0✅ okPer-peer connection-state tick (peer conn-state enum at peer+0xCC; 3=connected). Reconn…

options

nameaddressstatuscallablesignature / note
g_GameOptions0x14143cb58📍 va[2026-07-10: re-derived post 2026-07-09 patch (was 0x141436510); ctor is now FUN_1401ca…

resource

nameaddressstatuscallablesignature / note
Definitions_LoadGroup0x140310300✅ okLoads the ‘Definitions’ group / VersionDefinition manifest (triggers loading the curate…
InitialLoading_LoadAllDefinitions0x140260b80✅ okvoid(void* nameFilter)
Registry_EnumInstances0x140241750✅ okvoid*(void* unused, void* out3, void** classDescPtr)
Registry_RegisterInstance0x1403119d0✅ okvoid(void* definition)
Registry_UnregisterInstance0x140311a50✅ okvoid(void*)
ResourceRef_Resolve0x140492540✅ okvoid(void* refBlock, void* classDesc, void** outResolved, void* policy)
Resource_LookupByPath0x14049b2a0✅ okvoid*(const char* decoded_path, void*, void*, void*)

rewards

nameaddressstatuscallablesignature / note
CustomFlagList_ContainsAll0x14066ac70✅ okbool(void* flagListA, void* flagListB)
CustomFlagList_ContainsAny0x14066ad90✅ okbool(void* flagListA, void* flagListB)
RewardDef_Deserialize0x1403244c0✅ okbool(void* rewardDef, void* reader)
RewardItem_Serialize0x140323dd0✅ okbool(void* oCItem, void* reader)
RewardSelectorSettings_Serialize0x140340470✅ okbool(void* settings, void* reader)
RewardType_Serialize0x140324260✅ okbool(void* oCType, void* reader)
Reward_GenerateAndDistribute0x1401ecd10❓ unverifiedvoid(void* mapSceneContext)
Reward_InitAllRewards0x1401e9800✅ ok_InitAllRewards (7351 bytes): reward-type registrar. The actual reward roller is a sibl…

skins

nameaddressstatuscallablesignature / note
SkinGrid_Populate0x1401f16f0✅ okvoid(void* ctx, void* arg)
SkinRoster_Build0x1401dd2c0✅ okSkin-pack roster builder. Selectable-skin count (9) is baked into its loop; a new selec…
g_RosterManager0x141436590📍 vaManager pointer global (relocated by the live image base) walked by the skin-grid popul…

ui

nameaddressstatuscallablesignature / note
BookController_ResolveSettings0x140307a30✅ okvoid(oCDtEntityCpnt3DBookController* self)
BookController_ResolveTabs0x140308cd0✅ okvoid(oCDtEntityCpnt3DBookController* self)
UiButton_InputPoll0x1407d72a0✅ okvoid(ButtonUiCpntArray* cpnts)
UiButton_PressCommit0x1406a08a0✅ okvoid(oCUINavigableZoneDesc* widget)
UiButton_PressReturnSite0x1407d7382✅ ok(code location, not callable)