Skip to content

Instantly share code, notes, and snippets.

@depthso
Created November 4, 2025 16:07
Show Gist options
  • Select an option

  • Save depthso/c3bf37a17e60acf1e9136b6877e67cd4 to your computer and use it in GitHub Desktop.

Select an option

Save depthso/c3bf37a17e60acf1e9136b6877e67cd4 to your computer and use it in GitHub Desktop.
Decompiled with oracle for Xeno v1.2.85
if not game.RobloxReplicatedStorage:FindFirstChild("__XENO") then
Instance.new("Folder", game.RobloxReplicatedStorage).Name = "__XENO";
task.spawn(function() --[[ Line: 1 ]]
local l_game_Service_0 = game:FindService("HttpService");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_StarterGui_0 = game:GetService("StarterGui");
local _ = game:GetService("InsertService");
local _ = game:GetService("CorePackages");
local _ = game:GetService("Debris");
local l_UserInputService_0 = game:GetService("UserInputService");
if l_CoreGui_0:FindFirstChild("51880") then
return;
else
local l_Folder_0 = Instance.new("Folder");
l_Folder_0.Name = "51880";
l_Folder_0.Parent = l_CoreGui_0;
local l_Folder_1 = Instance.new("Folder");
l_Folder_1.Name = "Pointer";
l_Folder_1.Parent = l_Folder_0;
local l_Folder_2 = Instance.new("Folder");
l_Folder_2.Name = "Loadstring";
l_Folder_2.Parent = l_Folder_0;
Instance.new("Message", l_Folder_0).Name = "DO NOT DELETE: BELONGS TO XENO";
local v10 = {
about = {
Name = "Project Xeno",
Publisher = "Rizve A",
Version = "v1.2.85",
Website = "https://xeno.onl",
Discord = "https://discord.gg/xe-no"
}
};
table.freeze(v10.about);
local v11 = {
Version = "https://x3no.pages.dev/version.txt",
CodeExecution = "https://x3no.pages.dev/code.lua",
Server = "http://localhost:3110"
};
local v12 = {};
local v13 = {
"Common",
"Settings",
"PlayerList",
"InGameMenu",
"PublishAssetPrompt",
"TopBar",
"InspectAndBuy",
"VoiceChat",
"Chrome",
"VR",
"EmotesMenu",
"FTUX",
"TrustAndSafety"
};
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
for _, v16 in ipairs(l_Modules_0:GetDescendants()) do
pcall(function() --[[ Line: 81 ]]
-- upvalues: v16 (copy), v13 (copy), l_Modules_0 (copy), v12 (copy)
if v16.ClassName == "ModuleScript" then
for _, v18 in next, v13 do
if v16.Name == v18 or not v16:IsDescendantOf(l_Modules_0[v18]) then
end;
end;
table.insert(v12, v16);
end;
end);
end;
local v19 = {
require = require,
Instance = Instance,
game = game,
workspace = workspace,
type = type,
typeof = typeof,
script = script,
debug = debug
};
local v20 = getfenv();
local function v28(v21, v22) --[[ Line: 125 ]] --[[ Name: SendRequest ]]
-- upvalues: l_game_Service_0 (copy)
local v23 = v22 or math.huge;
local v24 = tick();
local v25 = nil;
l_game_Service_0:RequestInternal(v21):Start(function(v26, v27) --[[ Line: 130 ]]
-- upvalues: v25 (ref)
v27.Success = v26;
v25 = v27;
end);
while true do
if not v25 then
task.wait();
if v23 < tick() - v24 then
return nil;
end;
else
return v25;
end;
end;
end;
local function v39(v29, v30, v31, v32) --[[ Line: 145 ]] --[[ Name: RServer ]]
-- upvalues: v19 (copy), v11 (copy), l_game_Service_0 (copy), v28 (copy)
local v33 = v19.type(v29[3]) == "string";
local v34 = v29[1];
local v35 = if v33 then {
Url = v29[3],
Body = v29[2],
Method = "POST",
Headers = {
["Content-Type"] = "text/plain"
}
} else {
Url = v11.Server .. "/f?e=" .. v34,
Body = {
c = v29[2],
p = v30 and "51880" or nil
},
Method = "POST"
};
if not v33 then
v35.Body = l_game_Service_0:JSONEncode(v35.Body);
end;
local v36 = v28(v35);
if not v36 then
return nil, false;
else
if not v36.StatusCode then
v36.StatusCode = 410;
end;
local v37 = false;
if v36.StatusCode >= 200 then
v37 = v36.StatusCode < 300;
end;
local l_Body_0 = v36.Body;
if v37 and v36.Headers["content-type"] == "application/json" then
l_Body_0 = l_game_Service_0:JSONDecode(l_Body_0);
end;
if v31 then
return l_Body_0, v37, v36.Headers;
elseif v32 then
return l_Body_0, v37, v36.StatusCode;
else
return l_Body_0, v37;
end;
end;
end;
local v40 = {
Activate = 0,
ReadFile = 1,
WriteFile = -1,
GetFileType = 2,
ListFiles = 3,
MakeFolder = 4,
DelFolder = 5,
DelFile = 6,
GetCustomAsset = 7,
GetScriptBytecode = 8,
SetScriptBytecode = 9,
RestoreScriptBytecode = 10,
LockModule = 11,
UnlockModule = 12,
GetQueueOnTeleport = 13,
CBlockFunctions = 14,
GetProperties = 15,
GetInstanceRBXSignals = 16,
GetInstanceFunctions = 17,
GetAutoExecuteContents = 18,
HookInstance = 19,
SetScriptable = 20
};
local v41 = {
mouse1click = 0,
mouse1press = 1,
mouse1release = 2,
mouse2click = 3,
mouse2press = 4,
mouse2release = 5,
mousemoveabs = 6,
mousemoverel = 7,
mousescroll = 8,
keypress = 9,
keyrelease = 10
};
local v42 = {
consolecreate = 0,
consoledestroy = 1,
consoleclear = 2,
consolename = 3,
consoleprint = 4,
consoleinfo = 5,
consolewarn = 6,
consoleinput = 7
};
local v43 = {
md5 = 0,
sha1 = 1,
sha224 = 2,
sha256 = 3,
sha384 = 4,
sha512 = 5,
sha512_224 = 6,
sha512_256 = 7,
sha3_224 = 8,
sha3_256 = 9,
sha3_384 = 10,
sha3_512 = 11
};
local v44 = {
ECB = 0,
CBC = 1,
OFB = 2,
CFB = 3,
CTR = 4,
GCM = 5,
CCM = 6,
XTS = 7,
OCB = 8
};
local v45 = {
Encrypt = 0,
Decrypt = 1,
GenerateBytes = 2,
Hash = 3
};
local v46 = {
Encode = 0,
Decode = 1
};
local v47 = {
Compress = 0,
Decompress = 1
};
local function v53(v48) --[[ Line: 313 ]] --[[ Name: RawHttpGet ]]
-- upvalues: l_game_Service_0 (copy)
local v49 = nil;
local v50 = tick();
l_game_Service_0:RequestInternal({
Url = v48,
Method = "GET"
}):Start(function(v51, v52) --[[ Line: 320 ]]
-- upvalues: v49 (ref)
if not v51 then
v49 = "";
end;
v49 = v52.Body;
end);
while true do
if not v49 then
task.wait();
if tick() - v50 > 10 then
return "";
end;
else
return v49;
end;
end;
end;
local function v56(v54) --[[ Line: 334 ]] --[[ Name: createInstancePointer ]]
-- upvalues: v19 (copy), l_Folder_1 (copy), l_game_Service_0 (copy)
local v55 = v19.Instance.new("ObjectValue", l_Folder_1);
v55.Name = l_game_Service_0:GenerateGUID(false);
v55.Value = v54;
return v55;
end;
local v57 = nil;
local v58 = nil;
task.spawn(function() --[[ Line: 345 ]]
-- upvalues: v10 (copy), v57 (ref)
pcall(function() --[[ Line: 346 ]]
-- upvalues: v10 (ref), v57 (ref)
repeat
task.wait();
until v10.getcustomasset and v10.HttpGet and v10.isfile and v10.writefile;
if not v10.isfile("XenoIcon.png") then
v10.writefile("XenoIcon.png", v10.HttpGet("https://www.xeno.onl/images/xeno.png"));
end;
v57 = v10.getcustomasset("XenoIcon.png");
end);
end);
local v59 = true;
task.spawn(function() --[[ Line: 359 ]]
-- upvalues: v10 (copy), v19 (copy), v59 (ref), v53 (copy), v11 (copy), l_StarterGui_0 (copy), v57 (ref)
local function v63(v60) --[[ Line: 360 ]] --[[ Name: getNums ]]
local v61 = "";
for v62 in string.gmatch(v60, "%d") do
v61 = v61 .. v62;
end;
return v61;
end;
local v64 = v63(v10.about.Version);
local v65 = v19.Instance.new("BindableFunction");
v65.OnInvoke = function(_) --[[ Line: 371 ]]
-- upvalues: v59 (ref)
v59 = false;
end;
while v59 and task.wait(5) do
local v67 = v53(v11.Version);
local v68 = v63(tostring(v67));
if v68 and v64 < v68 then
l_StarterGui_0:SetCore("SendNotification", {
Title = "[Xeno Updated]",
Text = "Get the new version (" .. tostring(v67) .. ") from " .. tostring(v10.about.Website),
Icon = v57,
Button1 = "Don't Show again",
Callback = v65,
Duration = 4
});
end;
end;
end);
task.spawn(function() --[[ Line: 394 ]]
-- upvalues: v19 (copy), v57 (ref), l_StarterGui_0 (copy), v39 (copy), v40 (copy), v58 (ref), l_game_Service_0 (copy)
task.spawn(function() --[[ Line: 396 ]]
-- upvalues: v19 (ref), v57 (ref), l_StarterGui_0 (ref)
if v19.script.Name == "StyledTextLabel" or v19.script.Name == "PlayerListManager" or v19.script.Name == "en-us" then
repeat
task.wait();
until v57;
l_StarterGui_0:SetCore("SendNotification", {
Title = "[Xeno]",
Text = "Attached Ingame!",
Icon = v57,
Duration = 3
});
end;
end);
local v69;
while true do
local v70;
v69, v70 = v39({
v40.Activate,
""
}, true);
if not v70 then
task.wait(0.1);
else
break;
end;
end;
task.spawn(function() --[[ Line: 418 ]]
-- upvalues: v58 (ref), v69 (copy)
v58 = v69:gsub("{", ""):gsub("}", "");
end);
if not v58 then
v58 = l_game_Service_0:GenerateGUID(false);
end;
end);
local v71 = {
Map = {},
funcMap = {}
};
local v72 = {
TestService = {
"Run",
"Require"
},
WebViewService = {
"CloseWindow",
"MutateWindow",
"OpenWindow"
},
AnalyticsService = {
"FireInGameEconomyEvent",
"FireLogEvent",
"FireEvent",
"FireCustomEvent",
"LogEconomyEvent"
},
CaptureService = {
"DeleteCapture",
"GetCaptureFilePathAsync",
"CreatePostAsync",
"SaveCaptureToExternalStorage",
"SaveCapturesToExternalStorageAsync",
"GetCaptureSizeAsync",
"GetCaptureStorageSizeAsync",
"PromptSaveCapturesToGallery",
"PromptShareCapture",
"RetrieveCaptures",
"SaveScreenshotCapture"
},
InsertService = {
"GetLocalFileContents"
},
SafetyService = {
"TakeScreenshot"
},
HttpRbxApiService = {
"PostAsync",
"PostAsyncFullUrl",
"GetAsyncFullUrl",
"GetAsync",
"RequestAsync",
"RequestLimitedAsync"
},
HttpService = {
"RequestInternal",
"GetAsync",
"RequestAsync",
"PostAsync",
"SetHttpEnabled"
},
MarketplaceService = {
"PerformCancelSubscription",
"PerformPurchaseV2",
"PrepareCollectiblesPurchase",
"PromptCancelSubscription",
"ReportAssetSale",
"GetUserSubscriptionDetailsInternalAsync",
"PerformPurchase",
"PromptBundlePurchase",
"PromptGamePassPurchase",
"PromptProductPurchase",
"PromptPurchase",
"PromptRobloxPurchase",
"PromptThirdPartyPurchase",
"GetRobuxBalance",
"PromptBulkPurchase",
"PerformBulkPurchase",
"PerformSubscriptionPurchase",
"PerformSubscriptionPurchaseV2",
"PromptCollectiblesPurchase",
"PromptNativePurchaseWithLocalPlayer",
"PromptPremiumPurchase",
"PromptSubscriptionPurchase",
"GetUserSubscriptionPaymentHistoryAsync"
},
GuiService = {
"OpenBrowserWindow",
"OpenNativeOverlay",
"BroadcastNotification",
"SetPurchasePromptIsShown"
},
EventIngestService = {
"SendEventDeferred",
"SetRBXEvent",
"SetRBXEventStream",
"SendEventImmediately"
},
CoreScriptSyncService = {
"GetScriptFilePath"
},
ScriptContext = {
"AddCoreScriptLocal",
"SaveScriptProfilingData"
},
ScriptProfilerService = {
"SaveScriptProfilingData"
},
BrowserService = {
"EmitHybridEvent",
"OpenWeChatAuthWindow",
"ExecuteJavaScript",
"OpenBrowserWindow",
"OpenNativeOverlay",
"ReturnToJavaScript",
"CopyAuthCookieFromBrowserToEngine",
"SendCommand"
},
MessageBusService = {
"Call",
"GetLast",
"GetMessageId",
"GetProtocolMethodRequestMessageId",
"GetProtocolMethodResponseMessageId",
"MakeRequest",
"Publish",
"PublishProtocolMethodRequest",
"PublishProtocolMethodResponse",
"Subscribe",
"SubscribeToProtocolMethodRequest",
"SubscribeToProtocolMethodResponse",
"SetRequestHandler"
},
AssetService = {
"RegisterUGCValidationFunction"
},
ContentProvider = {
"SetBaseUrl"
},
AppStorageService = {
"Flush",
"GetItem",
"SetItem"
},
IXPService = {
"GetBrowserTrackerLayerVariables",
"GetRegisteredUserLayersToStatus",
"GetUserLayerVariables",
"GetUserStatusForLayer",
"InitializeUserLayers",
"LogBrowserTrackerLayerExposure",
"LogUserLayerExposure",
"RegisterUserLayers"
},
SessionService = {
"AcquireContextFocus",
"GenerateSessionInfoString",
"GetCreatedTimestampUtcMs",
"GetMetadata",
"GetRootSID",
"GetSessionTag",
"IsContextFocused",
"ReleaseContextFocus",
"RemoveMetadata",
"RemoveSession",
"RemoveSessionsWithMetadataKey",
"ReplaceSession",
"SessionExists",
"SetMetadata",
"SetSession",
"GetSessionID"
},
ContextActionService = {
"CallFunction",
"BindCoreActivate"
},
CommerceService = {
"PromptCommerceProductPurchase",
"PromptRealWorldCommerceBrowser",
"UserEligibleForRealWorldCommerceAsync"
},
Players = {
"ReportAbuse",
"ReportAbuseV3",
"ReportChatAbuse"
},
PlatformCloudStorageService = {
"GetUserDataAsync",
"SetUserDataAsync"
},
CoreGui = {
"TakeScreenshot",
"ToggleRecording"
},
LinkingService = {
"DetectUrl",
"GetAndClearLastPendingUrl",
"GetLastLuaUrl",
"IsUrlRegistered",
"OpenUrl",
"RegisterLuaUrl",
"StartLuaUrlDelivery",
"StopLuaUrlDelivery",
"SupportsSwitchToSettingsApp",
"SwitchToSettingsApp"
},
RbxAnalyticsService = {
"GetSessionId",
"ReleaseRBXEventStream",
"SendEventDeferred",
"SendEventImmediately",
"SetRBXEvent",
"SetRBXEventStream",
"TrackEvent",
"TrackEventWithArgs"
},
AvatarEditorService = {
"NoPromptSetFavorite",
"NoPromptUpdateOutfit",
"PerformCreateOutfitWithDescription",
"PerformDeleteOutfit",
"PerformRenameOutfit",
"PerformSaveAvatarWithDescription",
"PerformSetFavorite",
"PerformUpdateOutfit",
"PromptAllowInventoryReadAccess",
"PromptCreateOutfit",
"PromptDeleteOutfit",
"PromptRenameOutfit",
"PromptSaveAvatar",
"PromptSetFavorite",
"PromptUpdateOutfit",
"SetAllowInventoryReadAccess",
"SignalCreateOutfitFailed",
"SignalCreateOutfitPermissionDenied",
"SignalDeleteOutfitFailed",
"SignalDeleteOutfitPermissionDenied",
"SignalRenameOutfitFailed",
"SignalRenameOutfitPermissionDenied",
"SignalSaveAvatarPermissionDenied",
"SignalSetFavoriteFailed",
"SignalSetFavoritePermissionDenied",
"SignalUpdateOutfitFailed",
"SignalUpdateOutfitPermissionDenied",
"NoPromptSaveAvatarThumbnailCustomization",
"NoPromptSaveAvatar",
"NoPromptRenameOutfit",
"NoPromptDeleteOutfit",
"NoPromptCreateOutfit"
}
};
local function v73() --[[ Line: 552 ]] --[[ Name: Blocked ]]
error("Attempt to call a blocked function", 3);
end;
setfenv(v73, {
error = error
});
for v74, v75 in pairs(v72) do
pcall(function() --[[ Line: 558 ]]
-- upvalues: v19 (copy), v74 (copy), v75 (copy), v73 (copy), v71 (copy)
local l_Service_0 = v19.game:GetService(v74);
local v77 = {};
for _, v79 in ipairs(v75) do
v77[l_Service_0[v79]] = v73;
end;
v71.funcMap[l_Service_0] = v77;
end);
end;
v71.funcMap[v19.game] = {
[v19.game.Load] = v73,
[v19.game.ReportInGoogleAnalytics] = v73,
[v19.game.OpenScreenshotsFolder] = v73,
[v19.game.OpenVideosFolder] = v73
};
v71.RBXScriptSignal = function(_, v81) --[[ Line: 577 ]] --[[ Name: RBXScriptSignal ]]
-- upvalues: v71 (copy), v19 (copy), v10 (copy)
local v82 = {};
setmetatable(v82, {
__index = function(_, v84) --[[ Line: 580 ]] --[[ Name: __index ]]
-- upvalues: v71 (ref), v81 (copy), v19 (ref), v10 (ref)
v84 = string.lower(v84);
if v84 == "wait" then
local function v89(v85, ...) --[[ Line: 583 ]]
-- upvalues: v71 (ref), v81 (ref), v19 (ref)
v85 = v71.Map[v85];
local v86 = {
v81.Wait(v85, ...)
};
for v87, v88 in v86 do
if v19.type(v88) == "userdata" then
if v71.Map[v88] then
v86[v87] = v71.Map[v88];
elseif v19.typeof(v88) == "Instance" then
v86[v87] = v71:Instance(v88, v71.funcMap[v88]);
else
v86[v87] = v71:Userdata(v88);
end;
end;
end;
return unpack(v86);
end;
setfenv(v89, v10);
return v89;
elseif v84 == "connect" then
local function v95(v90, v91) --[[ Line: 604 ]]
-- upvalues: v71 (ref), v81 (ref), v19 (ref)
v90 = v71.Map[v90];
return v81.Connect(v90, function(...) --[[ Line: 606 ]]
-- upvalues: v19 (ref), v71 (ref), v91 (copy)
local v92 = {
...
};
for v93, v94 in v92 do
if v19.type(v94) == "userdata" then
if v71.Map[v94] then
v92[v93] = v71.Map[v94];
elseif v19.typeof(v94) == "Instance" then
v92[v93] = v71:Instance(v94, v71.funcMap[v94]);
else
v92[v93] = v71:Userdata(v94);
end;
end;
end;
return v91(unpack(v92));
end);
end;
setfenv(v95, v10);
return v95;
elseif v84 == "once" then
local function v101(v96, v97) --[[ Line: 627 ]]
-- upvalues: v71 (ref), v81 (ref), v19 (ref)
v96 = v71.Map[v96];
return v81.Once(v96, function(...) --[[ Line: 629 ]]
-- upvalues: v19 (ref), v71 (ref), v97 (copy)
local v98 = {
...
};
for v99, v100 in v98 do
if v19.type(v100) == "userdata" then
if v71.Map[v100] then
v98[v99] = v71.Map[v100];
elseif v19.typeof(v100) == "Instance" then
v98[v99] = v71:Instance(v100, v71.funcMap[v100]);
else
v98[v99] = v71:Userdata(v100);
end;
end;
end;
return v97(unpack(v98));
end);
end;
setfenv(v101, v10);
return v101;
else
return;
end;
end,
__tostring = function() --[[ Line: 649 ]] --[[ Name: __tostring ]]
-- upvalues: v81 (copy)
return tostring(v81);
end,
__metatable = "The metatable is locked",
__type = "RBXScriptSignal"
});
v71.Map[v82] = v81;
v71.Map[v81] = v82;
return v82;
end;
v71.Userdata = function(_, v103) --[[ Line: 660 ]] --[[ Name: Userdata ]]
-- upvalues: v19 (copy), v71 (copy), v10 (copy)
if v103 == v19.script then
return nil;
elseif v71.Map[v103] then
return v71.Map[v103];
elseif ({
Axes = true,
BrickColor = true,
CatalogSearchParams = true,
CFrame = true,
Color3 = true,
ColorSequence = true,
ColorSequenceKeypoint = true,
Content = true,
DateTime = true,
DockWidgetPluginGuiInfo = true,
Enum = true,
EnumItem = true,
Enums = true,
Faces = true,
FloatCurveKey = true,
Font = true,
NumberRange = true,
NumberSequence = true,
NumberSequenceKeypoint = true,
OverlapParams = true,
Path2DControlPoint = true,
PathWaypoint = true,
PhysicalProperties = true,
Random = true,
Rect = true,
Region3 = true,
Region3int16 = true,
RotationCurveKey = true,
Secret = true,
SharedTable = true,
TweenInfo = true,
UDim = true,
UDim2 = true,
Vector2 = true,
Vector2int16 = true,
Vector3 = true,
Vector3int16 = true
})[v19.typeof(v103)] then
return v103;
else
local v104 = newproxy(true);
local v105 = getmetatable(v104);
v105.__index = function(_, v107) --[[ Line: 708 ]]
-- upvalues: v19 (ref), v103 (copy), v71 (ref), v10 (ref)
if v19.typeof(v103[v107]) == "table" then
local v108 = v103[v107];
local function v109(v110) --[[ Line: 711 ]] --[[ Name: recur ]]
-- upvalues: v19 (ref), v71 (ref), v109 (copy)
for v111, v112 in v110 do
if v19.type(v112) == "userdata" then
if v71.Map[v112] then
v110[v111] = v71.Map[v112];
elseif v19.typeof(v112) == "RBXScriptSignal" then
v110[v111] = v71:RBXScriptSignal(v112);
elseif v19.typeof(v112) ~= "Instance" then
v110[v111] = v71:Userdata(v112);
else
if pcall(function() --[[ Line: 721 ]]
-- upvalues: v112 (copy)
return v112.ClassName;
end) and not v71.funcMap[v112] and v71.funcMap[v112.ClassName] then
error("Service '" .. tostring(v112) .. "' is not allowed", 3);
end;
v110[v111] = v71:Instance(v112, v71.funcMap[v112] or v71.funcMap[v112.ClassName]);
end;
elseif v19.typeof(v112) == "table" then
v110[v111] = v109(v112);
end;
end;
return v110;
end;
return (v109(v108));
elseif v19.typeof(v103[v107]) == "RBXScriptSignal" then
if v71.Map[v103[v107]] then
return v71.Map[v103[v107]];
else
return v71:RBXScriptSignal(v103[v107]);
end;
elseif v19.typeof(v103[v107]) == "Instance" then
if v71.Map[v103[v107]] then
return v71.Map[v103[v107]];
else
return v71:Instance(v103[v107], v71.funcMap[v103[v107]] or v71.funcMap[v103[v107].ClassName]);
end;
elseif v19.typeof(v103[v107]) == "userdata" then
if v71.Map[v103[v107]] then
return v71.Map[v103[v107]];
else
return v71:Userdata(v103[v107]);
end;
elseif v19.typeof(v103[v107]) == "function" then
local function v123(...) --[[ Line: 759 ]]
-- upvalues: v71 (ref), v19 (ref), v103 (ref), v107 (copy)
local v113 = {
...
};
local function v114(v115) --[[ Line: 762 ]] --[[ Name: recur ]]
-- upvalues: v71 (ref), v19 (ref), v114 (copy)
for v116, v117 in v115 do
if v71.Map[v117] then
v115[v116] = v71.Map[v117];
elseif v19.type(v117) == "table" then
v115[v116] = v114(v117);
end;
end;
return v115;
end;
v113 = v114(v113);
local v118;
v114, v118 = pcall(function() --[[ Line: 775 ]]
-- upvalues: v103 (ref), v107 (ref), v113 (ref)
return {
v103[v107](unpack(v113))
};
end);
if not v114 then
error(v118, 2);
end;
if v19.typeof(v118) == "table" then
local function v119(v120) --[[ Line: 784 ]] --[[ Name: recur ]]
-- upvalues: v19 (ref), v71 (ref), v119 (copy)
for v121, v122 in v120 do
if v19.type(v122) == "userdata" then
if v71.Map[v122] then
v120[v121] = v71.Map[v122];
elseif v19.typeof(v122) == "RBXScriptSignal" then
v120[v121] = v71:RBXScriptSignal(v122);
elseif v19.typeof(v122) ~= "Instance" then
v120[v121] = v71:Userdata(v122);
else
if pcall(function() --[[ Line: 794 ]]
-- upvalues: v122 (copy)
return v122.ClassName;
end) and not v71.funcMap[v122] and v71.funcMap[v122.ClassName] then
error("Service '" .. tostring(v122) .. "' is not allowed", 3);
end;
v120[v121] = v71:Instance(v122, v71.funcMap[v122] or v71.funcMap[v122.ClassName]);
end;
elseif v19.typeof(v122) == "table" then
v120[v121] = v119(v122);
end;
end;
return v120;
end;
v118 = v119(v118);
end;
return unpack(v118);
end;
setfenv(v123, v10);
return v123;
else
return v103[v107];
end;
end;
v105.__newindex = function(_, v125, v126) --[[ Line: 818 ]]
-- upvalues: v19 (ref), v71 (ref), v103 (copy)
if v19.type(v126) == "table" then
local function v127(v128) --[[ Line: 820 ]] --[[ Name: recur ]]
-- upvalues: v71 (ref), v19 (ref), v127 (copy)
for v129, v130 in v128 do
if v71.Map[v130] then
v128[v129] = v71.Map[v130];
elseif v19.type(v130) == "table" then
v128[v129] = v127(v130);
end;
end;
return v128;
end;
v126 = v127(v126);
end;
if v71.Map[v126] then
v126 = v71.Map[v126];
end;
v103[v125] = v126;
end;
local _ = {};
v105.__div = function(_, v133) --[[ Line: 841 ]]
-- upvalues: v103 (copy)
return v103 / v133;
end;
v105.__mul = function(_, v135) --[[ Line: 842 ]]
-- upvalues: v103 (copy)
return v103 * v135;
end;
v105.__add = function(_, v137) --[[ Line: 843 ]]
-- upvalues: v103 (copy)
return v103 + v137;
end;
v105.__sub = function(_, v139) --[[ Line: 844 ]]
-- upvalues: v103 (copy)
return v103 - v139;
end;
v105.__mod = function(_, v141) --[[ Line: 845 ]]
-- upvalues: v103 (copy)
return v103 % v141;
end;
v105.__pow = function(_, v143) --[[ Line: 846 ]]
-- upvalues: v103 (copy)
return v103 ^ v143;
end;
v105.__unm = function(_, _) --[[ Line: 847 ]]
-- upvalues: v103 (copy)
return -v103;
end;
v105.__eq = function(v146, v147) --[[ Line: 848 ]]
-- upvalues: v19 (ref), v71 (ref)
if rawequal(v146, v147) then
return true;
elseif v146 == nil or v147 == nil then
return v146 == v147;
elseif v19.type(v146) ~= v19.type(v147) then
return false;
else
return (v71.Map[v146] or v146) == (v71.Map[v147] or v147);
end;
end;
v105.__lt = function(_, v149) --[[ Line: 868 ]]
-- upvalues: v103 (copy)
return v103 < v149;
end;
v105.__le = function(_, v151) --[[ Line: 869 ]]
-- upvalues: v103 (copy)
return v103 <= v151;
end;
v105.__concat = function(_, v153) --[[ Line: 870 ]]
-- upvalues: v103 (copy)
return v103 .. v153;
end;
v105.__len = function(_, _) --[[ Line: 871 ]]
-- upvalues: v103 (copy)
return #v103;
end;
v105.__call = function(...) --[[ Line: 872 ]]
-- upvalues: v103 (copy)
return v103(...);
end;
v105.__tostring = function() --[[ Line: 873 ]]
-- upvalues: v103 (copy)
return tostring(v103);
end;
v105.__metatable = getmetatable(v103);
for _, v157 in v105 do
if v19.typeof(v157) == "function" then
pcall(setfenv, v157, v10);
end;
end;
v71.Map[v103] = v104;
v71.Map[v104] = v103;
return v104;
end;
end;
v71.Instance = function(_, v159, v160, v161) --[[ Line: 888 ]] --[[ Name: Instance ]]
-- upvalues: v19 (copy), v10 (copy), v71 (copy)
if v159 == v19.script then
return v10.Instance.new("ModuleScript");
elseif v19.typeof(v159) == "table" then
return v71.Map[v159];
elseif not v161 and v71.Map[v159] then
return v71.Map[v159];
else
local v162 = {};
local v163 = {};
local v164 = tostring({});
xpcall(function() --[[ Line: 901 ]]
-- upvalues: v159 (copy), v164 (copy)
return v159[v164];
end, function() --[[ Line: 903 ]]
-- upvalues: v162 (copy)
v162.__index = debug.info(2, "f");
end);
xpcall(function() --[[ Line: 907 ]]
-- upvalues: v159 (copy), v164 (copy)
v159[v164] = v159;
end, function() --[[ Line: 909 ]]
-- upvalues: v162 (copy)
v162.__newindex = debug.info(2, "f");
end);
xpcall(function() --[[ Line: 913 ]]
-- upvalues: v159 (copy), v164 (copy)
return v159[v164](v159);
end, function() --[[ Line: 915 ]]
-- upvalues: v162 (copy)
v162.__namecall = debug.info(2, "f");
end);
local v165 = {};
xpcall(function() --[[ Line: 921 ]]
-- upvalues: v159 (copy), v165 (copy)
return v159 == v165;
end, function() --[[ Line: 923 ]]
-- upvalues: v162 (copy)
v162.__eq = debug.info(2, "f");
end);
v162.__tostring = function() --[[ Line: 927 ]]
-- upvalues: v159 (copy)
return tostring(v159);
end;
local l___index_0 = v162.__index;
local _ = tostring({});
v162.__index = function(_, v169) --[[ Line: 934 ]]
-- upvalues: v160 (copy), v159 (copy), v19 (ref), v71 (ref), v10 (ref), l___index_0 (copy)
if v160 then
v169 = string.gsub(v169, "%z+$", "");
if v160[v169] then
return v160[v169];
elseif v160[v159[v169]] then
return v160[v159[v169]];
end;
end;
if v19.typeof(v159[v169]) == "function" then
local function v194(...) --[[ Line: 941 ]]
-- upvalues: v71 (ref), v19 (ref), v10 (ref), v159 (ref), v169 (ref)
local v170 = {
...
};
local function v171(v172) --[[ Line: 944 ]] --[[ Name: recur ]]
-- upvalues: v71 (ref), v19 (ref), v171 (copy), v10 (ref)
for v173, v174 in v172 do
if v71.Map[v174] then
v172[v173] = v71.Map[v174];
elseif v19.type(v174) == "table" then
v172[v173] = v171(v174);
elseif v19.type(v174) == "function" then
local l_v10_0 = v10;
local v176 = setmetatable({}, {
__mode = "k"
});
local function v184() --[[ Line: 953 ]] --[[ Name: makeCbEnv ]]
-- upvalues: v10 (ref), v19 (ref), l_v10_0 (copy)
local v177 = setmetatable({}, {
__index = v10
});
v177._G = v177;
v177.getfenv = function(_) --[[ Line: 957 ]]
-- upvalues: v177 (copy)
return v177;
end;
v177.setfenv = function(v179, v180) --[[ Line: 958 ]]
-- upvalues: v19 (ref), v177 (copy)
local v181 = v19.type(v179);
if v181 == "number" then
error("setfenv on stack level is not allowed", 2);
end;
if v181 == "function" then
if v180 ~= v177 then
error("attempt to set foreign environment", 2);
end;
return v179;
else
error("invalid setfenv target", 2);
return;
end;
end;
v177.debug = setmetatable({
info = function(v182, v183) --[[ Line: 969 ]] --[[ Name: info ]]
-- upvalues: v19 (ref)
if v19.type(v182) == "number" and v182 > 0 then
return nil;
else
return v19.debug.info(v182, v183);
end;
end
}, {
__index = function() --[[ Line: 973 ]] --[[ Name: __index ]]
return nil;
end
});
v177.game = l_v10_0.game;
return v177;
end;
v172[v173] = (function(v185) --[[ Line: 978 ]] --[[ Name: _wrap ]]
-- upvalues: v176 (copy), v184 (copy), v19 (ref), l_v10_0 (copy)
local v186 = v176[v185];
if v186 then
return v186;
else
local v187 = v184();
local v188 = nil;
if v19.debug.info(v185, "s") ~= "[C]" then
if pcall(setfenv, v185, v187) then
getfenv(v185).game = l_v10_0.game;
v188 = v185;
else
v188 = function(...) --[[ Line: 989 ]]
return nil;
end;
setfenv(v188, v187);
end;
else
v188 = function(...) --[[ Line: 993 ]]
-- upvalues: v185 (copy)
return v185(...);
end;
setfenv(v188, v187);
end;
v176[v185] = v188;
return v188;
end;
end)(v174);
end;
end;
return v172;
end;
v170 = v171(v170);
local v189;
v171, v189 = pcall(function() --[[ Line: 1009 ]]
-- upvalues: v159 (ref), v169 (ref), v170 (ref)
return {
v159[v169](unpack(v170))
};
end);
if not v171 then
error(v189, 2);
end;
if v19.typeof(v189) == "table" then
local function v190(v191) --[[ Line: 1018 ]] --[[ Name: recur ]]
-- upvalues: v19 (ref), v71 (ref), v190 (copy)
for v192, v193 in v191 do
if v19.type(v193) == "userdata" then
if v71.Map[v193] then
v191[v192] = v71.Map[v193];
elseif v19.typeof(v193) == "RBXScriptSignal" then
v191[v192] = v71:RBXScriptSignal(v193);
elseif v19.typeof(v193) ~= "Instance" then
v191[v192] = v71:Userdata(v193);
else
if pcall(function() --[[ Line: 1028 ]]
-- upvalues: v193 (copy)
return v193.ClassName;
end) and not v71.funcMap[v193] and v71.funcMap[v193.ClassName] then
error("", 2);
end;
v191[v192] = v71:Instance(v193, v71.funcMap[v193] or v71.funcMap[v193.ClassName]);
end;
elseif v19.typeof(v193) == "table" then
v191[v192] = v190(v193);
end;
end;
return v191;
end;
v189 = v190(v189);
end;
return unpack(v189);
end;
setfenv(v194, v10);
return v194;
elseif v19.typeof(v159[v169]) == "RBXScriptSignal" then
return v71:RBXScriptSignal(v159[v169]);
elseif v19.type(v159[v169]) == "userdata" then
if v71.Map[v159[v169]] then
return v71.Map[v159[v169]];
elseif v19.typeof(v159[v169]) == "Instance" then
return v71:Instance(v159[v169], v71.Map[v159[v169]] or v71.Map[v159[v169].ClassName]);
else
return v71:Userdata(v159[v169]);
end;
elseif v19.typeof(v159[v169]) == "table" then
local v195 = v159[v169];
local function v196(v197) --[[ Line: 1064 ]] --[[ Name: recur ]]
-- upvalues: v195 (copy), v19 (ref), v71 (ref), v196 (copy)
for v198, v199 in v195 do
if v19.type(v199) == "userdata" then
if v71.Map[v199] then
v197[v198] = v71.Map[v199];
elseif v19.typeof(v199) == "RBXScriptSignal" then
v197[v198] = v71:RBXScriptSignal(v199);
elseif v19.typeof(v199) ~= "Instance" then
v197[v198] = v71:Userdata(v199);
else
if pcall(function() --[[ Line: 1074 ]]
-- upvalues: v199 (copy)
return v199.ClassName;
end) and not v71.funcMap[v199] and v71.funcMap[v199.ClassName] then
error("Service '" .. tostring(v199) .. "' is not allowed", 3);
end;
v197[v198] = v71:Instance(v199, v71.funcMap[v199] or v71.funcMap[v199.ClassName]);
end;
elseif v19.typeof(v199) == "table" then
v197[v198] = v196(v199);
end;
end;
return v197;
end;
return (v196(v195));
else
return l___index_0(v159, v169);
end;
end;
local l___newindex_0 = v162.__newindex;
v162.__newindex = function(_, v202, v203) --[[ Line: 1096 ]]
-- upvalues: v71 (ref), l___newindex_0 (copy), v159 (copy)
if v71.Map[v203] then
return l___newindex_0(v159, v202, v71.Map[v203]);
else
return l___newindex_0(v159, v202, v203);
end;
end;
v162.__metatable = getmetatable(v159);
for _, v205 in v162 do
if v19.typeof(v205) == "function" then
pcall(setfenv, v205, v10);
end;
end;
setmetatable(v163, v162);
v71.Map[v159] = v163;
v71.Map[v163] = v159;
return v163;
end;
end;
v71.Get = function(_, v207) --[[ Line: 1119 ]] --[[ Name: Get ]]
-- upvalues: v71 (copy)
return v71.Map[v207];
end;
local v208 = {};
v10.getgenv = function() --[[ Line: 1128 ]] --[[ Name: getgenv ]]
-- upvalues: v10 (copy)
return v10;
end;
deepSearch = function(v209, v210, v211, v212) --[[ Line: 1132 ]] --[[ Name: deepSearch ]]
-- upvalues: v10 (copy)
if not v212 then
v212 = {};
end;
if v212[v209] then
return false;
else
v212[v209] = true;
if v211 and v211(v209) then
return true;
else
for _, v214 in v210 do
for v215, v216 in pairs(v209) do
if v10.type(v215) == "function" then
pcall(setfenv, v215, v10);
end;
if v10.type(v216) == "function" then
pcall(setfenv, v216, v10);
end;
if v215 == v214 or v216 == v214 then
return true;
else
if v10.type(v215) == "table" then
if v211 and v211(v215) then
return true;
elseif deepSearch(v215, v210, v211, v212) then
return true;
end;
end;
if v10.type(v216) == "table" then
if v211 and v211(v216) then
return true;
elseif deepSearch(v216, v210, v211, v212) then
return true;
end;
end;
end;
end;
end;
return false;
end;
end;
end;
local function v232(v217, ...) --[[ Line: 1173 ]] --[[ Name: _require ]]
-- upvalues: v71 (copy), v208 (copy), v19 (copy), v10 (copy)
v217 = v71:Get(v217);
assert(not v208[v217], "The module's bytecode was recently overwritten, call restorescriptbytecode to restore to it's original bytecode.", 3);
local v218 = v19.require(v217, ...);
if v19.type(v218) == "function" then
pcall(setfenv, v218, v10);
elseif v19.type(v218) == "table" then
assert(not deepSearch(v218, {
v19.game,
v19.workspace
}, function(v219) --[[ Line: 1181 ]]
-- upvalues: v19 (ref), v10 (ref)
for v220, v221 in v219 do
if v19.type(v220) == "function" then
pcall(setfenv, v220, v10);
end;
if v19.type(v221) == "function" then
pcall(setfenv, v221, v10);
end;
end;
local _, l_result_0 = pcall(function() --[[ Line: 1191 ]]
-- upvalues: v219 (copy)
return v219.game or v219.Game or v219.workspace or v219.Workspace;
end);
local v224 = true;
if l_result_0 ~= v19.game then
v224 = l_result_0 == v19.workspace;
end;
return v224;
end), "Nice try :D", 3);
elseif v19.type(v218) == "userdata" and v19.type(getmetatable(v218)) == "table" then
assert(not deepSearch(getmetatable(v218), {
v19.game,
v19.workspace
}, function(v225) --[[ Line: 1196 ]]
-- upvalues: v19 (ref), v10 (ref)
for v226, v227 in v225 do
if v19.type(v226) == "function" then
pcall(setfenv, v226, v10);
end;
if v19.type(v227) == "function" then
pcall(setfenv, v227, v10);
end;
end;
local _, l_result_1 = pcall(function() --[[ Line: 1205 ]]
-- upvalues: v225 (copy)
return v225.game or v225.Game or v225.workspace or v225.Workspace;
end);
local v230 = true;
if l_result_1 ~= v19.game then
v230 = l_result_1 == v19.workspace;
end;
return v230;
end), "Nice try :D", 3);
end;
local v231 = false;
if v218 ~= v19.game then
v231 = v218 ~= v19.workspace;
end;
assert(v231, "Nice try :D", 3);
return v218;
end;
local v233 = nil;
shared.__Xeno_G = {};
v10.getrenv = function() --[[ Line: 1217 ]] --[[ Name: getrenv ]]
-- upvalues: v233 (ref), v232 (copy), v10 (copy), v19 (copy)
if v233 then
return v233;
else
v233 = {
print = print,
warn = warn,
error = error,
assert = assert,
collectgarbage = getfenv().collectgarbage,
require = v232,
select = select,
tonumber = tonumber,
tostring = tostring,
type = v10.type,
xpcall = xpcall,
pairs = pairs,
next = next,
ipairs = ipairs,
newproxy = newproxy,
rawequal = rawequal,
rawget = rawget,
rawset = rawset,
rawlen = rawlen,
gcinfo = gcinfo,
_G = shared.__Xeno_G,
shared = shared,
RaycastParams = v10.RaycastParams,
Ray = v10.Ray,
coroutine = {
create = coroutine.create,
resume = coroutine.resume,
running = coroutine.running,
status = coroutine.status,
wrap = coroutine.wrap,
yield = coroutine.yield
},
bit32 = {
arshift = bit32.arshift,
band = bit32.band,
bnot = bit32.bnot,
bor = bit32.bor,
btest = bit32.btest,
extract = bit32.extract,
lshift = bit32.lshift,
replace = bit32.replace,
rshift = bit32.rshift,
xor = bit32.xor
},
math = {
abs = math.abs,
acos = math.acos,
asin = math.asin,
atan = math.atan,
atan2 = math.atan2,
ceil = math.ceil,
cos = math.cos,
cosh = math.cosh,
deg = math.deg,
exp = math.exp,
floor = math.floor,
fmod = math.fmod,
frexp = math.frexp,
ldexp = math.ldexp,
log = math.log,
log10 = math.log10,
max = math.max,
min = math.min,
modf = math.modf,
pow = math.pow,
rad = math.rad,
random = math.random,
randomseed = math.randomseed,
sin = math.sin,
sinh = math.sinh,
sqrt = math.sqrt,
tan = math.tan,
tanh = math.tanh
},
string = {
byte = string.byte,
char = string.char,
find = string.find,
format = string.format,
gmatch = string.gmatch,
gsub = string.gsub,
len = string.len,
lower = string.lower,
match = string.match,
pack = string.pack,
packsize = string.packsize,
rep = string.rep,
reverse = string.reverse,
sub = string.sub,
unpack = string.unpack,
upper = string.upper
},
table = {
clone = table.clone,
concat = table.concat,
insert = table.insert,
pack = table.pack,
remove = table.remove,
sort = table.sort,
unpack = table.unpack
},
utf8 = {
char = utf8.char,
charpattern = utf8.charpattern,
codepoint = utf8.codepoint,
codes = utf8.codes,
len = utf8.len,
nfdnormalize = utf8.nfdnormalize,
nfcnormalize = utf8.nfcnormalize
},
os = {
clock = os.clock,
date = os.date,
difftime = os.difftime,
time = os.time
},
delay = delay,
elapsedTime = getfenv().elapsedTime,
spawn = spawn,
tick = tick,
time = time,
typeof = v10.typeof,
settings = v10.settings,
UserSettings = v10.UserSettings,
version = getfenv().version,
wait = wait,
_VERSION = _VERSION,
task = {
defer = task.defer,
delay = task.delay,
spawn = task.spawn,
wait = task.wait,
cancel = task.cancel
},
debug = {
traceback = v19.debug.traceback,
profilebegin = v19.debug.profilebegin,
profileend = v19.debug.profileend
},
game = v10.game,
workspace = v10.workspace,
Game = v10.game,
Workspace = v10.workspace,
getmetatable = getmetatable,
setmetatable = setmetatable
};
table.freeze(v233);
return v233;
end;
end;
v10.type = function(v234) --[[ Line: 1288 ]] --[[ Name: type ]]
-- upvalues: v19 (copy), v71 (copy)
if v19.type(v234) == "table" and v71.Map[v234] then
return v19.type(v71.Map[v234]);
else
return v19.type(v234);
end;
end;
v10.typeof = function(v235) --[[ Line: 1295 ]] --[[ Name: typeof ]]
-- upvalues: v19 (copy), v71 (copy)
if (v19.typeof(v235) == "table" or v19.typeof(v235) == "userdata") and v71.Map[v235] then
return v19.typeof(v71.Map[v235]);
else
return v19.typeof(v235);
end;
end;
local v236 = {};
v10.GetUnlockedModules = function() --[[ Line: 1304 ]] --[[ Name: GetUnlockedModules ]]
-- upvalues: v236 (copy), v71 (copy)
local v237 = {};
for v238, _ in pairs(v236) do
table.insert(v237, v71:Get(v238));
end;
return v237;
end;
local function v242(v240) --[[ Line: 1312 ]] --[[ Name: RLockModule ]]
-- upvalues: v236 (copy), v56 (copy), v39 (copy), v40 (copy)
if not v236[v240] then
return;
else
local v241 = v56(v240);
v39({
v40.LockModule,
v241.Name
}, true);
v241:Destroy();
v236[v240] = false;
return;
end;
end;
v10.LockModule = function(v243) --[[ Line: 1319 ]] --[[ Name: LockModule ]]
-- upvalues: v71 (copy), v19 (copy), v242 (copy)
v243 = v71:Get(v243);
assert(v19.typeof(v243) == "Instance", "invalid argument #1 to 'LockModule' (Instance expected, got " .. v19.typeof(v243) .. ") ", 3);
assert(v243.ClassName == "ModuleScript", "invalid argument #2 to 'LockModule' (ModuleScript expected, got " .. v243.ClassName .. ") ", 3);
v242(v243);
end;
local function v246(v244) --[[ Line: 1328 ]] --[[ Name: RUnlockModule ]]
-- upvalues: v236 (copy), v56 (copy), v39 (copy), v40 (copy)
if v236[v244] then
return;
else
local v245 = v56(v244);
v39({
v40.UnlockModule,
v245.Name
}, true);
v245:Destroy();
v236[v244] = true;
return;
end;
end;
v10.UnlockModule = function(v247) --[[ Line: 1335 ]] --[[ Name: UnlockModule ]]
-- upvalues: v71 (copy), v19 (copy), v246 (copy)
v247 = v71:Get(v247);
assert(v19.typeof(v247) == "Instance", "invalid argument #1 to 'UnlockModule' (Instance expected, got " .. v19.typeof(v247) .. ") ", 3);
assert(v247.ClassName == "ModuleScript", "invalid argument #1 to 'UnlockModule' (ModuleScript expected, got " .. v247.ClassName .. ") ", 3);
v246(v247);
end;
v10.require = function(v248, v249) --[[ Line: 1344 ]] --[[ Name: require ]]
-- upvalues: v71 (copy), v19 (copy), v208 (copy), v246 (copy), v236 (copy), v10 (copy)
v248 = v71:Get(v248);
assert(v19.typeof(v248) == "Instance", "Attempted to call require with invalid argument(s). ", 3);
assert(v248.ClassName == "ModuleScript", "Attempted to call require with invalid argument(s). ", 3);
assert(not v208[v248], "The module's bytecode was recently overwritten, call restorescriptbytecode to restore to it's original bytecode.", 3);
if v249 == nil then
v249 = true;
end;
if v249 then
for _, v251 in pairs(v248:GetDescendants()) do
if v251:IsA("ModuleScript") then
v246(v251);
end;
end;
if v248.Parent then
for _, v253 in pairs(v248.Parent:GetDescendants()) do
if v253:IsA("ModuleScript") then
v246(v253);
end;
end;
end;
end;
if v236[v248] then
local v254 = v19.require(v248);
if v19.type(v254) == "function" then
pcall(setfenv, v254, v10);
elseif v19.type(v254) == "table" then
assert(not deepSearch(v254, {
v19.game,
v19.workspace
}, function(v255) --[[ Line: 1375 ]]
-- upvalues: v19 (ref), v10 (ref)
for v256, v257 in v255 do
if v19.type(v256) == "function" then
pcall(setfenv, v256, v10);
end;
if v19.type(v257) == "function" then
pcall(setfenv, v257, v10);
end;
end;
local _, l_result_2 = pcall(function() --[[ Line: 1384 ]]
-- upvalues: v255 (copy)
return v255.game or v255.Game or v255.workspace or v255.Workspace;
end);
local v260 = true;
if l_result_2 ~= v19.game then
v260 = l_result_2 == v19.workspace;
end;
return v260;
end), "Nice try :D", 3);
elseif v19.type(v254) == "userdata" and v19.type(getmetatable(v254)) == "table" then
assert(not deepSearch(getmetatable(v254), {
v19.game,
v19.workspace
}, function(v261) --[[ Line: 1389 ]]
-- upvalues: v19 (ref), v10 (ref)
for v262, v263 in v261 do
if v19.type(v262) == "function" then
pcall(setfenv, v262, v10);
end;
if v19.type(v263) == "function" then
pcall(setfenv, v263, v10);
end;
end;
local _, l_result_3 = pcall(function() --[[ Line: 1398 ]]
-- upvalues: v261 (copy)
return v261.game or v261.Game or v261.workspace or v261.Workspace;
end);
local v266 = true;
if l_result_3 ~= v19.game then
v266 = l_result_3 == v19.workspace;
end;
return v266;
end), "Nice try :D", 3);
end;
local v267 = false;
if v254 ~= v19.game then
v267 = v254 ~= v19.workspace;
end;
assert(v267, "Nice try :D", 3);
return v254;
else
v246(v248);
local v268 = v19.require(v248);
if v19.type(v268) == "function" then
pcall(setfenv, v268, v10);
elseif v19.type(v268) == "table" then
assert(not deepSearch(v268, {
v19.game,
v19.workspace
}, function(v269) --[[ Line: 1413 ]]
-- upvalues: v19 (ref), v10 (ref)
for v270, v271 in v269 do
if v19.type(v270) == "function" then
pcall(setfenv, v270, v10);
end;
if v19.type(v271) == "function" then
pcall(setfenv, v271, v10);
end;
end;
local _, l_result_4 = pcall(function() --[[ Line: 1422 ]]
-- upvalues: v269 (copy)
return v269.game or v269.Game or v269.workspace or v269.Workspace;
end);
local v274 = true;
if l_result_4 ~= v19.game then
v274 = l_result_4 == v19.workspace;
end;
return v274;
end), "Nice try :D", 3);
elseif v19.type(v268) == "userdata" and v19.type(getmetatable(v268)) == "table" then
assert(not deepSearch(getmetatable(v268), {
v19.game,
v19.workspace
}, function(v275) --[[ Line: 1427 ]]
-- upvalues: v19 (ref), v10 (ref)
for v276, v277 in v275 do
if v19.type(v276) == "function" then
pcall(setfenv, v276, v10);
end;
if v19.type(v277) == "function" then
pcall(setfenv, v277, v10);
end;
end;
local _, l_result_5 = pcall(function() --[[ Line: 1436 ]]
-- upvalues: v275 (copy)
return v275.game or v275.Game or v275.workspace or v275.Workspace;
end);
local v280 = true;
if l_result_5 ~= v19.game then
v280 = l_result_5 == v19.workspace;
end;
return v280;
end), "Nice try :D", 3);
end;
local v281 = false;
if v268 ~= v19.game then
v281 = v268 ~= v19.workspace;
end;
assert(v281, "Nice try :D", 3);
return v268;
end;
end;
v10.getscriptbytecode = function(v282) --[[ Line: 1445 ]] --[[ Name: getscriptbytecode ]]
-- upvalues: v71 (copy), v19 (copy), v56 (copy), v39 (copy), v40 (copy)
v282 = v71:Get(v282);
assert(v19.typeof(v282) == "Instance", "invalid argument #1 to 'getscriptbytecode' (Instance expected, got " .. v19.typeof(v282) .. ") ", 3);
local v283 = true;
if v282.ClassName ~= "LocalScript" then
v283 = v282.ClassName == "ModuleScript";
end;
assert(v283, "invalid 'ClassName' for 'Instance' #1 to 'getscriptbytecode' (LocalScript or ModuleScript expected, got '" .. v282.ClassName .. "') ", 3);
local v284 = v56(v282);
v283 = v39({
v40.GetScriptBytecode,
v284.Name
}, true);
v284:Destroy();
return v283;
end;
v10.dumpstring = v10.getscriptbytecode;
shared.__Xeno = v10;
v10.setscriptbytecode = function(v285, v286) --[[ Line: 1458 ]] --[[ Name: setscriptbytecode ]]
-- upvalues: v71 (copy), v19 (copy), v208 (copy), v56 (copy), v39 (copy), v11 (copy)
v285 = v71:Get(v285);
assert(v19.typeof(v285) == "Instance", "invalid argument #1 to 'setscriptbytecode' (Instance expected, got " .. v19.typeof(v285) .. ") ", 3);
local v287 = true;
if v285.ClassName ~= "LocalScript" then
v287 = v285.ClassName == "ModuleScript";
end;
assert(v287, "invalid 'ClassName' for 'Instance' #1 to 'setscriptbytecode' (LocalScript or ModuleScript expected, got '" .. v285.ClassName .. "') ", 3);
assert(v19.type(v286) == "string", "invalid argument #2 to 'setscriptbytecode' (string expected, got " .. v19.type(v286) .. ")", 3);
if v285.ClassName == "ModuleScript" then
v208[v285] = true;
end;
local v288 = v56(v285);
v39({
0,
"if not shared.__Xeno then if script.ClassName == 'ModuleScript' then warn('Call the function UnlockModule() to set this scripts identity to 3') end error('Xeno Environment Not Found. Identity must be 3.. Try calling UnlockModule', 3) end local cn = script.ClassName for i,v in shared.__Xeno do getfenv(0)[i]=v end;local e={}setmetatable(e, {__index = shared.__Xeno})setfenv(1,e)local s=Instance.new(cn)getfenv(1).script=s setfenv(0, getfenv(1))" .. v286,
v11.Server .. "/sb?c=" .. v288.Name .. "&p=" .. "51880"
});
v288:Destroy();
end;
v10.restorescriptbytecode = function(v289) --[[ Line: 1475 ]] --[[ Name: restorescriptbytecode ]]
-- upvalues: v71 (copy), v19 (copy), v208 (copy), v56 (copy), v39 (copy), v40 (copy)
v289 = v71:Get(v289);
assert(v19.typeof(v289) == "Instance", "invalid argument #1 to 'restorescriptbytecode' (Instance expected, got " .. v19.typeof(v289) .. ") ", 3);
local v290 = true;
if v289.ClassName ~= "LocalScript" then
v290 = v289.ClassName == "ModuleScript";
end;
assert(v290, "invalid 'ClassName' for 'Instance' #1 to 'restorescriptbytecode' (LocalScript or ModuleScript expected, got '" .. v289.ClassName .. "') ", 3);
if v289.ClassName == "ModuleScript" then
v208[v289] = nil;
end;
local v291 = v56(v289);
v39({
v40.RestoreScriptBytecode,
v291.Name
}, true);
v291:Destroy();
end;
local v292 = 0;
do
local l_v292_0 = v292;
local function v300(v294, v295) --[[ Line: 1493 ]] --[[ Name: call ]]
-- upvalues: v10 (copy), l_v292_0 (ref), v28 (copy)
local l_status_6, l_result_6 = pcall(v10.getscriptbytecode, v295);
if #l_result_6 <= 1 then
return "-- " .. tostring(v295:GetFullName()) .. " contains empty bytecode";
elseif not l_status_6 then
return (("-- Failed to get script bytecode, error:\n\n--[[\n%*\n--]]"):format(l_result_6));
else
local v298 = os.clock() - l_v292_0;
if v298 <= 0.5 then
task.wait(0.5 - v298);
end;
local v299 = v28({
Url = "http://api.plusgiant5.com" .. v294,
Body = l_result_6,
Method = "POST",
Headers = {
["Content-Type"] = "text/plain"
}
});
l_v292_0 = os.clock();
if v299.StatusCode ~= 200 then
return (("-- Error occurred while requesting Konstant API, error:\n\n--[[\n%*\n--]]"):format(v299.Body));
else
return v299.Body;
end;
end;
end;
local l_v300_0 = v300 --[[ copy: 42 -> 85 ]];
v10.decompile = function(v302) --[[ Line: 1527 ]] --[[ Name: decompile ]]
-- upvalues: l_v300_0 (copy)
return l_v300_0("/konstant/decompile", v302);
end;
v10.disassemble = function(v303) --[[ Line: 1531 ]] --[[ Name: disassemble ]]
-- upvalues: l_v300_0 (copy)
return l_v300_0("/konstant/disassemble", v303);
end;
end;
v292 = {};
local function v308(v304, v305, v306) --[[ Line: 1538 ]] --[[ Name: rSetScriptable ]]
-- upvalues: v56 (copy), v39 (copy), l_game_Service_0 (copy), v11 (copy), v40 (copy)
local v307 = v56(v304);
v39({
0,
l_game_Service_0:JSONEncode({
c = v307.Name,
p = "51880",
r = v305,
s = v306
}),
v11.Server .. "/f?e=" .. v40.SetScriptable
});
v307:Destroy();
end;
v10.gethiddenproperty = function(v309, v310) --[[ Line: 1553 ]] --[[ Name: gethiddenproperty ]]
-- upvalues: v71 (copy), v19 (copy), v10 (copy), v292 (copy)
local l_v309_0 = v309;
v309 = v71:Get(v309);
assert(v19.typeof(v309) == "Instance", "invalid argument #1 to 'gethiddenproperty' (Instance expected, got " .. v19.typeof(v309) .. ") ", 3);
assert(v19.typeof(v310) == "string", "invalid argument #2 to 'gethiddenproperty' (string expected, got " .. v19.type(v310) .. ") ", 3);
if v309 == v19.workspace and v310:lower() == "parent" then
return v10.game;
else
local l_status_7, l_result_7 = pcall(function() --[[ Line: 1563 ]]
-- upvalues: l_v309_0 (copy), v310 (copy)
return l_v309_0[v310];
end);
if l_status_7 then
if v292[v309.ClassName] and v292[v309.ClassName][v310] and v292[v309.ClassName][v310].Original == false and v292[v309.ClassName][v310].Scriptable == true then
return l_result_7, true;
else
return l_result_7, false;
end;
else
local l_status_8, l_result_8 = pcall(function() --[[ Line: 1575 ]]
-- upvalues: v10 (ref), l_v309_0 (copy), v310 (copy)
return v10.game:GetService("UGCValidationService"):GetPropertyValue(l_v309_0, v310);
end);
if l_status_8 then
return l_result_8, true;
else
return 0, true;
end;
end;
end;
end;
v10.sethiddenproperty = function(v316, v317, v318) --[[ Line: 1594 ]] --[[ Name: sethiddenproperty ]]
-- upvalues: v292 (copy), v71 (copy), v308 (copy)
if pcall(function() --[[ Line: 1595 ]]
-- upvalues: v316 (ref), v317 (copy), v318 (copy)
v316[v317] = v318;
end) then
if v292[v316.ClassName] and v292[v316.ClassName][v317] and v292[v316.ClassName][v317].Original == false and v292[v316.ClassName][v317].Scriptable == true then
return true;
else
return false;
end;
else
v316 = v71:Get(v316);
if not v292[v316.ClassName] then
v292[v316.ClassName] = {};
v292[v316.ClassName][v317] = {
Original = false,
Scriptable = true
};
end;
v308(v316, v317, true);
pcall(function() --[[ Line: 1616 ]]
-- upvalues: v316 (ref), v317 (copy), v318 (copy)
v316[v317] = v318;
end);
v308(v316, v317, false);
v292[v316.ClassName][v317].Scriptable = false;
return true;
end;
end;
v10.isscriptable = function(v319, v320) --[[ Line: 1626 ]] --[[ Name: isscriptable ]]
-- upvalues: v10 (copy), v19 (copy), v292 (copy), v71 (copy)
assert(v10.typeof(v319) == "Instance", "invalid argument #1 to 'setscriptable' (Instance expected, got " .. v10.typeof(v319) .. ") ", 3);
assert(v19.type(v320) == "string", "invalid argument #2 to 'setscriptable' (string expected, got " .. v19.type(v320) .. ") ", 3);
if v292[v319.ClassName] and v292[v319.ClassName][v320] then
local v321 = v292[v319.ClassName][v320][v71:Get(v319)];
if v321 == nil then
return v292[v319.ClassName][v320].Original or false;
else
return v321;
end;
else
local v323, v324 = xpcall(v319.GetPropertyChangedSignal, function(v322) --[[ Line: 1639 ]]
return v322;
end, v319, v320);
return v323 or not string.find(v324, "scriptable");
end;
end;
v10.setscriptable = function(v325, v326, v327) --[[ Line: 1646 ]] --[[ Name: setscriptable ]]
-- upvalues: v10 (copy), v19 (copy), v292 (copy), v71 (copy), v308 (copy)
assert(v10.typeof(v325) == "Instance", "invalid argument #1 to 'setscriptable' (Instance expected, got " .. v10.typeof(v325) .. ") ", 3);
assert(v19.type(v326) == "string", "invalid argument #2 to 'setscriptable' (string expected, got " .. v19.type(v326) .. ") ", 3);
assert(v19.type(v327) == "boolean", "invalid argument #3 to 'setscriptable' (boolean expected, got " .. v19.type(v327) .. ") ", 3);
local l_status_9, l_result_9 = pcall(function() --[[ Line: 1659 ]]
-- upvalues: v292 (ref), v325 (copy), v326 (copy)
return v292[v325.ClassName][v326].Scriptable;
end);
if l_status_9 and l_result_9 == v327 and v292[v325.ClassName][v326][v71:Get(v325)] ~= nil then
return v327;
else
local v330 = v10.isscriptable(v325, v326);
if v330 == v327 then
return v327;
else
v308(v71:Get(v325), v326, v327);
if not v292[v325.ClassName] then
v292[v325.ClassName] = {};
end;
if not v292[v325.ClassName][v326] then
v292[v325.ClassName][v326] = {};
v292[v325.ClassName][v326].Original = v330;
end;
v292[v325.ClassName][v326].Scriptable = v327;
v292[v325.ClassName][v326][v71:Get(v325)] = v327;
return v330;
end;
end;
end;
local function v337(v331) --[[ Line: 1686 ]] --[[ Name: rGetProperties ]]
-- upvalues: v56 (copy), v71 (copy), v39 (copy), v40 (copy), v19 (copy), v10 (copy)
local v332 = v56(v71:Get(v331));
local v333 = v39({
v40.GetProperties,
v332.Name
}, true);
v332:Destroy();
if v19.type(v333) ~= "table" then
return {};
else
local v334 = {};
for _, v336 in v333 do
v334[v336] = {
v10.gethiddenproperty(v331, v336)
};
end;
return v334;
end;
end;
v10.getproperties = function(v338) --[[ Line: 1700 ]] --[[ Name: getproperties ]]
-- upvalues: v10 (copy), v337 (copy)
assert(v10.typeof(v338) == "Instance", "invalid argument #1 to 'getproperties' (Instance expected, got " .. v10.typeof(v338) .. ") ", 3);
local v339 = {};
for v340, v341 in pairs(v337(v338)) do
if not v341[2] then
v339[v340] = v341[1];
end;
end;
return v339;
end;
v10.gethiddenproperties = function(v342) --[[ Line: 1711 ]] --[[ Name: gethiddenproperties ]]
-- upvalues: v10 (copy), v337 (copy)
assert(v10.typeof(v342) == "Instance", "invalid argument #1 to 'gethiddenproperties' (Instance expected, got " .. v10.typeof(v342) .. ") ", 3);
local v343 = {};
for v344, v345 in pairs(v337(v342)) do
if v345[2] then
v343[v344] = v345[1];
end;
end;
return v343;
end;
v10.getrbxsignals = function(v346) --[[ Line: 1722 ]] --[[ Name: getrbxsignals ]]
-- upvalues: v71 (copy), v56 (copy), v39 (copy), v40 (copy), v19 (copy)
local l_v346_0 = v346;
v346 = v71:Get(v346);
local v348 = v56(v346);
local v349 = v39({
v40.GetInstanceRBXSignals,
v348.Name
}, true);
v348:Destroy();
if v19.type(v349) ~= "table" then
return {};
else
local v350 = {};
for _, v352 in pairs(v349) do
local l_status_10, l_result_10 = pcall(function() --[[ Line: 1733 ]]
-- upvalues: l_v346_0 (copy), v352 (copy)
return l_v346_0[v352];
end);
if l_status_10 then
v350[v352] = l_result_10;
end;
end;
return v350;
end;
end;
v10.getfunctions = function(v355) --[[ Line: 1743 ]] --[[ Name: getfunctions ]]
-- upvalues: v71 (copy), v56 (copy), v39 (copy), v40 (copy), v19 (copy)
local l_v355_0 = v355;
v355 = v71:Get(v355);
local v357 = v56(v355);
local v358 = v39({
v40.GetInstanceFunctions,
v357.Name
}, true);
v357:Destroy();
if v19.type(v358) ~= "table" then
return {};
else
local v359 = {};
for _, v361 in pairs(v358) do
local l_status_11, l_result_11 = pcall(function() --[[ Line: 1754 ]]
-- upvalues: l_v355_0 (copy), v361 (copy)
return l_v355_0[v361];
end);
if l_status_11 then
v359[v361] = l_result_11;
end;
end;
return v359;
end;
end;
v10.loadstring = function(v364, v365) --[[ Line: 1764 ]] --[[ Name: loadstring ]]
-- upvalues: v19 (copy), v12 (copy), l_Folder_2 (copy), v39 (copy), v11 (copy), v56 (copy), v40 (copy)
assert(v19.type(v364) == "string", "invalid argument #1 to 'loadstring' (string expected, got " .. v19.type(v364) .. ") ", 3);
local v366 = "loadstring:" .. math.random(1, 1000000);
if v19.type(v365) == "string" then
v366 = v366 .. tostring(v365);
end;
local v367 = v19.Instance.fromExisting(v12[math.random(1, #v12)]);
v367.Name = v366;
v367.Parent = l_Folder_2;
local v368, v369, v370 = v39({
0,
v364,
v11.Server .. "/ls?c=" .. v367.Name .. "&p=" .. "51880"
}, nil, nil, true);
if not v369 then
if v370 == 400 then
return nil, tostring(v368);
elseif v370 == 500 then
return nil, "Server failed to process loadstring. View the logs for more information.";
else
return nil, "loadstring request to the server failed.";
end;
else
local v371 = {
v367
};
local v372 = tick();
local function v376() --[[ Line: 1794 ]] --[[ Name: clearMCache ]]
-- upvalues: v371 (copy), v56 (ref), v39 (ref), v40 (ref)
for _, v374 in pairs(v371) do
task.spawn(function() --[[ Line: 1796 ]]
-- upvalues: v56 (ref), v374 (copy), v39 (ref), v40 (ref)
local v375 = v56(v374);
v39({
v40.RestoreScriptBytecode,
v375.Name
}, true);
v375:Destroy();
v374:Destroy();
end);
end;
table.clear(v371);
end;
while true do
local l_status_12, l_result_12 = pcall(function() --[[ Line: 1807 ]]
-- upvalues: v19 (ref), v367 (ref)
return v19.require(v367);
end);
if l_status_12 and v19.type(l_result_12) == "table" and v19.type(l_result_12["51880"]) == "function" then
v376();
local l_51880_0 = l_result_12["51880"];
task.delay(0.01, v376);
setfenv(l_51880_0, getfenv(v19.debug.info(2, "f")));
return l_51880_0;
elseif tick() - v372 > 3 then
v376();
return nil, "Timeout";
else
task.wait(0.05);
v366 = "loadstring:" .. math.random(1, 1000000) .. ":";
if v19.type(v365) == "string" then
v366 = v366 .. tostring(v365);
end;
v367 = v19.Instance.fromExisting(v12[math.random(1, #v12)]);
v367.Name = v366;
v367.Parent = l_Folder_2;
v39({
0,
v364,
v11.Server .. "/ls?c=" .. v366 .. "&p=" .. "51880"
}, nil, nil, true);
table.insert(v371, v367);
end;
end;
end;
end;
local v380 = v71:Userdata(settings());
local v381 = v71:Userdata(UserSettings());
v10.settings = function() --[[ Line: 1848 ]] --[[ Name: settings ]]
-- upvalues: v380 (copy)
return v380;
end;
v10.UserSettings = function() --[[ Line: 1852 ]] --[[ Name: UserSettings ]]
-- upvalues: v381 (copy)
return v381;
end;
local l_RaycastParams_0 = RaycastParams;
local l_Ray_0 = Ray;
v10.RaycastParams = v71:Userdata(l_RaycastParams_0);
v10.Ray = v71:Userdata(l_Ray_0);
local v384 = {
[0] = "A";
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z",
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"+",
"/"
};
local v385 = {};
local v386 = {
[61] = 0,
[65] = 0
};
for v387, v388 in ipairs(v384) do
v386[string.byte(v388)] = v387;
end;
for v389 = 0, 255 do
v385[v389] = string.char(v389);
end;
local l_v384_0 = v384 --[[ copy: 48 -> 86 ]];
local l_v386_0 = v386 --[[ copy: 50 -> 87 ]];
local l_v385_0 = v385 --[[ copy: 49 -> 88 ]];
fbase64 = {
encode = function(v393) --[[ Line: 1891 ]] --[[ Name: encode ]]
-- upvalues: l_v384_0 (copy)
local v394 = string.len(v393);
local v395 = table.create(math.ceil(v394 / 4) * 4);
local v396 = 1;
for v397 = 1, v394, 3 do
local v398, v399, v400 = string.byte(v393, v397, v397 + 2);
local v401 = bit32.lshift(v398, 16) + bit32.lshift(v399 or 0, 8) + (v400 or 0);
v395[v396] = l_v384_0[bit32.extract(v401, 18, 6)];
v395[v396 + 1] = l_v384_0[bit32.extract(v401, 12, 6)];
v395[v396 + 2] = v399 and l_v384_0[bit32.extract(v401, 6, 6)] or "=";
v395[v396 + 3] = v400 and l_v384_0[bit32.band(v401, 63)] or "=";
v396 = v396 + 4;
end;
return table.concat(v395);
end,
decode = function(v402) --[[ Line: 1910 ]] --[[ Name: decode ]]
-- upvalues: l_v386_0 (copy), l_v385_0 (copy)
local v403 = string.len(v402);
local v404 = table.create(v403 * 0.75);
local v405 = 1;
for v406 = 1, v403, 4 do
local v407, v408, v409, v410 = string.byte(v402, v406, v406 + 3);
local v411 = bit32.lshift(l_v386_0[v407], 18) + bit32.lshift(l_v386_0[v408], 12) + bit32.lshift(l_v386_0[v409], 6) + l_v386_0[v410];
v404[v405] = l_v385_0[bit32.extract(v411, 16, 8)];
v404[v405 + 1] = v409 ~= "=" and l_v385_0[bit32.extract(v411, 8, 8)] or "=";
v404[v405 + 2] = v410 ~= "=" and l_v385_0[bit32.band(v411, 255)] or "=";
v405 = v405 + 3;
end;
return table.concat(v404);
end
};
v384 = {
GET = 0,
POST = 1,
PUT = 2,
DELETE = 3,
PATCH = 4
};
v10.get_hwid = function() --[[ Line: 1945 ]] --[[ Name: get_hwid ]]
-- upvalues: v58 (ref)
return v58;
end;
v10.gethwid = v10.get_hwid;
v10.request = function(v412) --[[ Line: 1950 ]] --[[ Name: request ]]
-- upvalues: v19 (copy), v384 (copy), v10 (copy), v58 (ref), l_game_Service_0 (copy), v39 (copy), v11 (copy)
assert(v19.type(v412) == "table", "invalid argument #1 to 'request' (table expected, got " .. v19.type(v412) .. ") ", 3);
assert(v19.type(v412.Url) == "string", "invalid option 'Url' for argument #1 to 'request' (string expected, got " .. v19.type(v412.Url) .. ") ", 3);
v412.Method = v412.Method or "GET";
assert(v19.type(v412.Method) == "string", "invalid option 'Method' for argument #1 to 'request' (string expected, got " .. v19.type(v412.Method) .. ") ", 3);
v412.Method = v412.Method:upper();
assert(v384[v412.Method], "invalid option 'Method' for argument #1 to 'request' (a valid http method expected, got '" .. v412.Method .. "') ", 3);
if v412.Body then
assert(v19.type(v412.Body) == "string", "invalid option 'Body' for argument #1 to 'request' (string expected, got " .. v19.type(v412.Body) .. ") ", 3);
end;
if v412.Headers then
assert(v19.type(v412.Headers) == "table", "invalid option 'Headers' for argument #1 to 'request' (table expected, got " .. v19.type(v412.Headers) .. ") ", 3);
end;
v412.Headers = v412.Headers or {};
v412.Headers = (function() --[[ Line: 1973 ]] --[[ Name: lheader ]]
-- upvalues: v412 (copy)
local v413 = {};
for v414, v415 in pairs(v412.Headers) do
local v416 = tostring(v414):lower();
if not v413[v416] then
v413[v416] = v415;
end;
end;
return v413;
end)();
if v412.Headers["user-agent"] then
assert(v19.type(v412.Headers["user-agent"]) == "string", "invalid option 'User-Agent' for argument #1 to 'request.Headers' (string expected, got " .. v19.type(v412.Url) .. ") ", 3);
end;
v412.Headers["user-agent"] = v412.Headers["user-agent"] or "Xeno/" .. tostring(v10.about.Version);
v412.Headers["exploit-guid"] = v58;
v412.Headers["xeno-fingerprint"] = v58;
v412.Headers["roblox-place-id"] = tostring(game.PlaceId);
v412.Headers["roblox-game-id"] = tostring(game.JobId);
v412.Headers["roblox-session-id"] = l_game_Service_0:JSONEncode({
GameId = tostring(game.JobId),
PlaceId = tostring(game.PlaceId)
});
local v417, v418, v419 = v39({
0,
tostring(v412.Body),
v11.Server .. "/rq?c=" .. v384[v412.Method] .. "&h=" .. l_game_Service_0:UrlEncode(fbase64.encode(l_game_Service_0:JSONEncode(v412.Headers))) .. "&u=" .. l_game_Service_0:UrlEncode(fbase64.encode(v412.Url))
}, false, true);
if not v418 then
return {
Success = false,
StatusMessage = "Xeno Server Error: " .. tostring(v417),
StatusCode = 403,
HttpError = Enum.HttpError.Unknown
};
else
local l_xeno_0 = v419.xeno;
if not l_xeno_0 then
return {
Success = false,
StatusMessage = "Server Response not found in Headers. " .. tostring(v417),
StatusCode = 417,
Body = v417,
HttpError = Enum.HttpError.NetFail
};
else
local v421 = l_game_Service_0:JSONDecode(l_xeno_0);
local l_status_13, l_result_13 = pcall(function() --[[ Line: 2029 ]]
-- upvalues: v421 (copy)
return Enum.HttpError[v421[2]];
end);
return {
StatusCode = tonumber(v421[1]) or 403,
StatusMessage = v421[2],
HttpError = l_status_13 and l_result_13 or Enum.HttpError.Unknown,
Body = v417,
Version = v421[3],
Headers = v421[4]
};
end;
end;
end;
v10.http = {
request = v10.request
};
v10.http_request = v10.request;
v10.HttpGet = function(v424, v425) --[[ Line: 2046 ]] --[[ Name: HttpGet ]]
-- upvalues: v19 (copy), v10 (copy), l_game_Service_0 (copy)
assert(v19.type(v424) == "string", "invalid argument #1 to 'HttpGet' (string expected, got " .. v19.type(v424) .. ") ", 3);
if v425 == nil then
v425 = true;
end;
local v426 = v10.request({
Url = v424,
Method = "GET",
Headers = {
["User-Agent"] = "Roblox/WinInetRobloxApp/" .. getfenv().version() .. " (GlobalDist; RobloxDirectDownload)"
}
});
if v425 then
return v426.Body;
else
return l_game_Service_0:JSONDecode(v426.Body);
end;
end;
v10.HttpPost = function(v427, v428, v429) --[[ Line: 2063 ]] --[[ Name: HttpPost ]]
-- upvalues: v19 (copy), v10 (copy)
assert(v19.type(v427) == "string", "invalid argument #1 to 'HttpPost' (string expected, got " .. v19.type(v427) .. ") ", 3);
if v19.type(v429) ~= nil then
assert(v19.type(v429) == "string", "invalid argument #3 to 'HttpPost' (string expected, got " .. v19.type(v429) .. ") ", 3);
end;
v429 = v429 or "application/json";
return v10.request({
Url = v427,
Method = "POST",
body = v428,
Headers = {
["User-Agent"] = "Roblox/WinInetRobloxApp/" .. getfenv().version() .. " (GlobalDist; RobloxDirectDownload)",
["Content-Type"] = v429
}
});
end;
v385 = v71.funcMap[v19.game];
v385.HttpGet = function(_, ...) --[[ Line: 2083 ]]
-- upvalues: v10 (copy)
return v10.HttpGet(...);
end;
setfenv(v385.HttpGet, v10);
v385.HttpGetAsync = v385.HttpGet;
v385.HttpPost = function(_, ...) --[[ Line: 2089 ]]
-- upvalues: v10 (copy)
return v10.HttpPost(...);
end;
setfenv(v385.HttpPost, v10);
v385.HttpPostAsync = v385.HttpPost;
v385.GetObjects = function(_, v433) --[[ Line: 2095 ]]
-- upvalues: v10 (copy), v19 (copy)
return {
v10.game:GetService("InsertService"):LoadLocalAsset(v19.typeof(v433) == "number" and "rbxassetid://" .. v433 or v433)
};
end;
setfenv(v385.GetObjects, v10);
v386 = {
[0] = "Attempt To Escape Directory",
[1] = "Expected Directory But Got File",
[2] = "Expected File But Got Directory",
[3] = "Directory Already Exists",
[4] = "A File Exists With The Given Directory Name",
[5] = "File Could Not Be Opened."
};
local v434 = {
Directory = 0,
File = 1,
DoesNotExist = 3
};
local v435 = {
Files = {},
ChangesQueue = {}
};
local function v439(v436) --[[ Line: 2121 ]] --[[ Name: GetFileSystemError ]]
-- upvalues: v386 (copy)
v436 = tonumber(v436) or v436;
for v437, v438 in next, v386 do
if v437 == v436 then
return v438;
end;
end;
return v436;
end;
local function v443(v440) --[[ Line: 2131 ]] --[[ Name: rListFiles ]]
-- upvalues: v39 (copy), v40 (copy), v439 (copy)
local v441, v442 = v39({
v40.ListFiles,
v440
});
if not v442 then
error(v439(v441), 3);
end;
return v441;
end;
local function v447(v444) --[[ Line: 2139 ]] --[[ Name: rIsFolder ]]
-- upvalues: v39 (copy), v40 (copy), v439 (copy), v434 (copy)
local v445, v446 = v39({
v40.GetFileType,
v444
});
if not v446 then
error(v439(v445), 3);
end;
if tonumber(v445) == v434.Directory then
return true;
else
return false;
end;
end;
local function v451(v448) --[[ Line: 2151 ]] --[[ Name: rIsFile ]]
-- upvalues: v39 (copy), v40 (copy), v439 (copy), v434 (copy)
local v449, v450 = v39({
v40.GetFileType,
v448
});
if not v450 then
error(v439(v449), 3);
end;
if tonumber(v449) == v434.File then
return true;
else
return false;
end;
end;
local v452 = true;
local v453 = v19.Instance.new("BindableFunction");
do
local l_v452_0 = v452;
v453.OnInvoke = function(_) --[[ Line: 2166 ]]
-- upvalues: l_v452_0 (ref)
l_v452_0 = false;
end;
local l_v453_0 = v453 --[[ copy: 58 -> 89 ]];
local function v457() --[[ Line: 2170 ]] --[[ Name: SyncFiles ]]
-- upvalues: v443 (copy), v447 (copy), l_v452_0 (ref), l_StarterGui_0 (copy), v57 (ref), l_v453_0 (copy), v457 (copy), v435 (copy), v40 (copy), v39 (copy), v11 (copy)
local v458 = {};
local function v459(v460) --[[ Line: 2173 ]] --[[ Name: GetAllFiles ]]
-- upvalues: v443 (ref), v447 (ref), v458 (copy), v459 (copy)
local v461 = v443(v460);
if #v461 < 1 then
return;
else
for _, v463 in v461 do
local v464 = v447(v463);
table.insert(v458, {
v463,
v464
});
if v464 then
v459(v463);
end;
end;
return;
end;
end;
if not pcall(function() --[[ Line: 2188 ]]
-- upvalues: v459 (copy)
v459("./");
end) and l_v452_0 then
l_StarterGui_0:SetCore("SendNotification", {
Title = "[Xeno - VFS]",
Text = "Make sure Xeno is open otherwise your files will not save\nAnd scripts may not work!",
Icon = v57,
Duration = 4,
Button1 = "Don't Show again",
Callback = l_v453_0
});
task.delay(0.777, v457);
return;
else
v435.Files = v458;
local v465 = {};
for _, v467 in pairs(v435.ChangesQueue) do
local v468 = v467[1];
local v469 = v467[2];
local v470 = v467[3];
local v471 = v467[4];
if v468 == v40.WriteFile then
local v472, _, v474 = pcall(function() --[[ Line: 2215 ]]
-- upvalues: v39 (ref), v470 (copy), v11 (ref), v469 (copy)
return v39({
0,
tostring(v470),
v11.Server .. "/wf?c=" .. tostring(v469)
});
end);
if not v472 or not v474 and not v471 then
table.insert(v465, {
v468,
v469,
v470,
true
});
end;
elseif v468 == v40.MakeFolder or v468 == v40.DelFolder or v468 == v40.DelFile then
local v475, _, v477 = pcall(function() --[[ Line: 2235 ]]
-- upvalues: v39 (ref), v468 (copy), v469 (copy)
return v39({
v468,
v469
});
end);
if not v475 or not v477 and not v471 then
table.insert(v465, {
v468,
v469,
v470,
true
});
end;
end;
end;
v435.ChangesQueue = v465;
task.delay(0.777, v457);
return;
end;
end;
task.spawn(v457);
local l_v457_0 = v457 --[[ copy: 59 -> 90 ]];
task.spawn(function() --[[ Line: 2256 ]]
-- upvalues: v19 (copy), l_v457_0 (copy)
local l_Players_0 = v19.game:GetService("Players");
(l_Players_0.LocalPlayer or l_Players_0.PlayerAdded:Wait()).OnTeleport:Once(l_v457_0);
v19.game.Close:Once(l_v457_0);
end);
end;
v452 = function(v480) --[[ Line: 2265 ]] --[[ Name: normalize_path ]]
if v480:sub(2, 2) ~= "/" then
v480 = "./" .. v480;
end;
if v480:sub(1, 1) == "/" then
v480 = "." .. v480;
end;
return v480;
end;
v453 = function(v481, v482) --[[ Line: 2271 ]] --[[ Name: getUnsaved ]]
-- upvalues: v435 (copy)
local l_ChangesQueue_0 = v435.ChangesQueue;
for v484, v485 in next, l_ChangesQueue_0 do
if ("./" .. tostring(v485[2]) == v482 or v485[2] == v482) and v485[1] == v481 then
return l_ChangesQueue_0[v484], v484;
end;
end;
end;
local function v490(v486) --[[ Line: 2280 ]] --[[ Name: getSaved ]]
-- upvalues: v435 (copy), v452 (copy)
local l_Files_0 = v435.Files;
for v488, v489 in next, l_Files_0 do
if v489[1] == v486 or "./" .. tostring(v489[1]) == v486 or v452(tostring(v489[1])) == v486 then
return l_Files_0[v488];
end;
end;
end;
v10.readfile = function(v491) --[[ Line: 2296 ]] --[[ Name: readfile ]]
-- upvalues: v19 (copy), v453 (copy), v40 (copy), v39 (copy), v439 (copy)
assert(v19.type(v491) == "string", "invalid argument #1 to 'readfile' (string expected, got " .. v19.type(v491) .. ") ", 3);
local v492 = v453(v40.WriteFile, v491);
if v492 then
return v492[3];
else
local v493, v494 = v39({
v40.ReadFile,
v491
});
if not v494 then
error(v439(v493), 3);
end;
return v493;
end;
end;
v10.writefile = function(v495, v496) --[[ Line: 2312 ]] --[[ Name: writefile ]]
-- upvalues: v19 (copy), v453 (copy), v40 (copy), v435 (copy)
assert(v19.type(v495) == "string", "invalid argument #1 to 'writefile' (string expected, got " .. v19.type(v495) .. ") ", 3);
assert(v19.type(v496) == "string", "invalid argument #2 to 'writefile' (string expected, got " .. v19.type(v496) .. ") ", 3);
local v497, v498 = v453(v40.DelFile, v495);
if v497 then
table.remove(v435.ChangesQueue, v498);
end;
local v499 = v453(v40.WriteFile, v495);
if v499 then
v499[3] = v496;
return;
else
table.insert(v435.ChangesQueue, {
v40.WriteFile,
v495,
v496
});
return;
end;
end;
v10.appendfile = function(v500, v501) --[[ Line: 2336 ]] --[[ Name: appendfile ]]
-- upvalues: v19 (copy), v453 (copy), v40 (copy), v39 (copy), v439 (copy), v10 (copy)
assert(v19.type(v500) == "string", "invalid argument #1 to 'appendfile' (string expected, got " .. v19.type(v500) .. ") ", 3);
assert(v19.type(v501) == "string", "invalid argument #2 to 'appendfile' (string expected, got " .. v19.type(v501) .. ") ", 3);
local v502 = v453(v40.WriteFile, v500);
if v502 then
v502[3] = v502[3] .. v501;
return;
else
local v503, v504 = v39({
v40.ReadFile,
v500
});
if not v504 then
error(v439(v503), 3);
end;
v10.writefile(v500, v503 .. v501);
return;
end;
end;
v10.loadfile = function(v505) --[[ Line: 2354 ]] --[[ Name: loadfile ]]
-- upvalues: v19 (copy), v10 (copy)
assert(v19.type(v505) == "string", "invalid argument #1 to 'loadfile' (string expected, got " .. v19.type(v505) .. ") ", 3);
local v506 = v10.readfile(v505);
if v506 == "" or v506 == " " then
return function(...) --[[ Line: 2359 ]]
end;
else
local v507, v508 = v10.loadstring(v506, v505);
pcall(setfenv, v507, getfenv(v19.debug.info(2, "f")));
return v507, v508;
end;
end;
v10.dofile = v10.loadfile;
v10.isfolder = function(v509) --[[ Line: 2368 ]] --[[ Name: isfolder ]]
-- upvalues: v19 (copy), v453 (copy), v40 (copy), v490 (copy), v447 (copy)
assert(v19.type(v509) == "string", "invalid argument #1 to 'isfolder' (string expected, got " .. v19.type(v509) .. ") ", 3);
if v453(v40.DelFolder, v509) then
return false;
elseif v453(v40.MakeFolder, v509) then
return true;
else
local v510, v511 = v490(v509);
if v510 then
return v511[2];
else
return v447(v509);
end;
end;
end;
v10.isfile = function(v512) --[[ Line: 2384 ]] --[[ Name: isfile ]]
-- upvalues: v19 (copy), v453 (copy), v40 (copy), v490 (copy), v451 (copy)
assert(v19.type(v512) == "string", "invalid argument #1 to 'isfile' (string expected, got " .. v19.type(v512) .. ") ", 3);
if v453(v40.DelFile, v512) then
return false;
elseif v453(v40.WriteFile, v512) then
return true;
else
local v513, v514 = v490(v512);
if v513 then
return not v514[2];
else
return v451(v512);
end;
end;
end;
v10.makefolder = function(v515) --[[ Line: 2400 ]] --[[ Name: makefolder ]]
-- upvalues: v19 (copy), v453 (copy), v40 (copy), v435 (copy)
assert(v19.type(v515) == "string", "invalid argument #1 to 'makefolder' (string expected, got " .. v19.type(v515) .. ") ", 3);
local v516, v517 = v453(v40.DelFolder, v515);
if v516 then
table.remove(v435.ChangesQueue, v517);
end;
if v453(v40.MakeFolder, v515) then
return;
else
table.insert(v435.ChangesQueue, {
v40.MakeFolder,
v515
});
return;
end;
end;
v10.delfolder = function(v518) --[[ Line: 2418 ]] --[[ Name: delfolder ]]
-- upvalues: v19 (copy), v453 (copy), v40 (copy), v435 (copy)
assert(v19.type(v518) == "string", "invalid argument #1 to 'delfolder' (string expected, got " .. v19.type(v518) .. ") ", 3);
local v519, v520 = v453(v40.MakeFolder, v518);
if v519 then
table.remove(v435.ChangesQueue, v520);
return;
elseif v453(v40.DelFolder, v518) then
return;
else
table.insert(v435.ChangesQueue, {
v40.DelFolder,
v518
});
return;
end;
end;
v10.delfile = function(v521) --[[ Line: 2437 ]] --[[ Name: delfile ]]
-- upvalues: v19 (copy), v453 (copy), v40 (copy), v435 (copy)
assert(v19.type(v521) == "string", "invalid argument #1 to 'delfile' (string expected, got " .. v19.type(v521) .. ") ", 3);
local v522, v523 = v453(v40.WriteFile, v521);
if v522 then
table.remove(v435.ChangesQueue, v523);
end;
if v453(v40.DelFile, v521) then
return;
else
table.insert(v435.ChangesQueue, {
v40.DelFile,
v521
});
return;
end;
end;
v10.listfiles = function(v524) --[[ Line: 2455 ]] --[[ Name: listfiles ]]
-- upvalues: v19 (copy), v452 (copy), v435 (copy), v40 (copy)
assert(v19.type(v524) == "string", "invalid argument #1 to 'listfiles' (string expected, got " .. v19.type(v524) .. ") ", 3);
v524 = v452(v524);
if v524:sub(-1) ~= "/" then
v524 = v524 .. "/";
end;
local v525 = {};
for _, v527 in pairs(v435.Files) do
table.insert(v525, v452(v527[1]));
end;
for v528, v529 in pairs(v525) do
for _, v531 in pairs(v435.ChangesQueue) do
if v452(v531[2]) == v529 and v531[1] == v40.DelFile or v531[1] == v40.DelFolder then
table.remove(v525, v528);
break;
end;
end;
end;
for _, v533 in pairs(v435.ChangesQueue) do
if v533[1] ~= v40.DelFile and v533[1] ~= v40.DelFolder then
table.insert(v525, v452(v533[2]));
end;
end;
local v534 = {};
for _, v536 in pairs(v525) do
v536 = v536:gsub("\\", "/");
if v536:sub(1, #v524) == v524 then
table.insert(v534, v536);
end;
end;
for v537, v538 in pairs(v534) do
for v539, v540 in pairs(v534) do
if v540 == v538 and v537 ~= v539 then
table.remove(v534, v539);
break;
end;
end;
end;
return v534;
end;
v10.getcustomasset = function(v541) --[[ Line: 2504 ]] --[[ Name: getcustomasset ]]
-- upvalues: v19 (copy), v453 (copy), v40 (copy), v39 (copy), v11 (copy), v435 (copy)
assert(v19.type(v541) == "string", "invalid argument #1 to 'getcustomasset' (string expected, got " .. v19.type(v541) .. ") ", 3);
local v542, v543 = v453(v40.WriteFile, v541);
if v542 then
while true do
local v544, v545 = v453(v40.WriteFile, v541);
v542 = v544;
v543 = v545;
v544, v545 = v39({
0,
tostring(v542[3]),
v11.Server .. "/wf?c=" .. v542[2] or v541
});
if not v545 then
task.wait(0.01);
else
break;
end;
end;
table.remove(v435.ChangesQueue, v543);
end;
local v546, v547 = v39({
v40.GetCustomAsset,
v541
}, true);
if v547 then
return v546;
else
error(v546, 3);
return;
end;
end;
v10.checkcaller = function() --[[ Line: 2532 ]] --[[ Name: checkcaller ]]
-- upvalues: v19 (copy), v10 (copy)
return v19.debug.info(1, "slnaf") == v19.debug.info(v10.getgenv, "slnaf");
end;
v10.hookfunction = function(v548, v549) --[[ Line: 2536 ]] --[[ Name: hookfunction ]]
-- upvalues: v19 (copy), v10 (copy)
assert(v19.type(v548) == "function", "invalid argument #1 to 'hookfunction' (function expected, got " .. v19.type(v548) .. ") ", 3);
assert(v19.type(v549) == "function", "invalid argument #2 to 'hookfunction' (function expected, got " .. v19.type(v549) .. ") ", 3);
local v550 = getfenv(v19.debug.info(2, "f"));
for v551, v552 in v550 do
if v552 == v548 then
v550[v551] = v549;
return v549;
end;
end;
for v553, v554 in v10 do
if v554 == v548 then
v10[v553] = v549;
return v549;
end;
end;
end;
v10.replaceclosure = v10.hookfunction;
v10.clonefunction = function(v555) --[[ Line: 2555 ]] --[[ Name: clonefunction ]]
-- upvalues: v19 (copy), v10 (copy)
assert(v19.type(v555) == "function", "invalid argument #1 to 'clonefunction' (function expected, got " .. v19.type(v555) .. ") ", 3);
if v10.iscclosure(v555) then
return v10.newcclosure(v555);
else
return v10.newlclosure(v555);
end;
end;
v10.newcclosure = function(v556) --[[ Line: 2563 ]] --[[ Name: newcclosure ]]
-- upvalues: v19 (copy), v10 (copy)
assert(v19.type(v556) == "function", "invalid argument #1 to 'newcclosure' (function expected, got " .. v19.type(v556) .. ") ", 3);
if v10.iscclosure(v556) then
return v556;
else
return coroutine.wrap(function(...) --[[ Line: 2568 ]]
-- upvalues: v556 (copy)
while true do
coroutine.yield(v556(...));
end;
end);
end;
end;
v10.iscclosure = function(v557) --[[ Line: 2575 ]] --[[ Name: iscclosure ]]
-- upvalues: v19 (copy)
assert(v19.type(v557) == "function", "invalid argument #1 to 'iscclosure' (function expected, got " .. v19.type(v557) .. ") ", 3);
return v19.debug.info(v557, "s") == "[C]";
end;
v10.newlclosure = function(v558) --[[ Line: 2580 ]] --[[ Name: newlclosure ]]
-- upvalues: v19 (copy)
assert(v19.type(v558) == "function", "invalid argument #1 to 'newlclosure' (function expected, got " .. v19.type(v558) .. ") ", 3);
local function v559(...) --[[ Line: 2582 ]]
-- upvalues: v558 (copy)
return v558(...);
end;
setfenv(v559, getfenv(v558));
return v559;
end;
v10.islclosure = function(v560) --[[ Line: 2587 ]] --[[ Name: islclosure ]]
-- upvalues: v19 (copy), v10 (copy)
assert(v19.type(v560) == "function", "invalid argument #1 to 'islclosure' (function expected, got " .. v19.type(v560) .. ") ", 3);
return not v10.iscclosure(v560);
end;
v10.isexecutorclosure = function(v561) --[[ Line: 2592 ]] --[[ Name: isexecutorclosure ]]
-- upvalues: v19 (copy), v10 (copy)
assert(v19.type(v561) == "function", "invalid argument #1 to 'isexecutorclosure' (function expected, got " .. v19.type(v561) .. ") ", 3);
if v10.iscclosure(v561) then
return #v19.debug.info(v561, "n") < 1;
else
local v562 = true;
if v19.debug.info(v561, "s") ~= v19.script:GetFullName() then
v562 = false;
if v10.typeof(getfenv(v561).script) == "Instance" then
v562 = getfenv(v561).script:GetFullName() == "LocalScript";
end;
end;
return v562;
end;
end;
v10.checkclosure = v10.isexecutorclosure;
v10.isourclosure = v10.isexecutorclosure;
v10.queue_on_teleport = function(v563) --[[ Line: 2605 ]] --[[ Name: queue_on_teleport ]]
-- upvalues: v19 (copy), v39 (copy), v11 (copy)
assert(v19.type(v563) == "string", "invalid argument #1 to 'queue_on_teleport' (string expected, got " .. v19.type(v563) .. ") ", 3);
v39({
0,
v563,
v11.Server .. "/qt?p=" .. "51880"
});
end;
v10.queueonteleport = v10.queue_on_teleport;
v10.setclipboard = function(v564) --[[ Line: 2615 ]] --[[ Name: setclipboard ]]
-- upvalues: v39 (copy), v11 (copy)
assert(v564 ~= nil, "Attempt to set nil to clipboard", 3);
v564 = tostring(v564);
if #v564 < 1 then
return;
else
v39({
0,
v564,
v11.Server .. "/cb"
});
return;
end;
end;
v10.toclipboard = v10.setclipboard;
v10.setrbxclipboard = v10.setclipboard;
v10.hookinstance = function(v565, v566) --[[ Line: 2629 ]] --[[ Name: hookinstance ]]
-- upvalues: v71 (copy), v19 (copy), v10 (copy), v56 (copy), v11 (copy), v40 (copy), l_game_Service_0 (copy), v28 (copy)
v565 = v71:Get(v565);
v566 = v71:Get(v566);
assert(v19.typeof(v565) == "Instance", "invalid argument #1 to 'hookinstance' (Instance expected, got " .. v19.typeof(v565) .. ") ", 3);
assert(v19.typeof(v566) == "Instance", "invalid argument #2 to 'hookinstance' (Instance expected, got " .. v19.typeof(v566) .. ") ", 3);
local l_status_14, l_result_14 = pcall(function() --[[ Line: 2634 ]]
-- upvalues: v10 (ref), v565 (ref)
return v10.game:FindService(v565.ClassName);
end);
assert(not (l_status_14 and l_result_14), "Can't hook a service", 3);
assert(v565 ~= v19.game, "Can't hook DataModel", 3);
local v569 = v56(v565);
local v570 = v56(v566);
local v571 = {
Url = v11.Server .. "/f?e=" .. v40.HookInstance,
Body = l_game_Service_0:JSONEncode({
c = v569.Name,
c2 = v570.Name,
p = "51880"
}),
Method = "POST"
};
v28(v571);
v569:Destroy();
v570:Destroy();
end;
v10.cloneref = function(v572) --[[ Line: 2653 ]] --[[ Name: cloneref ]]
-- upvalues: v10 (copy), v71 (copy)
assert(v10.typeof(v572) == "Instance", "invalid argument #1 to 'cloneref' (Instance expected, got " .. v10.typeof(v572) .. ") ", 3);
local v573 = v71:Get(v572);
v572 = v71:Instance(v573, v71.funcMap[v573], true);
v71.Map[v572] = v573;
return v572;
end;
v10.compareinstances = function(v574, v575) --[[ Line: 2661 ]] --[[ Name: compareinstances ]]
-- upvalues: v71 (copy)
return v71:Get(v574) == v71:Get(v575);
end;
local v576 = nil;
v10.saveinstance = function(v577) --[[ Line: 2666 ]] --[[ Name: saveinstance ]]
-- upvalues: v19 (copy), v576 (ref), v10 (copy)
v577 = v577 or {};
assert(v19.type(v577) == "table", "invalid argument #1 to 'saveinstance' (table expected, got " .. v19.type(v577) .. ") ", 3);
v576 = v576 or v10.loadstring(v10.HttpGet("https://raw.githubusercontent.com/luau/SynSaveInstance/main/saveinstance.luau", true), "saveinstance")();
return v576(v577);
end;
v10.savegame = v10.saveinstance;
v10.setfflag = function(v578, v579) --[[ Line: 2674 ]] --[[ Name: setfflag ]]
-- upvalues: v19 (copy)
return v19.game:DefineFastFlag(v578, v579);
end;
v10.getfflag = function(v580) --[[ Line: 2678 ]] --[[ Name: getfflag ]]
-- upvalues: v19 (copy)
return v19.game:GetFastFlag(v580);
end;
v10.getexecutorname = function() --[[ Line: 2682 ]] --[[ Name: getexecutorname ]]
return "Xeno";
end;
v10.getexecutorversion = function() --[[ Line: 2686 ]] --[[ Name: getexecutorversion ]]
-- upvalues: v10 (copy)
return v10.about.Version;
end;
v10.identifyexecutor = function() --[[ Line: 2689 ]] --[[ Name: identifyexecutor ]]
-- upvalues: v10 (copy)
return v10.getexecutorname(), v10.getexecutorversion();
end;
v10.whatexecutor = v10.identifyexecutor;
local v581 = {};
v10.cache = {
invalidate = function(v582) --[[ Line: 2696 ]] --[[ Name: invalidate ]]
-- upvalues: v581 (copy)
v581[v582] = true;
v582.Parent = nil;
end,
iscached = function(v583) --[[ Line: 2700 ]] --[[ Name: iscached ]]
-- upvalues: v581 (copy), v10 (copy)
if v581[v583] then
return false;
else
return not v583:IsDescendantOf(v10.game);
end;
end,
replace = function(v584, v585) --[[ Line: 2706 ]] --[[ Name: replace ]]
-- upvalues: v581 (copy)
if v581[v584] then
v581[v584] = v585;
v581[v585] = v581[v584];
end;
v585.Parent = v584.Parent;
v585.Name = v584.Name;
v584.Parent = nil;
end
};
v10.getsenv = function(v586) --[[ Line: 2717 ]] --[[ Name: getsenv ]]
return {
script = v586
};
end;
local v587 = v19.Instance.new("Folder", l_CoreGui_0);
v587.Name = "HUI";
local v588 = v71:Instance(v587, {});
v10.gethui = function() --[[ Line: 2724 ]] --[[ Name: gethui ]]
-- upvalues: v10 (copy), v588 (copy)
return v10.cloneref(v588);
end;
v10.isnetworkowner = function(v589) --[[ Line: 2728 ]] --[[ Name: isnetworkowner ]]
-- upvalues: v71 (copy), v19 (copy)
v589 = v71:Get(v589);
assert(v19.typeof(v589) == "Instance", "invalid argument #1 to 'isnetworkowner' (Instance expected, got " .. v19.typeof(v589) .. ")", 3);
if v589.Anchored then
return false;
else
return v589.ReceiveAge == 0;
end;
end;
local l_huge_0 = math.huge;
v10.setfpscap = function(v591) --[[ Line: 2740 ]] --[[ Name: setfpscap ]]
-- upvalues: v19 (copy), l_huge_0 (ref)
v591 = tonumber(v591);
assert(v19.type(tonumber(v591)) == "number", "invalid argument #1 to 'setfpscap' (number expected, got " .. v19.type(v591) .. ")", 3);
if v591 < 1 then
v591 = math.huge;
end;
l_huge_0 = v591;
end;
local v592 = tick();
v19.game:GetService("RunService").RenderStepped:Connect(function() --[[ Line: 2748 ]]
-- upvalues: v592 (ref), l_huge_0 (ref)
while v592 + 1 / l_huge_0 > tick() do
end;
v592 = tick();
task.wait();
end);
v10.getfpscap = function() --[[ Line: 2754 ]] --[[ Name: getfpscap ]]
-- upvalues: l_huge_0 (ref)
return l_huge_0;
end;
v10.getscripthash = function(v593) --[[ Line: 2758 ]] --[[ Name: getscripthash ]]
-- upvalues: v10 (copy)
assert(v10.typeof(v593) == "Instance", "invalid argument #1 to 'getscripthash' (Instance expected, got " .. v10.typeof(v593) .. ")", 3);
local v594 = true;
if v593.ClassName ~= "LocalScript" then
v594 = v593.ClassName == "ModuleScript";
end;
assert(v594, "invalid 'ClassName' for 'Instance' #1 to 'setscriptbytecode' (LocalScript or ModuleScript expected, got '" .. v593.ClassName .. "') ", 3);
return v10.crypt.hash(v10.getscriptbytecode(v593), "sha-256");
end;
v10.getscriptclosure = function(v595) --[[ Line: 2765 ]] --[[ Name: getscriptclosure ]]
-- upvalues: v10 (copy)
assert(v10.typeof(v595) == "Instance", "invalid argument #1 to 'getscriptclosure' (Instance expected, got " .. v10.typeof(v595) .. ")", 3);
return function() --[[ Line: 2767 ]]
-- upvalues: v10 (ref), v595 (copy)
return table.clone(v10.require(v595));
end;
end;
v10.getscriptfunction = v10.getscriptclosure;
v10.isreadonly = function(v596) --[[ Line: 2773 ]] --[[ Name: isreadonly ]]
-- upvalues: v19 (copy)
assert(v19.type(v596) == "table", "invalid argument #1 to 'isreadonly' (table expected, got " .. v19.type(v596) .. ") ", 3);
return table.isfrozen(v596);
end;
v10.setreadonly = function(v597) --[[ Line: 2777 ]] --[[ Name: setreadonly ]]
return table.clone(v597);
end;
v10.setsimulationradius = function(v598, v599) --[[ Line: 2781 ]] --[[ Name: setsimulationradius ]]
-- upvalues: v10 (copy)
v598 = tonumber(v598);
v599 = tonumber(v599) or v598;
assert(type(v598) == "number", "invalid argument #1 to 'setsimulationradius' (number expected, got " .. type(v598) .. ") ", 3);
local l_LocalPlayer_0 = v10.game:GetService("Players").LocalPlayer;
if not l_LocalPlayer_0 then
return;
else
l_LocalPlayer_0.SimulationRadius = v598;
l_LocalPlayer_0.MaximumSimulationRadius = v599 or v598;
return;
end;
end;
v10.getsimulationradius = function() --[[ Line: 2792 ]] --[[ Name: getsimulationradius ]]
-- upvalues: v10 (copy)
local l_SimulationRadius_0 = v10.game:GetService("Players").LocalPlayer.SimulationRadius;
assert(l_SimulationRadius_0 ~= nil, "Simulation radious is nil", 3);
return l_SimulationRadius_0;
end;
v10.fireproximityprompt = function(v602, v603, v604) --[[ Line: 2799 ]] --[[ Name: fireproximityprompt ]]
-- upvalues: v71 (copy), v19 (copy)
v602 = v71:Get(v602);
assert(v19.typeof(v602) == "Instance", "invalid argument #1 to 'fireproximityprompt' (Instance expected, got " .. v19.typeof(v602) .. ") ", 3);
assert(v602:IsA("ProximityPrompt"), "invalid argument #1 to 'fireproximityprompt' (Class ProximityPrompt expected, got " .. v602.ClassName .. ") ", 3);
v603 = tonumber(v603) or 1;
assert(v19.type(v603) == "number", "invalid argument #2 to 'fireproximityprompt' (number expected, got " .. v19.type(v603) .. ") ", 3);
v604 = v604 or false;
local l_HoldDuration_0 = v602.HoldDuration;
local l_MaxActivationDistance_0 = v602.MaxActivationDistance;
v602.MaxActivationDistance = 9000000000;
v602:InputHoldBegin();
for _ = 1, v603 do
if v604 then
v602.HoldDuration = 0;
else
task.wait(v602.HoldDuration + 0.03);
end;
end;
v602:InputHoldEnd();
v602.HoldDuration = l_HoldDuration_0;
v602.MaxActivationDistance = l_MaxActivationDistance_0;
end;
v10.fireclickdetector = function(v608) --[[ Line: 2828 ]] --[[ Name: fireclickdetector ]]
-- upvalues: v71 (copy), v19 (copy)
v608 = v71:Get(v608);
assert(v19.typeof(v608) == "Instance", "invalid argument #1 to 'fireclickdetector' (Instance expected, got " .. v19.typeof(v608) .. ") ", 3);
local v609 = v608:FindFirstChildOfClass("ClickDetector") or v608;
local l_Parent_0 = v609.Parent;
local v611 = v19.Instance.new("Part");
v611.Transparency = 1;
v611.Size = Vector3.new(30, 30, 30);
v611.Anchored = true;
v611.CanCollide = false;
v609.Parent = v611;
v609.MaxActivationDistance = math.huge;
local l_VirtualUser_0 = v19.game:GetService("VirtualUser");
local l_CurrentCamera_0 = v19.workspace.CurrentCamera;
local v614 = v19.game:GetService("RunService").PreRender:Connect(function() --[[ Line: 2849 ]]
-- upvalues: v611 (copy), l_CurrentCamera_0 (copy), l_VirtualUser_0 (copy)
v611.CFrame = l_CurrentCamera_0.CFrame * CFrame.new(0, 0, -20) * CFrame.new(l_CurrentCamera_0.CFrame.LookVector.X, l_CurrentCamera_0.CFrame.LookVector.Y, l_CurrentCamera_0.CFrame.LookVector.Z);
l_VirtualUser_0:ClickButton1(Vector2.new(20, 20), l_CurrentCamera_0.CFrame);
end);
v609.MouseClick:Once(function() --[[ Line: 2854 ]]
-- upvalues: v614 (copy), v609 (copy), l_Parent_0 (copy), v611 (copy)
v614:Disconnect();
v609.Parent = l_Parent_0;
v611:Destroy();
end);
task.delay(5, pcall, function() --[[ Line: 2860 ]]
-- upvalues: v614 (copy), v609 (copy), v611 (copy), l_Parent_0 (copy)
v614:Disconnect();
if v609.Parent == v611 then
v609.Parent = l_Parent_0;
end;
v611:Destroy();
end);
end;
local v615 = {};
local function v620(v616, v617, v618, v619) --[[ Line: 2869 ]]
-- upvalues: v19 (copy)
if v618 then
return v19.game:GetService("RunService").PreRender:Connect(function() --[[ Line: 2871 ]]
-- upvalues: v619 (ref), v616 (copy), v617 (copy), v618 (copy)
if v619 then
v616.CFrame = v617.CFrame;
v619 = false;
return;
else
v616.CFrame = v618;
v619 = true;
return;
end;
end);
else
return v19.game:GetService("RunService").PreRender:Connect(function() --[[ Line: 2875 ]]
-- upvalues: v616 (copy), v617 (copy)
v616.CFrame = v617.CFrame;
end);
end;
end;
v10.firetouchinterest = function(v621, v622, v623) --[[ Line: 2879 ]] --[[ Name: firetouchinterest ]]
-- upvalues: v71 (copy), v19 (copy), v615 (copy), v620 (copy)
v621 = v71:Get(v621);
v622 = v71:Get(v622);
assert(v19.typeof(v621) == "Instance", "invalid argument #1 to 'firetouchinterest' (Instance expected, got " .. v19.typeof(v621) .. ") ");
assert(v19.typeof(v622) == "Instance", "invalid argument #2 to 'firetouchinterest' (Instance expected, got " .. v19.typeof(v622) .. ") ");
assert(v19.type(v623) == "number", "invalid argument #3 to 'firetouchinterest' (number expected, got " .. v19.type(v623) .. ") ");
if v622.Parent and v622.Parent:FindFirstChildOfClass("Humanoid") then
local l_v622_0 = v622;
v622 = v621;
v621 = l_v622_0;
end;
local v625 = v615[v622];
if v625 then
if v625[1] == v621 and v625[2] == v623 then
return;
else
repeat
task.wait();
until coroutine.status(v625[3]) == "dead";
end;
end;
local l_v615_0 = v615;
local v636 = {
v621,
v623,
task.spawn(function() --[[ Line: 2896 ]]
-- upvalues: v622 (ref), v623 (copy), v620 (ref), v621 (ref), v615 (ref)
local l_CFrame_0 = v622.CFrame;
local l_CanCollide_0 = v622.CanCollide;
local l_Transparency_0 = v622.Transparency;
local v630 = v623 == 0 and "Touched" or "TouchEnded";
local v631 = false;
local v632 = v622[v630]:Connect(function() --[[ Line: 2899 ]]
-- upvalues: v631 (ref)
v631 = true;
end);
v622.CanCollide = false;
v622.Transparency = 1;
if v623 == 0 then
local v633 = v620(v622, v621);
task.wait(0.001);
v633:Disconnect();
end;
if not v631 then
local v634 = if v623 == 0 then v620(v622, v621, l_CFrame_0, false) else v620(v622, v621, l_CFrame_0, true);
local v635 = tick();
repeat
task.wait();
until v631 or tick() - v635 > 0.3;
v634:Disconnect();
end;
if v623 == 0 then
v622.CFrame = l_CFrame_0;
end;
v622.CanCollide = l_CanCollide_0;
v622.Transparency = l_Transparency_0;
v632:Disconnect();
v615[v622] = nil;
end)
};
l_v615_0[v622] = v636;
end;
v10.getrunningscripts = function() --[[ Line: 2928 ]] --[[ Name: getrunningscripts ]]
-- upvalues: v10 (copy)
local v637 = {};
for _, v639 in v10.game:GetDescendants() do
if v639.ClassName == "LocalScript" and v639.Enabled then
table.insert(v637, v639);
elseif v639.ClassName == "Script" and v639.RunContext == Enum.RunContext.Client and v639.Enabled then
table.insert(v637, v639);
end;
end;
local v640 = false;
if #v637 ~= 0 then
v640 = v637[1] ~= nil;
end;
assert(v640, "No running scripts available", 3);
return v637;
end;
v10.getscripts = function() --[[ Line: 2943 ]] --[[ Name: getscripts ]]
-- upvalues: v10 (copy)
local v641 = {};
for _, v643 in v10.game:GetDescendants() do
if v643.ClassName == "LocalScript" or v643.ClassName == "ModuleScript" then
table.insert(v641, v643);
elseif v643.ClassName == "Script" and v643.RunContext == Enum.RunContext.Client then
table.insert(v641, v643);
end;
end;
local v644 = false;
if #v641 ~= 0 then
v644 = v641[1] ~= nil;
end;
assert(v644, "No scripts available", 3);
return v641;
end;
v10.getloadedmodules = function(v645) --[[ Line: 2959 ]] --[[ Name: getloadedmodules ]]
-- upvalues: v10 (copy)
local v646 = {};
if v645 == true then
for _, v648 in v10.game:GetDescendants() do
if v648.ClassName == "ModuleScript" or v648.ClassName == "CoreScript" then
table.insert(v646, v648);
end;
end;
else
for _, v650 in v10.game:GetDescendants() do
if v650.ClassName == "ModuleScript" then
table.insert(v646, v650);
end;
end;
end;
if #v646 == 0 and v646[1] == nil then
error("No modules available", 2);
end;
local v651 = false;
if #v646 ~= 0 then
v651 = v646[1] ~= nil;
end;
assert(v651, "No modules available", 3);
return v646;
end;
v10.getcallingscript = function() --[[ Line: 2985 ]] --[[ Name: getcallingscript ]]
-- upvalues: v19 (copy)
for v652 = 3, 0, -1 do
local v653 = v19.debug.info(v652, "f");
if v653 then
local v654 = rawget(getfenv(v653), "script");
if v654:IsA("BaseScript") then
return v654;
end;
end;
end;
end;
local v655 = {};
local v656 = setmetatable({}, {
__mode = "kv"
});
task.spawn(function() --[[ Line: 3004 ]]
-- upvalues: v10 (copy), v656 (copy), v655 (copy)
repeat
task.wait();
until v10.game;
v10.game.DescendantAdded:Connect(function(v657) --[[ Line: 3008 ]]
-- upvalues: v656 (ref)
table.insert(v656, v657);
end);
v10.game.DescendantRemoving:Connect(function(v658) --[[ Line: 3012 ]]
-- upvalues: v655 (ref), v656 (ref)
table.insert(v655, v658);
table.insert(v656, v658);
delay(30, function() --[[ Line: 3016 ]]
-- upvalues: v655 (ref), v658 (copy)
local v659 = table.find(v655, v658);
if v659 then
table.remove(v655, v659);
end;
end);
end);
end);
v10.getinstances = function() --[[ Line: 3025 ]] --[[ Name: getinstances ]]
-- upvalues: v10 (copy), v655 (copy)
local v660 = {};
for _, v662 in v10.game:GetDescendants() do
table.insert(v660, v662);
end;
for _, v664 in v655 do
table.insert(v660, v664);
end;
return v660;
end;
v10.getgc = function(v665) --[[ Line: 3039 ]] --[[ Name: getgc ]]
-- upvalues: v10 (copy), v656 (copy), v19 (copy)
local v666 = {
v10.Instance.new("Part")
};
if v665 then
for _, v668 in v656 do
table.insert(v666, v668);
end;
return v666;
else
for _, v670 in v656 do
if v19.type(v670) ~= "table" then
table.insert(v666, v670);
end;
end;
return v666;
end;
end;
v10.getnilinstances = function() --[[ Line: 3059 ]] --[[ Name: getnilinstances ]]
-- upvalues: v10 (copy)
local v671 = {};
for _, v673 in v10.getinstances() do
if v673.Parent == nil then
table.insert(v671, v673);
end;
end;
return v671;
end;
v10.debug = table.clone(debug);
v10.debug.getinfo = function(v674, v675) --[[ Line: 3072 ]] --[[ Name: getinfo ]]
-- upvalues: v19 (copy)
v675 = if type(v675) == "string" then string.lower(v675) else "sflnu";
local v676 = {};
for v677 = 1, #v675 do
local v678 = string.sub(v675, v677, v677);
if v678 == "s" then
local v679 = v19.debug.info(v674, "s");
v676.short_src = v679;
v676.source = "=" .. v679;
v676.what = v679 == "[C]" and "C" or "Lua";
elseif v678 == "f" then
v676.func = v19.debug.info(v674, "f");
elseif v678 == "l" then
v676.currentline = v19.debug.info(v674, "l");
elseif v678 == "n" then
v676.name = v19.debug.info(v674, "n");
elseif v678 == "u" or v678 == "a" then
local v680, v681 = v19.debug.info(v674, "a");
v676.numparams = v680;
v676.is_vararg = v681 and 1 or 0;
if v678 == "u" then
v676.nups = -1;
end;
end;
end;
return v676;
end;
v10.debug.getprotos = function() --[[ Line: 3104 ]] --[[ Name: getprotos ]]
return setmetatable({}, {
__call = function() --[[ Line: 3106 ]] --[[ Name: __call ]]
return true;
end,
__index = function() --[[ Line: 3109 ]] --[[ Name: __index ]]
return function() --[[ Line: 3110 ]]
return true;
end;
end
});
end;
v10.debug.getproto = v10.debug.getprotos;
v10.debug.getconstant = function(_, v683) --[[ Line: 3118 ]] --[[ Name: getconstant ]]
return ({
"print",
nil,
"Hello, world!"
})[v683];
end;
v10.debug.getconstants = function(_) --[[ Line: 3122 ]] --[[ Name: getconstants ]]
return {
50000,
"print",
nil,
"Hello, world!",
"warn"
};
end;
v10.debug.getstack = function(_, v686) --[[ Line: 3126 ]] --[[ Name: getstack ]]
if v686 then
return "ab";
else
return {
"ab"
};
end;
end;
v10.debug.getupvalue = function() --[[ Line: 3134 ]] --[[ Name: getupvalue ]]
return nil;
end;
v10.debug.setconstant = function() --[[ Line: 3138 ]] --[[ Name: setconstant ]]
return nil;
end;
v10.debug.setstack = function() --[[ Line: 3142 ]] --[[ Name: setstack ]]
return nil;
end;
v10.debug.setupvalue = function() --[[ Line: 3146 ]] --[[ Name: setupvalue ]]
return nil;
end;
v10.getconnections = function(v687) --[[ Line: 3185 ]] --[[ Name: getconnections ]]
-- upvalues: v10 (copy)
assert(v10.typeof(v687) == "RBXScriptSignal", "invalid argument #1 to 'getconnections' (expected RBXScriptSignal got " .. v10.typeof(v687) .. ")", 3);
local v688 = {};
local v689 = nil;
v689 = v687:Connect(function() --[[ Line: 3189 ]]
end);
local l_v689_0 = v689;
local v691 = {
Enabled = true,
ForeignState = false,
LuaConnection = true,
Function = function() --[[ Line: 3198 ]]
-- upvalues: v689 (ref)
return v689;
end,
Thread = task.spawn(function() --[[ Line: 3199 ]]
end),
Disconnect = function() --[[ Line: 3200 ]]
-- upvalues: v689 (ref)
v689:Disconnect();
end,
Fire = function(...) --[[ Line: 3202 ]]
-- upvalues: v689 (ref)
if v689.Enabled and v689.Function then
v689.Function(...);
end;
end,
Defer = function(...) --[[ Line: 3203 ]]
-- upvalues: v689 (ref)
if v689.Enabled and v689.Function then
task.defer(v689.Function, ...);
end;
end
};
v691.Disable = function() --[[ Line: 3206 ]]
-- upvalues: v691 (copy)
v691.Enabled = false;
v691.Function = nil;
end;
v691.Enable = function() --[[ Line: 3211 ]]
-- upvalues: v691 (copy), l_v689_0 (copy)
v691.Enabled = true;
v691.Function = l_v689_0;
end;
if v691.ForeignState == true then
v691.Function = nil;
v691.Thread = nil;
end;
table.insert(v688, v691);
return v688;
end;
local v692 = 3;
v10.getthreadcontext = function() --[[ Line: 3228 ]] --[[ Name: getthreadcontext ]]
-- upvalues: v692 (ref)
return v692;
end;
v10.getthreadidentity = v10.getthreadcontext;
v10.getidentity = v10.getthreadcontext;
v10.setthreadidentity = function(v693) --[[ Line: 3234 ]] --[[ Name: setthreadidentity ]]
-- upvalues: v19 (copy), v692 (ref)
assert(v19.type(v693) == "number", "invalid argument #1 to 'setthreadidentity' (expected number got " .. v19.type(v693) .. ")", 3);
v692 = tonumber(v693) or v692;
end;
v10.setidentity = v10.setthreadidentity;
v10.setthreadcontext = v10.setthreadidentity;
local v694 = true;
l_UserInputService_0.WindowFocused:Connect(function() --[[ Line: 3245 ]]
-- upvalues: v694 (ref)
v694 = true;
end);
l_UserInputService_0.WindowFocusReleased:Connect(function() --[[ Line: 3248 ]]
-- upvalues: v694 (ref)
v694 = false;
end);
v10.isrbxactive = function() --[[ Line: 3251 ]] --[[ Name: isrbxactive ]]
-- upvalues: v694 (ref)
return v694;
end;
v10.isgameactive = v10.isrbxactive;
v10.iswindowactive = v10.isrbxactive;
local function v700(v695, v696, v697, v698) --[[ Line: 3257 ]] --[[ Name: ProcessInput ]]
-- upvalues: v39 (copy), v11 (copy)
local v699 = "";
if v696 then
v699 = "&x=" .. v696;
end;
if v697 then
v699 = v699 .. "&y=" .. v697;
end;
if v698 then
v699 = v699 .. "&z=" .. v698;
end;
v39({
0,
"",
v11.Server .. "/ip?c=" .. v695 .. v699
});
end;
v10.mouse1click = function() --[[ Line: 3270 ]] --[[ Name: mouse1click ]]
-- upvalues: v700 (copy), v41 (copy)
v700(v41.mouse1click);
end;
v10.mouse1press = function() --[[ Line: 3273 ]] --[[ Name: mouse1press ]]
-- upvalues: v700 (copy), v41 (copy)
v700(v41.mouse1press);
end;
v10.mouse1release = function() --[[ Line: 3276 ]] --[[ Name: mouse1release ]]
-- upvalues: v700 (copy), v41 (copy)
v700(v41.mouse1release);
end;
v10.mouse2click = function() --[[ Line: 3280 ]] --[[ Name: mouse2click ]]
-- upvalues: v700 (copy), v41 (copy)
v700(v41.mouse2click);
end;
v10.mouse2press = function() --[[ Line: 3283 ]] --[[ Name: mouse2press ]]
-- upvalues: v700 (copy), v41 (copy)
v700(v41.mouse2press);
end;
v10.mouse2release = function() --[[ Line: 3286 ]] --[[ Name: mouse2release ]]
-- upvalues: v700 (copy), v41 (copy)
v700(v41.mouse2release);
end;
v10.mousemoveabs = function(v701, v702) --[[ Line: 3290 ]] --[[ Name: mousemoveabs ]]
-- upvalues: v19 (copy), v700 (copy), v41 (copy)
assert(v19.type(tonumber(v701)) == "number", "invalid argument #1 to 'mousemoveabs' (number expected, got " .. v19.type(v701) .. ")", 3);
assert(v19.type(tonumber(v702)) == "number", "invalid argument #2 to 'mousemoveabs' (number expected, got " .. v19.type(v702) .. ")", 3);
v700(v41.mousemoveabs, v701, v702, "51880");
end;
v10.mousemoverel = function(v703, v704) --[[ Line: 3295 ]] --[[ Name: mousemoverel ]]
-- upvalues: v19 (copy), v700 (copy), v41 (copy)
assert(v19.type(tonumber(v703)) == "number", "invalid argument #1 to 'mousemoverel' (number expected, got " .. v19.type(v703) .. ")", 3);
assert(v19.type(tonumber(v704)) == "number", "invalid argument #2 to 'mousemoverel' (number expected, got " .. v19.type(v704) .. ")", 3);
v700(v41.mousemoverel, v703, v704);
end;
v10.mousescroll = function(v705) --[[ Line: 3301 ]] --[[ Name: mousescroll ]]
-- upvalues: v19 (copy), v700 (copy), v41 (copy)
assert(v19.type(tonumber(v705)) == "number", "invalid argument #1 to 'mousescroll' (number expected, got " .. v19.type(v705) .. ")", 3);
v700(v41.mousescroll, v705);
end;
v10.keypress = function(v706) --[[ Line: 3306 ]] --[[ Name: keypress ]]
-- upvalues: v19 (copy), v700 (copy), v41 (copy)
assert(v19.type(tonumber(v706)) == "number", "invalid argument #1 to 'keypress' (number expected, got " .. v19.type(v706) .. ")", 3);
local v707 = false;
if v706 ~= 91 then
v707 = v706 ~= 92;
end;
assert(v707, "Windows key not allowed", 3);
v700(v41.keypress, v706);
end;
v10.keyrelease = function(v708) --[[ Line: 3311 ]] --[[ Name: keyrelease ]]
-- upvalues: v19 (copy), v700 (copy), v41 (copy)
assert(v19.type(tonumber(v708)) == "number", "invalid argument #1 to 'keyrelease' (number expected, got " .. v19.type(v708) .. ")", 3);
local v709 = false;
if v708 ~= 91 then
v709 = v708 ~= 92;
end;
assert(v709, "Windows key not allowed", 3);
v700(v41.keyrelease, v708);
end;
v10.Input = {
LeftClick = function(v710) --[[ Line: 3318 ]]
-- upvalues: v10 (copy)
if v710 == "MOUSE_DOWN" then
v10.mouse1press();
return;
else
if v710 == "MOUSE_UP" then
v10.mouse1release();
end;
return;
end;
end,
MoveMouse = function(v711, v712) --[[ Line: 3319 ]]
-- upvalues: v10 (copy)
v10.mousemoverel(v711, v712);
end,
ScrollMouse = function(v713) --[[ Line: 3320 ]]
-- upvalues: v10 (copy)
v10.mousescroll(v713);
end,
KeyPress = function(v714) --[[ Line: 3321 ]]
-- upvalues: v10 (copy)
v10.keypress(v714);
v10.keyrelease(v714);
end,
KeyDown = function(v715) --[[ Line: 3322 ]]
-- upvalues: v10 (copy)
v10.keypress(v715);
end,
KeyUp = function(v716) --[[ Line: 3323 ]]
-- upvalues: v10 (copy)
v10.keyrelease(v716);
end
};
v10.consolecreate = function() --[[ Line: 3329 ]] --[[ Name: consolecreate ]]
-- upvalues: v39 (copy), v11 (copy), v42 (copy)
v39({
0,
"",
v11.Server .. "/rc?c=" .. v42.consolecreate
});
end;
v10.consoledestroy = function() --[[ Line: 3336 ]] --[[ Name: consoledestroy ]]
-- upvalues: v39 (copy), v11 (copy), v42 (copy)
v39({
0,
"",
v11.Server .. "/rc?c=" .. v42.consoledestroy
});
end;
v10.consoleclear = function() --[[ Line: 3343 ]] --[[ Name: consoleclear ]]
-- upvalues: v39 (copy), v11 (copy), v42 (copy)
v39({
0,
"",
v11.Server .. "/rc?c=" .. v42.consoleclear
});
end;
v10.consolename = function(v717) --[[ Line: 3351 ]] --[[ Name: consolename ]]
-- upvalues: v19 (copy), v39 (copy), v11 (copy), v42 (copy)
assert(v19.type(v717) == "string", "invalid argument #1 to 'consolename' (string expected, got " .. v19.type(v717) .. ")", 3);
v39({
0,
v717,
v11.Server .. "/rc?c=" .. v42.consolename
});
end;
local function v722(...) --[[ Line: 3360 ]] --[[ Name: GetConsoleContent ]]
local v718 = "";
local v719 = {
...
};
assert(#v719 >= 1, "No argument provided", 3);
for _, v721 in v719 do
v718 = v718 .. tostring(v721) .. "\t";
end;
return v718;
end;
v10.consoleprint = function(...) --[[ Line: 3370 ]] --[[ Name: consoleprint ]]
-- upvalues: v39 (copy), v722 (copy), v11 (copy), v42 (copy)
v39({
0,
v722(...),
v11.Server .. "/rc?c=" .. v42.consoleprint
});
end;
v10.consoleinfo = function(...) --[[ Line: 3378 ]] --[[ Name: consoleinfo ]]
-- upvalues: v39 (copy), v722 (copy), v11 (copy), v42 (copy)
v39({
0,
v722(...),
v11.Server .. "/rc?c=" .. v42.consoleinfo
});
end;
v10.consolewarn = function(...) --[[ Line: 3386 ]] --[[ Name: consolewarn ]]
-- upvalues: v39 (copy), v722 (copy), v11 (copy), v42 (copy)
v39({
0,
v722(...),
v11.Server .. "/rc?c=" .. v42.consolewarn
});
end;
v10.consoleinput = function() --[[ Line: 3394 ]] --[[ Name: consoleinput ]]
-- upvalues: v39 (copy), v11 (copy), v42 (copy)
return (v39({
0,
"",
v11.Server .. "/rc?c=" .. v42.consoleinput
}));
end;
v10.rconsolecreate = v10.consolecreate;
v10.rconsoledestroy = v10.consoledestroy;
v10.rconsoleclear = v10.consoleclear;
v10.rconsolename = v10.consolename;
v10.consolesettitle = v10.consolename;
v10.rconsolesettitle = v10.consolename;
v10.rconsoleprint = v10.consoleprint;
v10.rconsoleinfo = v10.consoleinfo;
v10.rconsolewarn = v10.consolewarn;
v10.rconsoleinput = v10.consoleinput;
v10.crypt = {};
local function v727(v723, v724) --[[ Line: 3422 ]] --[[ Name: ProcessBase64 ]]
-- upvalues: v39 (copy), v11 (copy)
local v725, v726 = v39({
0,
v723,
v11.Server .. "/b64?c=" .. v724
});
if not v726 then
error(v725, 3);
end;
return v725;
end;
v10.base64 = {
encode = function(v728) --[[ Line: 3437 ]] --[[ Name: encode ]]
-- upvalues: v727 (copy), v46 (copy)
return v727(v728, v46.Encode);
end,
decode = function(v729) --[[ Line: 3440 ]] --[[ Name: decode ]]
-- upvalues: v727 (copy), v46 (copy)
return v727(v729, v46.Decode);
end
};
v10.crypt.base64 = v10.base64;
v10.crypt.base64encode = v10.base64.encode;
v10.crypt.base64_encode = v10.base64.encode;
v10.base64_encode = v10.base64.encode;
v10.crypt.base64decode = v10.base64.decode;
v10.crypt.base64_decode = v10.base64.decode;
v10.base64_decode = v10.base64.decode;
local function v734(v730) --[[ Line: 3454 ]] --[[ Name: getEncMode ]]
-- upvalues: v44 (copy)
v730 = v730:upper();
local v731 = nil;
for v732, v733 in v44 do
if v732 == v730 then
v731 = v733;
break;
end;
end;
assert(v731 ~= nil, "Invalid mode", 3);
return v731;
end;
v10.crypt.encrypt = function(v735, v736, v737, v738) --[[ Line: 3466 ]] --[[ Name: encrypt ]]
-- upvalues: v19 (copy), v39 (copy), v11 (copy), v45 (copy), l_game_Service_0 (copy), v734 (copy)
assert(v19.type(v735) == "string", "invalid argument #1 to 'encrypt' (string expected, got " .. v19.type(v735) .. ")", 3);
assert(v19.type(v736) == "string", "invalid argument #2 to 'encrypt' (string expected, got " .. v19.type(v736) .. ")", 3);
assert(v19.type(v738) == "string", "invalid argument #4 to 'encrypt' (string expected, got " .. v19.type(v738) .. ")", 3);
v737 = tostring(v737 or "");
local v739, _, v741 = v39({
0,
v735,
v11.Server .. "/cr?c=" .. v45.Encrypt .. "&k=" .. l_game_Service_0:UrlEncode(fbase64.encode(v736)) .. "&i=" .. l_game_Service_0:UrlEncode(fbase64.encode(v737)) .. "&m=" .. v734(v738)
}, false, true);
return v739, fbase64.decode(v741.iv);
end;
v10.crypt.decrypt = function(v742, v743, v744, v745) --[[ Line: 3482 ]] --[[ Name: decrypt ]]
-- upvalues: v19 (copy), v39 (copy), v11 (copy), v45 (copy), l_game_Service_0 (copy), v734 (copy)
assert(v19.type(v742) == "string", "invalid argument #1 to 'decrypt' (string expected, got " .. v19.type(v742) .. ")", 3);
assert(v19.type(v743) == "string", "invalid argument #2 to 'decrypt' (string expected, got " .. v19.type(v743) .. ")", 3);
assert(v19.type(v745) == "string", "invalid argument #4 to 'decrypt' (string expected, got " .. v19.type(v745) .. ")", 3);
v744 = tostring(v744 or "");
return (v39({
0,
v742,
v11.Server .. "/cr?c=" .. v45.Decrypt .. "&k=" .. l_game_Service_0:UrlEncode(fbase64.encode(v743)) .. "&i=" .. l_game_Service_0:UrlEncode(fbase64.encode(v744)) .. "&m=" .. v734(v745)
}));
end;
v10.crypt.generatebytes = function(v746) --[[ Line: 3498 ]] --[[ Name: generatebytes ]]
-- upvalues: v19 (copy), v39 (copy), v11 (copy), v45 (copy)
v746 = tonumber(v746);
assert(v19.type(v746) == "number", "invalid argument #1 to 'generatebytes' (number expected, got " .. v19.type(v746) .. ")", 3);
return (v39({
0,
"",
v11.Server .. "/cr?c=" .. v45.GenerateBytes .. "&s=" .. v746
}));
end;
v10.crypt.generatekey = function() --[[ Line: 3511 ]] --[[ Name: generatekey ]]
-- upvalues: v10 (copy)
return v10.crypt.generatebytes(32);
end;
v10.crypt.hash = function(v747, v748) --[[ Line: 3515 ]] --[[ Name: hash ]]
-- upvalues: v19 (copy), v43 (copy), v39 (copy), v11 (copy), v45 (copy)
assert(v19.type(v747) == "string", "invalid argument #1 to 'hash' (string expected, got " .. v19.type(v747) .. ")", 3);
assert(v19.type(v748) == "string", "invalid argument #2 to 'hash' (string expected, got " .. v19.type(v748) .. ")", 3);
v748 = v748:gsub("_", ""):gsub("-", ""):lower();
local v749 = nil;
for v750, v751 in v43 do
if v750:gsub("_", ""):lower() == v748 then
v749 = v751;
break;
end;
end;
assert(v749 ~= nil, "Invalid hash algorithm", 3);
return (v39({
0,
v747,
v11.Server .. "/cr?c=" .. v45.Hash .. "&a=" .. v749
}));
end;
v10.lz4compress = function(v752) --[[ Line: 3540 ]] --[[ Name: lz4compress ]]
-- upvalues: v39 (copy), v11 (copy), v47 (copy)
local v753, v754 = v39({
0,
tostring(v752),
v11.Server .. "/lz4?c=" .. v47.Compress
});
if not v754 then
error(v753, 3);
end;
return v753;
end;
v10.lz4decompress = function(v755, v756) --[[ Line: 3553 ]] --[[ Name: lz4decompress ]]
-- upvalues: v19 (copy), v39 (copy), v11 (copy), v47 (copy)
v756 = tonumber(v756);
assert(v19.type(v756) == "number", "invalid argument #2 to 'lz4decompress' (number expected, got " .. v19.type(v756) .. ")", 3);
local v757, v758 = v39({
0,
tostring(v755),
v11.Server .. "/lz4?c=" .. v47.Decompress .. "&s=" .. v756
});
if not v758 then
error(v757, 3);
end;
return v757;
end;
local v759 = {
Connect = 0,
Send = 1,
Recieve = 2,
Close = 3
};
v10.WebSocket = {};
v10.WebSocket.connect = function(v760) --[[ Line: 3579 ]] --[[ Name: connect ]]
-- upvalues: v19 (copy), v39 (copy), v11 (copy), v759 (copy), v10 (copy)
assert(v19.type(v760) == "string", "invalid argument #1 to 'connect' (string expected, got " .. v19.type(v760) .. ")", 3);
assert(v760:find("wss://") or v760:find("ws://"), "Invalid WebSocket url, missing prefix wss:// or ws://", 3);
local v761, v762 = v39({
0,
v760,
v11.Server .. "/ws?c=" .. v759.Connect .. "&p=" .. "51880"
});
if not v762 then
error(v761, 3);
end;
v761 = v761:gsub("([^%w%-_%.~])", function(v763) --[[ Line: 3593 ]]
return string.format("%%%02X", string.byte(v763));
end);
local v764 = false;
local v765 = {
Closed = {},
Message = {}
};
local v769 = {
Close = function(_) --[[ Line: 3604 ]] --[[ Name: Close ]]
-- upvalues: v764 (ref), v39 (ref), v11 (ref), v759 (ref), v761 (ref)
if v764 then
return;
else
local _, v768 = v39({
0,
"",
v11.Server .. "/ws?c=" .. v759.Close .. "&u=" .. v761
});
v764 = v768;
return;
end;
end
};
v769.Send = function(v770, v771) --[[ Line: 3615 ]]
-- upvalues: v764 (ref), v769 (copy), v39 (ref), v11 (ref), v759 (ref), v761 (ref)
if v764 then
return;
else
if v770 ~= v769 then
v771 = v770;
end;
v39({
0,
tostring(v771),
v11.Server .. "/ws?c=" .. v759.Send .. "&u=" .. v761
});
return;
end;
end;
v769.OnMessage = {
Connect = function(_, v773) --[[ Line: 3627 ]] --[[ Name: Connect ]]
-- upvalues: v10 (ref), v765 (copy)
local v774 = v10.Instance.new("BindableFunction");
v774.OnInvoke = v773;
v765.Message[v774] = true;
return {
Disconnect = function() --[[ Line: 3633 ]] --[[ Name: Disconnect ]]
-- upvalues: v774 (copy), v765 (ref)
v774:Destroy();
v765.Message[v774] = nil;
end
};
end,
Once = function(_, v776) --[[ Line: 3638 ]] --[[ Name: Once ]]
-- upvalues: v10 (ref), v765 (copy)
local v777 = v10.Instance.new("BindableFunction");
local function v778(...) --[[ Line: 3641 ]]
-- upvalues: v776 (copy), v777 (copy), v765 (ref)
v776(...);
v777:Destroy();
v765.Message[v777] = nil;
end;
setfenv(v778, v10);
v777.OnInvoke = v778;
v765.Message[v777] = true;
return {
Disconnect = function() --[[ Line: 3651 ]] --[[ Name: Disconnect ]]
-- upvalues: v777 (copy), v765 (ref)
v777:Destroy();
v765.Message[v777] = nil;
end
};
end,
Wait = function(_) --[[ Line: 3656 ]] --[[ Name: Wait ]]
-- upvalues: v10 (ref), v765 (copy)
local v780 = v10.Instance.new("BindableFunction");
local v781 = false;
v780.OnInvoke = function() --[[ Line: 3660 ]]
-- upvalues: v781 (ref)
v781 = true;
end;
v765.Message[v780] = true;
repeat
task.wait();
until v781;
v780:Destroy();
v765.Message[v780] = nil;
end
};
v769.OnMessage.connect = v769.OnMessage.Connect;
v769.OnMessage.once = v769.OnMessage.Once;
v769.OnMessage.wait = v769.OnMessage.Wait;
v769.OnClose = {
Connect = function(_, v783) --[[ Line: 3677 ]] --[[ Name: Connect ]]
-- upvalues: v10 (ref), v765 (copy)
local v784 = v10.Instance.new("BindableFunction");
v784.OnInvoke = v783;
v765.Closed[v784] = true;
return {
Disconnect = function() --[[ Line: 3683 ]] --[[ Name: Disconnect ]]
-- upvalues: v784 (copy), v765 (ref)
v784:Destroy();
v765.Closed[v784] = nil;
end
};
end,
Once = function(_, v786) --[[ Line: 3688 ]] --[[ Name: Once ]]
-- upvalues: v10 (ref), v765 (copy)
local v787 = v10.Instance.new("BindableFunction");
local function v788(...) --[[ Line: 3691 ]]
-- upvalues: v786 (copy), v787 (copy), v765 (ref)
v786(...);
v787:Destroy();
v765.Closed[v787] = nil;
end;
setfenv(v788, v10);
v787.OnInvoke = v788;
v765.Closed[v787] = true;
return {
Disconnect = function() --[[ Line: 3701 ]] --[[ Name: Disconnect ]]
-- upvalues: v787 (copy), v765 (ref)
v787:Destroy();
v765.Closed[v787] = nil;
end
};
end,
Wait = function(_) --[[ Line: 3706 ]] --[[ Name: Wait ]]
-- upvalues: v10 (ref), v765 (copy)
local v790 = v10.Instance.new("BindableFunction");
local v791 = false;
v790.OnInvoke = function() --[[ Line: 3710 ]]
-- upvalues: v791 (ref)
v791 = true;
end;
v765.Closed[v790] = true;
repeat
task.wait();
until v791;
v790:Destroy();
v765.Closed[v790] = nil;
end
};
v769.OnClose.connect = v769.OnClose.Connect;
v769.OnClose.once = v769.OnClose.Once;
v769.OnClose.wait = v769.OnClose.Wait;
task.spawn(function() --[[ Line: 3726 ]]
-- upvalues: v764 (ref), v39 (ref), v11 (ref), v759 (ref), v761 (ref), v765 (copy)
local v792 = 0;
while true do
if not v764 then
task.wait(0.01);
local v793, v794, v795 = v39({
0,
"",
v11.Server .. "/ws?c=" .. v759.Recieve .. "&u=" .. v761
}, false, true);
if not v794 or not v795 or not v795.__ws_status then
v792 = v792 + 1;
if v792 >= 2 then
for v796 in v765.Closed do
v796:Invoke();
end;
v764 = true;
return;
end;
else
v792 = 0;
local l___ws_status_0 = v795.__ws_status;
if l___ws_status_0 ~= "EMPTY" then
if l___ws_status_0 == "CLOSED" then
for v798 in v765.Closed do
v798:Invoke();
end;
v764 = true;
return;
else
if l___ws_status_0 == "ERROR" then
for v799 in v765.Closed do
v799:Invoke();
end;
v764 = true;
error(v793, 3);
end;
if l___ws_status_0 == "MSG" then
for v800 in v765.Message do
v800:Invoke(v793);
end;
end;
end;
end;
end;
else
return;
end;
end;
end);
local function v801(v802) --[[ Line: 3776 ]] --[[ Name: recur ]]
-- upvalues: v19 (ref), v10 (ref), v801 (copy)
for _, v804 in v802 do
if v19.type(v804) == "function" then
setfenv(v804, v10);
elseif v19.type(v804) == "table" then
v801(v804);
end;
end;
end;
v801(v769);
task.spawn(function() --[[ Line: 3789 ]]
-- upvalues: v19 (ref), v769 (copy)
local l_Players_1 = v19.game:GetService("Players");
(l_Players_1.LocalPlayer or l_Players_1.PlayerAdded:Wait()).OnTeleport:Once(v769.Close);
v19.game.Close:Once(v769.Close);
end);
return v769;
end;
local v806 = nil;
task.spawn(function() --[[ Line: 3803 ]]
-- upvalues: v10 (copy), v806 (ref)
repeat
task.wait();
until v10.Instance and v10.game;
v806 = v10.Instance.new("ScreenGui", v10.game:GetService("CoreGui"));
v806.Name = "Drawing";
v806.IgnoreGuiInset = true;
v806.DisplayOrder = 2147483647;
end);
local v807 = 0;
local v815 = setmetatable({
Visible = true,
ZIndex = 0,
Transparency = 1,
Color = Color3.new(),
Remove = function(v808) --[[ Line: 3820 ]] --[[ Name: Remove ]]
setmetatable(v808, nil);
end,
Destroy = function(v809) --[[ Line: 3823 ]] --[[ Name: Destroy ]]
setmetatable(v809, nil);
end
}, {
__add = function(v810, v811) --[[ Line: 3827 ]] --[[ Name: __add ]]
local v812 = table.clone(v810);
for v813, v814 in v811 do
v812[v813] = v814;
end;
return v812;
end
});
local v816 = {
[0] = Font.fromEnum(Enum.Font.Roboto),
[1] = Font.fromEnum(Enum.Font.Legacy),
[2] = Font.fromEnum(Enum.Font.SourceSans),
[3] = Font.fromEnum(Enum.Font.RobotoMono)
};
local function v818(v817) --[[ Line: 3844 ]] --[[ Name: convertTransparency ]]
return math.clamp(1 - v817, 0, 1);
end;
local v819 = {
Fonts = {
UI = 0,
System = 1,
Plex = 2,
Monospace = 3
}
};
v819.new = function(v820) --[[ Line: 3856 ]] --[[ Name: new ]]
-- upvalues: v807 (ref), v815 (copy), v10 (copy), v818 (copy), v806 (ref), v819 (copy), v816 (copy)
v807 = v807 + 1;
if v820 == "Line" then
local v821 = {
From = Vector2.zero,
To = Vector2.zero,
Thickness = 1
} + v815;
local v822 = v10.Instance.new("Frame");
v822.Name = v807;
v822.AnchorPoint = Vector2.one * 0.5;
v822.BorderSizePixel = 0;
v822.BackgroundColor3 = v821.Color;
v822.Visible = v821.Visible;
v822.ZIndex = v821.ZIndex;
v822.BackgroundTransparency = v818(v821.Transparency);
v822.Size = UDim2.new();
v822.Parent = v806;
return setmetatable({
__type = "Drawing Object"
}, {
__newindex = function(_, v824, v825) --[[ Line: 3879 ]] --[[ Name: __newindex ]]
-- upvalues: v821 (copy), v822 (copy), v818 (ref)
if typeof(v821[v824]) == "nil" then
return;
else
if v824 == "From" then
local v826 = v821.To - v825;
local v827 = (v821.To + v825) / 2;
local l_Magnitude_0 = v826.Magnitude;
local v829 = math.deg(math.atan2(v826.Y, v826.X));
v822.Position = UDim2.fromOffset(v827.X, v827.Y);
v822.Rotation = v829;
v822.Size = UDim2.fromOffset(l_Magnitude_0, v821.Thickness);
elseif v824 == "To" then
local v830 = v825 - v821.From;
local v831 = (v825 + v821.From) / 2;
local l_Magnitude_1 = v830.Magnitude;
local v833 = math.deg(math.atan2(v830.Y, v830.X));
v822.Position = UDim2.fromOffset(v831.X, v831.Y);
v822.Rotation = v833;
v822.Size = UDim2.fromOffset(l_Magnitude_1, v821.Thickness);
elseif v824 == "Thickness" then
local l_Magnitude_2 = (v821.To - v821.From).Magnitude;
v822.Size = UDim2.fromOffset(l_Magnitude_2, v825);
elseif v824 == "Visible" then
v822.Visible = v825;
elseif v824 == "ZIndex" then
v822.ZIndex = v825;
elseif v824 == "Transparency" then
v822.BackgroundTransparency = v818(v825);
elseif v824 == "Color" then
v822.BackgroundColor3 = v825;
end;
v821[v824] = v825;
return;
end;
end,
__index = function(v835, v836) --[[ Line: 3915 ]] --[[ Name: __index ]]
-- upvalues: v822 (copy), v821 (copy)
if v836 == "Remove" or v836 == "Destroy" then
return function() --[[ Line: 3917 ]]
-- upvalues: v822 (ref), v821 (ref), v835 (copy)
v822:Destroy();
v821.Remove(v835);
return v821:Remove();
end;
else
return v821[v836];
end;
end,
__tostring = function() --[[ Line: 3926 ]] --[[ Name: __tostring ]]
return "Drawing";
end
});
elseif v820 == "Text" then
local v837 = {
Text = "",
Font = v819.Fonts.UI,
Size = 0,
Position = Vector2.zero,
Center = false,
Outline = false,
OutlineColor = Color3.new()
} + v815;
local v838 = v10.Instance.new("TextLabel");
local v839 = v10.Instance.new("UIStroke");
v838.Name = v807;
v838.AnchorPoint = Vector2.one * 0.5;
v838.BorderSizePixel = 0;
v838.BackgroundTransparency = 1;
v838.Visible = v837.Visible;
v838.TextColor3 = v837.Color;
v838.TextTransparency = v818(v837.Transparency);
v838.ZIndex = v837.ZIndex;
v838.FontFace = v816[v837.Font];
v838.TextSize = v837.Size;
v838:GetPropertyChangedSignal("TextBounds"):Connect(function() --[[ Line: 3953 ]]
-- upvalues: v838 (copy), v837 (copy)
local l_TextBounds_0 = v838.TextBounds;
local v841 = l_TextBounds_0 / 2;
v838.Size = UDim2.fromOffset(l_TextBounds_0.X, l_TextBounds_0.Y);
v838.Position = UDim2.fromOffset(v837.Position.X + if not v837.Center then v841.X else 0, v837.Position.Y + v841.Y);
end);
v839.Thickness = 1;
v839.Enabled = v837.Outline;
v839.Color = v837.Color;
v838.Parent = v806;
v839.Parent = v838;
return setmetatable({
__type = "Drawing Object"
}, {
__newindex = function(_, v843, v844) --[[ Line: 3967 ]] --[[ Name: __newindex ]]
-- upvalues: v837 (copy), v838 (copy), v816 (ref), v839 (copy), v818 (ref)
if typeof(v837[v843]) == "nil" then
return;
else
if v843 == "Text" then
v838.Text = v844;
elseif v843 == "Font" then
v844 = math.clamp(v844, 0, 3);
v838.FontFace = v816[v844];
elseif v843 == "Size" then
v838.TextSize = v844;
elseif v843 == "Position" then
local v845 = v838.TextBounds / 2;
v838.Position = UDim2.fromOffset(v844.X + if not v837.Center then v845.X else 0, v844.Y + v845.Y);
elseif v843 == "Center" then
local v846 = if v844 then workspace.CurrentCamera.ViewportSize / 2 else v837.Position;
v838.Position = UDim2.fromOffset(v846.X, v846.Y);
elseif v843 == "Outline" then
v839.Enabled = v844;
elseif v843 == "OutlineColor" then
v839.Color = v844;
elseif v843 == "Visible" then
v838.Visible = v844;
elseif v843 == "ZIndex" then
v838.ZIndex = v844;
elseif v843 == "Transparency" then
local v847 = v818(v844);
v838.TextTransparency = v847;
v839.Transparency = v847;
elseif v843 == "Color" then
v838.TextColor3 = v844;
end;
v837[v843] = v844;
return;
end;
end,
__index = function(v848, v849) --[[ Line: 4008 ]] --[[ Name: __index ]]
-- upvalues: v838 (copy), v837 (copy)
if v849 == "Remove" or v849 == "Destroy" then
return function() --[[ Line: 4010 ]]
-- upvalues: v838 (ref), v837 (ref), v848 (copy)
v838:Destroy();
v837.Remove(v848);
return v837:Remove();
end;
elseif v849 == "TextBounds" then
return v838.TextBounds;
else
return v837[v849];
end;
end,
__tostring = function() --[[ Line: 4021 ]] --[[ Name: __tostring ]]
return "Drawing";
end
});
elseif v820 == "Circle" then
local v850 = {
Radius = 150,
Position = Vector2.zero,
Thickness = 0.7,
Filled = false
} + v815;
local v851 = v10.Instance.new("Frame");
local v852 = v10.Instance.new("UICorner");
local v853 = v10.Instance.new("UIStroke");
v851.Name = v807;
v851.AnchorPoint = Vector2.one * 0.5;
v851.BorderSizePixel = 0;
v851.BackgroundTransparency = if v850.Filled then v818(v850.Transparency) else 1;
v851.BackgroundColor3 = v850.Color;
v851.Visible = v850.Visible;
v851.ZIndex = v850.ZIndex;
v852.CornerRadius = UDim.new(1, 0);
v851.Size = UDim2.fromOffset(v850.Radius, v850.Radius);
v853.Thickness = v850.Thickness;
v853.Enabled = not v850.Filled;
v853.ApplyStrokeMode = Enum.ApplyStrokeMode.Border;
v851.Parent = v806;
v852.Parent = v851;
v853.Parent = v851;
return setmetatable({
__type = "Drawing Object"
}, {
__newindex = function(_, v855, v856) --[[ Line: 4050 ]] --[[ Name: __newindex ]]
-- upvalues: v850 (copy), v851 (copy), v853 (copy), v818 (ref)
if typeof(v850[v855]) == "nil" then
return;
else
if v855 == "Radius" then
local v857 = v856 * 2;
v851.Size = UDim2.fromOffset(v857, v857);
elseif v855 == "Position" then
v851.Position = UDim2.fromOffset(v856.X, v856.Y);
elseif v855 == "Thickness" then
v856 = math.clamp(v856, 0.6, 2147483647);
v853.Thickness = v856;
elseif v855 == "Filled" then
v851.BackgroundTransparency = if v856 then v818(v850.Transparency) else 1;
v853.Enabled = not v856;
elseif v855 == "Visible" then
v851.Visible = v856;
elseif v855 == "ZIndex" then
v851.ZIndex = v856;
elseif v855 == "Transparency" then
local v858 = v818(v856);
v851.BackgroundTransparency = if v850.Filled then v858 else 1;
v853.Transparency = v858;
elseif v855 == "Color" then
v851.BackgroundColor3 = v856;
v853.Color = v856;
end;
v850[v855] = v856;
return;
end;
end,
__index = function(v859, v860) --[[ Line: 4080 ]] --[[ Name: __index ]]
-- upvalues: v851 (copy), v850 (copy)
if v860 == "Remove" or v860 == "Destroy" then
return function() --[[ Line: 4082 ]]
-- upvalues: v851 (ref), v850 (ref), v859 (copy)
v851:Destroy();
v850.Remove(v859);
return v850:Remove();
end;
else
return v850[v860];
end;
end,
__tostring = function() --[[ Line: 4091 ]] --[[ Name: __tostring ]]
return "Drawing";
end
});
elseif v820 == "Square" then
local v861 = {
Size = Vector2.zero,
Position = Vector2.zero,
Thickness = 0.7,
Filled = false
} + v815;
local v862 = v10.Instance.new("Frame");
local v863 = v10.Instance.new("UIStroke");
v862.Name = v807;
v862.BorderSizePixel = 0;
v862.BackgroundTransparency = if v861.Filled then v818(v861.Transparency) else 1;
v862.ZIndex = v861.ZIndex;
v862.BackgroundColor3 = v861.Color;
v862.Visible = v861.Visible;
v863.Thickness = v861.Thickness;
v863.Enabled = not v861.Filled;
v863.LineJoinMode = Enum.LineJoinMode.Miter;
v862.Parent = v806;
v863.Parent = v862;
return setmetatable({
__type = "Drawing Object"
}, {
__newindex = function(_, v865, v866) --[[ Line: 4116 ]] --[[ Name: __newindex ]]
-- upvalues: v861 (copy), v862 (copy), v863 (copy), v818 (ref)
if typeof(v861[v865]) == "nil" then
return;
else
if v865 == "Size" then
v862.Size = UDim2.fromOffset(v866.X, v866.Y);
elseif v865 == "Position" then
v862.Position = UDim2.fromOffset(v866.X, v866.Y);
elseif v865 == "Thickness" then
v866 = math.clamp(v866, 0.6, 2147483647);
v863.Thickness = v866;
elseif v865 == "Filled" then
v862.BackgroundTransparency = if v866 then v818(v861.Transparency) else 1;
v863.Enabled = not v866;
elseif v865 == "Visible" then
v862.Visible = v866;
elseif v865 == "ZIndex" then
v862.ZIndex = v866;
elseif v865 == "Transparency" then
local v867 = v818(v866);
v862.BackgroundTransparency = if v861.Filled then v867 else 1;
v863.Transparency = v867;
elseif v865 == "Color" then
v863.Color = v866;
v862.BackgroundColor3 = v866;
end;
v861[v865] = v866;
return;
end;
end,
__index = function(v868, v869) --[[ Line: 4144 ]] --[[ Name: __index ]]
-- upvalues: v862 (copy), v861 (copy)
if v869 == "Remove" or v869 == "Destroy" then
return function() --[[ Line: 4146 ]]
-- upvalues: v862 (ref), v861 (ref), v868 (copy)
v862:Destroy();
v861.Remove(v868);
return v861:Remove();
end;
else
return v861[v869];
end;
end,
__tostring = function() --[[ Line: 4155 ]] --[[ Name: __tostring ]]
return "Drawing";
end
});
elseif v820 == "Image" then
local v870 = {
Data = "",
Size = Vector2.zero,
Position = Vector2.zero
} + v815;
local v871 = v10.Instance.new("ImageLabel");
v871.Name = v807;
v871.BorderSizePixel = 0;
v871.ScaleType = Enum.ScaleType.Stretch;
v871.BackgroundTransparency = 1;
v871.Visible = v870.Visible;
v871.ZIndex = v870.ZIndex;
v871.ImageTransparency = v818(v870.Transparency);
v871.ImageColor3 = v870.Color;
v871.Parent = v806;
return setmetatable({
__type = "Drawing Object"
}, {
__newindex = function(_, v873, v874) --[[ Line: 4177 ]] --[[ Name: __newindex ]]
-- upvalues: v870 (copy), v871 (copy), v818 (ref)
if typeof(v870[v873]) == "nil" then
return;
else
if v873 == "Data" then
v871.Image = v874;
elseif v873 == "Size" then
v871.Size = UDim2.fromOffset(v874.X, v874.Y);
elseif v873 == "Position" then
v871.Position = UDim2.fromOffset(v874.X, v874.Y);
elseif v873 == "Visible" then
v871.Visible = v874;
elseif v873 == "ZIndex" then
v871.ZIndex = v874;
elseif v873 == "Transparency" then
v871.ImageTransparency = v818(v874);
elseif v873 == "Color" then
v871.ImageColor3 = v874;
end;
v870[v873] = v874;
return;
end;
end,
__index = function(v875, v876) --[[ Line: 4198 ]] --[[ Name: __index ]]
-- upvalues: v871 (copy), v870 (copy)
if v876 == "Remove" or v876 == "Destroy" then
return function() --[[ Line: 4200 ]]
-- upvalues: v871 (ref), v870 (ref), v875 (copy)
v871:Destroy();
v870.Remove(v875);
return v870:Remove();
end;
else
return v870[v876];
end;
end,
__tostring = function() --[[ Line: 4209 ]] --[[ Name: __tostring ]]
return "Drawing";
end
});
elseif v820 == "Quad" then
local v877 = {
Thickness = 1,
PointA = Vector2.new(),
PointB = Vector2.new(),
PointC = Vector2.new(),
PointD = Vector2.new(),
Filled = false
} + v815;
local v878 = v819.new("Line");
local v879 = v819.new("Line");
local v880 = v819.new("Line");
local v881 = v819.new("Line");
return setmetatable({
__type = "Drawing Object"
}, {
__newindex = function(_, v883, v884) --[[ Line: 4227 ]] --[[ Name: __newindex ]]
-- upvalues: v878 (copy), v879 (copy), v880 (copy), v881 (copy)
if v883 == "Thickness" then
v878.Thickness = v884;
v879.Thickness = v884;
v880.Thickness = v884;
v881.Thickness = v884;
end;
if v883 == "PointA" then
v878.From = v884;
v879.To = v884;
end;
if v883 == "PointB" then
v879.From = v884;
v880.To = v884;
end;
if v883 == "PointC" then
v880.From = v884;
v881.To = v884;
end;
if v883 == "PointD" then
v881.From = v884;
v878.To = v884;
end;
if v883 == "Visible" then
v878.Visible = true;
v879.Visible = true;
v880.Visible = true;
v881.Visible = true;
end;
if v883 == "Filled" then
v878.BackgroundTransparency = 1;
v879.BackgroundTransparency = 1;
v880.BackgroundTransparency = 1;
v881.BackgroundTransparency = 1;
end;
if v883 == "Color" then
v878.Color = v884;
v879.Color = v884;
v880.Color = v884;
v881.Color = v884;
end;
if v883 == "ZIndex" then
v878.ZIndex = v884;
v879.ZIndex = v884;
v880.ZIndex = v884;
v881.ZIndex = v884;
end;
end,
__index = function(_, v886) --[[ Line: 4276 ]] --[[ Name: __index ]]
-- upvalues: v878 (copy), v879 (copy), v880 (copy), v881 (copy), v877 (copy)
if string.lower(tostring(v886)) == "remove" then
return function() --[[ Line: 4278 ]]
-- upvalues: v878 (ref), v879 (ref), v880 (ref), v881 (ref)
v878:Remove();
v879:Remove();
v880:Remove();
v881:Remove();
end;
else
return v877[v886];
end;
end
});
elseif v820 == "Triangle" then
local v887 = {
PointA = Vector2.zero,
PointB = Vector2.zero,
PointC = Vector2.zero,
Thickness = 1,
Filled = false
} + v815;
local v888 = {
A = v819.new("Line"),
B = v819.new("Line"),
C = v819.new("Line")
};
return setmetatable({
__type = "Drawing Object"
}, {
__tostring = function() --[[ Line: 4303 ]] --[[ Name: __tostring ]]
return "Drawing";
end,
__newindex = function(_, v890, v891) --[[ Line: 4305 ]] --[[ Name: __newindex ]]
-- upvalues: v887 (copy), v888 (copy)
if typeof(v887[v890]) == "nil" then
return;
else
if v890 == "PointA" then
v888.A.From = v891;
v888.B.To = v891;
elseif v890 == "PointB" then
v888.B.From = v891;
v888.C.To = v891;
elseif v890 == "PointC" then
v888.C.From = v891;
v888.A.To = v891;
elseif v890 == "Thickness" or v890 == "Visible" or v890 == "Color" or v890 == "ZIndex" then
for _, v893 in v888 do
v893[v890] = v891;
end;
elseif v890 == "Filled" then
v888.BackgroundTransparency = 1;
end;
v887[v890] = v891;
return;
end;
end,
__index = function(v894, v895) --[[ Line: 4327 ]] --[[ Name: __index ]]
-- upvalues: v888 (copy), v887 (copy)
if v895 == "Remove" or v895 == "Destroy" then
return function() --[[ Line: 4329 ]]
-- upvalues: v888 (ref), v887 (ref), v894 (copy)
for _, v897 in v888 do
v897:Remove();
end;
v887.Remove(v894);
return v887:Remove();
end;
else
return v887[v895];
end;
end
});
else
return;
end;
end;
v10.Drawing = v819;
v10.isrenderobj = function(v898) --[[ Line: 4346 ]]
local l_status_15, l_result_15 = pcall(function() --[[ Line: 4347 ]]
-- upvalues: v898 (copy)
return v898.__type == "Drawing Object";
end);
return l_status_15 and l_result_15;
end;
v10.cleardrawcache = function() --[[ Line: 4352 ]]
-- upvalues: v806 (ref)
v806:ClearAllChildren();
end;
v10.getrenderproperty = function(v901, v902) --[[ Line: 4355 ]]
-- upvalues: v10 (copy)
assert(v10.isrenderobj(v901), "Object must be a Drawing", 3);
return v901[v902];
end;
v10.setrenderproperty = function(v903, v904, v905) --[[ Line: 4359 ]]
-- upvalues: v10 (copy)
assert(v10.isrenderobj(v903), "Object must be a Drawing", 3);
v903[v904] = v905;
end;
v10.game = v71:Instance(v19.game, v71.funcMap[v19.game]);
v10.Game = v10.game;
v10.workspace = v71:Instance(v19.workspace);
v10.Workspace = v10.workspace;
v10.Instance = setmetatable({}, {
__index = function(_, v907) --[[ Line: 4372 ]] --[[ Name: __index ]]
-- upvalues: v71 (copy), v19 (copy), v10 (copy)
if v907 == "new" then
local function v914(v908, v909) --[[ Line: 4374 ]]
-- upvalues: v71 (ref), v19 (ref), v10 (ref)
if v909 and v71.Map[v909] then
v909 = v71.Map[v909];
end;
local l_status_16, l_result_16 = pcall(v19.Instance.new, v908, v909);
if not l_status_16 then
error(l_result_16, 3);
end;
if v71.funcMap[l_result_16.ClassName] then
local _, l_result_17 = pcall(function() --[[ Line: 4383 ]]
-- upvalues: v10 (ref), l_result_16 (copy)
v10.game:GetService(l_result_16.ClassName);
end);
if l_result_17 then
error("Multiple Services", 3);
end;
end;
return v71:Instance(l_result_16, v71.funcMap[l_result_16] or v71.funcMap[v908], true);
end;
setfenv(v914, v10);
return v914;
else
return v19.Instance[v907];
end;
end,
__newindex = function() --[[ Line: 4395 ]] --[[ Name: __newindex ]]
error("Attempt to change a protected metatable", 3);
end,
__metatable = "The metatable is locked"
});
getfenv().script = nil;
getfenv().game = nil;
getfenv().Game = nil;
getfenv().workspace = nil;
getfenv().Workspace = nil;
setmetatable(v10, {
__index = function(_, v916) --[[ Line: 4408 ]] --[[ Name: __index ]]
-- upvalues: v20 (copy), v19 (copy), v71 (copy)
local v917 = v20[v916];
if v917 == v19.game or v917 == v19.workspace then
v20[v916] = v71.Map[v917];
return v71.Map[v917];
else
return v917;
end;
end,
__metatable = "The metatable is locked"
});
local function v918(v919) --[[ Line: 4419 ]] --[[ Name: sv ]]
-- upvalues: v19 (copy), v10 (copy), v918 (copy)
for v920, v921 in v919 do
if v19.type(v921) == "function" then
pcall(setfenv, v921, v10);
elseif v19.type(v920) == "function" then
pcall(setfenv, v921, v10);
elseif v19.type(v921) == "table" then
v918(v921);
elseif v19.type(v920) == "table" then
v918(v920);
end;
end;
end;
v918(v10);
v39({
v40.CBlockFunctions,
""
}, true);
task.spawn(function() --[[ Line: 4448 ]]
-- upvalues: v39 (copy), v40 (copy), v10 (copy)
local v922 = tostring(v39({
v40.GetQueueOnTeleport,
""
}, true));
if #v922 < 1 then
return;
else
local v923, v924 = v10.loadstring(v922, "QueueOnTeleport");
if not v923 then
error("QueueOnTeleport: " .. tostring(v924), 3);
end;
setfenv(v923, v10);
task.spawn(v923);
return;
end;
end);
task.spawn(function() --[[ Line: 4461 ]]
-- upvalues: v39 (copy), v40 (copy), v10 (copy)
local v925 = tostring(v39({
v40.GetAutoExecuteContents,
""
}, true));
if #v925 < 1 then
return;
else
local v926, v927 = v10.loadstring(v925, "AutoExecute");
if not v926 then
error("AutoExecute: " .. tostring(v927), 3);
end;
setfenv(v926, v10);
task.spawn(v926);
return;
end;
end);
task.spawn(function() --[[ Line: 4474 ]]
-- upvalues: v53 (copy), v11 (copy), v10 (copy)
local v928 = tostring(v53(v11.CodeExecution));
if #v928 <= 3 then
return;
else
local v929, v930 = v10.loadstring(v928, "XenoNotification");
if not v929 then
error("Xeno Notification: " .. tostring(v930), 3);
end;
setfenv(v929, v10);
task.spawn(v929);
return;
end;
end);
task.spawn(function() --[[ Line: 4487 ]] --[[ Name: ExecutionListener ]]
-- upvalues: v19 (copy), v12 (copy), l_Folder_0 (copy), v10 (copy)
local v931 = v19.Instance.fromExisting(v12[math.random(1, #v12)]);
local function v932() --[[ Line: 4489 ]] --[[ Name: regenModule ]]
-- upvalues: v931 (ref), v19 (ref), v12 (ref), l_Folder_0 (ref)
v931 = v19.Instance.fromExisting(v12[math.random(1, #v12)]);
v931.Name = math.random(1, 9999999);
v931.Parent = l_Folder_0;
end;
v932();
while task.wait(0.001) do
local l_status_18, l_result_18 = pcall(v19.require, v931);
if l_status_18 and v19.type(l_result_18) == "function" then
v931:Destroy();
setfenv(l_result_18, {
getfenv = getfenv,
setfenv = setfenv,
setmetatable = setmetatable,
error = error,
Xeno = v10
});
task.spawn(l_result_18);
v932();
elseif l_status_18 and v19.type(l_result_18) ~= "function" then
v931:Destroy();
v932();
end;
end;
end);
return;
end;
end);
end;
local l_CorePackages_1 = game:GetService("CorePackages");
local v936 = require(l_CorePackages_1.Packages.Roact);
local v937 = v936.Component:extend("EventConnection");
v937.init = function(v938) --[[ Line: 4521 ]] --[[ Name: init ]]
v938.connection = nil;
end;
v937.render = function(v939) --[[ Line: 4521 ]] --[[ Name: render ]]
-- upvalues: v936 (copy)
return v936.oneChild(v939.props[v936.Children]);
end;
v937.didMount = function(v940) --[[ Line: 4521 ]] --[[ Name: didMount ]]
v940.connection = v940.props.event:Connect(v940.props.callback);
end;
v937.didUpdate = function(v941, v942) --[[ Line: 4521 ]] --[[ Name: didUpdate ]]
if v941.props.event ~= v942.event or v941.props.callback ~= v942.callback then
v941.connection:Disconnect();
v941.connection = v941.props.event:Connect(v941.props.callback);
end;
end;
v937.willUnmount = function(v943) --[[ Line: 4521 ]] --[[ Name: willUnmount ]]
if v943.connection then
v943.connection:Disconnect();
v943.connection = nil;
end;
end;
return v937;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment