struct engine {
inline static constexpr uintptr_t GWorld = 0x1A73C8B0; // encoded — see decrypt_world()
inline static constexpr uintptr_t GEngine = 0x1A73E298;
inline static constexpr uintptr_t GNames = 0x1A5EF440;
inline static constexpr uintptr_t ProcessEvent = 0x00133316; // function RVA
};
// GWorld is stored encoded: subtract 25199075, rotate-left 13, XOR 0x30A8E859.
// Fallback if this ever breaks: GEngine -> GameViewport.World.
inline uintptr_t decrypt_world()
{
std::uint64_t encoded = driver->read<std::uint64_t>(driver->module_base + 0x1A73C8B0);
std::uintptr_t world = static_cast<std::uintptr_t>(
std::rotl(encoded - 25199075ULL, 13) ^ 0x30A8E859ULL
);
return world ? world : 0;
}
struct f_vector {
inline static constexpr uintptr_t X = 0x0;
inline static constexpr uintptr_t Y = 0x8;
inline static constexpr uintptr_t Z = 0x10;
};
struct f_vector2_d {
inline static constexpr uintptr_t X = 0x0;
inline static constexpr uintptr_t Y = 0x8;
};
struct f_vector4 {
inline static constexpr uintptr_t X = 0x0;
inline static constexpr uintptr_t Y = 0x8;
inline static constexpr uintptr_t Z = 0x10;
inline static constexpr uintptr_t W = 0x18;
};
struct f_rotator {
inline static constexpr uintptr_t Pitch = 0x0;
inline static constexpr uintptr_t Yaw = 0x8;
inline static constexpr uintptr_t Roll = 0x10;
};
struct f_quat {
inline static constexpr uintptr_t X = 0x0;
inline static constexpr uintptr_t Y = 0x8;
inline static constexpr uintptr_t Z = 0x10;
inline static constexpr uintptr_t W = 0x18;
};
struct f_transform {
inline static constexpr uintptr_t Rotation = 0x0;
inline static constexpr uintptr_t Translation = 0x20;
inline static constexpr uintptr_t Scale3D = 0x40;
};
struct f_matrix {
inline static constexpr uintptr_t XPlane = 0x0;
inline static constexpr uintptr_t YPlane = 0x20;
inline static constexpr uintptr_t ZPlane = 0x40;
inline static constexpr uintptr_t WPlane = 0x60;
};
struct f_color {
inline static constexpr uintptr_t B = 0x0;
inline static constexpr uintptr_t G = 0x1;
inline static constexpr uintptr_t R = 0x2;
inline static constexpr uintptr_t A = 0x3;
};
struct f_linear_color {
inline static constexpr uintptr_t R = 0x0;
inline static constexpr uintptr_t G = 0x4;
inline static constexpr uintptr_t B = 0x8;
inline static constexpr uintptr_t A = 0xC;
};
struct f_box {
inline static constexpr uintptr_t min = 0x0;
inline static constexpr uintptr_t max = 0x18;
inline static constexpr uintptr_t IsValid = 0x30;
};
struct f_box_sphere_bounds {
inline static constexpr uintptr_t origin = 0x0;
inline static constexpr uintptr_t BoxExtent = 0x18;
inline static constexpr uintptr_t SphereRadius = 0x30;
};
struct f_minimal_view_info {
inline static constexpr uintptr_t Location = 0x0;
inline static constexpr uintptr_t Rotation = 0x18;
inline static constexpr uintptr_t FOV = 0x30;
inline static constexpr uintptr_t DesiredFOV = 0x34;
};
// Nested inside APlayerCameraManager.CameraCachePrivate.
struct f_camera_cache_entry {
inline static constexpr uintptr_t Timestamp = 0x0;
inline static constexpr uintptr_t POV = 0x10; // FMinimalViewInfo
};
struct u_engine {
// Layout too large to list; only fields cheats use.
inline static constexpr uintptr_t GameViewport = 0x1150; // reverify — near the base UEngine subclass tail
};
struct u_game_viewport_client {
inline static constexpr uintptr_t World = 0x78;
inline static constexpr uintptr_t GameInstance = 0x80;
};
struct u_world {
inline static constexpr uintptr_t PersistentLevel = 0x38;
inline static constexpr uintptr_t OwningGameInstance = 0x1C0; // GameInstance
inline static constexpr uintptr_t GameState = 0x160;
inline static constexpr uintptr_t AuthorityGameMode = 0x158;
inline static constexpr uintptr_t Levels = 0x188; // TArray<ULevel*>
};
struct u_game_instance {
inline static constexpr uintptr_t LocalPlayers = 0x38; // TArray<ULocalPlayer*>
};
struct u_local_player {
inline static constexpr uintptr_t ViewportClient = 0x78;
inline static constexpr uintptr_t PlayerController = 0x30; // Uplayer::PlayerController
inline static constexpr uintptr_t ControllerId = 0xE8;
};
struct a_actor {
inline static constexpr uintptr_t PrimaryActorTick = 0x28;
inline static constexpr uintptr_t bHidden = 0x58;
inline static constexpr uintptr_t RootComponent = 0x260; // reverify — USceneComponent*
};
struct u_scene_component {
inline static constexpr uintptr_t AttachParent = 0xD0;
inline static constexpr uintptr_t RelativeLocation = 0x140;
inline static constexpr uintptr_t RelativeRotation = 0x158;
inline static constexpr uintptr_t RelativeScale3D = 0x170;
inline static constexpr uintptr_t ComponentVelocity = 0x188;
};
struct a_pawn {
inline static constexpr uintptr_t BaseEyeHeight = 0x27C;
inline static constexpr uintptr_t PlayerState = 0x290;
inline static constexpr uintptr_t LastHitBy = 0x298;
inline static constexpr uintptr_t Controller = 0x2A0;
inline static constexpr uintptr_t PreviousController = 0x2A8;
inline static constexpr uintptr_t ControlInputVector = 0x2B8;
};
struct a_character {
inline static constexpr uintptr_t Mesh = 0x2F0; // USkeletalMeshComponent*
inline static constexpr uintptr_t CharacterMovement = 0x2F8; // UCharacterMovementComponent*
inline static constexpr uintptr_t CapsuleComponent = 0x300; // UCapsuleComponent*
inline static constexpr uintptr_t BasedMovement = 0x308;
inline static constexpr uintptr_t BaseTranslationOffset = 0x3E0;
inline static constexpr uintptr_t CrouchedEyeHeight = 0x42C;
};
struct a_player_controller {
inline static constexpr uintptr_t player = 0x310; // Uplayer*
inline static constexpr uintptr_t AcknowledgedPawn = 0x318;
inline static constexpr uintptr_t MyHUD = 0x320;
inline static constexpr uintptr_t PlayerCameraManager = 0x328;
inline static constexpr uintptr_t TargetViewRotation = 0x340;
inline static constexpr uintptr_t HiddenActors = 0x378;
inline static constexpr uintptr_t LastSpectatorSyncLocation = 0x3A0;
inline static constexpr uintptr_t LastSpectatorSyncRotation = 0x3B8;
inline static constexpr uintptr_t PlayerInput = 0x3E8; // UPlayerInput*
inline static constexpr uintptr_t NetConnection = 0x4A8;
inline static constexpr uintptr_t InputYawScale = 0x4C8;
inline static constexpr uintptr_t InputPitchScale = 0x4CC;
};
struct a_player_camera_manager {
inline static constexpr uintptr_t PCOwner = 0x270;
inline static constexpr uintptr_t TransformComponent = 0x278;
inline static constexpr uintptr_t DefaultFOV = 0x284;
inline static constexpr uintptr_t DefaultAspectRatio = 0x294;
inline static constexpr uintptr_t ViewTarget = 0x300; // FTViewTarget
inline static constexpr uintptr_t PendingViewTarget = 0xC30;
inline static constexpr uintptr_t CameraCachePrivate = 0x1590; // FCameraCacheEntry → POV @ +0x10
inline static constexpr uintptr_t LastFrameCameraCache = 0x1EB0;
inline static constexpr uintptr_t FreeCamDistance = 0x27F0;
inline static constexpr uintptr_t FreeCamOffset = 0x27F8;
inline static constexpr uintptr_t ViewTargetOffset = 0x2810;
};
struct a_player_state {
inline static constexpr uintptr_t Score = 0x270;
inline static constexpr uintptr_t PlayerID = 0x274;
inline static constexpr uintptr_t CompressedPing = 0x278;
inline static constexpr uintptr_t UniqueID = 0x280;
inline static constexpr uintptr_t SavedNetworkAddress = 0x2C0;
inline static constexpr uintptr_t PawnPrivate = 0x2E8;
inline static constexpr uintptr_t PlayerNamePrivate = 0x308;
};
struct u_character_movement {
inline static constexpr uintptr_t CharacterOwner = 0x198;
inline static constexpr uintptr_t GravityScale = 0x1A0;
inline static constexpr uintptr_t MaxStepHeight = 0x1A4;
inline static constexpr uintptr_t JumpZVelocity = 0x1A8;
inline static constexpr uintptr_t WalkableFloorAngle = 0x1CC;
inline static constexpr uintptr_t WalkableFloorZ = 0x1D0;
inline static constexpr uintptr_t GravityDirection = 0x1D8;
inline static constexpr uintptr_t MovementMode = 0x231;
inline static constexpr uintptr_t CustomMovementMode = 0x232;
inline static constexpr uintptr_t GroundFriction = 0x234;
inline static constexpr uintptr_t MaxWalkSpeed = 0x278;
inline static constexpr uintptr_t MaxWalkSpeedCrouched = 0x27C;
inline static constexpr uintptr_t MaxSwimSpeed = 0x280;
inline static constexpr uintptr_t MaxFlySpeed = 0x284;
inline static constexpr uintptr_t MaxCustomMovementSpeed = 0x288;
inline static constexpr uintptr_t MaxAcceleration = 0x28C;
inline static constexpr uintptr_t BrakingDecelerationWalking = 0x2A0;
inline static constexpr uintptr_t BrakingDecelerationFalling = 0x2A4;
inline static constexpr uintptr_t AirControl = 0x2B0;
inline static constexpr uintptr_t CrouchedHalfHeight = 0x2C0;
inline static constexpr uintptr_t Buoyancy = 0x2C4;
};
struct u_skeletal_mesh_component {
inline static constexpr uintptr_t AnimClass = 0x8F0;
inline static constexpr uintptr_t AnimScriptInstance = 0x8F8;
inline static constexpr uintptr_t PostProcessAnimInstance = 0x908;
inline static constexpr uintptr_t RootBoneTranslation = 0x928;
inline static constexpr uintptr_t CachedBoneSpaceTransforms = 0x9B0; // TArray<FTransform>
inline static constexpr uintptr_t CachedComponentSpaceTransforms = 0x9C0; // TArray<FTransform>
inline static constexpr uintptr_t GlobalAnimRateScale = 0x9F0;
};
struct a_fort_pawn {
inline static constexpr uintptr_t bIsDying = 0x720; // packed bool
inline static constexpr uintptr_t bPlayedDying = 0x720;
inline static constexpr uintptr_t bIsHiddenForDeath = 0x720;
inline static constexpr uintptr_t bIsInvulnerable = 0x722;
inline static constexpr uintptr_t bSpotted = 0x722;
inline static constexpr uintptr_t bPrimaryInputHeld = 0x722;
inline static constexpr uintptr_t bSecondaryInputHeld = 0x722;
inline static constexpr uintptr_t bWeaponActivated = 0x723;
inline static constexpr uintptr_t bIsSliding = 0x723;
inline static constexpr uintptr_t bIsSkating = 0x723;
inline static constexpr uintptr_t AdditionalPickupTags = 0x728;
};
struct a_fort_player_pawn {
inline static constexpr uintptr_t bIsSprintJump = 0x1F7A;
inline static constexpr uintptr_t bIsTacticalSprinting = 0x1F7A;
inline static constexpr uintptr_t bIsWaterJump = 0x1F7B;
inline static constexpr uintptr_t bIsTargeting = 0x1F7C; // ADS
inline static constexpr uintptr_t bIsTargetingConsumableThrow = 0x1F7C;
inline static constexpr uintptr_t BuildingState = 0x1FA0;
inline static constexpr uintptr_t AccelerationZPack = 0x1FA1;
};
struct a_fort_player_pawn_athena {
inline static constexpr uintptr_t ItemInteractionActor = 0x4940;
inline static constexpr uintptr_t PreviousVelocityXY = 0x4968;
inline static constexpr uintptr_t ReviveFromDBNOTime = 0x4988;
inline static constexpr uintptr_t CanBeDamagedInDBNO = 0x498C;
inline static constexpr uintptr_t DBNOStartTime = 0x4990;
inline static constexpr uintptr_t DBNOStartLocation = 0x4998;
inline static constexpr uintptr_t DeathTime = 0x49B0;
inline static constexpr uintptr_t DBNOInvulnerableTime = 0x49B4;
inline static constexpr uintptr_t ConvertFromDBNOTime = 0x49BC;
inline static constexpr uintptr_t bWasCrouchedBeforeDBNO = 0x49D0;
inline static constexpr uintptr_t ItemSpecialActorID = 0x49E0;
inline static constexpr uintptr_t CustomDepthComponent = 0x4A08;
};
struct a_fort_player_controller {
inline static constexpr uintptr_t bUnlockAllZones = 0x730;
inline static constexpr uintptr_t bTrapsInNoBuild = 0x848;
inline static constexpr uintptr_t bInPossession = 0x951;
inline static constexpr uintptr_t HybridControlsComponent = 0x998;
inline static constexpr uintptr_t AircraftInputComponent = 0x9C0;
inline static constexpr uintptr_t SprintOverrideComponent = 0x9C8;
inline static constexpr uintptr_t bWantsWeaponAutoPickup = 0x9D8;
inline static constexpr uintptr_t SpawnLoc = 0x9E0;
inline static constexpr uintptr_t NumPreviousSpawns = 0x9F8;
inline static constexpr uintptr_t bCanSpectateBot = 0x9FC;
};
struct a_fort_player_state_athena {
inline static constexpr uintptr_t PersonalLobbyAction = 0xE54;
inline static constexpr uintptr_t RespawnData = 0xE58;
inline static constexpr uintptr_t bHasWonAGame = 0xF08;
inline static constexpr uintptr_t TeamKillScore = 0xF0C;
inline static constexpr uintptr_t TeamIndex = 0xF31;
inline static constexpr uintptr_t TeamScorePlacement = 0xF34;
inline static constexpr uintptr_t TeamScore = 0xF38;
inline static constexpr uintptr_t Place = 0xF40;
inline static constexpr uintptr_t DownScore = 0xF44;
inline static constexpr uintptr_t KillScore = 0xF48;
inline static constexpr uintptr_t SeasonLevelUIDisplay = 0xF4C;
inline static constexpr uintptr_t HumanKillScore = 0xF54;
inline static constexpr uintptr_t AIKillCount = 0xF94;
inline static constexpr uintptr_t NumChestsOpened = 0xF9C;
inline static constexpr uintptr_t NumAmmoCansOpened = 0xFA4;
inline static constexpr uintptr_t NumSupplyDropsOpened = 0xFAC;
inline static constexpr uintptr_t NumLlamasOpened = 0xFB4;
inline static constexpr uintptr_t NumMinutesAlive = 0xFC4;
inline static constexpr uintptr_t TotalPlayerScore = 0xFE4;
};
struct a_fort_game_state_athena {
inline static constexpr uintptr_t PostGameUIInfo = 0x1060;
inline static constexpr uintptr_t bInSpawningStartup = 0x1068;
inline static constexpr uintptr_t bCanBuildOnWaterGlobal = 0x1090;
inline static constexpr uintptr_t bCanSpawnLoot = 0x10E9;
inline static constexpr uintptr_t InfiniteBuildingResources = 0x10F0;
inline static constexpr uintptr_t InfiniteGold = 0x1118;
inline static constexpr uintptr_t InfiniteWorldResources = 0x1140;
inline static constexpr uintptr_t AthenaGameDataTable = 0x1190;
inline static constexpr uintptr_t bPlaylistDataIsLoaded = 0x1260;
};
struct a_fort_weapon {
inline static constexpr uintptr_t TimeToEquip = 0x350;
inline static constexpr uintptr_t bIsEquippingWeapon = 0x368;
inline static constexpr uintptr_t bIsChargingWeapon = 0x380;
inline static constexpr uintptr_t bIsReloadingWeapon = 0x381;
inline static constexpr uintptr_t bDisableEquipAnimation = 0x381;
inline static constexpr uintptr_t bCheckCollisionsWithoutAbility = 0x381;
inline static constexpr uintptr_t bIsAimingConsumable = 0x3A8;
};