From fd473554e41ff96a7550dc148397228121233f44 Mon Sep 17 00:00:00 2001 From: ZypherusKhan <188088240+ZypherusKhan@users.noreply.github.com> Date: Wed, 22 Apr 2026 00:02:01 +0530 Subject: [PATCH] Organize Strings (#591) * Fix part 1 * Fix part 2 --- Main.cs | 4 +- Patches/ClientPatch.cs | 4 +- Patches/PlayerJoinAndLeftPatch.cs | 2 +- Resources/Lang/en_US.jsonc | 551 +++++++++++------------------- 4 files changed, 196 insertions(+), 365 deletions(-) diff --git a/Main.cs b/Main.cs index b8bbcf254..fbfff8838 100644 --- a/Main.cs +++ b/Main.cs @@ -239,7 +239,7 @@ public class Main : BasePlugin public static ConfigEntry BetaBuildUrl { get; private set; } public static ConfigEntry LastKillCooldown { get; private set; } public static ConfigEntry LastShapeshifterCooldown { get; private set; } - public static ConfigEntry AckdPP { get; set; } + public static ConfigEntry AckdPrivacyPolicy { get; set; } public static IReadOnlyList AllPlayerControls => EnumeratePlayerControls().ToArray(); public static IReadOnlyList AllAlivePlayerControls => EnumerateAlivePlayerControls().ToArray(); @@ -364,7 +364,7 @@ public class Main : BasePlugin MessageWait = Config.Bind("Other", "MessageWait", 0); LastKillCooldown = Config.Bind("Other", "LastKillCooldown", (float)30); LastShapeshifterCooldown = Config.Bind("Other", "LastShapeshifterCooldown", (float)30); - AckdPP = Config.Bind("Other", "AckdPP", false); + AckdPrivacyPolicy = Config.Bind("Other", "AckdPrivacyPolicy", false); HasArgumentException = false; diff --git a/Patches/ClientPatch.cs b/Patches/ClientPatch.cs index 3325eab74..0b5885950 100644 --- a/Patches/ClientPatch.cs +++ b/Patches/ClientPatch.cs @@ -87,9 +87,9 @@ internal static class RunLoginPatch { if (DebugModeManager.AmDebugger) canOnline = true; - if (!Main.AckdPP.Value) + if (!Main.AckdPrivacyPolicy.Value) { - ModUpdater.ShowPopupWithTwoButtons(GetString("PP"), GetString("Yes"), GetString("MainMenu.ExitGameButton"), () => Main.AckdPP.Value = true, Application.Quit); + ModUpdater.ShowPopupWithTwoButtons(GetString("PP"), GetString("Yes"), GetString("MainMenu.ExitGameButton"), () => Main.AckdPrivacyPolicy.Value = true, Application.Quit); return; } diff --git a/Patches/PlayerJoinAndLeftPatch.cs b/Patches/PlayerJoinAndLeftPatch.cs index 8c4d59e1e..b1d6450d9 100644 --- a/Patches/PlayerJoinAndLeftPatch.cs +++ b/Patches/PlayerJoinAndLeftPatch.cs @@ -509,7 +509,7 @@ internal static class OnPlayerJoinedPatch if (AmongUsClient.Instance.AmHost && client.PlatformData.Platform is Platforms.Android or Platforms.IPhone && Options.KickAndroidPlayer.GetBool()) { AmongUsClient.Instance.KickPlayer(client.Id, false); - string msg = string.Format(GetString("KickAndriodPlayer"), client.PlayerName); + string msg = string.Format(GetString("KickMobilePlayer"), client.PlayerName); Logger.SendInGame(msg, Color.yellow); Logger.Info(msg, "Android Kick"); } diff --git a/Resources/Lang/en_US.jsonc b/Resources/Lang/en_US.jsonc index 5c423855f..64ffe900b 100644 --- a/Resources/Lang/en_US.jsonc +++ b/Resources/Lang/en_US.jsonc @@ -27,10 +27,7 @@ "Server": "<#00ffa5>Server: {0}", "VersionMismatch": "{0} has a different version of the mod installed", "ModMismatch": "{0} has a different mod installed that isn't compatible with EHR <#ffff00>⚠", - "PP": "Have you read and agree to the Privacy Policy available at the bottom of the README in the repository?\\nYou must accept it to continue.", - "Kick": "Kick", - "Ban": "Ban", - "TempBan": "Ban For This Session Only", + "PrivacyPolicy": "Have you read and agree to the Privacy Policy available at the bottom of the README in the repository?\\nYou must accept it to continue.", "Yes": "Yes", "No": "No", "None": "None", @@ -69,8 +66,6 @@ "Preset_20": "Preset 20", "TabInfoTip": "Tip: Hold SHIFT to adjust number values by 5 or CTRL to adjust by 10! Switch game modes using the arrow button above this message!", "Alignments": "Alignments", - "Crewmate": "Crewmate", - "Impostor": "Impostor", "Neutral": "Neutral", "Coven": "Coven", "Madmate": "Madmate", @@ -223,22 +218,6 @@ "Prefix.Watcher": "Watcher", "Prefix.Workhorse": "Workhorse", "Prefix.Youtuber": "YouTuber", - /* ============================== - Host Suffixes - ============================== */ - "SuffixMode": "Suffix", - "SuffixMode.AutoHost": "Auto-Host", - "SuffixMode.DoNotKillMe": "Don't kill me", - "SuffixMode.NoAndroidPlz": "No phones", - "SuffixMode.None": "None", - "SuffixMode.OriginalName": "Original Name", - "SuffixMode.Recording": "Recording", - "SuffixMode.RoomHost": "Room Host", - "SuffixMode.Streaming": "Streaming", - "SuffixMode.Version": "Version", - "SuffixModeText.AutoHost": "Auto-hosting", - "SuffixModeText.DoNotKillMe": "Don't kill me", - "SuffixModeText.NoAndroidPlz": "No phones please", /* ============================== TITLES ============================== */ @@ -247,7 +226,6 @@ "AnagramTitle": "<#888888>➡ ANAGRAM ⬅", "BaitAliveTitle": "★[ Message about Bait ]★", "CleanserTitle": "CLEANSER", - "CompletedAchievementsTitle": "<#FAD101>COMPLETED ACHIEVEMENTS", "DoomsayerGuessCountTitle": "[ ★ Doomsayer ★ ]", "EraserEraseMsgTitle": "★[ Eraser ]★", "EveryoneReadyTitle": "<#00ff00>Everyone is ready!", @@ -264,9 +242,6 @@ "MediumTitle": "[★ Voice of the Underworld ★]", "MeetingManagerMessageTitle": "★ Meeting Management ★", "MenuTitle.AFKDetection": "★ AFK Detection ★", - "MenuTitle.AGMR.RandomGroup": "Random Group {index}", - "MenuTitle.AutoFactionMinMaxSettings": "Auto Team Sizes", - "MenuTitle.AutoGMRotation": "Automatic Game Mode Rotation", "MenuTitle.CTA": "★ Custom Team Assignment ★", "MenuTitle.CrewAdvancedGameEndChecking": "Advanced Game End Checking", "MenuTitle.Disable": "★ Disable ★", @@ -568,9 +543,11 @@ "CoronerNoTrack": "Nothing to track", "CoronerNotifyKiller": "Notify Killer about being Tracked", "CoronerTrackRecorded": "Track recorded", + "Crewmate": "Crewmate", "CrewmateEHR": "Crewmate", "CrewmateEHRInfo": "Do your tasks", "CrewmateEHRInfoLong": "(Crewmates):\\nAs the Crewmate, your goal is quite simple. Find and exile the Impostors. Crewmates win by getting rid of all killers or by finishing all their tasks.", + "AbilityButtonText.Crewmate": "Haunt", "Crusader": "Crusader", "CrusaderInfo": "Kill a player's attacker", "CrusaderInfoLong": "(Crewmates):\\nAs the Crusader, use your kill button to crusade a player. If that player gets attacked, you'll kill the attacker.", @@ -649,9 +626,13 @@ "DeputyHandcuffText": "Handcuff", "DeputyHandcuffedPlayer": "Handcuffed target", "DeputyInvalidTarget": "Target cannot be handcuffed", + "Detective": "Detective", + "DetectiveSuspectLimit": "Suspects Per Case", "DetectiveEHR": "Detective", "DetectiveEHRInfo": "Gather Info, Solve Murders", "DetectiveEHRInfoLong": "(Crewmates):\\nAs the Detective, you can write down notes about each crime scene and interrogate suspects.\n\nThis role currently does not work due to a basis reset issue.", + "AbilityButtonText.Detective": "Notes", + "SecondaryAbilityButtonText.Detective": "Interrogate", "Detour": "Detour", "DetourInfo": "Pass Kills Onto Nearest Player", "DetourInfoLong": "(Crewmate):\\nAs the Detour, all kill button related actions on you will be blocked and instead happen on the closest player to you.", @@ -721,9 +702,11 @@ "Electric": "Electric", "ElectricInfo": "Shock Players", "ElectricInfoLong": "(Crewmates):\\nAs the Electric, when you complete a task, a random killer gets frozen for a few seconds.", + "Engineer": "Engineer", "EngineerEHR": "Engineer", "EngineerEHRInfo": "Use the vents to catch the Impostors", "EngineerEHRInfoLong": "(Crewmates):\\nAs the Engineer, you may access the vents while comms are not sabotaged. Vents are disabled when they are sabotaged.", + "AbilityButtonText.Engineer": "Vent", "Enigma": "Enigma", "EnigmaInfo": "Get Clues about Killers", "EnigmaInfoLong": "(Crewmates):\\nAs the Enigma, you get a random clue about the killer each meeting. Depending on the setting, you may have to report the body to receive a clue. The more tasks you complete the preciser the clues get.\\n\\nLight colors: Red, Pink, Orange, Yellow, White, Cyan, Lime, Rose, Banana, Coral\\nDark colors: Blue, Green, Black, Purple, Brown, Maroon, Gray, Tan", @@ -904,13 +887,14 @@ "GrenadierSkillMaxOfUsage": "(Initial) Max number of Grenades", "GrenadierSkillStop": "Ability expired, {0} uses remain", "GrenadierVentButtonText": "Flash", + "GuardianAngel": "Guardian Angel", "GuardianAngelEHR": "Guardian Angel", "GuardianAngelEHRInfo": "Protect the crewmates from the Impostors", "GuardianAngelEHRInfoLong": "(Crewmates):\\nAs the Guardian Angel, you spawn as a ghost and must do your job by protecting crewmates from the Impostors.", + "AbilityButtonText.GuardianAngel": "Protect", "Guardian": "Guardian", "GuardianInfo": "Complete your tasks to become immortal", "GuardianInfoLong": "(Crewmates):\\nAs the Guardian, you become immortal on task completion. You can be guessed in meetings, though.", - "GuardianAngel": "Guardian Angel", "Hacker": "Hacker", "HackerInfo": "Watch Admin Table from anywhere", "HackerInfoLong": "(Crewmates):\\nThis role allows you to see the admin map from anywhere, but is different for modded clients and vanilla clients.\\n\\nAs a modded client, whenever you open the map (and have ability uses left), the admin map will show up. You may be able to move while having the map open depending on settings.\\n\\nAs a vanilla client, you may enter a vent/pet to get a notification saying how many people are in different rooms on the ship (essentially admin map).", @@ -1194,9 +1178,13 @@ "Nightmare": "Nightmare", "NightmareInfo": "You cannot be killed during lights out", "NightmareInfoLong": "(Crewmates):\\nAs the Nightmare, you cannot be killed during the lights out sabotage.", + "Noisemaker": "Noisemaker", "NoisemakerEHR": "Noisemaker", "NoisemakerEHRInfo": "Alert the crewmates when you die", "NoisemakerEHRInfoLong": "(Crewmates):\\nAs the Noisemaker, when you die, all crewmates will get alerted, and an arrow pointing to your body will appear.", + "NoisemakerAlertDuration": "Alert Duration", + "NoisemakerImpostorAlert": "Alert Impostors", + "AbilityButtonText.Noisemaker": "Haunt", "Observer": "Observer", "ObserverInfo": "You can see all shield-animations", "ObserverInfoLong": "(Crewmates):\\nThe Observer can see all shield animations caused by other players after the first meeting.", @@ -1309,9 +1297,11 @@ "ScannerTimeLimit": "Time Limit for invisible players on range to appear", "ScannerWarningInRange": "A Scanner is near you! If you don't get away in {0}s, you will become visible again!", "ScannerNowVisible": "The Scanner has made you visible again!", + "Scientist": "Scientist", "ScientistEHR": "Scientist", "ScientistEHRInfo": "Access portable vitals from anywhere", "ScientistEHRInfoLong": "(Crewmates):\\nAs the Scientist, you have a portable tablet with the crew's vitals on it. Use this any way you'd like. Catching self-reports, extra intel on body age, etc.", + "AbilityButtonText.Scientist": "Vitals", "Scout": "Scout", "ScoutInfo": "Track other players", "ScoutInfoLong": "(Crewmates):\\nAs a Scout, you can vote for a player in the meeting, which will mark their position for you in the game with arrows. In addition, at the beginning of a meeting, you will be shown in which room the player was last if the option is activated.", @@ -1523,9 +1513,17 @@ "Tracefinder": "Tracefinder", "TracefinderInfo": "Locate dead bodies", "TracefinderInfoLong": "(Crewmates):\\nAs the Tracefinder, you have access to vitals much like a Scientist. In addition, you get arrows pointing to dead bodies.", + "Tracker": "Tracker", "TrackerEHR": "Tracker", "TrackerEHRInfo": "Track players", "TrackerEHRInfoLong": "(Crewmates):\\nAs the Tracker, you can track players by placing a tracker on them using your track button.", + "TrackerCanGetArrowColor": "Can See Colored Arrows", + "TrackerCooldown": "Track Cooldown", + "TrackerDelay": "Track Delay", + "TrackerDuration": "Track Duration", + "TrackerHideVote": "Hide Scout Votes", + "TrackerLastRoomMessage": "The evaluation of your tracking showed that the last room in which your target was located was:{0}", + "AbilityButtonText.Tracker": "Track", "Transmitter": "Transmitter", "TransmitterInfo": "TP to nearest player by doing a task", "TransmitterInfoLong": "(Crewmates):\\nAs the Transmitter, when you complete a task, you teleport to the nearest player.", @@ -1980,9 +1978,11 @@ "Hypocrite.NonImpGetsNotifyWhenLowTasks": "Non-Impostors get notified when the <#ff1919>Hypocrite has a low number of tasks remaining", "Hypocrite.NotifyAtXTasksLeft": "Tasks Remaining When Notifying", "HypocriteHasXTasksLeft": "<#ffff44>{0} is the <#ff1919>Hypocrite with <#ff1919>{1} task(s) left!", + "Impostor": "Impostor", "ImpostorEHR": "Impostor", "ImpostorEHRInfo": "Kill & Sabotage", "ImpostorEHRInfoLong": "(Impostors):\\nAs the Impostor, your goal is to kill off the crewmates simply. You can sabotage and vent.", + "AbilityButtonText.Impostor": "Haunt", "Inhibitor": "Inhibitor", "InhibitorInfo": "You cannot kill during sabotages", "InhibitorInfoLong": "(Impostors):\\nAs the Inhibitor, you can only kill when there is not a critical sabotage active (e.g., Lights or Reactor).", @@ -2130,11 +2130,13 @@ "Perplexer": "Perplexer", "PerplexerInfo": "Invert a player's movement controls", "PerplexerInfoLong": "(Impostors):\\nAs the Perplexer, use your shapeshift menu to select a player. That player will get their movement controls inverted for a certain amount of time.", + "Phantom": "Phantom", "PhantomEHR": "Phantom", "PhantomEHRInfo": "Go invisible temporarily", "PhantomEHRInfoLong": "(Impostors):\\nAs the Phantom, you can go invisible for a short period. During this time, you can't be seen by Crewmates.", "PhantomCooldown": "Invisibility Cooldown", "PhantomDuration": "Invisibility Duration", + "AbilityButtonText.Phantom": "Vanish", "Postponer": "Postponer", "PostponerInfo": "Postpone Dead Body Spawning", "PostponerInfoLong": "(Impostors):\\nAs the Postponer, when you kill, no dead body spawns instantly. Instead, it will spawn after a delay (in the same place as the murder).", @@ -2188,9 +2190,11 @@ "ScavengerInfo": "Your kills are unreportable", "ScavengerInfoLong": "(Impostors):\\nScavenger kills do not leave dead bodies behind. To kill someone, you must click your kill button on them, then stay near that person for a few seconds, similar to an Arsonist douse.", "ScavengerKillDuration": "Time After Kill Completes", + "Shapeshifter": "Shapeshifter", "ShapeshifterEHR": "Shapeshifter", "ShapeshifterEHRInfo": "Disguise as crewmates to frame them", "ShapeshifterEHRInfoLong": "(Impostors):\\nAs the Shapeshifter, you have a shapeshifting ability that you may use to frame other crewmates. Just be aware that there is an egg while shifting, and the disguise is temporary.", + "AbilityButtonText.Shapeshifter": "Shift", "Silencer": "Silencer", "SilencerInfo": "Shapeshift to Silence Players", "SilencerInfoLong": "(Impostors):\\nAs the Silencer, when you shift into a target you will blackmail that player, and the blackmailed player cannot speak.\\n\\nSpeaking by the blackmailed player will trigger the confusion command, please do not speak when the blackmailed player sees his icon.", @@ -2292,9 +2296,12 @@ "Vindicator": "Vindicator", "VindicatorInfo": "Use your extra votes to kill everyone", "VindicatorInfoLong": "(Impostors):\\nAs the Vindicator, you have extra votes like a Mayor.", + "Viper": "Viper", "ViperEHR": "Viper", "ViperEHRInfo": "Kill to Dissolve Bodies", "ViperEHRInfoLong": "(Impostors):\\nAs the Viper, the bodies you leave behind slowly dissolve due to your acid, causing them to disappear and become unreportable.\n\nCurrently, roles such as Sheriff may still be able to see dissolved bodies from their POV due to desync.", + "ViperDissolveTime": "Body Dissolve Time", + "AbilityButtonText.Viper": "Acid", "Visionary": "Visionary", "VisionaryInfo": "You see the alignments of the living", "VisionaryInfoLong": "(Impostors):\\nAs the Visionary, you see the teams of players you revealed. You can reveal a player's alignment by selecting them as your shapeshifting target; if you have at least one ability, use left. You gain one ability to use after each kill you make.\\nThe name color of a revealed player will indicate their team (<#8cffff>Crewmate/<#ff1919>Impostor/<#ffab1b>Neutral/<#7b3fbb>Coven).", @@ -3699,7 +3706,6 @@ "GuesserMode": "Guesser Mode", "GuesserNumRestrictions": "Restrict the Number of Guessers on Each Team", "GuesserSuicides": "Guessers Suicide When Trying to Guess Players With <#BAAAE9>Onbound", - "GuessersKeepTheGameGoing": "Crewmate Guessers Keep The Game Going", "Haste": "Haste", "HasteInfo": "Your kill cooldown progresses while in vents", "HasteInfoLong": "(Add-ons):\\nWith the Haste add-on, your kill cooldown continues to go down at all times.", @@ -4032,18 +4038,6 @@ Ability ============================== */ "KillButtonText": "Kill", - "AbilityButtonText.Crewmate": "Haunt", - "AbilityButtonText.Detective": "Notes", - "AbilityButtonText.Engineer": "Vent", - "AbilityButtonText.GuardianAngel": "Protect", - "AbilityButtonText.Impostor": "Haunt", - "AbilityButtonText.Noisemaker": "Haunt", - "AbilityButtonText.Phantom": "Vanish", - "AbilityButtonText.Scientist": "Vitals", - "AbilityButtonText.Shapeshifter": "Shift", - "AbilityButtonText.Tracker": "Track", - "AbilityButtonText.Viper": "Acid", - "SecondaryAbilityButtonText.Detective": "Interrogate", "AbilityChargesWhenFinishedTasks": "Ability Use Gains every 5s when tasks are done", "AbilityCooldown": "Ability Cooldown", "AbilityDuration": "Ability Duration", @@ -4149,7 +4143,6 @@ Gamemodes ============================== */ "Mode": "Mode", - "GameMode": "Game Mode", "GameModeListTitle": "Game Modes", "DoingTasksIsPointlessInThisGameMode": "Look, I see that you're a very diligent crewmate, but....\\nDoing tasks is completely pointless in this game mode", "NToCheckGameModeSettings": "Type /n to view the settings for this game mode", @@ -4407,6 +4400,7 @@ "SeekerVision": "Seeker Vision", "HiderSpeed": "Hider Speed", "HiderVision": "Hider Vision", + "MinutesLeft": "{0} Minutes Left", // Hide And Seek Roles "Agent": "Agent", "AgentInfo": "You're an Impostor among Hiders", @@ -8396,23 +8390,10 @@ "AFKTooMany": "AFK detection was disabled for this round since there are too many AFK players", "AFKWarning": "<#ffff00>Please move to avoid being marked as AFK <#ffffff>({0})", "AAWarning": "<#ffff00>You must move away from this device or you die!", - /* ============================== - Moderator / Admin / VIP - ============================== */ "Admin": "Admin", "AdminTag": "<#ff0000>Admin", "AdminUnmuted": "Admin {0} has unmuted {1}.", - "ApplyAdminList": "Apply Admin List", - "ApplyBanList": "Apply BanList", - "ApplyModeratorList": "Apply Moderator List", - "ApplyVIPList": "Apply VIP List", "AprilFoolsMode": "April Fools Mode", - "AutoKickStart": "Kick players that say start", - "AutoKickStartAsBan": "Block a player after they're kicked", - "AutoKickStartTimes": "Number of warnings before kick", - "AutoKickStopWords": "Kick players who write banned words", - "AutoKickStopWordsAsBan": "Block a player after they're kicked", - "AutoKickStopWordsTimes": "Number of warnings for banned words", /* ============================== Lobby Control ============================== */ @@ -8423,10 +8404,6 @@ "PlayerAlreadyAdmin": "This player is already an admin, nothing was changed.", "PlayerAlreadyMod": "This player is already a moderator, nothing was changed.", "PlayerAlreadyVIP": "This player is already a VIP, nothing was changed.", - "PlayerAutoStart": "Minimum Player Threshold to auto-start", - "PlayerCanSetColor": "Players can use the /color command", - "PlayerCanSetName": "Players can use the /rename command", - "PlayerCanTPInAndOut": "Players can use the /tpin & /tpout command", "PlayerExemptedFromAFK": "{0} was exempted from AFK detection for 1 game", "PlayerExiled": "{0} was ejected...", "PlayerIdList": "List of player IDs: ", @@ -8446,7 +8423,10 @@ "YouMuted": "<#ffff00>You've been muted by {0} for <#ff0000>{1} seconds.", /* ============================== Achievements - ============================== */ + ============================== */ + "AchievementCompletedTitle": "<#FAD101>ACHIEVEMENT UNLOCKED", + "CompletedAchievementsTitle": "<#FAD101>COMPLETED ACHIEVEMENTS", + "IncompleteAchievementsTitle": "<#ff0000>ACHIEVEMENTS TO BE UNLOCKED", "Achievement.ALightInTheShadows": "A Light In The Shadows", "Achievement.ALightInTheShadows.Description": "Walk near the Beacon during the lights sabotage", "Achievement.APerfectTimeToRewindIt": "A Perfect Time To Rewind It", @@ -8695,16 +8675,156 @@ "Achievement.YoureMyFriendNow.Description": "Recruit anyone as Gangster/Jackal/Infection/Virus/Cultist", "Achievement.YoureTooLate": "You're Too Late", "Achievement.YoureTooLate.Description": "As Pestilence, have a killer try to kill you, but unsuccessfully for them", - "AchievementCompletedTitle": "<#FAD101>ACHIEVEMENT UNLOCKED", /* ============================== - Maps + Vanilla Settings + ============================== */ + "TabGroup.VanillaSettings": "Vanilla Settings", + "KillCooldown": "Kill Cooldown", + /* ============================== + System Settings + ============================== */ + "TabGroup.SystemSettings": "System Settings", + "ModLanguage": "Mod Language", + "UseGameLanguage": "Use Game Language", + "Hungarian": "Hungarian", + "Indonesian": "Indonesian", + "Persian": "Persian", + "Polish": "Polish", + "KickLowLevelPlayer": "Kick players whose level is lower than", + "KickBecauseLowLevel": "{0} was kicked because their level was too low", + "KickMobilePlayer": "Kick mobile players", + "KickPlayerFriendCodeNotExist": "Kick players who are not logged in", + "ApplyDenyNameList": "Apply DenyName List", + "ApplyBanList": "Apply BanList", + "ApplyModeratorList": "Apply Moderator List", + "ApplyVIPList": "Apply VIP List", + "ApplyAdminList": "Apply Admin List", + "AutoKickStart": "Kick players that say start", + "AutoKickStartTimes": "Number of warnings before kick", + "AutoKickStartAsBan": "Block a player after they're kicked", + "AutoKickStopWords": "Kick players who write banned words", + "AutoKickStopWordsTimes": "Number of warnings for banned words", + "AutoKickStopWordsAsBan": "Block a player after they're kicked", + "MinWaitAutoStart": "Minutes to wait before auto-starting", + "MaxWaitAutoStart": "Force start when Lobby Timer goes below (in minutes)", + "PlayerAutoStart": "Minimum Player Threshold to auto-start", + "AutoStartTimer": "Initial Countdown for auto-starting", + "AutoPlayAgain": "Auto Re-Enter Lobby after Game End", + "AutoPlayAgainCountdown": "Delay before Auto Re-Entering Lobby", + "AutoGMPollCommandAfterJoin": "Auto Execute /gmpoll After Joining The Lobby", + "AutoGMPollCommandCooldown": "Delay Before Auto Executing /gmpoll (After Joining The Lobby)", + "AutoMPollCommandAfterJoin": "Auto Execute /mpoll After Joining The Lobby", + "AutoMPollCommandCooldown": "Delay Before Auto Executing /mpoll (After Joining The Lobby)", + "AutoDraftStartCommandAfterJoin": "Auto Execute /draftstart After Joining The Lobby", + "AutoDraftStartCommandCooldown": "Delay Before Auto Executing /draftstart (After Joining The Lobby)", + "AutoReadyCheckCommandAfterJoin": "Auto Execute /readycheck After Joining The Lobby", + "AutoReadyCheckCommandCooldown": "Delay Before Auto Executing /readycheck (After Joining The Lobby)", + "KickNotJoinedPlayersRegularly": "Kick players who haven't joined the game every 25s in lobby", + "EnterKeyToStartGame": "Begin the starting countdown by pressing the Enter key", + "LowLoadMode": "Fix Lag", + "DeepLowLoad": "Prioritize Performance", + "DontUpdateDeadPlayers": "Don't Update Dead Players to Improve Performance", + "DumpLogAfterGameEnd": "Dump Log After Each Game End (Recommended)", + "EndWhenPlayerBug": "Force Game End on Critical Errors to Prevent Black Screen", + "RemovePetsAtDeadPlayers": "Remove pets from dead players", + "CheatResponses": "When a cheating player is found", + "OnlyCancel": "Cancel Action Only", + "TempBan": "Ban For This Session Only", + "Ban": "Ban", + "Kick": "Kick", + "NoticeMe": "Notify me", + "NoticeEveryone": "Notify everyone", + "EnableMovementChecking": "Enable EAC Checks for Invalid Movement (against speed hacks) (may cause false positives)", + "EnableEHRRateLimit": "Enable Custom Rate Limit (to prevent hackers from crashing your game)", + "KickOnInvalidRPC": "Kick Players on Invalid RPC (likely caused by other mods or hacks)", + "AutoDisplayKillLog": "Display Kill-log", + "AutoDisplayLastRoles": "Display Last Roles", + "AutoDisplayLastAddOns": "Display Last Add-ons", + "AutoDisplayLastResult": "Auto Display Last Result", + "SuffixMode": "Suffix", + "SuffixMode.AutoHost": "Auto-Host", + "SuffixMode.DoNotKillMe": "Don't kill me", + "SuffixMode.NoAndroidPlz": "No phones", + "SuffixMode.None": "None", + "SuffixMode.OriginalName": "Original Name", + "SuffixMode.Recording": "Recording", + "SuffixMode.RoomHost": "Room Host", + "SuffixMode.Streaming": "Streaming", + "SuffixMode.Version": "Version", + "SuffixModeText.AutoHost": "Auto-hosting", + "SuffixModeText.DoNotKillMe": "Don't kill me", + "SuffixModeText.NoAndroidPlz": "No phones please", + "HideGameSettings": "Hide Game Settings", + "DIYGameSettings": "Enable only custom /n messages", + "PlayerCanSetColor": "Players can use the /color command", + "PlayerCanSetName": "Players can use the /rename command", + "PlayerCanTPInAndOut": "Players can use the /tpin & /tpout command", + "FormatNameMode": "Player Name Mode", + "FormatNameModes.Color": "Color", + "FormatNameModes.None": "Disable", + "FormatNameModes.Snacks": "Random", + "DisableEmojiName": "Disable Emoji in names", + "ChangeNameToRoleInfo": "Show Role Info to Unmodded Clients Round 1", + "ShowLongInfo": "Show Long Role Descriptions instead of Short ones", + "SendRoleDescriptionFirstMeeting": "Show Role Descriptions to Unmodded Clients on First Meeting", + "NoGameEnd": "No Game End", + "AllowConsole": "Console", + "ShowAntiBlackoutWarning": "Show Anti-Blackout Warning When the Ejection Screen is Overridden", + "PostLobbyCodeToEHRDiscordServer": "Post the lobby code to the EHR Website", + "LobbyUpdateInterval": "Always update the lobby info (player count, map, game mode, etc.) on the server at least every", + "StoreCompletedAchievementsOnEHRDatabase": "Store completed achievements on the EHR database (to maintain progress in case of a reinstall or an update)", + "AllCrewRolesHaveVanillaColor": "All <#8cffff>Crewmate roles have <#8cffff>the vanilla Crewmate color <#ffff00>(REQUIRES RESTART)", + "MessageRpcSizeLimit": "Message RPC Size Limit (Higher limit = increased risk of disconnects but fewer message splits - if you never disconnect randomly, up to 15000 can be safe)", + "KickSlowJoiningPlayers": "Kick Players Who Join Slowly To Prevent Disconnects (if they take more than 5 seconds to send their own data, they will be kicked automatically)", + "EnableAutoMessage": "Enable Auto-Message (sends the template with the 'Notification' tag on a given interval in lobby)", + "AutoMessageSendInterval": "The Auto-Message Is Sent Every", + "RoleAssigningAlgorithm": "Role Assigning Algorithm", + "RoleAssigningAlgorithm.Default": "Default", + "RoleAssigningAlgorithm.HashRandom": "HashRandom", + "RoleAssigningAlgorithm.MersenneTwister": "MersenneTwister", + "RoleAssigningAlgorithm.NetRandom": ".NET System.Random", + "RoleAssigningAlgorithm.Xorshift": "Xorshift", + "KPDCamouflageMode": "Camouflage Appearance", + "CamouflageMode.Default": "Default", + "CamouflageMode.Gurge44": "Gurge44", + "CamouflageMode.Host": "Host", + "CamouflageMode.Karpe": "KARPED1EM", + "CamouflageMode.TommyXL": "TommyXL", + "MenuTitle.AutoFactionMinMaxSettings": "Auto Team Sizes", + "EnableAutoFactionMinMaxSettings": "Enable Automatic Team Size Adjustment Based on Player Count", + "AutoFactionMinMaxSettings.PlayerCap": "Minimum Player Threshold for These Settings to Apply (0 = unused)", + "AutoFactionMinMaxSettings.Applied": "[Auto Team Sizes] {0} players (>={1}) = {2} (<#ffff00>NNK: <#ffffff>{3}-{4})", + "FactionLimits.Impostor.Min": "<#00ffa5>Minimum <#ffffff>amount of Impostor Roles", + "FactionLimits.Impostor.Max": "<#00a5ff>Maximum <#ffffff>amount of Impostor Roles", + "FactionLimits.Coven.Min": "<#00ffa5>Minimum <#ffffff>amount of Coven Roles", + "FactionLimits.Coven.Max": "<#00a5ff>Maximum <#ffffff>amount of Coven Roles", + "FactionLimits.Neutral.Min": "<#00ffa5>Minimum <#ffffff>amount of Neutral Roles", + "FactionLimits.Neutral.Max": "<#00a5ff>Maximum <#ffffff>amount of Neutral Roles", + "MinNNKs": "<#00ffa5>Minimum amount of <#ffff00>Non-Killing <#ffab1b>Neutral Roles <#888888>(Benign, Evil, Pariah)", + "MaxNNKs": "<#00a5ff>Maximum amount of <#ffff00>Non-Killing <#ffab1b>Neutral Roles <#888888>(Benign, Evil, Pariah)", + "MenuTitle.GMPoll": "Game Mode Poll", + "GMPoll.Allow": "Show {gm} in /gmpoll choices", + "MPoll.Allow": "Show {m} in /mpoll choices", + "CrewAdvancedGameEndChecking": "Enable Advanced Game End Checking For {role}", + "GuessersKeepTheGameGoing": "Crewmate Guessers Keep The Game Going", + "MenuTitle.AutoGMRotation": "Automatic Game Mode Rotation", + "EnableAutoGMRotation": "Automatically Rotate Game Modes", + "AutoGMRotationSlot": "Game Mode for Game {index} (Slot {index})", + "AGMR.Unused": "Unused/Skipped Slot", + "AGMR.Explicit": "Specified Explicitly", + "AGMR.Random": "Randomly Chosen From Group", + "AGMR.Poll": "Player-Voted (/gmpoll)", + "GameMode": "Game Mode", + "AGMR.Slot.RandomGroupId": "Number/ID of the random group to use for choosing the game mode for this slot/game", + "AGMR.Slot.Count": "How many times should we repeat this?", + "MenuTitle.AGMR.RandomGroup": "Random Group {index}", + "AGMR.RandomGroup.GMChance": "Chance of selecting {gm}", + /* ============================== + Meeting Settings ============================== */ "AddedPolus": "Include Polus", "AddedTheAirship": "Include Airship", "AddedTheSkeld": "Include The Skeld", - /* ============================== - Meeting Settings - ============================== */ "AdditionalEmergencyCooldown": "Additional Emergency Cooldown", "AdditionalEmergencyCooldownThreshold": "Minimum Living Players to be Applied", "AdditionalEmergencyCooldownTime": "Additional Cooldown", @@ -8732,22 +8852,7 @@ ============================== */ "ArrowDelayMax": "Maximum Arrow show-up delay", "ArrowDelayMin": "Minimum Arrow show-up delay", - - /* ============================== - General Settings - ============================== */ - "AutoFactionMinMaxSettings.Applied": "[Auto Team Sizes] {0} players (>={1}) = {2} (<#ffff00>NNK: <#ffffff>{3}-{4})", - "AutoFactionMinMaxSettings.PlayerCap": "Minimum Player Threshold for These Settings to Apply (0 = unused)", - - /* ============================== - General Settings - ============================== */ - "AutoPlayAgainCountdown": "Delay before Auto Re-Entering Lobby", - "AutoReadyCheckCommandAfterJoin": "Auto Execute /readycheck After Joining The Lobby", - "AutoReadyCheckCommandCooldown": "Delay Before Auto Executing /readycheck (After Joining The Lobby)", - "AutoStartTimer": "Initial Countdown for auto-starting", "BKProtectDuration": "Protection Duration", - /* ============================== Meeting Settings ============================== */ @@ -8815,18 +8920,8 @@ ============================== */ "CamerasAndAdmin": "Cameras & Admin", "CamerasDisabledNotify": "Cameras are globally disabled by the host", - - /* ============================== - Camouflage - ============================== */ "CamouflageCooldown": "Camouflage Cooldown", "CamouflageDuration": "Camouflage Duration", - "CamouflageMode.Default": "Default", - "CamouflageMode.Gurge44": "Gurge44", - "CamouflageMode.Host": "Host", - "CamouflageMode.Karpe": "KARPED1EM", - "CamouflageMode.TommyXL": "TommyXL", - /* ============================== Meeting Settings ============================== */ @@ -8950,12 +9045,6 @@ ============================== */ "ChargeInterval": "Charge Percentage Gained Each Second When Kill Cooldown Is Up", "ChargeLossInterval": "Charge Percentage Lost Each Second While Killing", - - /* ============================== - EAC - ============================== */ - "CheatResponses": "When a cheating player is found", - /* ============================== Combos ============================== */ @@ -8994,8 +9083,8 @@ "CommandArgs.AFKExempt.Id": "The player's ID to exempt from AFK detection", "CommandArgs.AddAdmin.Id": "The player's ID to add to the list of admins", "CommandArgs.AddMod.Id": "The player's ID to make a moderator", - "CommandArgs.AddTag.Color": "The color of the tag (format: hex, without the leading # (example: 00ffa5))", "CommandArgs.AddTag.Id": "The player's ID to add a tag to", + "CommandArgs.AddTag.Color": "The color of the tag (format: hex, without the leading # (example: 00ffa5))", "CommandArgs.AddTag.Tag": "The tag to add (you can use HTML tags) (don't forget a separator at the end)", "CommandArgs.AddVIP.Id": "The player's ID to add to the VIP list", "CommandArgs.Answer.Number": "The answer to the question", @@ -9005,7 +9094,6 @@ "CommandArgs.Assume.Number": "The number of votes to assume", "CommandArgs.Ban.Id": "The player's ID to ban or kick", "CommandArgs.Ban.Reason": "The reason for the punishment", - "CommandArgs.CSD.Sound": "The sound to play", "CommandArgs.ChangeRole.Role": "The role to change to", "CommandArgs.ChangeSetting.Name": "The setting's name to change (leave blank to view all settings)", "CommandArgs.ChangeSetting.UnknownValue": "(leave blank to view what to put here)", @@ -9014,15 +9102,16 @@ "CommandArgs.Check.Role": "The role or add-on to check for", "CommandArgs.Choose.Role": "The role to choose", "CommandArgs.Colour.Color": "The color to set (ex. red, blue, yellow)", - "CommandArgs.Combo.Addon": "The name of the add-on in 1 word", - "CommandArgs.Combo.All": "Whether to apply to all presets (all/[blank])", "CommandArgs.Combo.Mode": "add/ban/remove/allow (leave blank to view all combos)", "CommandArgs.Combo.Role": "The name of the main role in 1 word", + "CommandArgs.Combo.Addon": "The name of the add-on in 1 word", + "CommandArgs.Combo.All": "Whether to apply to all presets (all/[blank])", "CommandArgs.Compare.Id1": "The first player's ID to compare", "CommandArgs.Compare.Id2": "The second player's ID to compare", "CommandArgs.ConfirmAuth.UUID": "The unique token provided by the server", "CommandArgs.CopyPreset.SourcePreset": "The preset to copy all settings from", "CommandArgs.CopyPreset.TargetPreset": "The preset to paste all settings to", + "CommandArgs.CSD.Sound": "The sound to play", "CommandArgs.Death.Id": "The player's ID to view the killer of (leave blank for yourself)", "CommandArgs.DeathNote.Name": "The real name to guess. If it's correct, you kill the player with this name.", "CommandArgs.Decree.Number": "0/1/2/3/4/5 (leave blank to view all decrees)", @@ -9052,19 +9141,19 @@ "CommandArgs.Level.Level": "Your new level", "CommandArgs.Medium.Answer": "yes/no", "CommandArgs.MessageWait.Duration": "The duration in seconds", - "CommandArgs.Mute.Duration": "The duration in seconds (leaving blank => 60s)", "CommandArgs.Mute.Id": "The player's ID to mute", + "CommandArgs.Mute.Duration": "The duration in seconds (leaving blank => 60s)", "CommandArgs.Negotiation.Number": "The index of the picked negotiation method (0/1/2/3)", "CommandArgs.Note.Action": "add/remove/clear/view", "CommandArgs.Note.UnknownValue": "The note to add, the index of the note to remove, or blank", "CommandArgs.OS.Chance": "The spawn chance for the role", "CommandArgs.OS.Role": "The role to set the spawn chance for", "CommandArgs.PV.Vote": "A/B/C/D", + "CommandArgs.Poll.Question": "The question to ask. End it with a question mark (?)!", "CommandArgs.Poll.AnswerA": "The first answer", "CommandArgs.Poll.AnswerB": "The second answer", "CommandArgs.Poll.AnswerC": "The third answer (leave blank if not needed)", "CommandArgs.Poll.AnswerD": "The fourth answer (leave blank if not needed)", - "CommandArgs.Poll.Question": "The question to ask. End it with a question mark (?)!", "CommandArgs.PlayerInfo.Id": "The player's ID whose info you want to see (leave blank to show all)", "CommandArgs.QA.Letter": "The letter of the answer (A/B/C)", "CommandArgs.R.Role": "The role to view (leave blank to view all roles)", @@ -9090,7 +9179,7 @@ "CommandArgs.Vote.Id": "The player's ID to vote for", "CommandArgs.Whisper.Ids": "The players' IDs to whisper to, separated by commas (no space)", "CommandArgs.Whisper.Message": "The message to whisper", - "CommandArgs.XOR.Role": "A main role that will never spawn in the same game with the other role", + "CommandArgs.XOR.Role": "A main role that will never spawn in the same game with the other role", // Command Descriptions "CommandDescription.AFKExempt": "Exempt a player from being checked by the AFK detector", "CommandDescription.Achievements": "See which achievements you have unlocked and which you haven't", @@ -9335,17 +9424,8 @@ /* ============================== Polls and Draft ============================== */ - "AGMR.Poll": "Player-Voted (/gmpoll)", - "AGMR.Slot.Count": "How many times should we repeat this?", - "AutoDraftStartCommandAfterJoin": "Auto Execute /draftstart After Joining The Lobby", - "AutoDraftStartCommandCooldown": "Delay Before Auto Executing /draftstart (After Joining The Lobby)", - "AutoGMPollCommandAfterJoin": "Auto Execute /gmpoll After Joining The Lobby", - "AutoGMPollCommandCooldown": "Delay Before Auto Executing /gmpoll (After Joining The Lobby)", "AutoGMRotationStatusText.CooldownTimer": "Jumping to the next game mode on the list in {0} seconds", "AutoGMRotationStatusText.GMPoll": "Player Vote (/gmpoll)", - "AutoMPollCommandAfterJoin": "Auto Execute /mpoll After Joining The Lobby", - "AutoMPollCommandCooldown": "Delay Before Auto Executing /mpoll (After Joining The Lobby)", - "AutoMessageSendInterval": "The Auto-Message Is Sent Every", "DraftAffectedByRoleSpawnChances": "Take Role Spawn Chances Into Account When Picking Draft Choices", "DraftChosen": "You have chosen the {0} role for the next game.\\nYou can still change your choice by typing /draft [number] again.", "DraftMaxRolesPerPlayer": "Max Roles For Each Player To Choose From When Drafting", @@ -9354,11 +9434,8 @@ "DraftStart": "Drafting has started! You now have a chance to pick a role from the list below if you'd like to get one of them for the next game. The roles you get to choose from are:\\n\\n{0}\\n\\nChat commands to use:\\n- Pick role: /draft [number]\\n- View description of role: /dd [number]\\nReplace [number] with the number of the role you want to pick. Example: /draft 4\\nIf you don't pick a role, you get a random one like you normally would.", "DraftTitle": "<#00a5ff>➡ <#00ffa5>Drafting <#00a5ff>⬅", "EveryoneDrafted": "<#00ffa5>✓ <#00ff00>Everyone has drafted their role!", - "GMPoll.Allow": "Show {gm} in /gmpoll choices", "GameModePoll.Question": "Which game mode should we play next?", - "MPoll.Allow": "Show {m} in /mpoll choices", "MapPoll.Question": "Which map should we play next?", - "MenuTitle.GMPoll": "Game Mode Poll", "MenuTitle.MPoll": "Map Poll", "Poll.AlreadyVoted": "You already cast your vote, so it won't be counted.", "Poll.Begin": "You may vote using /pv A/B/C/D", @@ -9484,24 +9561,16 @@ ============================== */ "DGResetMode": "Skin Reset Mode", "DGResetTimer": "If Resetting Skin by Timer, Reset Skin After", - - /* ============================== - General Settings - ============================== */ - "DIYGameSettings": "Enable only custom /n messages", - /* ============================== Meeting Settings ============================== */ "DeactivationAfterMeeting": "After Meeting", - /* ============================== Sabotage Settings ============================== */ "DeadCrewCantSabotage": "Crewmates can't sabotage after they've died", "DeadImpCantSabotage": "Impostors can't sabotage after they've died", "DeadNeutralCantSabotage": "Neutrals can't sabotage after they've died", - /* ============================== Death Reasons ============================== */ @@ -9584,29 +9653,20 @@ "DecontaminationDoorOpenTimeOnPolus": "Decontamination Door Open Time On Polus", "DecontaminationTimeOnMiraHQ": "Decontamination Time On MIRA HQ", "DecontaminationTimeOnPolus": "Decontamination Time On Polus", - /* ============================== Cooldowns and Timers ============================== */ "DecreasedKillCooldown": "Decreased Kill Cooldown", "DefaultShapeshiftCooldown": "Default Shapeshift Cooldown", "DeliverCooldown": "Deliver Cooldown", - - /* ============================== - General Settings - ============================== */ - "DetectiveSuspectLimit": "Suspects Per Case", - /* ============================== Cooldowns and Timers ============================== */ "DevourCooldown": "Devour Cooldown", - /* ============================== Notifications and Messages ============================== */ "DiedR1Warning": "<#ffff00>(Died First in Last Game)", - /* ============================== Task Settings ============================== */ @@ -9649,7 +9709,6 @@ "DisableDevices": "Disable Devices", "DisableDivertPower": "Disable Divert Power Task", "DisableDressMannequin": "Disable Dress Mannequin Task", - "DisableEmojiName": "Disable Emoji in names", "DisableEmptyChute": "Disable Empty Chute Task", "DisableEmptyGarbage": "Disable Empty Garbage Task", "DisableEnterIdCode": "Disable Enter ID Code Task", @@ -9842,7 +9901,6 @@ "InvalidArgs": "Invalid Args", "InvalidArguments": "Invalid Arguments", "InvalidUndeadTarget": "Target cannot be recruited", - "KickOnInvalidRPC": "Kick Players on Invalid RPC (likely caused by other mods or hacks)", "NotAssigned": "-", "NotAssignedInfo": "Error, report to host!!", "RpcAntiBlackOutEndGame": "Because of {0}, an unknown error occurred, game will end to prevent black screen.", @@ -9866,18 +9924,13 @@ General Settings ============================== */ "EnableAFKDetector": "Enable AFK Detector (Also Used To Detect And Fix Black Screens)", - "EnableAutoFactionMinMaxSettings": "Enable Automatic Team Size Adjustment Based on Player Count", - "EnableAutoGMRotation": "Automatically Rotate Game Modes", - "EnableAutoMessage": "Enable Auto-Message (sends the template with the 'Notification' tag on a given interval in lobby)", "EnableCustomSabotages": "Enable Custom Sabotages", "EnableDarkTheme": "Dark Theme for Chat UI", "EnableDebugMode": "Enable Debug Mode", - "EnableEHRRateLimit": "Enable Custom Rate Limit (to prevent hackers from crashing your game)", "EnableExtraAbility": "Enable Extra Ability", "EnableGameTimeLimit": "Enable Game Time Limit (Expired = No One Wins)", "EnableGrabOxygenMaskCustomSabotage": "Enable Grab Oxygen Mask (call by sabotaging comms - to sabotage comms normally, click on the button twice)", "EnableKillerLeftCommand": "Enable use of /gs (formerly /kcount) command", - "EnableMovementChecking": "Enable EAC Checks for Invalid Movement (against speed hacks) (may cause false positives)", "EnableSpurtCharge": "Display The Charge", "EnabledGMWarning": "You have enabled Game Master. This will make you a ghost at the start of every game.", @@ -9913,37 +9966,19 @@ "ExtraKillCooldownOnAirship": "Extra Kill Cooldown on Airship", "ExtraKillCooldownOnFungle": "Extra Kill Cooldown on Fungle", "ExtraKillCooldownOnPolus": "Extra Kill Cooldown on Polus", - - /* ============================== - Meeting Settings - ============================== */ "ExtraVotesPT": "<#00a5ff>(<#00ffff>+<#00ffa5>{0} votes)", - - /* ============================== - General Settings - ============================== */ - "FactionLimits.Coven.Max": "<#00a5ff>Maximum <#ffffff>amount of Coven Roles", - "FactionLimits.Coven.Min": "<#00ffa5>Minimum <#ffffff>amount of Coven Roles", - "FactionLimits.Impostor.Max": "<#00a5ff>Maximum <#ffffff>amount of Impostor Roles", - "FactionLimits.Impostor.Min": "<#00ffa5>Minimum <#ffffff>amount of Impostor Roles", - "FactionLimits.Neutral.Max": "<#00a5ff>Maximum <#ffffff>amount of Neutral Roles", - "FactionLimits.Neutral.Min": "<#00ffa5>Minimum <#ffffff>amount of Neutral Roles", - /* ============================== Task Settings ============================== */ "FakeTask": "Fake Tasks:", - /* ============================== AFK Detector ============================== */ "FixBlackScreenWaitForDead": "Everyone is alive, and the black screen fix requires a ghost, so it will wait until someone dies.", - /* ============================== Cooldowns and Timers ============================== */ "FixFirstKillCooldown": "Reset First Kill Cooldown", - /* ============================== Cooldowns and Timers ============================== */ @@ -10083,22 +10118,14 @@ Meeting Settings ============================== */ "HideDualVotes": "Hide duplicated votes", - - /* ============================== - General Settings - ============================== */ - "HideGameSettings": "Hide Game Settings", - /* ============================== Notifications and Messages ============================== */ "HnSUnloadWarning": "<#ffff00>WARNING:\\nEHR doesn't support vanilla Hide And Seek and will unload if you enable it.\\nYou can use EHR's Custom Hide And Seek game mode with unique roles instead.", - /* ============================== Teams / Alignments ============================== */ "IfSelectedTeamIsDead": "If the selected team is dead, then the winning team is", - /* ============================== General Settings ============================== */ @@ -10107,80 +10134,38 @@ "ImpCanBeLoyal": "Impostors can become Loyal", "ImpCanBeRole": "Impostors can become {role}", "ImpCanFindMarshall": "Reveal to <#ff1919>Impostors", - /* ============================== Meeting Settings ============================== */ "ImpCanGuessImp": "Impostors Can Guess Impostor Roles", - /* ============================== General Settings ============================== */ "ImpCanKillMadmate": "Impostors can kill Madmates", - /* ============================== Meeting Settings ============================== */ "ImpostorsCanGuess": "Impostors can guess", - /* ============================== Teams / Alignments ============================== */ "InVentVisionForTeam": "Vision While In Vent For {team}", - "IncompatibleMod": "Incompatible Mod", "IncompatibleNeutralMode": "If neutral is incompatible, turn into", - - /* ============================== - Achievements - ============================== */ - "IncompleteAchievementsTitle": "<#ff0000>ACHIEVEMENTS TO BE UNLOCKED", - /* ============================== Cooldowns and Timers ============================== */ "IncreasedSpeedDuration": "Increased Speed Duration", "IncreasedVisionDuration": "Increased Vision Duration", - /* ============================== Cooldowns and Timers ============================== */ "KCD": "Kill Cooldown: {0}s", - - /* ============================== - Moderator / Admin / VIP - ============================== */ - "KPDCamouflageMode": "Camouflage Appearance", - "KickAndriodPlayer": "{0} was kicked due to playing on mobile.", - "KickAndroidPlayer": "Kick mobile players", - "KickBecauseDiffrentVersionOrMod": "{0} was kicked because they had a different version of the mod", - "KickBecauseLowLevel": "{0} was kicked because their level was too low", - - /* ============================== - Sabotage Settings - ============================== */ "KickCommandDisabled": "The kick command is currently disabled.", - - /* ============================== - Moderator / Admin / VIP - ============================== */ - "KickLowLevelPlayer": "Kick players whose level is lower than", - "KickNintendoPlayer": "{0} was kicked due to playing on Nintendo Switch.", - "KickNotJoinedPlayersRegularly": "Kick players who haven't joined the game every 25s in lobby", - - /* ============================== - Moderator / Admin / VIP - ============================== */ - "KickPlayStationPlayer": "{0} was kicked due to playing on PlayStation.", - "KickPlayerFriendCodeNotExist": "Kick players who are not logged in", - "KickSlowJoiningPlayers": "Kick Players Who Join Slowly To Prevent Disconnects (if they take more than 5 seconds to send their own data, they will be kicked automatically)", - "KickXboxPlayer": "{0} was kicked due to playing on Xbox.", - /* ============================== Cooldowns and Timers ============================== */ "KillBaitNotify": "You'll self-report in {0}s", - "KillCooldown": "Kill Cooldown", "KillCooldownAfterCleaning": "Kill Cooldown On Clean", "KillCooldownAfterStoneGazing": "Kill Cooldown On Stone Gaze", "KillCooldownNormally": "Kill Cooldown Without Sabotage", @@ -10276,13 +10261,6 @@ ============================== */ "LobbyCloseTimer": "Lobby Closing Timer: {0}", "LobbyTimer": "Lobby closes in {0}m {1}s", - "LobbyUpdateInterval": "Always update the lobby info (player count, map, game mode, etc.) on the server at least every", - - /* ============================== - Moderator / Admin / VIP - ============================== */ - "LowLoadMode": "Fix Lag", - /* ============================== Task Settings ============================== */ @@ -10352,18 +10330,7 @@ "MaxInVentTime": "Max In-Vent Time", "MaxInspectorCheckLimit": "Max inspections per game", "MaxMadmateRoles": "<#00a5ff>Maximum amount of <#ff1919>Madmate Roles", - - /* ============================== - General Settings - ============================== */ - "MaxNNKs": "<#00a5ff>Maximum amount of <#ffff00>Non-Killing <#ffab1b>Neutral Roles <#888888>(Benign, Evil, Pariah)", - - /* ============================== - General Settings - ============================== */ - "MaxWaitAutoStart": "Force start when Lobby Timer goes below (in minutes)", "Maximum": "Max", - /* ============================== Notifications and Messages ============================== */ @@ -10394,7 +10361,6 @@ "Message.LobbyCodeSent": "<#00ffa5>✓ <#00a5ff>The lobby code has been sent to the EHR website. This will help others find EHR lobbies.\\nYou can disable this feature in the settings (System Settings tab).", "Message.LobbyShareFailed": "EHR-Chan does not seem to be online (failed to share lobby)", "Message.LobbyShared": "The lobby has successfully been shared!", - /* ============================== Meeting Settings ============================== */ @@ -10431,7 +10397,6 @@ "Message.YTPlanNotice": "Note: The [YouTuber Plan] is enabled in this lobby, which means the Host can specify their role in the next game to make it easier to get content. In case the Host abuses this feature, please exit the game or report it.\\nCurrent Creator Credentials:", "Message.YTPlanSelectFailed": "You cannot be assigned as {0}.\\nIt may be because you don't have this role enabled, or this role does not support being assigned.", "Message.YTPlanSelected": "In the next game, your role will be {0}", - "MessageRpcSizeLimit": "Message RPC Size Limit (Higher limit = increased risk of disconnects but fewer message splits - if you never disconnect randomly, up to 15000 can be safe)", "MessageTooLong": "Failed to send chat message. The size of the RPC would've exceeded the limit specified in System Settings.", /* ============================== @@ -10439,51 +10404,33 @@ ============================== */ "MinMadmateRoles": "<#00ffa5>Minimum amount of <#ff1919>Madmate Roles", "MinMaxModdedImpCountsSettingsChangedAuto": "<#ffff00>Modded Min/Max Impostors Automatically Set To <#ffffff>{0}\\nBecause you only changed the vanilla setting, which gets overridden by the modded ones.", - "MinNNKs": "<#00ffa5>Minimum amount of <#ffff00>Non-Killing <#ffab1b>Neutral Roles <#888888>(Benign, Evil, Pariah)", "MinPlayersForAirship": "Minimum Players for Airship", "MinPlayersForFungle": "Minimum Players for The Fungle", "MinPlayersForGameStateCommand": "Minimum alive players to use this command", - - /* ============================== - Task Settings - ============================== */ "MinTasksToActivateAbility": "Minimum Number of Tasks Completed to Activate Ability", - - /* ============================== - General Settings - ============================== */ - "MinWaitAutoStart": "Minutes to wait before auto-starting", - "MinutesLeft": "{0} Minutes Left", - /* ============================== General Settings ============================== */ "MiraO2TimeLimit": "MIRA HQ O2 Time Limit", - /* ============================== Sabotage Settings ============================== */ "MiraReactorTimeLimit": "MIRA HQ Reactor Time Limit", - /* ============================== Notifications and Messages ============================== */ "ModBrokenMessage": "The MOD file is damaged.\\nPlease reinstall.", - /* ============================== Moderator / Admin / VIP ============================== */ - "ModLanguage": "Mod Language", "ModdedClient": "Modded Client", "ModeratorMuted": "Moderator {0} has muted {1} for <#00ffa5>{2} seconds.", "ModeratorTag": "<#8000ff>Moderator", - /* ============================== Moderator / Admin / VIP ============================== */ "Modifier": "\nModifier: ", "Modifiers": "\nModifiers: ", - /* ============================== Meeting Settings ============================== */ @@ -10550,32 +10497,25 @@ Meeting Settings ============================== */ "NoMoreEmergencyMeetingsLeft": "You have no more emergency meetings left", - /* ============================== Task Settings ============================== */ "NoPetActionMsgCrewTaskDone": "You are free", "NoPetActionMsgCrewWithTasksLeft": "You realize you still have tasks to do", - /* ============================== Moderator / Admin / VIP ============================== */ "NoWhisperAsRole": "<#ff0000>X You cannot use the 'whisper' command as this role.", "NoWhisperDuringCourt": "<#ff0000>X The 'whisper' command is disabled during court.", - /* ============================== Notifications and Messages ============================== */ - "NoisemakerAlertDuration": "Alert Duration", - "NoisemakerImpostorAlert": "Alert Impostors", "NotifyGameEnding": "<#ff0000>GAME END NOTIFY\\n<#ffff00>This game has already ended. If it didn't end for you, please leave the game and rejoin the lobby. This is a vanilla bug. Sorry for the inconvenience.", "NotifyGodAlive": "Inform players at meetings that God is still alive", - /* ============================== Cooldowns and Timers ============================== */ "NukeCooldown": "Nuke Cooldown", - /* ============================== Meeting Settings ============================== */ @@ -10602,11 +10542,6 @@ Cooldowns and Timers ============================== */ "OddKillCooldown": "Odd-Numbered kill cooldown", - - /* ============================== - General Settings - ============================== */ - "OnlyCancel": "Cancel Action Only", "OnlyShowPart": "Shown only part", /* ============================== @@ -10750,14 +10685,10 @@ ============================== */ "SeeEjectedRolesInMeeting": "See ejected roles in meetings", "SelfVote": "Self Vote", - "SendRoleDescriptionFirstMeeting": "Show Role Descriptions to Unmodded Clients on First Meeting", - "ShowLongInfo": "Show Long Role Descriptions instead of Short ones", - /* ============================== General Settings ============================== */ "SettingsForRoleText": "Settings for", - /* ============================== Cooldowns and Timers ============================== */ @@ -10786,17 +10717,10 @@ "ShortTeamName.Crewmate": "Crew", "ShortTeamName.Impostor": "Imp", "ShortTeamName.Neutral": "Neut", - - /* ============================== - Notifications and Messages - ============================== */ - "ShowAntiBlackoutWarning": "Show Anti-Blackout Warning When the Ejection Screen is Overridden", - /* ============================== General Settings ============================== */ "ShowArrows": "Has Arrows pointing toward bodies", - /* ============================== Meeting Settings ============================== */ @@ -10839,33 +10763,23 @@ "Dleks": "<#66a186>Dleks Eht", "Airship": "<#ed0007>The Airship", "Fungle": "<#ffa646>The Fungle", - /* ============================== General Settings ============================== */ "SkeldO2TimeLimit": "The Skeld O2 Time Limit", - /* ============================== Sabotage Settings ============================== */ "SkeldReactorTimeLimit": "The Skeld Reactor Time Limit", "SpawnAdditionalRenegadeMinAlivePlayers": "Minimum Number of Alive Players to Spawn", - /* ============================== Sabotage Settings ============================== */ "SpectateDisabled": "<#ff0000>X The /spectate command is disabled in this lobby.", - /* ============================== Maps ============================== */ "SpeedForMap": "Player Speed on {map}", - - /* ============================== - Achievements - ============================== */ - "StoreCompletedAchievementsOnEHRDatabase": "Store completed achievements on the EHR database (to maintain progress in case of a reinstall or an update)", - /* ============================== Submerged ============================== */ @@ -10900,51 +10814,20 @@ ============================== */ "TabGroup.GameSettings": "Mod Settings", "TabGroup.PresetSettings": "Preset Settings", - "TabGroup.SystemSettings": "System Settings", "TabGroup.TaskSettings": "Game Modifiers", - "TabGroup.VanillaSettings": "Vanilla Settings", - "TabInfo.GameSettings": "Modded settings that affect the gameplay in general", - "TabInfo.PresetSettings": "Pre-set game settings, made by you", - "TabInfo.SystemSettings": "Base settings for the mod itself", - "TabInfo.TaskSettings": "Modded, specific settings that have a major impact on the game", - "TabInfo.VanillaSettings": "Base game settings", "TargetCannotBeTeleported": "Target cannot be teleported", - /* ============================== Task Settings ============================== */ "TaskBasedCrewCanBeLazy": "Task based crewmates can be Lazy", "TasklessCrewCanBeLazy": "Crewmates without tasks can be Lazy", - /* ============================== Meeting Settings ============================== */ "TieMode.All": "Eject All", "TieMode.Default": "No ejects", "TieMode.Random": "Eject Random", - - /* ============================== - General Settings - ============================== */ - "TrackerCanGetArrowColor": "Can See Colored Arrows", - - /* ============================== - Cooldowns and Timers - ============================== */ - "TrackerCooldown": "Track Cooldown", - "TrackerDuration": "Track Duration", - - /* ============================== - Meeting Settings - ============================== */ - "TrackerHideVote": "Hide Scout Votes", - - /* ============================== - Notifications and Messages - ============================== */ - "TrackerLastRoomMessage": "The evaluation of your tracking showed that the last room in which your target was located was:{0}", "TransformationAnnouncementMessage": "The ship has been infected with a powerful disease, turning the <#e5f6b4>Plaguebearer into Pestilence!", - /* ============================== Meeting Settings ============================== */ @@ -11124,11 +11007,6 @@ "Format.Seconds": "{0}s", "Format.Times": "{0}", "Format.Votes": "{0}", - "FormatNameMode": "Player Name Mode", - "FormatNameModes.Color": "Color", - "FormatNameModes.None": "Disable", - "FormatNameModes.Snacks": "Random", - /* ============================== Remaining Text ============================== */ @@ -11167,17 +11045,11 @@ "ROT.Neutral_Killing": "★ Killing Roles", "ROT.Neutral_Pariah": "★ Pariah Roles", "ROT.Vanilla": "★ Vanilla Roles", - "AllCrewRolesHaveVanillaColor": "All <#8cffff>Crewmate roles have <#8cffff>the vanilla Crewmate color <#ffff00>(REQUIRES RESTART)", "ColoredOff": "╳", "ColoredOn": "✓", "IllegalColor": "Please enter the correct color", "AADelay": "Time to Leave Device", "AADone": "The process has finished", - "AGMR.Explicit": "Specified Explicitly", - "AGMR.Random": "Randomly Chosen From Group", - "AGMR.RandomGroup.GMChance": "Chance of selecting {gm}", - "AGMR.Slot.RandomGroupId": "Number/ID of the random group to use for choosing the game mode for this slot/game", - "AGMR.Unused": "Unused/Skipped Slot", "AbilityCD": "Ability Cooldown", "AbilityUseGainWithEachKill": "Ability Use Gains With Each Kill", "ActiveRolesList": "Active Roles List", @@ -11191,7 +11063,6 @@ "AllClosed": "Close All", "AllOpen": "Open All", "AlliesKnowCrewpostor": "Known to Impostors", - "AllowConsole": "Console", "AmOblivious": "You are Oblivious, meaning you cannot report bodies", "Anagram": "The scrambled word is {0}! Guess the original word! (Hint: It starts with the letter {1}!)", "AnalyzeCD": "Analyze Cooldown", @@ -11205,17 +11076,9 @@ "AnalyzerSeeVentCount": "Result Shows Vent Count", "AnnounceTransformation": "Announce Transformation (from <#e5f6b4>Plaguebearer to Pestilence)", "AppIDAdded": "Since there was no steam_appid.txt file, a new one was created to prevent errors. \\nPlease restart the game to apply changes.", - "ApplyDenyNameList": "Apply DenyName List", "AssignOnlyToCrewmate": "Assign only to Crewmates", - "AutoDisplayKillLog": "Display Kill-log", - "AutoDisplayLastAddOns": "Display Last Add-ons", - "AutoDisplayLastResult": "Auto Display Last Result", - "AutoDisplayLastRoles": "Display Last Roles", - "ChangeNameToRoleInfo": "Show Role Info to Unmodded Clients Round 1", - "AutoGMRotationSlot": "Game Mode for Game {index} (Slot {index})", "AutoGMRotationStatusText": "AUTOMATIC GAME MODE ROTATION IS ENABLED!", "AutoGMRotationStatusText.NextGM": "Next", - "AutoPlayAgain": "Auto Re-Enter Lobby after Game End", "AutoWarnStopWords": "Warning to those who write banned words", "AvailableRoles": "Available Impostor-Teamed Role List to Choose From", "AwkwardPotion": "Awkward Potion", @@ -11251,7 +11114,6 @@ "CovenKillEachOther": "As a Coven member, you cannot (and shouldn't) kill other Coven members", "CovenKillEntranced": "Coven members cannot kill Entranced players", "CovenKnowSuperStarDead": "Coven know when the Super Star dies", - "CrewAdvancedGameEndChecking": "Enable Advanced Game End Checking For {role}", "CrewKillingRed": "Crewmate Killings can be red", "DGRM.AfterTime": "Timer", "DGRM.None": "None", @@ -11259,18 +11121,14 @@ "DeactivationImmediately": "Immediately", "DeactivationIsVisibleOFF": "OFF", "DecreasedSpeed": "Decreased Speed", - "DeepLowLoad": "Prioritize Performance", "Default": "No vote", "DefaultRevertShapeshiftText": "Revert", "DefaultShapeshiftText": "Shift", "Delayed": "Delayed", "DeleteTagSuccess": "<#00ffa5>✓ Successfully deleted {0}'s tag.", - "Detective": "Detective", "DevouredName": "Devoured", - "DontUpdateDeadPlayers": "Don't Update Dead Players to Improve Performance", "DoorLog": "Door Log", "DoorLogAndBinoculars": "Door Log & Binoculars", - "DumpLogAfterGameEnd": "Dump Log After Each Game End (Recommended)", "E2Kill": "Kill Target", "ECMO.Coven": "<#7b3fbb>Coven", "ECMO.Nothing": "Nothing", @@ -11279,9 +11137,6 @@ "EatenByDevourer": "Your skin was eaten by the Devourer", "EatenByPelican": "You're swallowed, waiting for the Pelican to die or a meeting", "Ego-": "Ego-", - "EndWhenPlayerBug": "Force Game End on Critical Errors to Prevent Black Screen", - "Engineer": "Engineer", - "EnterKeyToStartGame": "Begin the starting countdown by pressing the Enter key", "EnterVentToWin": "Enter a Vent to Ignite!", "EraseMethod": "Erase Method", "EraserEraseNeutralNotice": "Your target is Neutral and can't be erased!", @@ -11318,7 +11173,6 @@ "HideGameCodes": "Hide Game Code", "HideResults": "Hide Results", "HolidayGreeting": "Happy Holidays!", - "Hungarian": "Hungarian", "IgnoreAfterAnyoneDied": "Ignore After First Death", "IgnoreConditions": "Ignore Conditions", "IgnoreCrewmates": "Ignore Crewmates", @@ -11335,7 +11189,6 @@ "IncorrectMarks": "\\nYour 2 marks are too close to each other, they won't work\\nYour marks were discarded.", "IncreasedSpeed": "Increased Speed", "IncreasedVision": "Increased Vision", - "Indonesian": "Indonesian", "InfectDelay": "Infect Delay", "InfectRadius": "Infect Radius", "Infected": "Infected", @@ -11384,13 +11237,9 @@ "NeutralsKnowEachOther": "Neutrals know each other", "NewUpdateAvailable": "New Update Available!\n{0}", "NewYearGreeting": "Happy New Year!", - "NoGameEnd": "No Game End", "NoInfoExists": "No Info Exists", "NoPetActionMsgCrew": "You imagine yourself as the impostor in a parallel universe.", "NoVenting": "Block Venting", - "Noisemaker": "Noisemaker", - "NoticeEveryone": "Notify everyone", - "NoticeMe": "Notify me", "NukeRadius": "Nuke radius (12x is very large)", "NullCD": "Ability Cooldown", "NumOfRolesToKill": "Amount of Roles to Choose From", @@ -11403,14 +11252,10 @@ "OtherRoles.ImpostorRoles": "★ Impostor Roles", "OtherRoles.NeutralRoles": "★ Neutral Roles", "Outside": "Outside", - "Persian": "Persian", "PetToAssign": "Pet to Assign to Everyone", "PetToWin": "Pet to Ignite!", - "Phantom": "Phantom", "PingText": "Ping", "PleaseStopBeingDumb": "<#dd00ff>The shield-animation does <#ff0000>NOT mean someone tried to kill you!\\n<#ffff00>Shield-animations are required to reset cooldows!", - "Polish": "Polish", - "PostLobbyCodeToEHRDiscordServer": "Post the lobby code to the EHR Website", "PotionInStore": "Potion in store", "PressTabToNextPage": "Press Tab or Number for Next Page...", "PrivateChat": "Enable Private Chat for Lovers", @@ -11431,7 +11276,6 @@ "RecruitedByDeathknight": "You've been recruited to the Undead faction!", "RecruitedToDeathknight": "The Necromancer recruited you to be their Deathknight!", "RejoinRequiredDueToVanillaSwitch": "You've decided to switch to vanilla mode, so it was required to disconnect you from the current game, or it would've caused issues. Please rejoin the game.", - "RemovePetsAtDeadPlayers": "Remove pets from dead players", "ReportBaitAtAllCost": "Report <#00f7ff>Bait at All Cost", "ReportButtonText": "Report", "RequiresPetIndicator": " <#ffab1b>PET", @@ -11441,14 +11285,12 @@ "RevivedByOccultist": "<#ffff00>You've been revived by the Occultist!\\nYou are now on the Impostor team.", "RevivedByTimeMaster": "<#ffff00>You were revived during the rewind!", "SKPromotesToJackal": "Sidekick gets promoted to Jackal on Jackal death", - "Scientist": "Scientist", "SearchNoResult": "No results found", "SeeMedic": "Medic", "SeeMedicAndTarget": "Medic+Shielded", "SeeNoone": "Nothing", "SeeTarget": "Shielded", "SewedBySeamstress": "<#ffff44>You were sewed together with someone by the {0}!", - "Shapeshifter": "Shapeshifter", "ShareLobby": "Allow EHR-Chan Shares Lobby Code To Discord", "Shield": "Shield", "ShieldPersonDiedFirst": "Shield the person who got killed first in the last game", @@ -11509,8 +11351,6 @@ "TextBelowVersionText": "", "TimeDecreased": "Time was decreased by {0}s", "TimeLeft": "Time Left", - "Tracker": "Tracker", - "TrackerDelay": "Track Delay", "TrapConsecutiveBodies": "Trap Consecutive Bodies", "TrapOnlyWorksOnTheBodyTrapster": "Trap only works on Trapster's body", "TriedToKillLastGameFirstKill": "Your target was the first to die in the last game.\\nLet them play!", @@ -11531,15 +11371,12 @@ "Untouched": "Global Setting Decides", "UploadPreset": "Upload current preset to database", "UploadPresetHeader": "Upload & Publish", - "UseGameLanguage": "Use Game Language", "UseLegacyVersion": "Use Legacy Version", "UsePets": "Use Pet button instead of Vent/Shapeshift", "UsePhantomBasis": "Use Vanish Button (Phantom basis) as Ability Trigger", "UsePhantomBasisForNKs": "Even for <#ffab1b>Neutral <#ff1919>Killing (Desynced) roles <#ffff00>(EXPERIMENTAL)", "UsesPetInsteadOfKillNotice": "<#ffff00>⚠ As this role, you need to use your pet button as your kill button!", "VengefulHasImpVision": "Vengeful Romantic Has <#ff1919>Impostor Vision", - "Viper": "Viper", - "ViperDissolveTime": "Body Dissolve Time", "WMRadius": "Axe Mode Death Radius", "WMShieldAlreadyUsed": "Your shield was already used", "WaitFor1Kill": "Suicide Timer starts after First Kill", @@ -11602,12 +11439,6 @@ "InfectiousKillButtonText": "Infect", "NtrInfo": "Everyone sees you as their Lover", "ReadyClientsInfo": "\\nReady clients: {0} (Timeout in {1}s)", - "RoleAssigningAlgorithm": "Role Assigning Algorithm", - "RoleAssigningAlgorithm.Default": "Default", - "RoleAssigningAlgorithm.HashRandom": "HashRandom", - "RoleAssigningAlgorithm.MersenneTwister": "MersenneTwister", - "RoleAssigningAlgorithm.NetRandom": ".NET System.Random", - "RoleAssigningAlgorithm.Xorshift": "Xorshift", "RoleBlockCooldown": "Role Block Cooldown", "RoleBlockDuration": "Role Block Duration", "RoleBlockNotify": "You are role blocked, you can't {0}",