-- Does the game actually RUN? Exercise the real server startup path and report -- the first genuine error, rather than guessing from static analysis. local RS = game:GetService("ReplicatedStorage") local SS = game:GetService("ServerScriptService") local out = {} local function say(s) table.insert(out, s) end -- 1. Are the Rojo-synced trees actually present in the DataModel? local shared = RS:FindFirstChild("Shared") say("ReplicatedStorage.Shared: " .. (shared and "present" or "MISSING")) if shared then local names = {} for _, c in ipairs(shared:GetChildren()) do table.insert(names, c.Name) end table.sort(names) say(" modules: " .. table.concat(names, ", ")) end local server = SS:FindFirstChild("Server") or SS:FindFirstChild("TS") say("ServerScriptService children:") for _, c in ipairs(SS:GetChildren()) do say((" %s (%s)"):format(c.Name, c.ClassName)) end -- 2. Try requiring every shared + server module. Report the FIRST failure with -- its message -- this is what actually stops a playtest. local function tryRequire(inst) local ok, err = pcall(function() return require(inst) end) return ok, err end say("--- require sweep ---") local failures = 0 local tested = 0 for _, root in ipairs({ shared, server }) do if root then for _, m in ipairs(root:GetDescendants()) do if m:IsA("ModuleScript") then tested += 1 local ok, err = tryRequire(m) if not ok then failures += 1 say(("FAIL %s: %s"):format(m:GetFullName(), tostring(err):sub(1, 300))) end end end end end say(("required %d modules, %d failed"):format(tested, failures)) if tested == 0 then say("CONTROL FAIL: nothing was required -- wrong scope") end -- 3. Script instances that would run on play, and whether any are disabled. say("--- scripts ---") for _, d in ipairs(game:GetDescendants()) do if (d:IsA("Script") or d:IsA("LocalScript")) and not d:IsDescendantOf(workspace) then if d.Name:match("init") or d:IsDescendantOf(SS) then say((" %s (%s) disabled=%s"):format(d:GetFullName(), d.ClassName, tostring(d.Disabled))) end end end return table.concat(out, "\n")