← back
fortnite · 41.10
Fresh dump. UE5 build, XOR/byteswap-encrypted GWorld (routine included at the bottom). Standard AFortPlayerPawn / FortWeapon layout, targeted-pawn included so you can wire visibility snap.
## Engine
```cpp
inline static constexpr uintptr_t GEngine = 0x19DE55F8;
inline static constexpr uintptr_t GWorld = 0x19DE3C10;
```
## Viewport / LocalPlayer
```cpp
struct viewport {
inline static constexpr uintptr_t GameViewport = 0xB70;
inline static constexpr uintptr_t ViewportWorld = 0x78;
inline static constexpr uintptr_t LocalPlayers = 0x38;
inline static constexpr uintptr_t PlayerController = 0x30;
inline static constexpr uintptr_t OwningGameInstance = 0x248;
};
```
## PlayerController
```cpp
struct player_controller {
inline static constexpr uintptr_t PlayerCameraManager = 0x328;
inline static constexpr uintptr_t AcknowledgedPawn = 0x318;
inline static constexpr uintptr_t ControlRotation = 0x328;
inline static constexpr uintptr_t PlayerState = 0x290;
inline static constexpr uintptr_t RotationInput = 0x4B0;
inline static constexpr uintptr_t TargetedFortPawn = 0x1630;
};
```
## PlayerState
```cpp
struct player_state {
inline static constexpr uintptr_t PlayerNamePrivate = 0x308;
inline static constexpr uintptr_t PlayerNamePtr = 0x9C8;
inline static constexpr uintptr_t TeamIndex = 0xF11;
inline static constexpr uintptr_t KillScore = 0xF28;
inline static constexpr uintptr_t Platform = 0x400;
inline static constexpr uintptr_t bIsDying = 0x710;
inline static constexpr uintptr_t bIsDBNO = 0x839;
};
```
## GameState / world
```cpp
struct game_state {
inline static constexpr uintptr_t GameState = 0x1D0;
inline static constexpr uintptr_t PlayerArray = 0x288;
inline static constexpr uintptr_t PersistentLevel = 0x38;
inline static constexpr uintptr_t AActor = 0x188;
};
```
## Pawn / Mesh
```cpp
struct pawn {
inline static constexpr uintptr_t PawnPrivate = 0x2E8;
inline static constexpr uintptr_t Mesh = 0x2F0;
inline static constexpr uintptr_t RootComponent = 0x1B0;
inline static constexpr uintptr_t BoneArray = 0x650;
inline static constexpr uintptr_t BoneCache = 0x660;
inline static constexpr uintptr_t ComponentToWorld = 0x1E0;
inline static constexpr uintptr_t RelativeLocation = 0x140;
inline static constexpr uintptr_t ComponentVelocity = 0x188;
};
```
## Visibility
```cpp
struct visibility {
inline static constexpr uintptr_t LastRenderTime = 0x530;
inline static constexpr uintptr_t LastRenderTimeOnScreen = 0x32C;
inline static constexpr uintptr_t VisTolerance = 0x330;
inline static constexpr uintptr_t VisibilityProxy = 0xB0;
inline static constexpr uintptr_t VisProxyLastSubmit = 0x7B8;
inline static constexpr uintptr_t VisProxyLastRenderTime = 0x7DC;
};
```
## Camera
```cpp
struct camera {
inline static constexpr uintptr_t CameraLocation = 0x178;
inline static constexpr uintptr_t CameraRotation = 0x188;
inline static constexpr uintptr_t CameraFOV = 0x374;
};
```
## World time
```cpp
struct world_time {
inline static constexpr uintptr_t TimeSeconds = 0x198;
inline static constexpr uintptr_t DeltaTimeSeconds = 0x894;
};
```
## Weapon / loot
```cpp
struct weapon {
inline static constexpr uintptr_t CurrentWeapon = 0x998;
inline static constexpr uintptr_t WeaponAmmoCount = 0x10A4;
inline static constexpr uintptr_t WeaponData = 0x630;
inline static constexpr uintptr_t ItemName = 0x38;
inline static constexpr uintptr_t FData = 0x20;
inline static constexpr uintptr_t FLength = 0x28;
};
```
## GWorld decryption
XOR against a 64-bit constant then byteswap. Cheap and fast, patch-friendly.
```cpp
#include <intrin.h>
#include <cstdint>
#include "offsets.h"
uintptr_t get_world()
{
auto base = process_base();
if (!base) return 0;
uint64_t v = read<uint64_t>(base + Offsets::GWorld);
if (!v) return 0;
v ^= 0x93F1FA5800000000ULL;
v = _byteswap_uint64(v);
return static_cast<uintptr_t>(v);
}
```