/*
* CSB Free For All
* Copyright (C) 2026 counter-strike-boost.com
*
* Real free-for-all: teammates can damage and kill each other. Friendly fire is
* forced on and team-kill penalties are disabled so nobody is punished for it,
* and the team radar is suppressed so teammates cannot be tracked as free intel.
* Pair it with a deathmatch respawn plugin for a full FFA server.
*
* Inspired by FFA by Numb. Independent GPL re-implementation.
*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version. It is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See for details.
*/
#include
new const PLUGIN[] = "CSB Free For All"
new const VERSION[] = "1.0.0"
new const AUTHOR[] = "counter-strike-boost.com"
new g_pEnabled, g_pHideRadar
new g_pFF, g_pTkPunish, g_pAutoKick
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
g_pEnabled = register_cvar("csb_ffa_enabled", "1")
g_pHideRadar = register_cvar("csb_ffa_hideradar", "1")
g_pFF = get_cvar_pointer("mp_friendlyfire")
g_pTkPunish = get_cvar_pointer("mp_tkpunish")
g_pAutoKick = get_cvar_pointer("mp_autokick")
register_logevent("eventRoundStart", 2, "1=Round_Start")
register_message(get_user_msgid("Radar"), "msgRadar")
applyCvars()
}
applyCvars()
{
if (!get_pcvar_num(g_pEnabled))
return
if (g_pFF)
set_pcvar_num(g_pFF, 1)
if (g_pTkPunish)
set_pcvar_num(g_pTkPunish, 0)
if (g_pAutoKick)
set_pcvar_num(g_pAutoKick, 0)
}
public eventRoundStart()
{
applyCvars()
}
/* suppress the team radar blips */
public msgRadar()
{
if (get_pcvar_num(g_pEnabled) && get_pcvar_num(g_pHideRadar))
return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}