From e4c22cab4ff56b1057b3a95e4dcd5c3e02ef4bf9 Mon Sep 17 00:00:00 2001 From: ccuser44 <68124053+ccuser44@users.noreply.github.com> Date: Sun, 23 Nov 2025 13:17:13 +0200 Subject: [PATCH 1/8] Attempt to load nightly module in backup boot sequence --- Loader/Loader/Loader.server.luau | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/Loader/Loader/Loader.server.luau b/Loader/Loader/Loader.server.luau index ed3db7fb33..3399e8cd32 100644 --- a/Loader/Loader/Loader.server.luau +++ b/Loader/Loader/Loader.server.luau @@ -203,18 +203,31 @@ else module = loadModuleAsset(moduleId) success = true end, function(reason) - warn(`Failed to load Adonis mainmodule {moduleId} via :LoadAsset() method due to {reason}! Loading the backup MainModule...`) + warn(`Failed to load Adonis mainmodule {moduleId} via :LoadAsset() method due to {reason}! Loading the nightly MainModule...`) + local newModuleId = not data.NightlyMode and data.NightlyModuleID or data.ModuleId yxpcall(function() - module = assert(require(data.Backup), "Backup module returned invalid values!") + module = assert(require(newModuleId), "Nightly module returned invalid values!") success = true end, function(reason) - warn(`Failed to load Adonis backup MainModule {data.Backup} due to {reason}! If this does not work please purchase the Adonis backup MainModule to your inventory. Using backup method...`) + warn(`Failed to load Adonis nightly MainModule {newModuleId} due to {reason}! If this does not work please purchase the Adonis nightly MainModule to your inventory. Using backup method...`) yxpcall(function() - module = loadModuleAsset(data.Backup) + module = loadModuleAsset(newModuleId) success = true end, function(reason) - module = nil - warn(`FATAL ERROR! Failed to load Adonis backup MainModule {moduleId} via :LoadAsset() method due to {reason}! Adonis can't be booted up! Please contact the Adonis helpers immediately and add both the regular MainModule and the backup MainModule to your user&group inventory!`) + warn(`Failed to load Adonis nightly mainmodule {newModuleId} via :LoadAsset() method due to {reason}! Loading the backup MainModule...`) + yxpcall(function() + module = assert(require(data.Backup), "Backup module returned invalid values!") + success = true + end, function(reason) + warn(`Failed to load Adonis backup MainModule {data.Backup} due to {reason}! If this does not work please purchase the Adonis backup MainModule to your inventory. Using backup method...`) + yxpcall(function() + module = loadModuleAsset(data.Backup) + success = true + end, function(reason) + module = nil + warn(`FATAL ERROR! Failed to load Adonis backup MainModule {moduleId} via :LoadAsset() method due to {reason}! Adonis can't be booted up! Please contact the Adonis helpers immediately and add both the regular MainModule and the backup MainModule to your user&group inventory!`) + end) + end) end) end) end) From 7deaf6f5ab61f901ae18853d6c3c471a19a8a025 Mon Sep 17 00:00:00 2001 From: ccuser44 <68124053+ccuser44@users.noreply.github.com> Date: Sun, 23 Nov 2025 13:30:43 +0200 Subject: [PATCH 2/8] Add support for new assert service insert method --- Loader/Loader/Loader.server.luau | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Loader/Loader/Loader.server.luau b/Loader/Loader/Loader.server.luau index 3399e8cd32..733d3ac149 100644 --- a/Loader/Loader/Loader.server.luau +++ b/Loader/Loader/Loader.server.luau @@ -46,7 +46,7 @@ local function yxpcall(f, callback, ...) end local function loadModuleAsset(moduleId: number) - local asset = InsertService:LoadAsset(moduleId) + local asset = ({yxpcall(function() return nil, AssetService:LoadAssetAsync(moduleId) end), warn)})[3] or InsertService:LoadAsset(moduleId) if asset.Name == "MainModule" then return assert(require(asset), ":LoadAsset() module returned invalid values!") From 204922c22d2eae8f7381b04f659c1f6f4fbd483e Mon Sep 17 00:00:00 2001 From: ccuser44 <68124053+ccuser44@users.noreply.github.com> Date: Sun, 23 Nov 2025 13:38:38 +0200 Subject: [PATCH 3/8] Fix syntax error in loadModuleAsset function --- Loader/Loader/Loader.server.luau | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Loader/Loader/Loader.server.luau b/Loader/Loader/Loader.server.luau index 733d3ac149..b2eaeed52d 100644 --- a/Loader/Loader/Loader.server.luau +++ b/Loader/Loader/Loader.server.luau @@ -46,7 +46,7 @@ local function yxpcall(f, callback, ...) end local function loadModuleAsset(moduleId: number) - local asset = ({yxpcall(function() return nil, AssetService:LoadAssetAsync(moduleId) end), warn)})[3] or InsertService:LoadAsset(moduleId) + local asset = ({yxpcall(function() return nil, AssetService:LoadAssetAsync(moduleId) end, warn))})[3] or InsertService:LoadAsset(moduleId) if asset.Name == "MainModule" then return assert(require(asset), ":LoadAsset() module returned invalid values!") From 94f798fccde9bd57947acae9eff917b836c7c37f Mon Sep 17 00:00:00 2001 From: ccuser44 <68124053+ccuser44@users.noreply.github.com> Date: Sun, 23 Nov 2025 13:40:47 +0200 Subject: [PATCH 4/8] Fix formatting in loadModuleAsset function --- Loader/Loader/Loader.server.luau | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Loader/Loader/Loader.server.luau b/Loader/Loader/Loader.server.luau index b2eaeed52d..f102aa7bbd 100644 --- a/Loader/Loader/Loader.server.luau +++ b/Loader/Loader/Loader.server.luau @@ -46,7 +46,7 @@ local function yxpcall(f, callback, ...) end local function loadModuleAsset(moduleId: number) - local asset = ({yxpcall(function() return nil, AssetService:LoadAssetAsync(moduleId) end, warn))})[3] or InsertService:LoadAsset(moduleId) + local asset = ({yxpcall(function() return nil, AssetService:LoadAssetAsync(moduleId) end, warn)})[3] or InsertService:LoadAsset(moduleId) if asset.Name == "MainModule" then return assert(require(asset), ":LoadAsset() module returned invalid values!") From 38500fa8f9bc29f18c36fe7928f029aa2e44678d Mon Sep 17 00:00:00 2001 From: ccuser44 <68124053+ccuser44@users.noreply.github.com> Date: Sun, 23 Nov 2025 13:42:10 +0200 Subject: [PATCH 5/8] Add AssetService variable to Loader.server.luau --- Loader/Loader/Loader.server.luau | 1 + 1 file changed, 1 insertion(+) diff --git a/Loader/Loader/Loader.server.luau b/Loader/Loader/Loader.server.luau index f102aa7bbd..182e49f92f 100644 --- a/Loader/Loader/Loader.server.luau +++ b/Loader/Loader/Loader.server.luau @@ -33,6 +33,7 @@ end local ServerScriptService = game:GetService("ServerScriptService") local RunService = game:GetService("RunService") local InsertService = game:GetService("InsertService") +local AssetService = game:GetService("AssetService") -- Support yieldable xpcall local function yxpcall(f, callback, ...) From 0bd7dc0a24c299602f3a7a32edd04bf4f5f6a6bd Mon Sep 17 00:00:00 2001 From: ccuser44 <68124053+ccuser44@users.noreply.github.com> Date: Wed, 26 Nov 2025 11:35:04 +0200 Subject: [PATCH 6/8] Fix typo --- Loader/Loader/Loader.server.luau | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Loader/Loader/Loader.server.luau b/Loader/Loader/Loader.server.luau index 182e49f92f..d4b8ec9166 100644 --- a/Loader/Loader/Loader.server.luau +++ b/Loader/Loader/Loader.server.luau @@ -205,7 +205,7 @@ else success = true end, function(reason) warn(`Failed to load Adonis mainmodule {moduleId} via :LoadAsset() method due to {reason}! Loading the nightly MainModule...`) - local newModuleId = not data.NightlyMode and data.NightlyModuleID or data.ModuleId + local newModuleId = not data.NightlyMode and data.NightlyModuleID or data.ModuleID yxpcall(function() module = assert(require(newModuleId), "Nightly module returned invalid values!") success = true From 13831c5823a5f836f661d45939480e508d89a309 Mon Sep 17 00:00:00 2001 From: ccuser44 <68124053+ccuser44@users.noreply.github.com> Date: Sat, 14 Mar 2026 13:40:44 +0200 Subject: [PATCH 7/8] Fix sandbox bricking Adonis --- Loader/Loader/Loader.server.luau | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Loader/Loader/Loader.server.luau b/Loader/Loader/Loader.server.luau index d4b8ec9166..4cf687f189 100644 --- a/Loader/Loader/Loader.server.luau +++ b/Loader/Loader/Loader.server.luau @@ -46,8 +46,22 @@ local function yxpcall(f, callback, ...) end end +local function unSandbox(obj: Instance): Instance + xpcall(function() + for _, v in Enum.SecurityCapability:GetEnumItems() do + xpcall(function() + obj.Capabilities = obj.Capabilities:Add(v) + end, warn) + end + end, warn) + + xpcall(function() + obj.Sandboxed = false + end, warn) +end + local function loadModuleAsset(moduleId: number) - local asset = ({yxpcall(function() return nil, AssetService:LoadAssetAsync(moduleId) end, warn)})[3] or InsertService:LoadAsset(moduleId) + local asset = unSandbox(({yxpcall(function() return nil, InsertService:LoadAsset(moduleId) end, warn)})[3] or AssetService:LoadAssetAsync(moduleId)) if asset.Name == "MainModule" then return assert(require(asset), ":LoadAsset() module returned invalid values!") From 51230c41cdebf12b36248b2da9d5f2f797340c89 Mon Sep 17 00:00:00 2001 From: ccuser44 <68124053+ccuser44@users.noreply.github.com> Date: Sat, 28 Mar 2026 19:58:08 +0200 Subject: [PATCH 8/8] Make unsandboxing code more terse --- Loader/Loader/Loader.server.luau | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Loader/Loader/Loader.server.luau b/Loader/Loader/Loader.server.luau index 4cf687f189..1d4020f884 100644 --- a/Loader/Loader/Loader.server.luau +++ b/Loader/Loader/Loader.server.luau @@ -47,13 +47,11 @@ local function yxpcall(f, callback, ...) end local function unSandbox(obj: Instance): Instance - xpcall(function() - for _, v in Enum.SecurityCapability:GetEnumItems() do - xpcall(function() - obj.Capabilities = obj.Capabilities:Add(v) - end, warn) - end - end, warn) + for _, v in Enum.SecurityCapability and Enum.SecurityCapability:GetEnumItems() or {} do + xpcall(function() + obj.Capabilities = obj.Capabilities:Add(v) + end, warn) + end xpcall(function() obj.Sandboxed = false