- Status
- Offline
- Joined
- Mar 3, 2026
- Messages
- 104
- Reaction score
- 7
Been looking into model swapping in Apex recently to avoid those ridiculous store prices. Managed to get a basic heirloom replacer working externally by hooking the view model entity. It’s pretty straightforward once you find the right offsets, but animation mapping is proving to be a headache.
Technical Breakdown:
Current Path Array Reference:
The Problem:
Animations are currently commented out to keep the model rendering stable without crashing the client. As it stands, manual collection of map-specific animation indexes seems like the only way to get true parity, but that's a massive grind.
Has anyone here found a way to automate the animation sequence mapping without having to build a massive lookup table for every single map? Or are we stuck with static replacements until someone finds a better hook for the sequence manager? Let me know if you've messed with this or found a better offset for the sequence controller.
Technical Breakdown:
- View Model Retrieval: Locate the local player address, then grab the view model handle to pull the view_model_ptr. This object is what dictates what's actually rendered in your FOV.
- State Check: Read the model name at OFF_MODELNAME (0x30). If it contains "empty," we're good to inject the swap.
- Model Injection: Write your desired model path from the array into the memory location. I’ve indexed the common ones like Kunai, Wraith, and Lifeline sticks.
- Dynamic Indexing: Don't hardcode the model index at 0xD8. The game assigns these dynamically upon loading. Just poll that offset until it returns a non-zero value, then write it back to confirm the resource load.
Current Path Array Reference:
Code:
"mdl/weapons/bangalore_heirloom/ptpov_bangalore_heirloom.rmdl", // 8
"mdl/Weapons/crypto_heirloom/ptpov_crypto_heirloom.rmdl", // 9
"mdl/Weapons/loba_heirloom/ptpov_loba_heirloom.rmdl", // 10
"mdl/weapons/rampart_heirloom/ptpov_rampart_heirloom.rmdl", // 11
"mdl/Weapons/horizon_heirloom/ptpov_horizon_heirloom.rmdl", // 12
"mdl/Weapons/ash_heirloom/ptpov_ash_heirloom.rmdl", // 13
"mdl/Weapons/seer_heirloom/ptpov_seer_heirloom.rmdl", // 14
"mdl/weapons/kunai/wraith_kunai_rt01_v.rmdl", // 15
"mdl/Weapons/fuse_heirloom/ptpov_fuse_heirloom.rmdl", // 16
"mdl/weapons/valkyrie_heirloom/valkyrie_heirloom_v22_base_v.rmdl", // 17
"mdl/weapons/gibraltar_heirloom/gibraltar_heirloom_v.rmdl", // 18
"mdl/Weapons/caustic_heirloom/ptpov_caustic_heirloom.rmdl", // 19
"mdl/Weapons/mirage_heirloom/ptpov_mirage_heirloom.rmdl", // 20
"mdl/weapons/wattson_heirloom/wattson_heirloom_v21_base_v.rmdl", // 21
"mdl/Weapons/pathfinder_gloves/ptpov_pathfinder_gloves.rmdl", // 22
"mdl/Weapons/drumstick/ptpov_baton_lifeline.rmdl", // 23
"mdl/Weapons/kunai/ptpov_kunai_wraith.rmdl" // 24
The Problem:
Animations are currently commented out to keep the model rendering stable without crashing the client. As it stands, manual collection of map-specific animation indexes seems like the only way to get true parity, but that's a massive grind.
Has anyone here found a way to automate the animation sequence mapping without having to build a massive lookup table for every single map? Or are we stuck with static replacements until someone finds a better hook for the sequence manager? Let me know if you've messed with this or found a better offset for the sequence controller.