A Garry's Mod module that allows Admins to completely disguise / go undercover without easily being found out by other players.
Why is gUndercover better than other undercover / disguise systems?
- Without intervention from a binary module, any undercover system can be easily blown by a player just typing "status" into console.
gUndercover:
- Returns actual disguised information when a player requests a "status" console command
- Fills "userinfo" NetworkStringTable with disguised information, resulting in the client fully thinking it is real (
Player.Name,Player.SteamIDand such functions all return disguised info, no detours needed). Even C/C++ cheats will show the fake info. - Swaps the disguised player's name when updating server information for the server browser.
- Download the module for the desired platform (Most commonly
gmsv_gundercover_linux.dll) - Move it to
garrysmod/lua/bin. If the bin folder doesn't exist, create it. - Put the lua file into a serverside autorun folder. This can be
garrysmod/lua/autorun/server, or within an addon (e.gaddons/gundercover/lua/autorun/server).
gUndercover comes with 2 lua functions and a console command.
Console command:
- As Admin:
gundercover [Disguise SteamID64] [Disguise Name] - Disguise Command
gundercover <No Arguments> - Remove Disguise Command
- As Server Console:
gundercover [Admin SteamID64] [Disguise SteamID64] [Disguise Name] - Disguise Command
gundercover [Admin SteamID64] - Remove Disguise Command
Lua:
gUndercover.SetUndercover(string adminSteamID64, string disguiseSteamID64, string name, number entIndex = nil)
gUndercover.RemoveUndercover(string adminSteamID64, number entIndex = nil)
-- Providing Entity Index forces an update on the userinfo NetworkStringTable. Not needed when the admin is offline.Note: You can disguise an Admin without him being online, that way he is disguised the entire time when he joins. To be inconspicuous you'd probably want to diguise your steamid while offline then join some time later.
Compiling using this tutorial should be pretty straight-forward, you only need to change the contents of the module.cpp file after generating your project with premake.
Supported platforms are Linux32, Linux64, Windows32 and Windows64. I have no interest in adding support for MacOS, but it should be pretty straight forward if you want to.
While testing, I was setting my disguise to garry, and noticed a bunch of people joined my server. Someone sent me a screenshot of a guy asking the gmod discord how it's possible that garry with the real steamid was on the server.
People were even getting the steam achievement because their game legitimately thought they were playing with garry. Obviously I do not condone the use of this for such purposes, but it would be pointless anyway when much easier-to-use tools can be found by just typing them into google.

