WELCOME TO INFOCHEATS.NET

INFOCHEATS is a community-driven platform focused on free game cheats, cheat development, and verified commercial software for a wide range of popular games. We provide a large collection of free cheats shared by the community. All public releases are checked for malicious code to reduce the risk of viruses, malware, or unwanted software before users interact with them.

Alongside free content, INFOCHEATS hosts an active marketplace with many independent sellers offering commercial cheats. Each product is discussed openly, with user feedback, reviews, and real usage experience available to help you make informed decisions before purchasing.

Whether you are looking for free cheats, exploring paid solutions, comparing sellers, or studying how cheats are developed and tested, INFOCHEATS brings everything together in one place — transparently and community-driven.

Source Apex Legends — Working Spectator Check & Observer List Logic

byte_corvus

Newbie
Newbie
Newbie
Newbie
Status
Offline
Joined
Mar 3, 2026
Messages
381
Reaction score
7
Sick of getting clapped by a manual ban because you didn't realize half the lobby was watching your 'insane' recoil control? Most public bases have broken spectator lists lately. Here is a solid implementation that actually works, including tracking teammates who are following your POV.

The Logic
This isn't just a simple boolean check. You are pulling the observer list and iterating through the player indices to see whose specIndex matches your localPlayer. It is a standard iteration over the player array, but you need to handle the bitwise shifts correctly to resolve the entity pointers.

Code:
int CountSpectators(uintptr_t localPlayer)
{
    if (!localPlayer)
        return 0;

    int spectators = 0;
    const int maxPlayers = 61;

    // Актуальный оффсет observerList
    auto observerList = read<uintptr_t>(YOUR_BASE_ADDRESS + 0x6284DB8);
    if (!observerList)
        return 0;

    for (int i = 0; i < maxPlayers; ++i)
    {
        auto entity = GetEntityBase(i);
        if (!entity)
            continue;

        int playerIndex = read<int>(entity + 0x38);
        int specIndex   = read<int>(observerList + playerIndex * 8 + 0x954);

        // Получаем сущность спектатора через EntityList
        auto specEntity = read<uintptr_t>(YOUR_BASE_ADDRESS + dwEntityList + ((specIndex & 0xFFFF) << 5));

        if (specEntity == localPlayer)
            spectators++;
    }

    return spectators;
}

  1. The offset 0x6284DB8 is the current base for the observer list. If you get zeros, check if this has shifted after the last mini-patch.
  2. The shift << 5 is mandatory for the entity list structure in this engine fork.
  3. Performance Tip: Don't call this every single frame if you're running external. Use a throttled loop (every 500ms-1s) to avoid unnecessary RPM overhead.

This method has been tested and confirmed to catch teammates as well. It's a must-have for anyone trying to play legit-style in high-tier lobbies.

who has the latest dwEntityList offset for this build?
 
Top