[3.13.8.0]Base pointer and offsets to develop your own external ESP
Hello cheaters,
I am currently trying to develop my very first external ESP and this is a long road but I release the pointers i found in game's memory for now and maybe it would help someone else.
At this moment I am currently working on finding base pointers for arrays of vehicles/on-floor items and other players
IN SINGLEPLAYER
Values like ammunation, vehicle fuel, player health or player xp can be modified using CheatEngine
IN MULTIPLAYER
All values have to be set by server, values are read only and will be overwritten if you try to edit them
To see how to use those addresses in CheatEngine, please take a look at uncypher's post which is already very well explained
For those who didn't know, the bool type can only take 2 values : 0x0 which means False or 0x1 meaning True
Pointer to struct at Unturned.exe + 0110C3C8
offsets have to be set from bottom to top in CheatEngine
3.13.7.1 offsets : { 7D0, 3F8, 98, 600, 18 }
3.13.8.0 offsets : { 7D0, 3F8, 98, 608, 18 }
At the adress found is a pointer to Player data structure, so you can add a 0 offset to this address to go directly to Player Structure
Player Structure content:
- offset 68 -> pointer to in hand item
I did not tried to edit all these values so please feedback yours.
Enjoy
I am currently trying to develop my very first external ESP and this is a long road but I release the pointers i found in game's memory for now and maybe it would help someone else.
At this moment I am currently working on finding base pointers for arrays of vehicles/on-floor items and other players
IN SINGLEPLAYER
Values like ammunation, vehicle fuel, player health or player xp can be modified using CheatEngine
IN MULTIPLAYER
All values have to be set by server, values are read only and will be overwritten if you try to edit them
To see how to use those addresses in CheatEngine, please take a look at uncypher's post which is already very well explained
For those who didn't know, the bool type can only take 2 values : 0x0 which means False or 0x1 meaning True
Pointer to LocalPlayer
Pointer to struct at Unturned.exe + 0110C3C8
offsets have to be set from bottom to top in CheatEngine
3.13.7.1 offsets : { 7D0, 3F8, 98, 600, 18 }
3.13.8.0 offsets : { 7D0, 3F8, 98, 608, 18 }
At the adress found is a pointer to Player data structure, so you can add a 0 offset to this address to go directly to Player Structure
Player Structure content:
Player Inventory - Offset 40
- offset 68 -> pointer to in hand item
[In-Hand Item Structure]
|- offset 16C holdingTKey (attaching equipment) (size byte; type bool)
|- offset 178 isShooting (do not edit) (size byte; type bool)
|- offset 192 ammo if item is gun (size byte; decimal) (edits only working on single player, max 255, shoot to take effect)
|- offset 1A6 isAiming (size byte; type bool)
|- offset 16C holdingTKey (attaching equipment) (size byte; type bool)
|- offset 178 isShooting (do not edit) (size byte; type bool)
|- offset 192 ammo if item is gun (size byte; decimal) (edits only working on single player, max 255, shoot to take effect)
|- offset 1A6 isAiming (size byte; type bool)
Player Status - Offset 48
- offset 90 -> isalive (size byte; type bool)
- offset 91 -> Health (size byte; type decimal)
- offset 92 -> Health also (?) (size byte; type decimal)
- offset 93 -> Food (size byte; type decimal)
- offset 94 -> Drink (size byte; type decimal)
- offset 95 -> Poison (size byte; type decimal)
- offset 96 -> unknown (size byte; type bool)
- offset 97 -> Stamina (size byte)
- offset 99 -> Bleeding (size byte, type bool)
- offset 9A -> Fracture (size byte; type bool)
- offset 9B -> Freezing - untested (size byte; type bool)
Thanks to uncypher earlier work in this region
- offset 91 -> Health (size byte; type decimal)
- offset 92 -> Health also (?) (size byte; type decimal)
- offset 93 -> Food (size byte; type decimal)
- offset 94 -> Drink (size byte; type decimal)
- offset 95 -> Poison (size byte; type decimal)
- offset 96 -> unknown (size byte; type bool)
- offset 97 -> Stamina (size byte)
- offset 99 -> Bleeding (size byte, type bool)
- offset 9A -> Fracture (size byte; type bool)
- offset 9B -> Freezing - untested (size byte; type bool)
Thanks to uncypher earlier work in this region
Player Skills - Offset 58
- offset 54 -> current XP (size 4 bytes; type decimal)
Player Position - offset 60
The first three values are not update when player is inside a vehicle
- offset 80 -> z position (type float)
- offset 84 -> y position (type float)
- offset 88 -> X position (type float)
- offset C8 -> pointer to vehicle player is in (or 0x0 if none)
- offset 80 -> z position (type float)
- offset 84 -> y position (type float)
- offset 88 -> X position (type float)
- offset C8 -> pointer to vehicle player is in (or 0x0 if none)
[Vehicle Structure]
|- offset A2 -> vehicle ID (size 2 bytes)
|- offset A4 -> fuel (size 2 bytes; 0 to 65535)
|- offset A6 -> vehicle vitality (size 2 bytes; 0 to 65535)
|- offset F4 -> z position (type float)
|- offset F8 -> y position (type float)
|- offset FC -> x position (type float)
|- offset 100 -> initial z (type float)
|- offset 104 -> initial y (type float)
|- offset 108 -> initial x (type float)
|- offset A2 -> vehicle ID (size 2 bytes)
|- offset A4 -> fuel (size 2 bytes; 0 to 65535)
|- offset A6 -> vehicle vitality (size 2 bytes; 0 to 65535)
|- offset F4 -> z position (type float)
|- offset F8 -> y position (type float)
|- offset FC -> x position (type float)
|- offset 100 -> initial z (type float)
|- offset 104 -> initial y (type float)
|- offset 108 -> initial x (type float)
Player View - offset 68
- offset 88 -> xoy player view angle in degrees (size 4 bytes; type float)
- offset 8C -> xoz player view angle in degrees, modulo 360 (size 4 bytes; type float)
- offset 8C -> xoz player view angle in degrees, modulo 360 (size 4 bytes; type float)
I did not tried to edit all these values so please feedback yours.
Enjoy



