Build 3 (88179e9)
feat: close the remaining ways a vanished player is still observable
Masking only the list functions left every other route to a player open.
player.Iterator and ents.Iterator are what addons written since 2023 use,
the single player lookups never touch the roster at all, the spatial
searches leak position as well as existence, and a team whose list is one
shorter but whose count is not gives the hiding away by itself.
Sound, voice and chat are networked by position or by name rather than by
the transmit state of the entity, so each is stopped at the hook that
emits it. Damage they deal drives the kill feed and the damage logs, and
firing sends tracers and decals to everyone in range whether the damage
lands or not, so both are blocked at the source.
Transmit state is now rebuilt on the frame an entity is created instead of
up to refreshInterval seconds later, the vanish survives a map change, and
the module can blank the userinfo string table entry that held the last
copy of the player's name and SteamID on every client.
Filtering the server console and the logs was left out deliberately: it
hides nothing from players, only from co-owners.