Created
May 1, 2026 20:30
-
-
Save DuyNgao2306/c4142bbf5f56a6a243735e468cb57037 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --================ CORE =================-- | |
| local Services = { | |
| Players = game:GetService("Players"), | |
| RunService = game:GetService("RunService"), | |
| Stats = game:GetService("Stats"), | |
| UIS = game:GetService("UserInputService"), | |
| TweenService = game:GetService("TweenService"), | |
| VirtualUser = game:GetService("VirtualUser"), | |
| TeleportService = game:GetService("TeleportService") | |
| } | |
| local player = Services.Players.LocalPlayer | |
| local playerGui = player:WaitForChild("PlayerGui") | |
| if not game:IsLoaded() then game.Loaded:Wait() end | |
| --================ LINK SCRIPT MAIN =================-- | |
| local MAIN_SCRIPT_URL = "https://pastefy.app/2ANlBSkF/raw" | |
| --================ KEY SYSTEM 24H =================-- | |
| local KEY_FILE = "saved_key.txt" | |
| local TIME_FILE = "key_time.txt" | |
| local function getTime() | |
| return os.time() | |
| end | |
| local savedKey | |
| local savedTime | |
| if isfile and isfile(KEY_FILE) then | |
| savedKey = readfile(KEY_FILE) | |
| end | |
| if isfile and isfile(TIME_FILE) then | |
| savedTime = tonumber(readfile(TIME_FILE)) | |
| end | |
| local expired = true | |
| if savedKey and savedTime then | |
| if getTime() - savedTime < 24 * 60 * 60 then | |
| expired = false | |
| end | |
| end | |
| --================ LOADING =================-- | |
| local loadingGui = Instance.new("ScreenGui", playerGui) | |
| loadingGui.IgnoreGuiInset = true | |
| loadingGui.ResetOnSpawn = false | |
| local loadingFrame = Instance.new("Frame", loadingGui) | |
| loadingFrame.Size = UDim2.new(1,0,1,0) | |
| loadingFrame.BackgroundColor3 = Color3.fromRGB(10,10,15) | |
| local title = Instance.new("TextLabel", loadingFrame) | |
| title.Size = UDim2.new(1,0,0.4,0) | |
| title.Position = UDim2.new(0,0,0.3,0) | |
| title.BackgroundTransparency = 1 | |
| title.Text = "SCRIPT LOADING..." | |
| title.Font = Enum.Font.GothamBlack | |
| title.TextScaled = true | |
| title.TextColor3 = Color3.fromRGB(0,255,170) | |
| local author = Instance.new("TextLabel", loadingFrame) | |
| author.Size = UDim2.new(1,0,0.2,0) | |
| author.Position = UDim2.new(0,0,0.7,0) | |
| author.BackgroundTransparency = 1 | |
| author.Text = "By: Crow" | |
| author.Font = Enum.Font.GothamBold | |
| author.TextScaled = true | |
| author.TextColor3 = Color3.fromRGB(180,180,180) | |
| for i = 1,3 do | |
| title.Text = "SCRIPT LOADING" .. string.rep(".", i) | |
| task.wait(0.4) | |
| end | |
| task.wait(1) | |
| for i = 1,10 do | |
| loadingFrame.BackgroundTransparency += 0.1 | |
| title.TextTransparency += 0.1 | |
| author.TextTransparency += 0.1 | |
| task.wait(0.05) | |
| end | |
| loadingGui:Destroy() | |
| --================ FPS + PING UI (DRAG PC + MOBILE) =================-- | |
| local statsGui = Instance.new("ScreenGui", game.CoreGui) | |
| statsGui.ResetOnSpawn = false | |
| local frame = Instance.new("Frame", statsGui) | |
| frame.Size = UDim2.new(0, 220, 0, 90) | |
| frame.Position = UDim2.new(0, 20, 0.4, 0) | |
| frame.BackgroundColor3 = Color3.fromRGB(20,20,25) | |
| frame.Active = true | |
| -- viền cầu vồng 🌈 | |
| local stroke = Instance.new("UIStroke", frame) | |
| stroke.Thickness = 2 | |
| task.spawn(function() | |
| while task.wait() do | |
| local t = tick() | |
| stroke.Color = Color3.fromHSV((t % 5) / 5, 1, 1) | |
| end | |
| end) | |
| -- text | |
| local title = Instance.new("TextLabel", frame) | |
| title.Size = UDim2.new(1,0,0.3,0) | |
| title.BackgroundTransparency = 1 | |
| title.Text = "STATS" | |
| title.Font = Enum.Font.GothamBlack | |
| title.TextScaled = true | |
| title.TextColor3 = Color3.fromRGB(0,255,200) | |
| local label = Instance.new("TextLabel", frame) | |
| label.Size = UDim2.new(1,0,0.7,0) | |
| label.Position = UDim2.new(0,0,0.3,0) | |
| label.BackgroundTransparency = 1 | |
| label.Text = "Loading..." | |
| label.Font = Enum.Font.GothamBold | |
| label.TextScaled = true | |
| label.TextColor3 = Color3.fromRGB(255,255,255) | |
| --================ DRAG PC + MOBILE =================-- | |
| local UIS = game:GetService("UserInputService") | |
| local dragging = false | |
| local dragInput | |
| local dragStart | |
| local startPos | |
| frame.InputBegan:Connect(function(input) | |
| if input.UserInputType == Enum.UserInputType.MouseButton1 | |
| or input.UserInputType == Enum.UserInputType.Touch then | |
| dragging = true | |
| dragStart = input.Position | |
| startPos = frame.Position | |
| input.Changed:Connect(function() | |
| if input.UserInputState == Enum.UserInputState.End then | |
| dragging = false | |
| end | |
| end) | |
| end | |
| end) | |
| frame.InputChanged:Connect(function(input) | |
| if input.UserInputType == Enum.UserInputType.MouseMovement | |
| or input.UserInputType == Enum.UserInputType.Touch then | |
| dragInput = input | |
| end | |
| end) | |
| UIS.InputChanged:Connect(function(input) | |
| if dragging and input == dragInput then | |
| local delta = input.Position - dragStart | |
| frame.Position = UDim2.new( | |
| startPos.X.Scale, | |
| startPos.X.Offset + delta.X, | |
| startPos.Y.Scale, | |
| startPos.Y.Offset + delta.Y | |
| ) | |
| end | |
| end) | |
| --================ FPS + PING =================-- | |
| local fpsTable = {} | |
| local pingTable = {} | |
| local last = tick() | |
| game:GetService("RunService").RenderStepped:Connect(function(dt) | |
| local fps = math.floor(1/dt) | |
| local ping = 0 | |
| pcall(function() | |
| ping = math.floor(game:GetService("Stats").Network.ServerStatsItem["Data Ping"]:GetValue()) | |
| end) | |
| table.insert(fpsTable, fps) | |
| table.insert(pingTable, ping) | |
| if #fpsTable > 20 then table.remove(fpsTable,1) end | |
| if #pingTable > 20 then table.remove(pingTable,1) end | |
| if tick() - last > 0.5 then | |
| last = tick() | |
| local f, p = 0, 0 | |
| for _,v in ipairs(fpsTable) do f += v end | |
| for _,v in ipairs(pingTable) do p += v end | |
| label.Text = | |
| "⚡ FPS: "..math.floor(f/#fpsTable).. | |
| "\n📡 Ping: "..math.floor(p/#pingTable).. | |
| "\n\nBy: Crow" | |
| end | |
| end) | |
| --================ KEY GUI (nếu hết hạn) =================-- | |
| if expired then | |
| local gui = Instance.new("ScreenGui", game.CoreGui) | |
| local frame = Instance.new("Frame", gui) | |
| frame.Size = UDim2.new(0, 250, 0, 150) | |
| frame.Position = UDim2.new(0.5, -125, 0.5, -75) | |
| frame.BackgroundColor3 = Color3.fromRGB(30,30,35) | |
| local box = Instance.new("TextBox", frame) | |
| box.Size = UDim2.new(0.9,0,0.3,0) | |
| box.Position = UDim2.new(0.05,0,0.1,0) | |
| box.PlaceholderText = "Nhập key..." | |
| box.Text = "" | |
| box.TextScaled = true | |
| local saveBtn = Instance.new("TextButton", frame) | |
| saveBtn.Size = UDim2.new(0.9,0,0.3,0) | |
| saveBtn.Position = UDim2.new(0.05,0,0.6,0) | |
| saveBtn.Text = "SAVE KEY" | |
| saveBtn.TextScaled = true | |
| saveBtn.BackgroundColor3 = Color3.fromRGB(0,170,120) | |
| saveBtn.MouseButton1Click:Connect(function() | |
| local key = box.Text | |
| if key ~= "" then | |
| if writefile then | |
| writefile(KEY_FILE, key) | |
| writefile(TIME_FILE, tostring(getTime())) | |
| end | |
| savedKey = key | |
| savedTime = getTime() | |
| frame:Destroy() | |
| end | |
| end) | |
| repeat task.wait() until savedKey | |
| end | |
| --================ LOAD SCRIPT MAIN =================-- | |
| task.spawn(function() | |
| task.wait(1) | |
| if not expired then | |
| _G.Key = savedKey | |
| end | |
| loadstring(game:HttpGet(MAIN_SCRIPT_URL))() | |
| end) | |
| --================ ANTI AFK =================-- | |
| player.Idled:Connect(function() | |
| Services.VirtualUser:CaptureController() | |
| Services.VirtualUser:ClickButton2(Vector2.new()) | |
| end) | |
| --================ AUTO REJOIN =================-- | |
| if queue_on_teleport then | |
| queue_on_teleport('task.wait(2); loadstring(game:HttpGet("'..MAIN_SCRIPT_URL..'"))()') | |
| end | |
| local rejoining = false | |
| game:GetService("CoreGui").RobloxPromptGui.promptOverlay.ChildAdded:Connect(function(child) | |
| if child.Name == "ErrorPrompt" and not rejoining then | |
| rejoining = true | |
| task.wait(2) | |
| Services.TeleportService:Teleport(game.PlaceId, player) | |
| end | |
| end) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment