using Robust.Shared; using Robust.Shared.Configuration; namespace Content.Shared.CCVar { // ReSharper disable once InconsistentNaming [CVarDefs] public sealed class CCVars : CVars { /* * Status */ public static readonly CVarDef StatusMoMMIUrl = CVarDef.Create("status.mommiurl", "", CVar.SERVERONLY); public static readonly CVarDef StatusMoMMIPassword = CVarDef.Create("status.mommipassword", "", CVar.SERVERONLY); /* * Game */ public static readonly CVarDef EventsEnabled = CVarDef.Create("events.enabled", false, CVar.ARCHIVE | CVar.SERVERONLY); public static readonly CVarDef GameDummyTicker = CVarDef.Create("game.dummyticker", false, CVar.ARCHIVE | CVar.SERVERONLY); public static readonly CVarDef GameLobbyEnabled = CVarDef.Create("game.lobbyenabled", false, CVar.ARCHIVE); public static readonly CVarDef GameLobbyDuration = CVarDef.Create("game.lobbyduration", 60, CVar.ARCHIVE); public static readonly CVarDef GameDisallowLateJoins = CVarDef.Create("game.disallowlatejoins", false, CVar.ARCHIVE | CVar.SERVERONLY); public static readonly CVarDef GameLobbyDefaultPreset = CVarDef.Create("game.defaultpreset", "Suspicion", CVar.ARCHIVE); public static readonly CVarDef GameLobbyFallbackEnabled = CVarDef.Create("game.fallbackenabled", true, CVar.ARCHIVE); public static readonly CVarDef GameLobbyFallbackPreset = CVarDef.Create("game.fallbackpreset", "Sandbox", CVar.ARCHIVE); public static readonly CVarDef GameLobbyEnableWin = CVarDef.Create("game.enablewin", true, CVar.ARCHIVE); public static readonly CVarDef GameMaxCharacterSlots = CVarDef.Create("game.maxcharacterslots", 10, CVar.ARCHIVE | CVar.SERVERONLY); public static readonly CVarDef GameMap = CVarDef.Create("game.map", "Maps/saltern.yml", 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); /// /// 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); /* * 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", 4); 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", 4); 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", true, CVar.REPLICATED); /* * Ambience */ public static readonly CVarDef AmbienceBasicEnabled = CVarDef.Create("ambience.basicenabled", true, CVar.ARCHIVE | CVar.CLIENTONLY); /* * 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); /* * AI */ public static readonly CVarDef AIMaxUpdates = CVarDef.Create("ai.maxupdates", 64); /* * 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); /* * Atmos */ /// /// Whether gas differences will move entities. /// public static readonly CVarDef SpaceWind = CVarDef.Create("atmos.space_wind", true, CVar.SERVERONLY); /// /// The sound that plays when space wind occurs. /// public static readonly CVarDef SpaceWindSound = CVarDef.Create("atmos.space_wind_sound", "/Audio/Effects/space_wind.ogg", 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", 5f, CVar.SERVERONLY); /// /// Atmos tickrate in TPS. Atmos processing will happen every 1/TPS seconds. /// public static readonly CVarDef AtmosTickRate = CVarDef.Create("atmos.tickrate", 26f, 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); /* * Context Menu Grouping Types */ public static readonly CVarDef ContextMenuGroupingType = CVarDef.Create("context_menu", 0, CVar.CLIENTONLY); /* * VOTE */ /// /// 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); /* * BAN */ public static readonly CVarDef BanHardwareIds = CVarDef.Create("ban.hardware_ids", false, 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); public static readonly CVarDef ViewportSnapToleranceClip = CVarDef.Create("viewport.snap_tolerance_clip", 32, CVar.CLIENTONLY); 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); /* * 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); } }