Welcome to the TheGamesCheats Forum

By registering with us, you'll be able to discuss, share, and private message with other members of our community.

SignUp Now!

Latest posts

Fortnite Reversal, Structs and Offsets

underspoken

pondering and planning
Staff member
Godlike
Eternal
Joined
Jan 6, 2024
reputation
26
Messages
38
Reaction score
12
We are currently in the process of filling out the game reversal threads. There is currently only a portion of the full information listed, keep this in mind.

Basic Information​

Window
Class: TBD
Name: TBD

Engine
Unreal Engine

Game Fundamentals​

The UWorld instance contains all the primary information and fields we will need to access in order to collect information for our cheat.​

Code:
DrawTransistion: 112

StaticFindObject: 48 89 74 24 ?? 48 89 7C 24 ?? 55 41 54 41 55 41 56 41 57 48 8B EC 48 83 EC ?? 4C 8B E9 48 8D 4D E8

GWorld: 48 89 05 ? ? ? ? 44 38 3D ? ? ? ?

GObjects: 48 8B 05 ? ? ? ? 48 8B 0C C8 48 8B 04 D1

GObjects: 48 8B 05 ? ? ? ? 48 8B 0C C8 48 8B 04 D1

No Spread (via correction rate)
C++:
    float(*CalcSpreadCorrectionRateOriginal)(uintptr_t, float) = nullptr;
    auto CalcSpreadCorrectionRateHook(uintptr_t Weapon, float a2) -> float
    {
        return CalcSpreadCorrectionRateOriginal(Weapon,
            Global::bNoDownsightSpread ? FLT_MAX : a2);
    }
Signature
[actual address in first opcode] E8 ? ? ? ? 48 83 BF ? ? ? ? ? 74 1E
String XREF
"Engine.ENetRole"

Projectile Teleport
C++:
    // Iterate projectiles...
    for (auto i = 0; i < Projectiles.Count; ++i)
    {
        auto Projectile = static_cast<AFortProjectileBase*>(Projectiles(i));
        if (Projectile == nullptr) continue;

        auto ProjectileMovementComponent = UEngine::ProxyRead<UFortProjectileMovementComponent*>(Projectile->GetReference() + 0x778);
        if (ProjectileMovementComponent == nullptr) continue;

        auto AimRotation = UKismetMathLibrary::FindLookAtRotation(
            Global::CameraCache.GetCameraLocation(),
            Global::ClosestTargetWorldLocation);

        if (AimRotation == FRotator()) continue;

        ProjectileMovementComponent->MoveInterpolationTarget(Global::ClosestTargetWorldLocation, AimRotation);
        ProjectileMovementComponent->StopMovementImmediately();
    }

Example of calling the movement related virtual functions
C++:
    auto StopMovementImmediately() -> VOID
    {
        auto VFTable = UEngine::ProxyRead<uintptr_t>(this->GetReference());
        if (VFTable == NULL) return;

        (*(void(__fastcall**)(UProjectileMovementComponent*))(VFTable + 0x4A8))(this);
    }

    auto SetVelocityInLocalSpace(FVector NewVelocity) -> VOID
    {
        auto VFTable = UEngine::ProxyRead<uintptr_t>(this->GetReference());
        if (VFTable == NULL) return;

        (*(void(__fastcall**)(UProjectileMovementComponent*, FVector))(VFTable + 0x590))(this, NewVelocity);
    }

    auto MoveInterpolationTarget(FVector NewLocation, FRotator NewRotation) -> VOID
    {
        auto VFTable = UEngine::ProxyRead<uintptr_t>(this->GetReference());
        if (VFTable == NULL) return;

        (*(void(__fastcall**)(UProjectileMovementComponent*, FVector, FRotator))(VFTable + 0x5C0))(this, NewLocation, NewRotation);
    }

Read MoveInterpolationTarget docs
Read StopMovementImmediately docs

The above Teleportation exploit will only work for real Projectiles which are of the AFortProjectileBase class, not lightweight projectiles.​
 
Last edited:
Back
Top