--[[Do not claim you made this.]]--
--[[Do not claim you made this.]]--
--[[Do not claim you made this.]]--

--setup stuff
keys = {}

--call this
function AddHotkey(Name, k, func)
    keys[Name] = {["key"] = k, ["number"] = _G[k] or -1, ["name"] = Name, ["func"] = func}
end

--modify with this (KEY = string)
function ChangeHotkeyKey(Name, KEY)
    keys[Name]["key"] = KEY
    keys[Name]["number"] = _G[KEY]
end

--hook 'Think' with this function
function()
    b = (not gui.IsGameUIVisible() and not gui.IsConsoleVisible() and not LocalPlayer():IsTyping() and not vgui.CursorVisible())
    if not b then return end
    for k,v in pairs(keys) do
        if (input.IsKeyDown(v.number)) then
            if not v.wp then v.wp = true v.func() end
        else
            v.wp = false
        end
    end
end

--modify as you wish. Feel free to release it in your hack, but add credits to me and or link to this.
--Also I made it a bit worse then what it really is on hacks I use.
--[[Do not claim you made this.]]--
--[[Do not claim you made this.]]--
--[[Do not claim you made this.]]--