Code:
-- Shared part
/*---------------------------------------------------------------------------
Sound crash glitch
---------------------------------------------------------------------------*/

local entity = FindMetaTable("Entity")
local EmitSound = entity.EmitSound
function entity:EmitSound(sound, ...)
    if not sound then DarkRP.error(string.format("The first argument of the ent:EmitSound call is '%s'. It's supposed to be a string.", tostring(sound)), 3) end
    if string.find(sound, "??", 0, true) then return end
    return EmitSound(self, sound, ...)
end


function DarkRP.getAvailableVehicles()
    local vehicles = list.Get("Vehicles")
    for k, v in pairs(list.Get("SCarsList") or {}) do
        vehicles[v.PrintName] = {
            Name = v.PrintName,
            Class = v.ClassName,
            Model = v.CarModel
        }
    end

    return vehicles
end

local osdate = os.date
if system.IsWindows() then
    local replace = function(txt)
        if txt == "%%" then return txt end -- Edge case, %% is allowed
        return ""
    end

    function os.date(format, time)
        if format then format = string.gsub(format, "%%[^aAbBcdHIjmMpSUwWxXyYz]", replace) end

        return osdate(format, time)
    end
end

timer.Simple(3, function()
    -- Malicious addons that kicks players this one person doesn't like.
    if Skid then
        Skid.Check = fn.Id
        hook.Remove("CheckPassword", "Skid.CheckPassword")

        MsgC(Color(0, 255, 0), "SkidCheck", Color(255, 255, 255), " has been ", Color(255, 0, 0), "DISABLED\n", Color(255, 255, 255), [[
        SkidCheck was detected on this server and has been disabled.

        SkidCheck is a ban list addon made by HeX as an attempt to get the people he doesn't like
        banned from as many servers as possible.

        You have probably installed this addon thinking that it would get rid of cheaters, and sure,
        it might get rid of some, but that's only to make you want to download this.

        SkidCheck would ban me (FPtje, developer of DarkRP) from your server because I have a
        workshop addon that he doesn't like and because I know how to throw a prop around
            (type /credits yourname in chat for the full story on that)
        It doesn't just ban /me/ for that, it bans EVERYONE who is subscribed to the addon.

        Can you imagine trying an addon out and getting on this list /just/ because you have
        it installed? That's SkidCheck for you.

        It also bans people who have a VAC ban (even if gotten from another game), people from
        arbitrary groups, /friends/ of people he doesn't like and many, many more.

        I'm not pulling this out of my ass either, you can check everything here:
        https://facepunch.com/showthread.php?t=1483607


        On a somewhat unrelated note, HeX has been known to be malicious for quite some time:
        He used to have an anticheat (called HAC) on his server, which not only misfired from
        time to time, but actively used exploits to fuck "cheaters" up as much as possible,
        doing malicious shit ranging from unbinding keys to removing every friend they had in
        their friends list.

        That too can be fact checked right here:
        https://facepunch.com/showthread.php?t=1416320

        DO NOT trust this guy to decide who gets banned from your server. In fact,
        DO NOT EVER TRUST ANYONE with that power. No one ever should have the power
        to decide who gets banned and who doesn't over the servers that decide to install
        their addon.
]])
    end
end)

-- Clientside part
if CLIENT then
    /*---------------------------------------------------------------------------
    Generic InitPostEntity workarounds
    ---------------------------------------------------------------------------*/
    hook.Add("InitPostEntity", "DarkRP_Workarounds", function()
        if hook.GetTable().HUDPaint then hook.Remove("HUDPaint","drawHudVital") end -- Removes the white flashes when the server lags and the server has flashbang. Workaround because it's been there for fucking years

        -- Fuck up APAnti
        net.Receivers.sblockgmspawn = nil
        hook.Remove("PlayerBindPress", "_sBlockGMSpawn")
    end)

    local camstart3D = cam.Start3D
    local camend3D = cam.End3D
    local cam3DStarted = 0
    function cam.Start3D(a,b,c,d,e,f,g,h,i,j)
        cam3DStarted = cam3DStarted + 1
        return camstart3D(a,b,c,d,e,f,g,h,i,j)
    end

    -- cam.End3D should not crash a player when 3D hasn't been started
    function cam.End3D()
        if not cam3DStarted or cam3DStarted <= 0 then return end
        cam3DStarted = cam3DStarted - 1
        return camend3D()
    end

    return
end

/*---------------------------------------------------------------------------
Generic InitPostEntity workarounds
---------------------------------------------------------------------------*/
hook.Add("InitPostEntity", "DarkRP_Workarounds", function()
    local commands = concommand.GetTable()
    if commands["durgz_witty_sayings"] then
        game.ConsoleCommand("durgz_witty_sayings 0\n") -- Deals with the cigarettes exploit. I'm fucking tired of them. I hate having to fix other people's mods, but this mod maker is retarded and refuses to update his mod.
    end

    -- Remove ULX /me command. (the /me command is the only thing this hook does)
    hook.Remove("PlayerSay", "ULXMeCheck")

    -- why can people even save multiplayer games?
    -- Lag exploit
    if SERVER and not game.SinglePlayer() then
        concommand.Remove("gm_save")
    end

    -- Remove that weird rooftop spawn in rp_downtown_v4c_v2
    if game.GetMap() == "rp_downtown_v4c_v2" then
        for k,v in pairs(ents.FindByClass("info_player_terrorist")) do
            v:Remove()
        end
    end

    -- Fuck up URS.
    -- https://******.com/Aaron113/URS
    -- It fucks up every other mod that denies the spawning of entities
    local ursthing = URSCheck
    if ursthing then
        URSCheck = function(...)
            local res = ursthing(...)
            if res == true then
                ErrorNoHalt("Fucking up URS' spawn check. Please call Aaron113 a lazy ass in this issue: https://******.com/Aaron113/URS/issues/11\n")
                return
            end
            return res
        end
    end
end)

/*---------------------------------------------------------------------------
Fuck up APAnti. These hooks send unnecessary net messages.
---------------------------------------------------------------------------*/

/*---------------------------------------------------------------------------
Wire field generator exploit
---------------------------------------------------------------------------*/

/*---------------------------------------------------------------------------
Door tool is shitty
Let's fix that huge class exploit
---------------------------------------------------------------------------*/

/*---------------------------------------------------------------------------
Anti crash exploit
---------------------------------------------------------------------------*/
hook.Add("PropBreak", "drp_AntiExploit", function(attacker, ent)
    if IsValid(ent) and ent:GetPhysicsObject():IsValid() then
        constraint.RemoveAll(ent)
    end
end)

local allowedDoors = {
    ["prop_dynamic"] = true,
    ["prop_door_rotating"] = true,
    [""] = true
}

/*---------------------------------------------------------------------------
Actively deprecate commands
---------------------------------------------------------------------------*/
local deprecated = {
    {command = "rp_removeletters",      alternative = "removeletters"           },
    {command = "rp_setname",            alternative = "forcerpname"             },
    {command = "rp_unlock",             alternative = "forceunlock"             },
    {command = "rp_lock",               alternative = "forcelock"               },
    {command = "rp_removeowner",        alternative = "forceremoveowner"        },
    {command = "rp_addowner",           alternative = "forceown"                },
    {command = "rp_unownall",           alternative = "forceunownall"           },
    {command = "rp_unown",              alternative = "forceunown"              },
    {command = "rp_own",                alternative = "forceown"                },
    {command = "rp_tellall",            alternative = "admintellall"            },
    {command = "rp_tell",               alternative = "admintell"               },
    {command = "rp_teamunban",          alternative = "teamunban"               },
    {command = "rp_teamban",            alternative = "teamban"                 },
    {command = "rp_setsalary",          alternative = "setmoney"                },
    {command = "rp_setmoney",           alternative = "setmoney"                },
    {command = "rp_revokelicense",      alternative = "unsetlicense"            },
    {command = "rp_givelicense",        alternative = "setlicense"              },
    {command = "rp_unlockdown",         alternative = "unlockdown"              },
    {command = "rp_lockdown",           alternative = "lockdown"                },
    {command = "rp_unarrest",           alternative = "unarrest"                },
    {command = "rp_arrest",             alternative = "arrest"                  },
    {command = "rp_cancelvote",         alternative = "forcecancelvote"         },
}

local lastDeprecated = 0
local function msgDeprecated(cmd, ply)
    if CurTime() - lastDeprecated < 0.5 then return end
    lastDeprecated = CurTime()

    DarkRP.notify(ply, 1, 4, ("This command has been deprecated. Please use 'DarkRP %s' or '/%s' instead."):format(cmd.alternative, cmd.alternative))
end

for _, cmd in pairs(deprecated) do
    concommand.Add(cmd.command, fp{msgDeprecated, cmd})
end