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)
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")