Skip to content

codabro/gUndercover

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gUndercover

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.SteamID and 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.

Installation

  • 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.g addons/gundercover/lua/autorun/server).

Usage

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

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.

Proof of Concept

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.

image image

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.

image

About

Advanced Garry's Mod Undercover System

Resources

License

Stars

Watchers

Forks

Packages

No packages published