using Content.Shared.Roles; using Robust.Shared.Configuration; namespace Content.Shared.CCVar; public sealed partial class CCVars { /// /// Disables most functionality in the GameTicker. /// public static readonly CVarDef GameDummyTicker = CVarDef.Create("game.dummyticker", false, CVar.ARCHIVE | CVar.SERVERONLY); /// /// Controls if the lobby is enabled. If it is not, and there are no available jobs, you may get stuck on a black screen. /// public static readonly CVarDef GameLobbyEnabled = CVarDef.Create("game.lobbyenabled", true, CVar.ARCHIVE); /// /// Controls the duration of the lobby timer in seconds. Defaults to 2 minutes and 30 seconds. /// public static readonly CVarDef GameLobbyDuration = CVarDef.Create("game.lobbyduration", 150, CVar.ARCHIVE); /// /// Controls if players can latejoin at all. /// public static readonly CVarDef GameDisallowLateJoins = CVarDef.Create("game.disallowlatejoins", false, CVar.ARCHIVE | CVar.SERVERONLY); /// /// Controls the default game preset. /// public static readonly CVarDef GameLobbyDefaultPreset = CVarDef.Create("game.defaultpreset", "secret", CVar.ARCHIVE); /// /// Controls if the game can force a different preset if the current preset's criteria are not met. /// public static readonly CVarDef GameLobbyFallbackEnabled = CVarDef.Create("game.fallbackenabled", true, CVar.ARCHIVE); /// /// The preset for the game to fall back to if the selected preset could not be used, and fallback is enabled. /// public static readonly CVarDef GameLobbyFallbackPreset = CVarDef.Create("game.fallbackpreset", "Traitor,Extended", CVar.ARCHIVE); /// /// Controls if people can win the game in Suspicion or Deathmatch. /// public static readonly CVarDef GameLobbyEnableWin = CVarDef.Create("game.enablewin", true, CVar.ARCHIVE); /// /// Controls if round-end window shows whether the objective was completed or not. /// public static readonly CVarDef GameShowGreentext = CVarDef.Create("game.showgreentext", true, CVar.ARCHIVE | CVar.SERVERONLY); /// /// Controls the maximum number of character slots a player is allowed to have. /// public static readonly CVarDef GameMaxCharacterSlots = CVarDef.Create("game.maxcharacterslots", 30, CVar.ARCHIVE | CVar.SERVERONLY); /// /// Controls the game map prototype to load. SS14 stores these prototypes in Prototypes/Maps. /// public static readonly CVarDef GameMap = CVarDef.Create("game.map", string.Empty, CVar.SERVERONLY); /// /// Controls whether to use world persistence or not. /// public static readonly CVarDef UsePersistence = CVarDef.Create("game.usepersistence", false, CVar.ARCHIVE); /// /// If world persistence is used, what map prototype should be initially loaded. /// If the save file exists, it replaces MapPath but everything else stays the same (station name and such). /// public static readonly CVarDef PersistenceMap = CVarDef.Create("game.persistencemap", "Empty", CVar.ARCHIVE); /// /// Prototype to use for map pool. /// public static readonly CVarDef GameMapPool = CVarDef.Create("game.map_pool", "DefaultMapPool", CVar.SERVERONLY); /// /// The depth of the queue used to calculate which map is next in rotation. /// This is how long the game "remembers" that some map was put in play. Default is 16 rounds. /// public static readonly CVarDef GameMapMemoryDepth = CVarDef.Create("game.map_memory_depth", 16, CVar.SERVERONLY); /// /// Is map rotation enabled? /// public static readonly CVarDef GameMapRotation = CVarDef.Create("game.map_rotation", true, CVar.SERVERONLY); /// /// If roles should be restricted based on time. /// public static readonly CVarDef GameRoleTimers = CVarDef.Create("game.role_timers", true, CVar.SERVER | CVar.REPLICATED); /// /// If role loadout items should be restricted based on time. /// public static readonly CVarDef GameRoleLoadoutTimers = CVarDef.Create("game.role_loadout_timers", true, CVar.SERVER | CVar.REPLICATED); /// /// Override default role requirements using a /// public static readonly CVarDef GameRoleTimerOverride = CVarDef.Create("game.role_timer_override", "", CVar.SERVER | CVar.REPLICATED); /// /// If roles should be restricted based on whether or not they are whitelisted. /// public static readonly CVarDef GameRoleWhitelist = CVarDef.Create("game.role_whitelist", true, CVar.SERVER | CVar.REPLICATED); /// /// Whether or not disconnecting inside of a cryopod should remove the character or just store them until they reconnect. /// public static readonly CVarDef GameCryoSleepRejoining = CVarDef.Create("game.cryo_sleep_rejoining", false, CVar.SERVER | CVar.REPLICATED); /// /// When enabled, guests will be assigned permanent UIDs and will have their preferences stored. /// public static readonly CVarDef GamePersistGuests = CVarDef.Create("game.persistguests", true, CVar.ARCHIVE | CVar.SERVERONLY); public static readonly CVarDef GameDiagonalMovement = CVarDef.Create("game.diagonalmovement", true, CVar.ARCHIVE); public static readonly CVarDef SoftMaxPlayers = CVarDef.Create("game.soft_max_players", 30, CVar.SERVERONLY | CVar.ARCHIVE); /// /// If a player gets denied connection to the server, /// how long they are forced to wait before attempting to reconnect. /// public static readonly CVarDef GameServerFullReconnectDelay = CVarDef.Create("game.server_full_reconnect_delay", 30, CVar.SERVERONLY); /// /// Whether or not panic bunker is currently enabled. /// public static readonly CVarDef PanicBunkerEnabled = CVarDef.Create("game.panic_bunker.enabled", false, CVar.NOTIFY | CVar.REPLICATED | CVar.SERVER); /// /// Whether or not the panic bunker will disable when an admin comes online. /// public static readonly CVarDef PanicBunkerDisableWithAdmins = CVarDef.Create("game.panic_bunker.disable_with_admins", false, CVar.SERVERONLY); /// /// Whether or not the panic bunker will enable when no admins are online. /// This counts everyone with the 'Admin' AdminFlag. /// public static readonly CVarDef PanicBunkerEnableWithoutAdmins = CVarDef.Create("game.panic_bunker.enable_without_admins", false, CVar.SERVERONLY); /// /// Whether or not the panic bunker will count deadminned admins for /// and /// /// public static readonly CVarDef PanicBunkerCountDeadminnedAdmins = CVarDef.Create("game.panic_bunker.count_deadminned_admins", false, CVar.SERVERONLY); /// /// Show reason of disconnect for user or not. /// public static readonly CVarDef PanicBunkerShowReason = CVarDef.Create("game.panic_bunker.show_reason", false, CVar.SERVERONLY); /// /// Minimum age of the account (from server's PoV, so from first-seen date) in minutes. /// public static readonly CVarDef PanicBunkerMinAccountAge = CVarDef.Create("game.panic_bunker.min_account_age", 1440, CVar.SERVERONLY); /// /// Minimal overall played time. /// public static readonly CVarDef PanicBunkerMinOverallMinutes = CVarDef.Create("game.panic_bunker.min_overall_minutes", 600, CVar.SERVERONLY); /// /// A custom message that will be used for connections denied to the panic bunker /// If not empty, then will overwrite /// public static readonly CVarDef PanicBunkerCustomReason = CVarDef.Create("game.panic_bunker.custom_reason", string.Empty, CVar.SERVERONLY); /// /// Allow bypassing the panic bunker if the user is whitelisted. /// public static readonly CVarDef BypassBunkerWhitelist = CVarDef.Create("game.panic_bunker.whitelisted_can_bypass", true, CVar.SERVERONLY); /// /// Enable IPIntel for blocking VPN connections from new players. /// public static readonly CVarDef GameIPIntelEnabled = CVarDef.Create("game.ipintel_enabled", false, CVar.SERVERONLY); /// /// Whether clients which are flagged as a VPN will be denied /// public static readonly CVarDef GameIPIntelRejectBad = CVarDef.Create("game.ipintel_reject_bad", true, CVar.SERVERONLY); /// /// Whether clients which cannot be checked due to a rate limit will be denied /// public static readonly CVarDef GameIPIntelRejectRateLimited = CVarDef.Create("game.ipintel_reject_ratelimited", false, CVar.SERVERONLY); /// /// Whether clients which cannot be checked due to an error of some form will be denied /// public static readonly CVarDef GameIPIntelRejectUnknown = CVarDef.Create("game.ipintel_reject_unknown", false, CVar.SERVERONLY); /// /// Should an admin message be made if the connection got rejected cause of ipintel? /// public static readonly CVarDef GameIPIntelAlertAdminReject = CVarDef.Create("game.ipintel_alert_admin_rejected", false, CVar.SERVERONLY); /// /// A contact email to be sent along with the request. Required by IPIntel /// public static readonly CVarDef GameIPIntelEmail = CVarDef.Create("game.ipintel_contact_email", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL); /// /// The URL to IPIntel to make requests to. If you pay for more queries this is what you want to change. /// public static readonly CVarDef GameIPIntelBase = CVarDef.Create("game.ipintel_baseurl", "https://check.getipintel.net", CVar.SERVERONLY); /// /// The flags to use in the request to IPIntel, please look here for more info. https://getipintel.net/free-proxy-vpn-tor-detection-api/#optional_settings /// Note: Some flags may increase the chances of false positives and request time. The default should be fine for most servers. /// public static readonly CVarDef GameIPIntelFlags = CVarDef.Create("game.ipintel_flags", "b", CVar.SERVERONLY); /// /// Maximum amount of requests per Minute. For free you get 15. /// public static readonly CVarDef GameIPIntelMaxMinute = CVarDef.Create("game.ipintel_request_limit_minute", 15, CVar.SERVERONLY); /// /// Maximum amount of requests per Day. For free you get 500. /// public static readonly CVarDef GameIPIntelMaxDay = CVarDef.Create("game.ipintel_request_limit_daily", 500, CVar.SERVERONLY); /// /// Amount of seconds to add to the exponential backoff with every failed request. /// public static readonly CVarDef GameIPIntelBackOffSeconds = CVarDef.Create("game.ipintel_request_backoff_seconds", 30, CVar.SERVERONLY); /// /// How much time should pass before we attempt to cleanup the IPIntel table for old ip addresses? /// public static readonly CVarDef GameIPIntelCleanupMins = CVarDef.Create("game.ipintel_database_cleanup_mins", 15, CVar.SERVERONLY); /// /// How long to store results in the cache before they must be retrieved again in days. /// public static readonly CVarDef GameIPIntelCacheLength = CVarDef.Create("game.ipintel_cache_length", TimeSpan.FromDays(7), CVar.SERVERONLY); /// /// Amount of playtime in minutes to be exempt from an IP check. 0 to search everyone. 5 hours by default. /// /// /// Trust me you want one. /// public static readonly CVarDef GameIPIntelExemptPlaytime = CVarDef.Create("game.ipintel_exempt_playtime", TimeSpan.FromMinutes(300), CVar.SERVERONLY); /// /// Rating to reject at. Anything equal to or higher than this will reject the connection. /// public static readonly CVarDef GameIPIntelBadRating = CVarDef.Create("game.ipintel_bad_rating", 0.95f, CVar.SERVERONLY); /// /// Rating to send an admin warning over, but not reject the connection. Set to 0 to disable /// public static readonly CVarDef GameIPIntelAlertAdminWarnRating = CVarDef.Create("game.ipintel_alert_admin_warn_rating", 0f, CVar.SERVERONLY); /// /// Make people bonk when trying to climb certain objects like tables. /// public static readonly CVarDef GameTableBonk = CVarDef.Create("game.table_bonk", false, CVar.REPLICATED); /// /// Whether or not status icons are rendered for everyone. /// public static readonly CVarDef GlobalStatusIconsEnabled = CVarDef.Create("game.global_status_icons_enabled", true, CVar.SERVER | CVar.REPLICATED); /// /// Whether or not status icons are rendered on this specific client. /// public static readonly CVarDef LocalStatusIconsEnabled = CVarDef.Create("game.local_status_icons_enabled", true, CVar.CLIENTONLY); /// /// Whether or not coordinates on the Debug overlay should only be available to admins. /// public static readonly CVarDef DebugCoordinatesAdminOnly = CVarDef.Create("game.debug_coordinates_admin_only", true, CVar.SERVER | CVar.REPLICATED); #if EXCEPTION_TOLERANCE /// /// Amount of times round start must fail before the server is shut down. /// Set to 0 or a negative number to disable. /// public static readonly CVarDef RoundStartFailShutdownCount = CVarDef.Create("game.round_start_fail_shutdown_count", 5, CVar.SERVERONLY | CVar.SERVER); #endif /// /// Delay between station alert level changes. /// public static readonly CVarDef GameAlertLevelChangeDelay = CVarDef.Create("game.alert_level_change_delay", 30, CVar.SERVERONLY); /// /// The time in seconds that the server should wait before restarting the round. /// Defaults to 2 minutes. /// public static readonly CVarDef RoundRestartTime = CVarDef.Create("game.round_restart_time", 120f, CVar.SERVERONLY); /// /// The prototype to use for secret weights. /// public static readonly CVarDef SecretWeightPrototype = CVarDef.Create("game.secret_weight_prototype", "Secret", CVar.SERVERONLY); /// /// The id of the sound collection to randomly choose a sound from and play when the round ends. /// public static readonly CVarDef RoundEndSoundCollection = CVarDef.Create("game.round_end_sound_collection", "RoundEnd", CVar.SERVERONLY); /// /// Whether or not to add every player as a global override to PVS at round end. /// This will allow all players to see their clothing in the round screen player list screen, /// but may cause lag during round end with very high player counts. /// public static readonly CVarDef RoundEndPVSOverrides = CVarDef.Create("game.round_end_pvs_overrides", true, CVar.SERVERONLY); /// /// If true, players can place objects onto tabletop games like chess boards. /// /// /// This feature is currently highly abusable and can easily be used to crash the server, /// so it's off by default. /// public static readonly CVarDef GameTabletopPlace = CVarDef.Create("game.tabletop_place", false, CVar.SERVERONLY); /// /// If true, contraband severity can be viewed in the examine menu /// public static readonly CVarDef ContrabandExamine = CVarDef.Create("game.contraband_examine", true, CVar.SERVER | CVar.REPLICATED); /// /// If true, contraband examination is only possible while wearing an item with `ShowContrabandDetailsComponent`. Requires `ContrabandExamine` to be true as well. /// public static readonly CVarDef ContrabandExamineOnlyInHUD = CVarDef.Create("game.contraband_examine_only_in_hud", false, CVar.SERVER | CVar.REPLICATED); /// /// Size of the lookup area for adding entities to the context menu /// public static readonly CVarDef GameEntityMenuLookup = CVarDef.Create("game.entity_menu_lookup", 0.25f, CVar.CLIENTONLY | CVar.ARCHIVE); /// /// Should the clients window show the server hostname in the title? /// public static readonly CVarDef GameHostnameInTitlebar = CVarDef.Create("game.hostname_in_titlebar", true, CVar.SERVER | CVar.REPLICATED); }