Dated source reference. Current release status: handoff state. Full original relative paths are in the developer archive.
BodyHook v1.1
BodyHook by Alexiconn2K routes each player's body, tattoos, uniform and accessory resources through that player's cyberface IFF before using the game's defaults. This is a strong reference for independent per-player assets and live selection of cyberface variants. Behavior described below is documented by the package author; it has not been tested in our game.
Original RAR · Member inventory · Download source
Resource mapping and refresh
The README describes custom bodies, leg tattoos, jersey and shorts models, accessory textures and normal maps, accessory combinations, team-color socks and an optional coach polo. Missing rows fall back to stock assets. Custom uniforms are static, while other players can retain moving cloth.
The RED MC cheatsheet maps named SCNE model and TXTR texture rows to FileIDs. Its IDs use RED MC byte order, reversed in hex editors; rows should be sorted by FileID. It distinguishes body shapes, uniform neck/size variants, tattoo slots, accessory normals and team-color mask channels. Normal maps use DXT5 according to this document. Missing texture slots are not proof that the game requests every possible resource.
Cyberface copies such as png19600_hair1.iff and png19600_braids.iff can carry whole body/uniform configurations. The author describes choosing them through Edit Player > Body & Head > Hair Style, saving per-CFID choices in BodyHook_Hair.ini. Preserve the original CFID's digit format and leading zeros. The README describes reloading the preview; the INI has [HairStyles] LiveRefresh=1 and comments describing immediate preview rebuilding, replacing a separate HairRefresh tool. This does not demonstrate arbitrary mid-possession refresh.
Runtime profile and configuration
The README names a tested RLD build with timestamp 52202C7F and says other builds are pattern scanned. This is the author's compatibility claim; matching a filename or timestamp is insufficient to establish support for our preserved executable.
Useful documented INI fields include PlayerCyberfaceOffset=0x1F0, CyberfaceValidOffset=0x10, CyberfaceHashOffset=0x4168, PlayerRecordSize=0x298, and PlayerCFIDOffset=game. Comments identify roster CF_ID at record offset 0x3C, correcting the older 0x1C portrait-ID field for custom/MyCareer players. These are version-specific research leads, not validated offsets for every build. INI comments contain internal version labels such as 1.10.2 and 1.11.8; retain the downloaded package label v1.1 separately.
The README says to load dinput8.dll or BodyHook.asi, not both. It documents forwarding to dinput8_next.dll when chaining an existing loader. The Facebook excerpt instead says to copy both: that conflict is preserved in source notes.
Claims of unchanged on-disk assets refer to the original EXE, roster and global resource files. Logs, hairstyle preferences and optional crash reports are still written. CrashReport=1 can produce BodyHook_crash.dmp.
Original license is preserved with the package. See standing project authorization and the compatibility overview.