Skip to content

Releases: ds-kimi/vanish

Build 9 (b564c83)

Choose a tag to compare

@github-actions github-actions released this 23 Aug 14:22

fix: match the engine's own replies for version, users and stats

The synthesised status printed 2026.04.29/0 0 secure where the engine
prints 2026.04.29/24 10029 secure. A dedicated server's steam.inf carries
PatchVersion and nothing else, so parsing the protocol and build out of it
gave zeroes, and the version line changed the moment somebody vanished.
The build now comes from IVEngineServer::GetServerVersion, with config
values as a last resort.

users and stats were dropped without an answer, which is a tell of its
own: a client that types a command and gets nothing back knows something
ate it. Both are answered now, in formats read out of engine.dll rather
than guessed, and ping's row format is corrected to the engine's
"%4.0f ms : %s".

Rebuilding the stats row needs the numbers beside the player count, so
the module reads throughput and the spawn count off IServer and measures
process CPU time. Only the player count is filtered; the rest is real.

Build 8 (9fd8f9e)

Choose a tag to compare

@github-actions github-actions released this 23 Aug 05:58

chore: follow the repository rename to vanish

Badge, clone and star history links point at ds-kimi/vanish. The release
archive drops the suffix with it, so a download reads vanish-win32.zip
against a repository of the same name.

Build 7 (ac9a918)

Choose a tag to compare

@github-actions github-actions released this 23 Aug 05:57

add logo

Build 6 (76e95b8)

Choose a tag to compare

@github-actions github-actions released this 23 Aug 05:49

better readme

Build 5 (2005a6f)

Choose a tag to compare

@github-actions github-actions released this 23 Aug 05:30

Update sv_config.lua

Build 4 (5b4c9c4)

Choose a tag to compare

@github-actions github-actions released this 23 Aug 05:27

fix: vendor the patched sourcenet Lua and degrade without it

A clone of this repository was not installable on its own: the addon
includes sourcenet/incoming.lua, which only ever reached a server through
the release archive that CI assembled. Installing from the repository left
the include failing and then FilterIncomingMessage nil, taking the whole
console filter down with it.

The patched Lua half is now vendored under addon/lua/sourcenet, so the
addon directory is complete as it stands, and CI fails the build if it
drifts from the pinned upstream with the patch applied. The upstream copy
is no longer packed on top of it.

The include is also guarded now: without the sourcenet Lua the command
filter reports itself unavailable and stops, which is what the rest of the
addon already did for its own missing pieces.

Build 3 (88179e9)

Choose a tag to compare

@github-actions github-actions released this 23 Aug 05:17

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.

Build 2 (2421821)

Choose a tag to compare

@github-actions github-actions released this 23 Aug 05:05

fix player_connect

Build 1 (49f02c9)

Choose a tag to compare

@github-actions github-actions released this 23 Aug 05:00

feat: fake disconnect, godmode and noclip while vanished

Hiding the entity removes a player from the world, but a client that
loses an entity says nothing about it and no server side handler runs.

The module gains vanishevent.Fire, which raises an engine game event from
Lua: a real player_disconnect on vanish makes every client print the leave
message and run its own disconnect path, and player_connect on unvanish
makes the return read as a rejoin. Server side, a configurable selection of
PlayerDisconnected handlers is run so admin mods log the departure.

A vanished player also gets godmode, noclip, notarget and pass-through
collisions, restored from the state captured when they vanished.