← 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);
}
```