// The reason we are using the cooperative gamemode with teams enabled,
// rather than just using the `Team Game` gamemode, is because cooperative
// persists items on map change, whereas `Team Game` does not.
// This hard limitation is (currently) not possible to change.

Cooperative
{
    addflag PLAYERSONTEAMS
    addflag DONTPRINTPLAYERSLEFT
    addflag DEADSPECTATORS
    addflag MAPRESETS
    addflag MAPRESET_RESETS_MAPTIME
    
    GameSettings
    {
        sv_disallowsuicide = true
        sv_noidentifytarget = true
        sv_nodrop = true
        sv_noexit = true

        sv_unblockplayers = false
        sv_unblockallies = false

        sv_shootthroughallies = true
        sv_dontpushallies = false
        sv_nocoopinfo = true
        sv_noidentifytarget = true
        sv_nodoorclose = true
        sv_itemrespawn = false
        sv_sharekeys = false
        
        // FKA sv_forcegldefaults
        sv_forcevideodefaults = true

        sv_maprotation = true
        
        compat_noobituaries = false

        sv_applylmsSpectatorsettings = true
        lms_spectatorchat = true
        lms_spectatorview = true
        lms_spectatorvoicechat = false

        onlineonly
        {
            // sv_maxclients is not allowed to be set here.
            sv_maxplayers = 64
        }
    }
    
    // Note, some forced settings seemingly work just for allies.
    // However, zombies are also considered allies with the way the gamemode is set up.
    LockedGameSettings
    {
        teamdamage = 1.0 // ACS handles human on human contact
    
        sv_noteamselect = true
        sv_keepteams = true
        sv_noteamswitch = true
        sv_norespawninvul = true
        sv_nospawntelefog = true
        
        sv_noautomapallies = true
        sv_noallyicons = true
        sv_noenemyicons = true // This doesn't matter either, but just for consistency it's disabled.
        
        compat_dont_stop_player_scripts_on_disconnect = true
        
        // This would otherwise fully reset the state back when we want to either
        // reset or set to its state when the round started.
        // ACS should manage this instead.
        compat_resetglobalvarsonmapreset = false
        
        onlineonly
        {
            compat_netscriptsareclientside = false
            compat_clientssendfullbuttoninfo = true
        }
    }
}