From 309a2416eeebe863f1cb52f5a70c61f3452b68d4 Mon Sep 17 00:00:00 2001 From: mleem97 <52848568+mleem97@users.noreply.github.com> Date: Tue, 11 Aug 2026 23:58:41 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E2=9A=A1=20Bolt:=20Optimize=20Lua=20server?= =?UTF-8?q?=20module=20with=20O(1)=20NetworkMap=20lookups?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scripting/Lua/Modules/LuaServerModule.cs | 83 +++++++++++-------- 1 file changed, 50 insertions(+), 33 deletions(-) diff --git a/src/Infrastructure/Scripting/Lua/Modules/LuaServerModule.cs b/src/Infrastructure/Scripting/Lua/Modules/LuaServerModule.cs index 17bd8abb..2be2b824 100644 --- a/src/Infrastructure/Scripting/Lua/Modules/LuaServerModule.cs +++ b/src/Infrastructure/Scripting/Lua/Modules/LuaServerModule.cs @@ -21,27 +21,31 @@ public static void Register(Table greg, Script script, string modId) { try { - var servers = UnityEngine.Object.FindObjectsOfType(); var result = new Table(script); - int i = 1; - foreach (var s in servers) + var nm = Il2Cpp.NetworkMap.instance; + if (nm != null && nm.servers != null) { - try + int i = 1; + foreach (var kvp in nm.servers) { - var info = new Table(script); - info["id"] = s.ServerID ?? s.GetHashCode().ToString(); - info["hash"] = s.GetHashCode(); - info["is_on"] = s.isOn; - info["is_broken"] = s.isBroken; - info["server_type"] = (int)s.serverType; - info["size_u"] = s.sizeInU; - var pos = s.transform?.position ?? UnityEngine.Vector3.zero; - info["x"] = (double)pos.x; - info["y"] = (double)pos.y; - info["z"] = (double)pos.z; - result[i++] = info; + var s = kvp.Value; + try + { + var info = new Table(script); + info["id"] = s.ServerID ?? s.GetHashCode().ToString(); + info["hash"] = s.GetHashCode(); + info["is_on"] = s.isOn; + info["is_broken"] = s.isBroken; + info["server_type"] = (int)s.serverType; + info["size_u"] = s.sizeInU; + var pos = s.transform?.position ?? UnityEngine.Vector3.zero; + info["x"] = (double)pos.x; + info["y"] = (double)pos.y; + info["z"] = (double)pos.z; + result[i++] = info; + } + catch { } } - catch { } } return result; } @@ -62,8 +66,7 @@ public static void Register(Table greg, Script script, string modId) { return nm.servers.Count; } - var servers = UnityEngine.Object.FindObjectsOfType(); - return servers?.Count ?? 0; + return 0; } catch { return 0; } }); @@ -80,18 +83,25 @@ public static void Register(Table greg, Script script, string modId) { try { - var servers = UnityEngine.Object.FindObjectsOfType(); - foreach (var s in servers) + var nm = Il2Cpp.NetworkMap.instance; + if (nm != null && nm.servers != null) { - try + if (nm.servers.Count == 0) return false; + var serversList = new System.Collections.Generic.List(); + foreach (var kvp in nm.servers) serversList.Add(kvp.Value); + + foreach (var s in serversList) { - if (s.GetHashCode() == hash && s.isBroken) + try { - s.RepairDevice(); - return true; + if (s.GetHashCode() == hash && s.isBroken) + { + s.RepairDevice(); + return true; + } } + catch { } } - catch { } } return false; } @@ -104,18 +114,25 @@ public static void Register(Table greg, Script script, string modId) try { int repaired = 0; - var servers = UnityEngine.Object.FindObjectsOfType(); - foreach (var s in servers) + var nm = Il2Cpp.NetworkMap.instance; + if (nm != null && nm.servers != null) { - try + if (nm.servers.Count == 0) return 0; + var serversList = new System.Collections.Generic.List(); + foreach (var kvp in nm.servers) serversList.Add(kvp.Value); + + foreach (var s in serversList) { - if (s.isBroken) + try { - s.RepairDevice(); - repaired++; + if (s.isBroken) + { + s.RepairDevice(); + repaired++; + } } + catch { } } - catch { } } return repaired; } From a51d6c7591680f845d0917bb7376371e5dfa8f79 Mon Sep 17 00:00:00 2001 From: mleem97 <52848568+mleem97@users.noreply.github.com> Date: Wed, 12 Aug 2026 00:03:25 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E2=9A=A1=20Bolt:=20Optimize=20Lua=20server?= =?UTF-8?q?=20module=20with=20O(1)=20NetworkMap=20lookups?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit