Symbol Index¶
Cross-cutting lookup tables for the most-cited symbols in these docs.
This page is not exhaustive — for a complete answer, read the topic page each row links to. The intent is "I have a symbol/offset, where do I look?", not "give me every fact about it".
All addresses absolute, image base 0x140000000.
How to find a fact (AI agent cheat sheet)¶
| You have ... | Do this |
|---|---|
A function address (0x140xxxxxx) |
grep -rn "0x140xxxxxx" docs/ — all topic pages cite addresses inline |
| A function name | Grep the same; or search the table below |
| A struct name | Game Structures is canonical; size table below for quick size lookup |
A chara+0xN offset |
chara offset table below; follow link for the topic page that uses it |
A BM+0xN offset |
Battle Manager subsystem layout — full 43-slot map |
A global (g_*, DAT_*) |
Globals table below; or grep — globals are usually cited inline |
A vmCtx+0xN offset |
Move System: VM globals and opcode scratch layout |
An opcode (0x40002, 0x50008, ...) |
Move System: opcode quick reference |
| A KHit list head | Hitbox System: three list heads |
| A vtable slot index | Trace System for Active/Inactive slots; Hitbox System for KHitBase family |
Verification status conventions¶
Words used consistently across these docs:
| Marker | Meaning |
|---|---|
| verified | Read directly from the SC6 Steam binary via Ghidra decompile or runtime memory/introspection probes. Trust this. |
| unverified | Plausible but not directly read. May be cite-by-analogy or general fighting-game knowledge. Don't build on without checking. |
| stale on this build | Function/path exists in the binary but isn't reached at runtime. The shipping codepath has moved elsewhere. Don't use. |
> source: blockquote |
Specific Ghidra address / function plate-comment the claim is built on. Treat as the authoritative pointer. |
!!! warning admonition |
Known landmine, layout error, or correction notice. Read before acting. |
Conventions¶
| Notation | Meaning |
|---|---|
chara+0xN |
Offset on ALuxBattleChara* (size 0x568, runtime extension to ~0x97000). Layout. |
BM+0xN |
Offset on ALuxBattleManager*. Layout. |
vmCtx+0xN |
Offset on FLuxMoveCommandPlayer* (per-chara VM slot, 0x302C bytes). Layout. |
InputLog+0xN |
Offset on ALuxBattleFrameInputLog*. Layout. |
RVA 0xN |
Image-relative; absolute address = 0x140000000 + RVA. Some "Code references" tables use RVAs. |
_Impl suffix |
The C++ body of a UFunction (e.g. Active_Impl). Game often calls these directly, bypassing the exec trampoline. |
Z_Construct_* |
UE4 reflection registrar — runs at startup to register a UClass / UStruct / UFunction / UEnum. |
Functions (most-cited)¶
Sorted by the symbol — grep this section for the function name; follow the page link for full context.
Tick drivers and per-frame chains¶
| Symbol | Address | Page |
|---|---|---|
LuxBattle_PerFrameTick |
0x1402DBC60 |
Replay System: Site 9 |
LuxBattle_TickCharaMainSimulation |
0x14034DA70 |
Movement: per-tick chara update flow |
LuxBattle_TickHitResolutionAndBodyCollision |
0x14033CCA0 |
Hitbox System |
LuxBattleManager_Update_Impl |
0x140437590 |
Battle Manager: per-frame Update_Impl |
LuxBattleManager_Tick_MainStateMachine_At1461 |
0x1403FBF30 |
Replay System: Site 21 |
LuxBattleManager_Tick_SimulationLoop_UpdateInputAndRoundState |
0x1403FE520 |
Replay System: SimulationLoop catch-up |
LuxBattleChara_Tick_AdvanceReplayFrame_OrLocal |
0x1403F8410 |
Replay System: Site 11 |
LuxBattleChara_VTable648_TickAndAdvanceReplayClock |
0x1403E1FC0 |
Replay System: master clock R1 |
LuxBattleChara_VTable648_TickAndAdvanceReplayClock_GatedBy4404 |
0x1403E2000 |
Replay System: master clock R2 |
LuxActor_Tick_CallVtable5f8 |
0x1403FBDF0 |
Replay System: Site 20 |
ALuxBattleChara_TickActor |
0x1403D0590 |
Replay System: Site 22 |
ALuxDemoHumanActor_TickActor |
0x1404865B0 |
Replay System: Site 22b |
APreviewHumanActor_TickActor |
0x140486C60 |
Replay System: Site 22c |
UDemoNetDriver_GotoTimeInSeconds |
0x141E0ECA0 |
Replay System: seeking status — UE demo seek API present; not validated as the SC6 Lux replay-menu scrub path |
RegisterCVar_DemoGotoTimeInSeconds |
0x140255B00 |
Replay System: seeking status — CVar demo.GotoTimeInSeconds registrar for the UE demo task path |
Replay input serialization¶
| Symbol | Address | Page |
|---|---|---|
LuxReplay_DecodeInputPackets_FromFile |
0x1403ED310 |
Replay System: Lux input replay opcodes — expands 3-byte packed records into decoded input records |
LuxReplay_EncodeInputEvents_ToBuffer |
0x1403ED980 |
Replay System: Lux input replay opcodes — inverse encoder for Lux replay input streams |
LuxReplay_WriteThreeByteInputRecord_ToBuffer |
0x1403F62E0 |
Replay System: Lux input replay opcodes — appends one packed opcode record |
Move VM (outer command-script VM)¶
| Symbol | Address | Page |
|---|---|---|
LuxMoveVM_TickDriver |
0x1403656B0 |
Move System |
LuxMoveVM_ExecuteAndDumpOpcode |
0x140365900 |
Move System |
LuxMoveSystem_StartMoveForChara |
0x14031C610 |
Move System |
LuxMoveSystem_TickMove |
0x140367EE0 |
Move System |
LuxMoveSystem_TickMoveAndAutoAdvance |
0x14031C740 |
Move System |
LuxMoveVM_GetTimeDilationScalar |
0x14030A8C0 |
Movement: TimeDilation / Replay: bypass |
LuxMoveVM_TransitionToMove |
0x1402FE350 |
Hitbox System / Move System: lane transitions |
LuxMoveVM_PostATKDelayGate |
0x140365520 |
Move System |
LuxMoveVM_OnMoveStart_SnapPositionAndFacing_LockRetrack |
0x1402FF3E0 |
Movement: retrack |
LuxMoveVM_ApplyMoveOffsetToChara |
0x140344FC0 |
Movement: code references |
LuxBattle_DispatchYarareReaction |
0x1403521B0 |
Reaction System: pipeline |
Reaction System (yarare)¶
| Symbol | Address | Page |
|---|---|---|
LuxBattleChara_ProcessHitReactionState |
0x140342FF0 |
Reaction System: pipeline |
LuxMoveVM_TickPickAndDispatchReaction |
0x1402DEF50 |
Reaction System / Hitbox: throw whiff |
LuxMoveVM_TickActiveYarareReaction |
0x14035EF30 |
Reaction System: per-id Tick index |
LuxMoveVM_ProbeSpecialReactionOverride |
0x1402DFD60 |
Reaction System: pipeline |
LuxMoveVM_RollComboExtensionReaction |
0x1402E04A0 |
Reaction System: pipeline |
LuxBattle_YarareIdToReactionBitmask |
0x14035F390 |
Reaction System: pipeline |
LuxBattle_CheckYarareReactionGate |
0x140362E70 |
Reaction System: 135 gate codes |
LuxBattle_CheckYarareGate_AttackCategoryGate |
0x140362C30 |
Reaction System: gate family dispatch |
LuxBattle_CheckYarareGate_AttackMotionGate |
0x140362D30 |
Reaction System: gate family dispatch |
LuxBattle_CheckYarareGate_StepRange |
0x140360650 |
Reaction System: gate family dispatch |
LuxBattle_CheckYarareGate_ReactionStateMatch |
0x140360930 |
Reaction System: gate family dispatch |
LuxBattle_CheckYarareGate_BackStepRange |
0x1403607F0 |
Reaction System: gate family dispatch |
LuxBattle_CheckYarareGate_AerialRange |
0x140361240 |
Reaction System: gate family dispatch |
LuxBattle_CheckYarareGate_GroundApproachRange |
0x140361420 |
Reaction System: gate family dispatch |
LuxBattle_CheckYarareGate_RingPositionAdvantage |
0x1403615C0 |
Reaction System: gate family dispatch |
LuxBattle_CheckYarareGate_HitStateRingAdvantage |
0x140361740 |
Reaction System: gate family dispatch |
LuxBattle_CheckYarareGate_OppHitRingAdvantage |
0x140361820 |
Reaction System: gate family dispatch |
LuxBattle_CheckYarareGate_OppAttackRingAdvantage |
0x1403618F0 |
Reaction System: gate family dispatch |
LuxBattle_CheckYarareGate_MutualGuardBreakRange |
0x140362060 |
Reaction System: gate family dispatch |
LuxBattle_CheckYarareGate_ApproachAngleRange |
0x140362510 |
Reaction System: gate family dispatch |
LuxBattle_CheckYarareGate_OppAttackHealthRange |
0x1403626F0 |
Reaction System: gate family dispatch |
LuxBattle_CheckYarareGate_SelfDistanceBucket |
0x140362790 |
Reaction System: gate family dispatch |
LuxBattle_CheckReactionCancelClearance |
0x140363D10 |
Reaction System: exit conditions |
LuxMoveVM_BuildReactionCandidateList |
0x140363EF0 |
Reaction System: filter chain |
LuxMoveVM_WeightedSelectReactionCandidate |
0x1403647C0 |
Reaction System: filter chain |
LuxMoveVM_SelectReactionSlot |
0x140351BB0 |
Reaction System: filter chain |
LuxBattle_PickRingoutReactionYarare |
0x140353A00 |
Reaction System: pipeline |
LuxBattle_ComputeHitReactionParams |
0x140343B90 |
Reaction System: pipeline |
LuxBattleChara_ApplyHitReactionMove |
0x1403448A0 |
Reaction System: pipeline |
LuxBattleChara_DecayHitstunSlideVelocity |
0x140309160 |
Reaction System: pipeline |
LuxMoveVM_AllocReactionParamBlock |
0x1403306F0 |
Reaction System: FLuxBattleYarareReactionParamBlock |
LuxMoveVM_InitReactionParamBlock |
0x140330760 |
Reaction System: FLuxBattleYarareReactionParamBlock |
LuxCameraAction_ActivateKnockdown |
0x140327F20 |
Reaction System: Knockdown camera |
LuxCameraAction_InitKnockdown |
0x1403282F0 |
Reaction System: Knockdown camera |
LuxCameraAction_TickKnockdown |
0x14032B380 |
Reaction System: Knockdown camera |
LuxEffectCamera_UpdateCameraFreezeDuringThrow |
0x14031B760 |
Reaction System: Throw-react camera |
LuxEffectCamera_UpdateThrowCameraRotation |
0x14031B880 |
Reaction System: Throw-react camera |
LuxBattleChara_UpdateHitVisualLean |
0x140308310 |
Reaction System: Adjacent visual subsystem |
Move VM (inner stack-based bytecode interpreter)¶
| Symbol | Address | Page |
|---|---|---|
LuxMoveVM_ExecuteBytecode |
0x1402E5A30 |
Move System: Inner stack VM |
LuxMoveVM_RunBytecodeScript |
0x1402E67B0 |
Move System: Inner stack VM |
LuxMoveVM_EvaluateIfOpcode |
0x1403732F0 |
Move System: predicate sub-opcodes |
LuxMoveVM_EvaluateIfOpcodeWithHeader |
0x1402E5830 |
Move System: dispatch table |
LuxMoveVM_DispatchEffectOp |
0x140376B20 |
Move System: effect-dispatcher clusters |
LuxMoveVM_ResolveBankSlot |
0x1402FC400 |
Move System: bank readers / FLuxMoveBankSlotView |
LuxMoveVM_ExecuteOpStream |
0x1402FDEA0 |
Move System: per-tick lane driver |
LuxMoveVM_RunSecondaryLaneScript |
0x1402FE1C0 |
Move System: per-tick lane driver |
LuxMoveVM_DecodeVariadicStreamArgs (TransitionAuthor) |
0x1402FC930 |
Move System: how transitions fire |
LuxMoveVM_ExecuteBankSlotScript (CALLCOND 0x0D) |
0x1402FCC30 |
Move System: dispatch table |
LuxMoveVM_OpcodeIf_15_ScheduleTransitionScript |
0x1402FCD30 |
Move System: deferred transitions |
LuxMoveVM_OpcodeIf_16_DrainPendingTransition |
0x1402FCDE0 |
Move System: deferred transitions |
LuxMoveVM_OpcodeIf_RegisterEffectOpDedup_04 |
0x1402FD4A0 |
FLuxMoveLane_EffectOp |
LuxMoveVM_CheckMoveTransitionTiming |
0x1402FDD70 |
Move System: how transitions fire |
LuxMoveVM_OpcodeIf_05/06/07/08_TransitionAuthor |
0x1402FCB80..0x1402FCC20 |
Move System: dispatch table (thin wrappers around DecodeVariadicStreamArgs) |
Physics integration¶
| Symbol | Address | Page |
|---|---|---|
LuxBattleChara_IntegratePhysics_PerTick |
0x140306BB0 |
Movement: integrator |
LuxBattleChara_ApplyHitCueRootMotion_DirectPositionWrite |
0x140306530 |
Movement |
LuxBattleChara_ApplyResidualVelocity_PostTick |
0x140304280 |
Movement: code references |
LuxBattleChara_RetrackFacingTowardOpponent |
0x140369450 |
Movement: retrack gate |
LuxBattleChara_ApplyFacingRotationDelta |
0x140311350 |
Movement: code references |
LuxBattleChara_SetMotionInputFlag |
0x140304C00 |
Movement: motion-input flag bank |
LuxBattleChara_SetStartPosition |
0x140301E60 |
Game Structures: chara reset offsets |
LuxBattle_PositionCharasSymmetrically |
0x140302670 |
Game Structures: chara reset offsets |
Battle Manager UFunctions¶
| Symbol | Address | Page |
|---|---|---|
ALuxBattleManager::PlayMove_Impl |
0x140429840 |
Battle Manager: UFunction map |
ALuxBattleManager::PlayMoveDirect_Impl |
0x1404298E0 |
Battle Manager: UFunction map |
ALuxBattleManager::StopMove_Impl |
0x140434410 |
Battle Manager: UFunction map |
ALuxBattleManager::ChangeBattleLife_Impl |
0x14059B630 |
Battle Manager: UFunction map |
ALuxBattleManager::ChangeBattleRounds_Impl |
0x14059CCF0 |
Battle Manager: UFunction map |
ALuxBattleManager::ChangeBattleTime_Impl |
0x14059CEA0 |
Battle Manager: UFunction map |
ALuxBattleManager::NotifyCharaMoveEnded_Impl |
0x1403F9200 |
Battle Manager: UFunction map |
ULuxBattleFunctionLibrary::SetBattlePause (UFunction) |
0x140936190 |
Battle Manager: pause |
LuxBattleManager_RegisterOnTickWhenPaused_Delegates |
0x1403F8E70 |
Battle Manager: OnBattleTickWhenPaused |
LuxBattleManager_BuildActorDependencyGraph_At28 |
0x1403F8A20 |
Battle Manager: subsystem dependency graph |
Battle launcher / match setup¶
| Symbol | Address | Page |
|---|---|---|
ULuxUIBattleLauncher::Start |
0x1405EEB50 |
Battle Manager: launcher startup — copies launch sub-tables into the BattleManager |
ULuxUIBattleLauncher::GetBattleStageCode |
0x1405B0C60 |
Battle Manager / Stage System — reads StageSetting.StageCode, defaults to STG001 |
ULuxUIBattleLauncher::SetSlipOutMode |
0x1405ED550 |
Battle Manager: known leaf paths — writes BattleRule.SlipOut |
ULuxUIBattleLauncher::SetNoRingOutMode |
0x1405ECC70 |
Battle Manager: known leaf paths — writes BattleRule.NoRingOut |
ULuxUIBattleLauncher::SetEndlessMode |
0x1405EC390 |
Battle Manager: known leaf paths — writes BattleRule.Endless |
ULuxUIBattleLauncher::SetDamageUpMode |
0x1405EC190 |
Battle Manager: known leaf paths — writes BattleRule.DamageUp |
ULuxUIBattleLauncher::SetBlowUpMode |
0x1405EB7F0 |
Battle Manager: known leaf paths — writes BattleRule.BlowUp |
ULuxUIBattleLauncher::SetRecordMode |
0x1405ED170 |
Battle Manager: known leaf paths — writes top-level BattleRecord |
Trace (visual weapon-trail)¶
| Symbol | Address | Page |
|---|---|---|
ALuxTraceManager::Active_Impl |
0x1408CD940 |
Trace System: UFunctions |
ALuxTraceManager::Inactive_Impl |
0x1408D1420 |
Trace System: UFunctions |
ALuxTraceManager::GetTracePosition_Impl |
0x1408D0BB0 |
Trace System: UFunctions (stale on this build) |
ALuxTraceManager_ActivateTrace_Impl |
0x1408D5D10 |
Trace System |
ALuxTraceManager_execActivateTrace |
0x140C41AB0 |
Trace System: active trace slots |
ALuxTraceManager_execUpdate |
0x140C415E0 |
Trace System: active trace slots |
ALuxTraceManager_Update_Impl |
0x1408D5590 |
Trace System: active trace slots |
ALuxTraceManager_UpdateActiveAttackSlotPositions |
0x1408D8490 |
Trace System: active trace slots |
ALuxTraceManager_ComputeCapsuleAndDirection |
0x1408D1100 |
Trace System: active trace slots |
ALuxTraceManager_InsertActiveAttackSlot |
0x1408C8D60 |
Trace System: active trace slots |
ALuxTraceManager_DispatchHitRequests |
0x1408CEB40 |
Trace System: active trace slots |
ALuxTraceManager_SetSideActive |
0x1408D5AB0 |
Trace System: active trace slots |
ALuxTraceManager_EffectReg_SetSideActive |
0x1408D5AD0 |
Trace System: active trace slots |
Z_Construct_UClass_ALuxTraceManager_Properties |
0x140C0BA90 |
Trace System: UFunctions |
KHit / classifier¶
| Symbol | Address | Page |
|---|---|---|
LuxBattle_SolvePhysBodyCollision |
0x14030CCF0 |
Hitbox System |
LuxBattleChara_UpdateAllKHitWorldCenters |
0x14030D6A0 |
Hitbox System |
LuxBattleChara_CheckGuardConditionForHitbox |
0x1403056E0 |
Hitbox System: block direction |
LuxBattleChara_UpdateGuardStanceFlags |
0x140309370 |
Hitbox System: per-frame stance update |
LuxMoveVM_GetCharaEffectiveHeight |
0x140309470 |
Hitbox System: throw connection |
LuxBattle_ResolveAttackVsHurtboxMask22 |
0x14033C100 |
Hitbox System |
Stage system¶
| Symbol | Address | Page |
|---|---|---|
GetStageCodes_BuildMasterList |
0x140640890 |
Stage System: key entry points |
GetStageCodesIfAvailable_FilterByDLCChunks |
0x1406409F0 |
Stage System: key entry points |
IsValidStageCodeStr_LookupInMasterEnum |
0x140647230 |
Stage System: key entry points |
ResolveStageCodeToAssetPath |
0x140641840 |
Stage System: key entry points |
GetStageLocIdByStageCode |
0x1406415B0 |
Stage System: key entry points |
ApplyBattleSettingDataTableToBattleManager |
0x140594EB0 |
Stage System: key entry points |
LuxBattle_CreateStageInfoHandler |
0x1403C3010 |
Stage System: key entry points |
LuxActor_CollectActors_By8Classes_IntoTArrays |
0x140417A70 |
Stage System: collision storage |
GetScbattleRoundSnapshotPayload |
0x1402D7730 |
Stage System: round-restore storage |
SetScbattleRoundSnapshotPayload |
0x1402D77C0 |
Stage System: round-restore storage |
LuxStage_RegisterBarrierActor_BattleEvent0x19 |
0x140427490 |
Stage System: round-restore correction and actor bridge |
LuxStage_RegisterWallActor_BattleEvent0x19 |
0x140428EE0 |
Stage System: round-restore correction and actor bridge |
LuxBattle_SetFrameCacheHitChkDataPtrs |
0x1402DAE70 |
Stage System: J_StgHitChkData terrain/wall grid |
LuxBattle_ApplyFrameCacheHitChkDataSetup |
0x1403CFC20 |
Stage System: J_StgHitChkData terrain/wall grid |
LuxObject_BuildParamSlots_FromBattleSubstrings_4Slots |
0x1404208B0 |
Stage System: J_StgHitChkData terrain/wall grid |
Z_Construct_UClass_ULuxStageAssetPaths |
0x140BACDB0 |
structures |
Z_Construct_UScriptStruct_LuxStageRawAsset |
0x140BD8C60 |
structures |
Z_Construct_UScriptStruct_LuxStageSetting |
0x140BD9120 |
structures |
Z_Construct_UEnum_LuxorGame_ELuxStageAssetType |
0x140BBF230 |
structures |
LuxBattleManager_InitRound_TickTimers_ClearRoundData |
0x1403FB660 |
Stage System: LuxStageSetting cosmetic flags |
LuxBattleManager_StopTimers_IsBattleRunning_WetRatio |
0x1403EEC20 |
Stage System: LuxStageSetting cosmetic flags |
LuxMove_RefreshProvider_CacheMeshesAndParts |
0x1403CEDE0 |
Stage System: LuxStageSetting cosmetic flags |
IsAnomalyStageByStageCodeStr |
0x140646230 |
Stage System: LuxStageSetting cosmetic flags |
LuxBattle_RefreshFrameTerrainCache |
0x140314480 |
Stage System: J_StgHitChkData terrain/wall grid |
LuxBattle_AttachStgHitChkData |
0x140392080 |
Stage System: J_StgHitChkData terrain/wall grid |
LuxBattle_SampleTerrainAtXZ_Impl |
0x140391350 |
Stage System: J_StgHitChkData terrain/wall grid |
LuxBattle_TestAndResolveWallCollision |
0x140316600 |
Stage System: J_StgHitChkData terrain/wall grid |
Audio / Voice¶
| Symbol | Address | Page |
|---|---|---|
LuxMoveVM_TriggerAudioPaletteCallback |
0x1403693D0 |
Audio: Path A |
LuxMoveVM_TickCharaEventCueScheduler |
0x14038BD60 |
Audio: Path B |
LuxAudio_PlayCueIdByByte |
0x140550900 |
Audio: CRI middleware |
LuxAudio_RegisterActiveVoiceInstance |
0x14054F8B0 |
Audio: CRI middleware |
LuxAudio_GetCriAtomManagerSingleton |
0x140547D60 |
Audio: CRI middleware |
LuxAudio_ResolveCueSheetEntryByKey |
0x140547210 |
Audio: CRI middleware |
LuxAudio_LookupVoiceCueIDConvTable |
0x140425610 |
Audio: DataTable lookups |
LuxAudio_LookupDramaticVoiceData |
0x140422930 |
Audio: DataTable lookups |
LuxAudio_LookupSoundBusDackingData |
0x140423F40 |
Audio: DataTable lookups |
LuxAudio_LookupStageMaterialSoundTable |
0x1404247B0 |
Audio: DataTable lookups |
LuxAudio_LookupWeaponBankIdTable |
0x140425B80 |
Audio: DataTable lookups |
LuxObject_GetWeaponBankId_BySoulChargeAndBone |
0x140425D00 |
Audio: weapon SE routing |
LuxAudio_CreateAsyncLoader_WeaponSoundACB |
0x14042C130 |
Audio: DLC ACB index map |
ALuxBattleChara_SelectAndPlaySound_Ranked |
0x1403C8950 |
Audio: ranked flavor voice |
ResolveDramaticVoiceID_FromBattleSetting |
0x1405F2910 |
Audio: DramaticVoice |
RegisterCompiledInClass_ULuxDramaticVoiceDataAsset |
0x140161AD0 |
Audio: DramaticVoice |
LuxBattleChara_SyncAudioActiveState_FromBattleFlags |
0x140438980 |
Audio: chara offsets |
LuxAudio_ResolveCharaAudioComponentSlot |
0x1404265D0 |
Audio: UAtomComponent bridge |
LuxAudio_FireSoundCue_ViaVfxDispatcher |
0x1403110B0 |
Audio: VFX+Audio dispatcher — chokepoint for burst-playback mitigation |
LuxAudio_InitVoiceAcbMap_Char060 |
0x14040EB40 |
Audio: per-character ACB maps |
LuxAudio_OnCharaPartUnregister_RecordReplayIfActive |
0x140427DF0 |
Audio System — replay capture of audio state on chara teardown |
ULuxCeBankManager_StaticClass |
0x1409A59D0 / 0x1409A92C0 |
Audio: per-character ACB maps |
LuxVoice_AddVoiceItemsForPose |
0x14038D350 |
Audio: Enshutsu |
LuxVoice_EnshutsuHeader_AddVoiceItem |
0x14038BC40 |
Audio: Enshutsu |
Audio_RandomTick |
0x140399B70 |
Audio: determinism |
Online / netplay¶
| Symbol | Address | Page |
|---|---|---|
CreateLuxorPlayerSession |
0x142E14BD0 |
Online Matchmaking: player room advertisement |
FindLuxorPlayerSession |
0x142E17580 |
Online Matchmaking: player room search |
CreateLuxorRankSession |
0x142E15850 |
Online Matchmaking: ranked advertisement |
FindLuxorRankSession |
0x142E18030 |
Online Matchmaking: ranked search |
ResetLuxorMatchDataRecentBattleResult |
0x142E1D8C0 |
Online Matchmaking: previous-result producer |
ResetProfileStyleHistoryFlags |
0x142DCC460 |
Online Matchmaking: previous-result producer |
AdvanceProfileStyleHistoryCounters |
0x142DCB750 |
Online Matchmaking: previous-result producer |
IncrementProfileStyleWinStreak |
0x142DCE7F0 |
Online Matchmaking: previous-result producer |
ClearProfileStyleCurrentStreak |
0x142DCB670 |
Online Matchmaking: previous-result producer |
CheckRankedMatchWinningFromProfile |
0x14050F470 |
Online Matchmaking: previous-result producer |
CheckRankedMatchWinningInBattle |
0x14050F540 |
Online Matchmaking: previous-result producer |
CreatePlayerMatchSessionSearch |
0x142E18E20 |
Online Matchmaking: session search object |
HandleLuxorFindSessionResult |
0x142E1B970 |
Online Matchmaking: find-session result handoff |
InvokeFindSessionCallback |
0x142E1EF40 |
Online Matchmaking: find-session result handoff |
GetLuxorRankMatchSessionSettingStruct |
0x142E46E30 |
Online Matchmaking: same-opponent avoidance check |
GetLuxorBlueprintFindSessionResultStruct |
0x142E44740 |
Online Matchmaking: find-session result handoff |
ALuxBattleManager_CheckOnlineSessionActive |
0x1403F2590 |
Leaderboards & Online: detection — the canonical "are we online" gate |
ALuxBattleManager_IsBattleOnline |
0x1403F1A60 |
Leaderboards & Online: detection — world-context-aware wrapper |
GetLocalOnlineSession |
0x1403F07A0 |
Leaderboards & Online: Steam interface accessors |
LuxOnline_DrainRingBuffer_DecodeInputPackets_AndUpdateCache |
0x1403F6770 |
Leaderboards & Online: per-frame input chain |
LuxOnline_PushToRingBuffer_WithCriticalSection |
0x1403F4BE0 |
Leaderboards & Online: per-frame input chain |
LuxOnline_SendInputPacket_PerFrame_Opcode0 |
0x1403F84E0 |
Leaderboards & Online — 3 B/slot/frame send |
LuxOnline_SendInputPacket_BatchedRange_Opcode1 |
0x1403F8710 |
Leaderboards & Online — re-send for catch-up |
LuxOnline_DispatchNetMessage_ByKeyString |
0x1403E0520 |
Leaderboards & Online: 3-channel protocol — channel 7 (UI mirror) |
LuxOnlineBattleSync_OnRecvBattleSync_Dispatcher |
0x140511CF0 |
Leaderboards & Online: 3-channel protocol — channel 6 (KV handshake) |
LuxBattleManager_GetCachedRoundValue_ByIndex |
0x1403F0720 |
Leaderboards & Online — cache reader |
LuxBattleChara_UpdatePlayerInputData_FromRoundCache |
0x1403FCD10 |
Leaderboards & Online — game-tick consumer |
LuxBattleChara_InitPlayerBitmask_FromOnlineSession |
0x1403FA330 |
Leaderboards & Online: detection — sets dwOnlineActive |
LuxBattleManager_InitOnlineSession_SetFlag1640 |
0x1403FB400 |
Leaderboards & Online: lobby entry points |
LuxOnline_DisconnectAndClearSession |
0x1403EDD00 |
Leaderboards & Online: lobby entry points |
LuxBattleManager_UpdateOnlineFrameSyncCounter_At1638 |
0x1403FDEC0 |
Leaderboards & Online: delay-based — stall counter |
LuxMatchLobby_RequestReady |
0x1405EA160 |
Leaderboards & Online: lobby entry points |
LuxLobby_DispatchUICommand |
0x1405E21E0 |
Leaderboards & Online: lobby entry points |
OnlineSubsystem_GetSubsystem_FromModule |
0x1403BCFF0 |
Leaderboards & Online: Steam interface accessors — 64 callers |
Steam_InitAllInterfaces |
0x1404C3DD0 |
Leaderboards & Online: Steam interface accessors — 21-iface bootstrap |
LuxOnline_GetPlayerProfileWriterInterface |
0x140718540 |
Leaderboards & Online: Steam interface accessors — 53 callers |
DataTable helpers (FLuxDataTablePath)¶
| Symbol | RVA | Page |
|---|---|---|
BuildCharaSelectRosterTable |
0x5D3870 |
Character Data: select roster |
LuxDataTablePath_Ctor |
0x2ED0AA0 |
Battle Manager: helper API |
LuxDataTablePath_Dtor |
0x2ED6A80 |
Battle Manager: helper API |
LuxDataTablePath_AppendString |
0x2EDA150 |
Battle Manager: helper API |
LuxDataTablePath_AppendInt |
0x2EDA300 |
Battle Manager: helper API |
LuxDataTable_Resolve |
0x2F2EE30 |
Battle Manager: helper API |
LuxDataTable_Commit |
0x2ED9000 |
Battle Manager: helper API |
LuxDataTable_AddFloatRow |
0x2F4E370 |
Battle Manager: helper API |
LuxBattleRule_BuildTrainingModeDataTablePath |
0x5D6F40 |
Battle Manager: boot-to-training |
Structs (most-cited)¶
Authoritative size + layout: Game Structures. For
the runtime-extension behaviour of ALuxBattleChara — where fields past
+0x1438 exist beyond the registered class size — see the chara entry's
note on lazy extensions.
| Struct | Size | Page anchor |
|---|---|---|
ALuxBattleManager |
(large; subsystem layout in topic page) | structures / battle-manager |
ALuxBattleChara |
0x568 (registered) → ~0x973F0 runtime |
structures |
FLuxBattleChara (Ghidra) |
0x973F0 |
structures |
ALuxBattleFrameInputLog |
~0x44D0 (17616) |
structures |
ALuxBattleReplayPlayer |
0x3D1 (977) |
structures |
ALuxBattleKeyRecorder |
0x3BC (956) |
structures |
ALuxTraceManager |
0x408 |
structures |
ULuxTraceComponent |
0x4B0 |
structures |
FLuxCapsule |
0x50 |
trace-system |
FLuxMoveCommandPlayer |
0x302C (12332) |
structures |
FLuxMoveBank |
0x30 |
structures |
FLuxMoveBankCell |
0x70 |
structures |
FLuxMoveBankSlotView |
0x48 |
structures |
FLuxMoveDefEntry |
0x10 |
structures |
FLuxBattleMoveListTableRow |
0x88 |
move-system |
FLuxMoveLane (was LuxMoveLaneState) |
0x468 |
structures |
FLuxMoveLane_EffectOp |
0x24 |
structures |
LuxMoveLaneState_Motion |
0x44 |
structures |
FLuxBattleMessageParam |
0x0C |
messages |
FLuxBattleYarareReactionParamBlock |
0x44C (1100) |
reaction-system |
FLuxBattleVMFreezeRecord |
0x40 |
structures |
LuxBattleCharaMotionFlags |
0x40 |
structures |
FLuxDataTablePath |
0x18 |
structures |
KHitBase / KHit* runtime node |
Sphere 0x80; Area/FixArea 0xA0 |
structures |
FActiveAttackSlot |
0x44 |
structures |
FBatchedLine |
0x34 |
structures |
LuxBattleStageInfoTableRow |
0x108 |
stage-system |
LuxBattleStageBasePositionParam |
0x28 |
stage-system |
LuxBattleRoundSnapshotPayload_Partial |
0xC0 |
structures |
FLuxBattleEventRecord |
0x18 |
structures |
ULuxStageAssetPaths |
class | structures |
LuxStageRawAsset |
0x18 |
structures |
LuxStageSetting |
0x03 |
structures |
LuxBattle_FrameCacheHitChkDataSetup |
0x22 |
structures |
J_StgHitChkData_Header |
0x30 |
structures |
J_StgHitChkData_CellHeader |
0x10 |
structures |
J_StgHitChkData_PoolChunk |
variable | structures |
Chara offsets (most-cited)¶
Layout source: Game Structures: ALuxBattleChara.
Anywhere chara+0xN appears in these docs, the type is documented there.
Position / motion¶
| Offset | What | Used by |
|---|---|---|
+0x90 |
flVelocityZ |
SetStartPosition / PositionCharasSymmetrically |
+0x94 |
flVelocityX |
same |
+0x98 |
flVelocityY (aliased with ALuxBattleManager* per SetupWeaponBones) |
structures |
+0xA0..+0xA8 |
flStartPosX/Y/Z (round-spawn target) |
SetStartPosition |
+0xC0..+0xC8 |
flCurPosX/Y/Z (game-thread current pose) |
Movement: integrator |
+0x130 / +0x138 |
MoveVelocity X / Z (per-tick velocity) | Movement: integrator |
+0x140 / +0x148 |
"Ground" velocity X / Z | Movement: integrator |
+0x150 / +0x158 |
One-shot offset X / Z | Movement: integrator |
+0x1F0 / +0x1F8 |
Pushback velocity (decayed by hit-state machine) | Movement: integrator |
+0x2090..+0x2098 |
flRenderPosX/Y/Z (render pose, written each frame) |
SetStartPosition |
+0x23C |
bPlayerSlotIndex / bSideByte (P1=0 / P2=1 side flag) |
many |
+0x3490 |
Float scalar — multiplies the +0x130 velocity term in the integrator |
Movement: integrator |
+0x3500 |
flMoveTimeScaleA (per-chara base time-scale; returned by TimeDilation fall-through) |
Movement: TimeDilation |
+0x3510 |
flHitStopTrigger (negative → Path A in TimeDilation) |
Movement: TimeDilation |
Motion-input flag bank (+0x16D0..+0x170F)¶
64-byte bank, indexed by flag id 0..0x3F. Full table in structures.md / LuxBattleCharaMotionFlags. High-traffic flags:
| Offset | Flag idx | Name |
|---|---|---|
+0x16D2 |
0x02 | bGuardCrouchStateBase (authoritative crouch state) |
+0x16E2 |
0x12 | bAirborneFlag (when CLEARED snaps Y to terrain) |
+0x16E5 |
0x15 | bClassifyEnableGate |
+0x16E6 |
0x16 | "in non-walk state" — read by retrack gate |
+0x16FB |
0x2B | Damped-mode flag (selects damped path in IntegratePhysics) |
+0x16FC |
0x2C | bAltGuardCrouchState (per-frame alt crouch) |
+0x16FD |
0x2D | bIsGuardingFlag |
+0x1701 |
0x31 | bAltGuardLocked |
KHit list heads + classifier¶
| Offset | What | Page |
|---|---|---|
+0x44478 |
BodyListHead (pushbox / chara-to-chara physical pushing) |
Hitbox System: three list heads |
+0x44498 |
AttackListHead (entries that DEAL damage) |
same |
+0x444B8 |
HurtboxListHead (entries that RECEIVE damage) |
same |
+0x44058 |
pCurrentAttackCellPtrPtr (double-ptr to active attack cell) |
Hitbox System |
+0x44060 |
NonAttackMoveDescrPtr (non-damaging supers / SC finishers / stance / GI / parry) |
Hitbox System |
Replay-relevant chara fields¶
| Offset | What | Page |
|---|---|---|
+0x39C |
dwReplayPlaybackCursor |
Replay System |
+0x3A0 |
dwReplayLastFrameID |
same |
+0x3A4 |
dwReplayMasterClock |
same |
+0x4400 |
dwReplayEnableFlag (read by Site 11 prologue) |
Replay System: Site 11 |
+0x4424 |
bCharaMode |
same |
Audio state¶
| Offset | What | Page |
|---|---|---|
+0x394 |
u32 audio active/mute bitfield (bit 0 should-play, bit 1 force-active, bit 2 force-mute, bit 3 always-active) | Audio: chara offsets |
+0x95750 |
Event cue scheduler struct (sound + anim-notify timing) | Audio: Path B |
+0x95788 |
Secondary action stack (sound-cue submit port) | Audio: Path B |
+0x971A8..+0x971B8 |
FLuxAudioPaletteTween (palette id, frames-left, current/target/delta-per-frame) |
Audio: Path A |
Other¶
| Offset | What | Page |
|---|---|---|
+0x29130 |
pSubcompListHead (sub-component linked list; null = chara mid-rebuild) |
structures |
+0x973E8 |
Opponent chara back-ref | structures |
InputLog offsets (most-cited)¶
Layout source: structures.md / ALuxBattleFrameInputLog.
| Offset | What |
|---|---|
+0x398 |
bEnable (nNumPlayerSlots) |
+0x39C |
dwPlaybackCursor (bmActivePlayerSlots) |
+0x3A0 |
nLastFrameID |
+0x3A4 |
nMasterClock — INC'd by R1/R2 every UE4 frame; pinned by Horse::ReplayClockGate during freeze |
+0x3A8 |
pRecordedFrameBuffer (FLuxRecordedFrame[], 192 B/entry) |
+0x3AC |
sub-tick advance counter (INC'd via vtable[0x5F8] from Site 20) |
+0x3B0 |
nTotalRecordedFrames |
+0x3C0 |
pReplayInputCache (FLuxReplayInputCacheEntry[1024], 16 KB) — [2 slots][512 entries][16 B]. Filled by the online drain; empty during offline / .replay viewing. |
+0x4400 |
dwOnlineActive — 0=offline/spectator, 1/2=local player side, 3=hidden lobby. Drain entry guard. |
+0x4404 |
bDoubleTickGuard (R2 prologue checks this) |
+0x4414 |
nMinStoreFrameIndex — drain watermark |
+0x4424 |
bSessionShutdownState — 5 = drain bails |
+0x4428 |
pSentInputBitmap (88 B dedupe) |
+0x4480 |
pDequeStorage — inbound-packet deque |
+0x44A0 |
qwDequeCount — capped at 100 (drop-oldest) |
+0x44A8 |
DequeLock (CRITICAL_SECTION, 40 B) |
Globals (most-cited)¶
| Address | Symbol | What | Page |
|---|---|---|---|
0x1448462D0 |
g_LuxBattle_VMFreezeRecord |
64-byte freeze/slow-mo record. +0x00 bVMFreezeByte, +0x04 flBaseAlpha. |
Movement: TimeDilation |
0x14470F390 |
g_LuxMoveVM_CommandPlayerArray |
Per-chara VM state, stride 0xC0E. Slot indexed by chara+0x23C. |
Move System |
0x144710060 |
g_LuxMoveSystem_DataTableA |
Per-chara move-definition data, stride 0x3038. |
Move System |
0x14470FCD8 |
g_LuxCharaAttrTable_Byte_0x181cStride |
Per-chara byte table (yarare frames etc.). | Move System |
0x1447123BC |
g_LuxCharaAttrTable_Int_0x3038Stride |
Per-chara int table. | Move System |
0x1440F4750 |
g_LuxMoveStateTable |
Move-state ids, stride 0x14, 0x29 rows. |
Move System |
0x144149C50 |
g_LuxStage_MasterEnumStringTable |
TArray<FBattleStageEnumEntry> — 31 stock entries. |
Stage System: master enum table |
0x14484406C |
g_dwLuxBattleRoundSnapshotValid |
Valid flag for the structured round-restore payload. | Stage System: round-restore storage |
0x144844070 |
g_LuxBattleRoundSnapshotPayload |
0xC0 round/RNG/VFX/motion restore payload; not stage geometry. |
Stage System: round-restore storage |
0x14470D0D0 |
g_pLuxBattle_StgHitChkDataA |
Serialized J_StgHitChkData* attached into frame-bounds grid A. |
Stage System: J_StgHitChkData terrain/wall grid |
0x14470D0F8 |
g_pLuxBattle_StgHitChkDataB |
Serialized J_StgHitChkData* attached into frame-bounds grid B. |
Stage System: J_StgHitChkData terrain/wall grid |
0x14470DEDC |
g_LuxBattle_FrameContextUseB |
Selects frame-transform/grid A vs B. | structures |
0x144844170 |
g_abLuxBattleFrameTransformContextA |
0x10AC-byte frame-transform context A; grid embedded at +0xC60. |
structures |
0x144845220 |
g_abLuxBattleFrameTransformContextB |
0x10AC-byte frame-transform context B; grid embedded at +0xC60. |
structures |
0x144844DD0 |
g_abLuxBattleFrameBoundsGridA |
0x44C-byte live grid A, embedded in context A. |
structures |
0x144845E80 |
g_abLuxBattleFrameBoundsGridB |
0x44C-byte live grid B, embedded in context B. |
structures |
0x143E87838 |
KHitBase_vftable |
Vtable for the KHitBase family. |
structures |
0x1448554E8 |
g_LuxBattle_HitReactionSlideTable |
Per-hit-type slide-decay curves. | Movement: code references |
0x14470E018 |
g_LuxBattle_YarareReactionParamBlock (lazy-malloc'd) |
The 1100-byte FLuxBattleYarareReactionParamBlock (per-intensity reach/knockback/weight tables). |
Reaction System |
0x14470E310 |
per-charaKind ring-margin table | stride 0x8, indexed by chara+0x23C CharaKindByte. Used by every "ring-advantage" gate. |
Reaction System: ring-margin formula |
0x14470E330 |
per-charaKind reach-offset table | stride 0x180, scanned linearly ({u32, s16 oppMoveStateId, s16 reachOffset}). Subtracted from dispatcher's nScaledKnockbackReach. |
Reaction System: ring-margin formula |
0x144711F88 |
per-charaKind hit-intensity attribute table | stride 0xC0E. First int32 = base intensity for sub-handlers (0x42, 0x32, 0x1F). |
Reaction System: ring-margin formula |
Vtable slots (referenced)¶
| Slot | On | Role | Page |
|---|---|---|---|
[0x5F8] |
ALuxBattleFrameInputLog |
Sub-tick chain dispatched by Site 20 (counter advance + Stage 2/3 input dispatch) | Replay System |
[0x648] |
LuxBattleChara |
Tick + master-clock advance (R1/R2) | Replay System |
[0x6A8] |
LuxBattleChara |
Stage 2/3 input pipeline (replay mode) | Replay System: Stage 2/3 |
[0x6C8] |
LuxBattleChara |
Chara replay-state writer (replay mode) | Replay System: Stage 2/3 |
[208] |
ALuxBattleChara |
GetWeaponData |
Battle Manager: BM+0x1450 note |
Notes on this index¶
- The tables aim for the ~80 highest-frequency lookups — not a complete inventory. Pages are still authoritative; this is a navigational shortcut.
- When in doubt, grep the actual address across
docs/sc6/. Every cited address appears inline at least once on its owning page. - If a row here disagrees with the topic page, the topic page wins (it has the source citation). File a fix to this page.