using Robust.Shared; using Robust.Shared.Configuration; namespace Content.Shared.CCVar { // ReSharper disable once InconsistentNaming [CVarDefs] public sealed class CCVars : CVars { /* * Server */ /// /// Change this to have the changelog and rules "last seen" date stored separately. /// public static readonly CVarDef ServerId = CVarDef.Create("server.id", "unknown_server_id", CVar.REPLICATED | CVar.SERVER); /* * Ambience */ /// /// Whether the basic 'hum' ambience will be enabled. /// public static readonly CVarDef AmbienceBasicEnabled = CVarDef.Create("ambience.basic_enabled", true, CVar.ARCHIVE | CVar.CLIENTONLY); /// /// How long we'll wait until re-sampling nearby objects for ambience. /// public static readonly CVarDef AmbientCooldown = CVarDef.Create("ambience.cooldown", 0.5f, CVar.REPLICATED | CVar.SERVER); public static readonly CVarDef AmbientRange = CVarDef.Create("ambience.range", 5f, CVar.REPLICATED | CVar.SERVER); public static readonly CVarDef MaxAmbientSources = CVarDef.Create("ambience.max_sounds", 6, CVar.REPLICATED | CVar.SERVER); /* * Status */ public static readonly CVarDef StatusMoMMIUrl = CVarDef.Create("status.mommiurl", "", CVar.SERVERONLY); public static readonly CVarDef StatusMoMMIPassword = CVarDef.Create("status.mommipassword", "", CVar.SERVERONLY); /* * Game */ /// /// Controls if the game should run station events /// public static readonly CVarDef EventsEnabled = CVarDef.Create("events.enabled", true, CVar.ARCHIVE | CVar.SERVERONLY); /// /// 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", false, 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", "suspicion", 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", "sandbox", 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 the maximum number of character slots a player is allowed to have. /// public static readonly CVarDef GameMaxCharacterSlots = CVarDef.Create("game.maxcharacterslots", 10, 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", "saltern", CVar.SERVERONLY); /// /// Controls if the game should obey map criteria or not. Overriden if a map vote or similar occurs. /// public static readonly CVarDef GameMapForced = CVarDef.Create("game.mapforced", false, CVar.SERVERONLY); /// /// Whether a random position offset will be applied to the station on roundstart. /// public static readonly CVarDef StationOffset = CVarDef.Create("game.station_offset", true); /// /// When the default blueprint is loaded what is the maximum amount it can be offset from 0,0. /// Does nothing without as true. /// public static readonly CVarDef MaxStationOffset = CVarDef.Create("game.maxstationoffset", 1000.0f); /// /// Whether a random rotation will be applied to the station on roundstart. /// public static readonly CVarDef StationRotation = CVarDef.Create("game.station_rotation", true); /// /// 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 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 /* * Discord */ public static readonly CVarDef DiscordAHelpWebhook = CVarDef.Create("discord.ahelp_webhook", string.Empty, CVar.SERVERONLY); /* * Suspicion */ public static readonly CVarDef SuspicionMinPlayers = CVarDef.Create("suspicion.min_players", 5); public static readonly CVarDef SuspicionMinTraitors = CVarDef.Create("suspicion.min_traitors", 2); public static readonly CVarDef SuspicionPlayersPerTraitor = CVarDef.Create("suspicion.players_per_traitor", 5); public static readonly CVarDef SuspicionStartingBalance = CVarDef.Create("suspicion.starting_balance", 20); public static readonly CVarDef SuspicionMaxTimeSeconds = CVarDef.Create("suspicion.max_time_seconds", 300); /* * Traitor */ public static readonly CVarDef TraitorMinPlayers = CVarDef.Create("traitor.min_players", 5); public static readonly CVarDef TraitorMaxTraitors = CVarDef.Create("traitor.max_traitors", 7); public static readonly CVarDef TraitorPlayersPerTraitor = CVarDef.Create("traitor.players_per_traitor", 5); public static readonly CVarDef TraitorCodewordCount = CVarDef.Create("traitor.codeword_count", 4); public static readonly CVarDef TraitorStartingBalance = CVarDef.Create("traitor.starting_balance", 20); public static readonly CVarDef TraitorMaxDifficulty = CVarDef.Create("traitor.max_difficulty", 5); public static readonly CVarDef TraitorMaxPicks = CVarDef.Create("traitor.max_picks", 20); /* * TraitorDeathMatch */ public static readonly CVarDef TraitorDeathMatchStartingBalance = CVarDef.Create("traitordm.starting_balance", 20); /* * Console */ public static readonly CVarDef ConsoleLoginLocal = CVarDef.Create("console.loginlocal", true, CVar.ARCHIVE | CVar.SERVERONLY); /* * Database stuff */ public static readonly CVarDef DatabaseEngine = CVarDef.Create("database.engine", "sqlite", CVar.SERVERONLY); public static readonly CVarDef DatabaseSqliteDbPath = CVarDef.Create("database.sqlite_dbpath", "preferences.db", CVar.SERVERONLY); public static readonly CVarDef DatabasePgHost = CVarDef.Create("database.pg_host", "localhost", CVar.SERVERONLY); public static readonly CVarDef DatabasePgPort = CVarDef.Create("database.pg_port", 5432, CVar.SERVERONLY); public static readonly CVarDef DatabasePgDatabase = CVarDef.Create("database.pg_database", "ss14", CVar.SERVERONLY); public static readonly CVarDef DatabasePgUsername = CVarDef.Create("database.pg_username", "", CVar.SERVERONLY); public static readonly CVarDef DatabasePgPassword = CVarDef.Create("database.pg_password", "", CVar.SERVERONLY); // Basically only exists for integration tests to avoid race conditions. public static readonly CVarDef DatabaseSynchronous = CVarDef.Create("database.sync", false, CVar.SERVERONLY); /* * Outline */ public static readonly CVarDef OutlineEnabled = CVarDef.Create("outline.enabled", true, CVar.CLIENTONLY); /* * Parallax */ public static readonly CVarDef ParallaxEnabled = CVarDef.Create("parallax.enabled", true, CVar.CLIENTONLY); public static readonly CVarDef ParallaxDebug = CVarDef.Create("parallax.debug", false, CVar.CLIENTONLY); /* * Physics */ /// /// When a mob is walking should its X / Y movement be relative to its parent (true) or the map (false). /// public static readonly CVarDef RelativeMovement = CVarDef.Create("physics.relative_movement", true, CVar.ARCHIVE | CVar.REPLICATED); public static readonly CVarDef TileFrictionModifier = CVarDef.Create("physics.tile_friction", 40.0f); public static readonly CVarDef StopSpeed = CVarDef.Create("physics.stop_speed", 0.1f); /// /// Whether mobs can push objects like lockers. /// /// /// Technically client doesn't need to know about it but this may prevent a bug in the distant future so it stays. /// public static readonly CVarDef MobPushing = CVarDef.Create("physics.mob_pushing", false, CVar.REPLICATED); /* * Lobby music */ public static readonly CVarDef LobbyMusicEnabled = CVarDef.Create("ambience.lobbymusicenabled", true, CVar.ARCHIVE | CVar.CLIENTONLY); /* * HUD */ public static readonly CVarDef HudTheme = CVarDef.Create("hud.theme", 0, CVar.ARCHIVE | CVar.CLIENTONLY); public static readonly CVarDef HudHeldItemShow = CVarDef.Create("hud.held_item_show", true, CVar.ARCHIVE | CVar.CLIENTONLY); public static readonly CVarDef HudHeldItemOffset = CVarDef.Create("hud.held_item_offset", 28f, CVar.ARCHIVE | CVar.CLIENTONLY); public static readonly CVarDef HudFpsCounterVisible = CVarDef.Create("hud.fps_counter_visible", false, CVar.CLIENTONLY | CVar.ARCHIVE); /* * NPCs */ public static readonly CVarDef NPCMaxUpdates = CVarDef.Create("npc.max_updates", 64); public static readonly CVarDef NPCEnabled = CVarDef.Create("npc.enabled", true); /* * Net */ public static readonly CVarDef NetAtmosDebugOverlayTickRate = CVarDef.Create("net.atmosdbgoverlaytickrate", 3.0f); public static readonly CVarDef NetGasOverlayTickRate = CVarDef.Create("net.gasoverlaytickrate", 3.0f); public static readonly CVarDef GasOverlayThresholds = CVarDef.Create("net.gasoverlaythresholds", 20); /* * Admin stuff */ public static readonly CVarDef AdminAnnounceLogin = CVarDef.Create("admin.announce_login", true, CVar.SERVERONLY); public static readonly CVarDef AdminAnnounceLogout = CVarDef.Create("admin.announce_logout", true, CVar.SERVERONLY); /* * Admin logs */ /// /// Controls if admin logs are enabled. Highly recommended to shut this off for development. /// public static readonly CVarDef AdminLogsEnabled = CVarDef.Create("adminlogs.enabled", true, CVar.SERVERONLY); public static readonly CVarDef AdminLogsQueueSendDelay = CVarDef.Create("adminlogs.queue_send_delay_seconds", 5f, CVar.SERVERONLY); public static readonly CVarDef AdminLogsQueueMax = CVarDef.Create("adminlogs.queue_max", 5000, CVar.SERVERONLY); public static readonly CVarDef AdminLogsPreRoundQueueMax = CVarDef.Create("adminlogs.pre_round_queue_max", 5000, CVar.SERVERONLY); // How many logs to send to the client at once public static readonly CVarDef AdminLogsClientBatchSize = CVarDef.Create("adminlogs.client_batch_size", 1000, CVar.SERVERONLY); /* * Atmos */ /// /// Whether gas differences will move entities. /// public static readonly CVarDef SpaceWind = CVarDef.Create("atmos.space_wind", true, CVar.SERVERONLY); /// /// Whether monstermos tile equalization is enabled. /// public static readonly CVarDef MonstermosEqualization = CVarDef.Create("atmos.monstermos_equalization", true, CVar.SERVERONLY); /// /// Whether monstermos explosive depressurization is enabled. /// Needs to be enabled to work. /// public static readonly CVarDef MonstermosDepressurization = CVarDef.Create("atmos.monstermos_depressurization", true, CVar.SERVERONLY); /// /// Whether monstermos explosive depressurization will rip tiles.. /// Needs and to be enabled to work. /// public static readonly CVarDef MonstermosRipTiles = CVarDef.Create("atmos.monstermos_rip_tiles", true, CVar.SERVERONLY); /// /// Whether explosive depressurization will cause the grid to gain an impulse. /// Needs and to be enabled to work. /// public static readonly CVarDef AtmosGridImpulse = CVarDef.Create("atmos.grid_impulse", false, CVar.SERVERONLY); /// /// Whether atmos superconduction is enabled. /// /// Disabled by default, superconduction is awful. public static readonly CVarDef Superconduction = CVarDef.Create("atmos.superconduction", false, CVar.SERVERONLY); /// /// Whether excited groups will be processed and created. /// public static readonly CVarDef ExcitedGroups = CVarDef.Create("atmos.excited_groups", true, CVar.SERVERONLY); /// /// Whether all tiles in an excited group will clear themselves once being exposed to space. /// Similar to , without none of the tile ripping or /// things being thrown around very violently. /// Needs to be enabled to work. /// public static readonly CVarDef ExcitedGroupsSpaceIsAllConsuming = CVarDef.Create("atmos.excited_groups_space_is_all_consuming", false, CVar.SERVERONLY); /// /// Maximum time in milliseconds that atmos can take processing. /// public static readonly CVarDef AtmosMaxProcessTime = CVarDef.Create("atmos.max_process_time", 3f, CVar.SERVERONLY); /// /// Atmos tickrate in TPS. Atmos processing will happen every 1/TPS seconds. /// public static readonly CVarDef AtmosTickRate = CVarDef.Create("atmos.tickrate", 15f, CVar.SERVERONLY); /* * MIDI instruments */ public static readonly CVarDef MaxMidiEventsPerSecond = CVarDef.Create("midi.max_events_per_second", 1000, CVar.REPLICATED | CVar.SERVER); public static readonly CVarDef MaxMidiEventsPerBatch = CVarDef.Create("midi.max_events_per_batch", 60, CVar.REPLICATED | CVar.SERVER); public static readonly CVarDef MaxMidiBatchesDropped = CVarDef.Create("midi.max_batches_dropped", 1, CVar.SERVERONLY); public static readonly CVarDef MaxMidiLaggedBatches = CVarDef.Create("midi.max_lagged_batches", 8, CVar.SERVERONLY); /* * Holidays */ public static readonly CVarDef HolidaysEnabled = CVarDef.Create("holidays.enabled", true, CVar.SERVERONLY); /* * Branding stuff */ public static readonly CVarDef BrandingSteam = CVarDef.Create("branding.steam", false, CVar.CLIENTONLY); /* * OOC */ public static readonly CVarDef OocEnabled = CVarDef.Create("ooc.enabled", true, CVar.NOTIFY); public static readonly CVarDef AdminOocEnabled = CVarDef.Create("ooc.enabled_admin", true, CVar.NOTIFY); /* * LOOC */ public static readonly CVarDef LoocEnabled = CVarDef.Create("looc.enabled", true, CVar.NOTIFY); public static readonly CVarDef AdminLoocEnabled = CVarDef.Create("looc.enabled_admin", true, CVar.NOTIFY); /* * Entity Menu Grouping Types */ public static readonly CVarDef EntityMenuGroupingType = CVarDef.Create("entity_menu", 0, CVar.CLIENTONLY); /* * Whitelist */ /// /// Controls whether the server will deny any players that are not whitelisted in the DB. /// public static readonly CVarDef WhitelistEnabled = CVarDef.Create("whitelist.enabled", false, CVar.SERVERONLY); /* * VOTE */ /// /// Allows enabling/disabling player-started votes for ultimate authority /// public static readonly CVarDef VoteEnabled = CVarDef.Create("vote.enabled", true, CVar.SERVERONLY); /// /// See vote.enabled, but specific to restart votes /// public static readonly CVarDef VoteRestartEnabled = CVarDef.Create("vote.restart_enabled", true, CVar.SERVERONLY); /// /// See vote.enabled, but specific to preset votes /// public static readonly CVarDef VotePresetEnabled = CVarDef.Create("vote.preset_enabled", true, CVar.SERVERONLY); /// /// See vote.enabled, but specific to map votes /// public static readonly CVarDef VoteMapEnabled = CVarDef.Create("vote.map_enabled", true, CVar.SERVERONLY); /// /// The required ratio of the server that must agree for a restart round vote to go through. /// public static readonly CVarDef VoteRestartRequiredRatio = CVarDef.Create("vote.restart_required_ratio", 0.8f, CVar.SERVERONLY); /// /// The delay which two votes of the same type are allowed to be made by separate people, in seconds. /// public static readonly CVarDef VoteSameTypeTimeout = CVarDef.Create("vote.same_type_timeout", 240f, CVar.SERVERONLY); /// /// Sets the duration of the map vote timer. /// public static readonly CVarDef VoteTimerMap = CVarDef.Create("vote.timermap", 90, CVar.SERVERONLY); /// /// Sets the duration of the restart vote timer. /// public static readonly CVarDef VoteTimerRestart = CVarDef.Create("vote.timerrestart", 30, CVar.SERVERONLY); /// /// Sets the duration of the gamemode/preset vote timer. /// public static readonly CVarDef VoteTimerPreset = CVarDef.Create("vote.timerpreset", 30, CVar.SERVERONLY); /// /// Sets the duration of the map vote timer when ALONE. /// public static readonly CVarDef VoteTimerAlone = CVarDef.Create("vote.timeralone", 10, CVar.SERVERONLY); /* * BAN */ public static readonly CVarDef BanHardwareIds = CVarDef.Create("ban.hardware_ids", true, CVar.SERVERONLY); /* * Shuttles */ // Once cruising actually gets implemented I'd likely drop this speed to 3 maybe. public static readonly CVarDef ShuttleDockSpeedCap = CVarDef.Create("shuttle.dock_speed_cap", 5f, CVar.SERVERONLY); /* * VIEWPORT */ public static readonly CVarDef ViewportStretch = CVarDef.Create("viewport.stretch", true, CVar.CLIENTONLY | CVar.ARCHIVE); public static readonly CVarDef ViewportFixedScaleFactor = CVarDef.Create("viewport.fixed_scale_factor", 2, CVar.CLIENTONLY | CVar.ARCHIVE); // This default is basically specifically chosen so fullscreen/maximized 1080p hits a 2x snap and does NN. public static readonly CVarDef ViewportSnapToleranceMargin = CVarDef.Create("viewport.snap_tolerance_margin", 64, CVar.CLIENTONLY | CVar.ARCHIVE); public static readonly CVarDef ViewportSnapToleranceClip = CVarDef.Create("viewport.snap_tolerance_clip", 32, CVar.CLIENTONLY | CVar.ARCHIVE); public static readonly CVarDef ViewportScaleRender = CVarDef.Create("viewport.scale_render", true, CVar.CLIENTONLY | CVar.ARCHIVE); /* * CHAT */ public static readonly CVarDef ChatMaxMessageLength = CVarDef.Create("chat.max_message_length", 1000, CVar.SERVER | CVar.REPLICATED); public static readonly CVarDef ChatSanitizerEnabled = CVarDef.Create("chat.chat_sanitizer_enabled", true, CVar.SERVERONLY); /* * AFK */ /// /// How long a client can go without any input before being considered AFK. /// public static readonly CVarDef AfkTime = CVarDef.Create("afk.time", 60f, CVar.SERVERONLY); /* * IC */ /// /// Restricts IC character names to alphanumeric chars. /// public static readonly CVarDef RestrictedNames = CVarDef.Create("ic.restricted_names", true, CVar.SERVER | CVar.REPLICATED); /* * Salvage */ /// /// Forced salvage map prototype name (if empty, randomly selected) /// public static readonly CVarDef SalvageForced = CVarDef.Create("salvage.forced", "", CVar.SERVERONLY); /* * Rules */ /// /// Time that players have to wait before rules can be accepted. /// public static readonly CVarDef RulesWaitTime = CVarDef.Create("rules.time", 45f, CVar.SERVER | CVar.REPLICATED); /* * Autogeneration */ public static readonly CVarDef DestinationFile = CVarDef.Create("autogen.destination_file", "", CVar.SERVER | CVar.SERVERONLY); } }