Hawk - The boss way to log.

I’ve been working on a addon called “Hawk”
Its a logging addon that logs almost everything, from connecting, to buying items.

Its now almost done.
I just need some suggestions on what to log, and some small bugfixes.

DOWNLOAD 0.6BETA: http://dl.dropbox.com/u/15584452/HawkB06.zip

Please check back often for updates

REQUIRED MODULE: http://www.facepunch.com/threads/695636 - If you do not have this module, PlayerConnect will not work.


  • ConVars for certain log kinds.
  • Modular Logging System. (Notice 1)
  • Seperate Logs and one main log.

(Notice 1):
To Regular People/Coders:
Plugins for Hawk automaticly create the logfile, and the ConVar Hawk_Log_(pluginname) (1/0)

To Lua Coders:
If you would like to create your own logging module, Follow this example.
local HAWKPlugin = {} // We’re making a HAWK plugin so, we need this

local HAWKPlugin.Name = “FagLogger” // Name for our plugin.
local HAWKPlugin.Author = “FuriousJack95” // Our name.

hook.Add(“PlayerConnect”, “HAWK_LogFags”, function(name, ip) // Create our hooked function

if name == "Wizard of Ass" then // holy fuck its a dinosaur
    HAWK_Log("LogFags", "We're all going to die! "..name.." has joined!") // Log it, arg[1] == LogName arg[2] == What to log.


Are there convars to filter certain types of logs?

Im adding that in now, thanks.

The op example would not work.

And why wouldnt it?

Look at the function variables/arguments again

Based on which shop?

It also looks a lot like all this does is write to a file. I would expect more from an addon that claims to be “the boss way to log”. Filtering by Steamid / Date , a nice GUI to search through logs, etc etc.

Well, my gamemodes custom shop, but its a plugin so, you wont be able to get it.
If you want/need me to create a plugin for an addon, I gladly will.
Keep in mind: That you can easily use HAWK_Log(LogType, ToLog) and it will automaticly create any files/convars you need.

Im gonna add some more features such as filtering and a gui, and yes, I just realized the error in the OP.

Yeah, you still have errors in the example.

It seems there is almost no purpose the plugin system, you could create a system for disabling/enabling by creating hooks and destroying hooks like this:

local PLUGIN = {}
PLUGIN.Name = “Log Disconnects”
PLUGIN.Enabled = true --Enabled at default
PLUGIN.Author = “KillerLUA”

function PLUGIN.Enable()
print("[HawkPlugin] Disconnect plugin enabled!")

 hook.Add("PlayerDisconnect", "HPLUGIN_DisconnectLog", function()
      /* Do stuff */


function PLUGIN.Disable()
print("[HawkPlugin] Disconnect plugin disabled!")

 hook.Remove("PlayerDisconnect", "HPLUGIN_DisconnectLog")


RegisterHawkPlugin(“disconnect_log”, PLUGIN)

HawkPlugins = {}

function RegisterHawkPlugin(name, tbl)
if not tbl then return end

 HawkPlugins[name] = tbl


function TogglePluginStatus(name)
local plugin = HawkPlugins[name]

 plugin.Enabled = not plugin.Enabled

 if plugin.Enabled == true then


I also suggest you add support for people who don’t use the module, you can still show a error message, or create
a timer that sends a message to every admin saying that ‘Hawk was installed incorrectly!’

Using the enabled system, you could add a simple checkbox list to enable/disable plugins, when something changes, just
send a datastream. I would also futureproof by doing:

if datastream then
–Datastream or Datastream 2.0 installed or we’re just plainly not beta
–Gmod beta, use the net library

Nice work so far

I’ll probably add some more advanced stuff once I can log alot of stuff.

Cut the crap bro. This is your first minor-major attempt at getting praised, and just an fyi, it’s not going to happen. Nice attempt though. Also all this ‘logging’ does is save to a file. At least add a motherfucking convar for owners to decide whether it should save to a file only, or log in a menu for all admins to see. Go do some more minor projects, maybe some that involve client-server GUI, and self-updating GUI. Come back after you’re done and remake this from scratch. Also, when you recreate this actually have a use for the modular system, if you create one at all.

-snip’d I was in ranting mood and I just let out all of that.-

Who gives a fuck?

Anyway, Im gonna start work on the Hawk Admin Panel, so.

Good luck working on the admin panel when you can’t even fix the damn op example.