From 396bce42370107674f7c9888ce86e3411c8bc4f1 Mon Sep 17 00:00:00 2001 From: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Date: Sun, 2 Nov 2025 19:31:56 -0600 Subject: [PATCH] Adds a popup for logging in with an unrecommended byond version (#93742) ## About The Pull Request Adds `GLOB.unrecommended_builds`, for byond build which are broken for the end user in some way, but not in a way that warrants outright blacklisting players from connecting with them Looks like this (Ignore the number I changed it for testing purposes) image Uses this system for the new byond build, 1670+, which breaks text rendering Also adds 1670+ to the list of builds to warn on compile ## Why It's Good For The Game 1670 broke the compilation step, probably permanently Whether we will fix this or flip a pragma or w/e remains to be seen, but until then we can tell people to compile an earlier version 1670 also broke the user experience, causing map text to show up as really big. This will be fixed in an upcoming version ## Changelog :cl: Melbert qol: If you are on Byond 516.1670+, you will get an alert on login that your build is less than functional /:cl: --- code/__byond_version_compat.dm | 3 +++ code/modules/client/client_procs.dm | 7 +++++-- code/modules/mob/dead/new_player/login.dm | 7 +++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/code/__byond_version_compat.dm b/code/__byond_version_compat.dm index 186a8844bcf..0320e224c97 100644 --- a/code/__byond_version_compat.dm +++ b/code/__byond_version_compat.dm @@ -13,6 +13,9 @@ #if (DM_VERSION == 516 && DM_BUILD == 1660) #error This version of BYOND (516.1660) has a bug which prevents this codebase from loading properly. If possible, update your BYOND version. Otherwise, visit www.byond.com/download/build to download an older release. #endif +#if (DM_VERSION == 516 && (DM_BUILD == 1670 || DM_BUILD == 1671)) +#error This version of BYOND (516.1671) has a bug which prevents this codebase from compiling. If possible, update your BYOND version. Otherwise, visit www.byond.com/download/build to download an older release. +#endif // Keep savefile compatibilty at minimum supported level /savefile/byond_version = MIN_COMPILER_VERSION diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index ccfe4ea99e0..4162a63a388 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -4,8 +4,11 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( "1622" = "Bug breaking rendering can lead to wallhacks.", - )) - +)) +GLOBAL_LIST_INIT(unrecommended_builds, list( + "1670" = "Bug breaking in-world text rendering.", + "1671" = "Bug breaking in-world text rendering.", +)) #define LIMITER_SIZE 5 #define CURRENT_SECOND 1 #define SECOND_COUNT 2 diff --git a/code/modules/mob/dead/new_player/login.dm b/code/modules/mob/dead/new_player/login.dm index 0c41f717c06..5854c455346 100644 --- a/code/modules/mob/dead/new_player/login.dm +++ b/code/modules/mob/dead/new_player/login.dm @@ -56,4 +56,11 @@ var/tl = SSticker.GetTimeLeft() to_chat(src, "Please set up your character and select \"Ready\". The game will start [tl > 0 ? "in about [DisplayTimeText(tl)]" : "soon"].") + if(GLOB.unrecommended_builds[num2text(client.byond_build)]) + INVOKE_ASYNC(src, PROC_REF(unrcommended_build_alert)) +/mob/dead/new_player/proc/unrcommended_build_alert() + var/warning = "Hey! The build of byond you are running ([client.byond_build]) has one or more potential issues that may cause major gameplay disruptions.\n\n\ + You may continue to play, but be aware you may encounter the following issue while playing:\n\"[GLOB.unrecommended_builds[num2text(client.byond_build)]]\"\n\n\ + If possible, we recommend updating your BYOND version.\nIf you are on the latest version, download an earlier release instead from www.byond.com/download/build." + alert(src, warning, "Bad BYOND Build", "OK")