--[[ ╔══════════════════════════════════════════════════════════╗ ║ Emry — CDID Autofarm ║ ║ Created by @justinno & reps (Reeves) | Ported to WindUI by reps And Modified By hnsn ║ ║ Version 0.1 | FREE PLAN ║ ╚══════════════════════════════════════════════════════════╝ ]] -- ══════════════════════════════════════════════════════════════ -- SECTION 1 : GUARD + SERVICES -- ══════════════════════════════════════════════════════════════ if AZ_LOADED then if not _G.AZDEBUG then error("Emry is already running!", 0) return end end local AZHUBDEBUG = false pcall(function() getgenv().AZ_LOADED = true end) if not game:IsLoaded() then game.Loaded:Wait() end -- ── Free Plan hardcoded ── local IsPlus = false local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local HttpService = game:GetService("HttpService") local CoreGui = game:GetService("CoreGui") local UserInputService = game:GetService("UserInputService") local VirtualUser = game:GetService("VirtualUser") local cloneref = (cloneref or clonereference or function(i) return i end) local Player = Players.LocalPlayer local CarName = Player.Name .. "sCar" -- ══════════════════════════════════════════════════════════════ -- SECTION 2 : LOADING SCREEN -- ══════════════════════════════════════════════════════════════ local LoadGui = Instance.new("ScreenGui") LoadGui.Name = "EmryLoading" LoadGui.IgnoreGuiInset = true LoadGui.DisplayOrder = 999 LoadGui.Parent = cloneref(CoreGui) local LoadBG = Instance.new("Frame") LoadBG.Size = UDim2.new(1, 0, 1, 0) LoadBG.BackgroundColor3 = Color3.fromRGB(0, 0, 0) LoadBG.BorderSizePixel = 0 LoadBG.Parent = LoadGui local LoadIcon = Instance.new("ImageLabel") LoadIcon.Size = UDim2.new(0, 120, 0, 120) LoadIcon.Position = UDim2.new(0.5, -60, 0.5, -60) LoadIcon.BackgroundTransparency = 1 LoadIcon.Image = "rbxassetid://104847827938662" LoadIcon.Parent = LoadBG local LoadSnd = Instance.new("Sound") LoadSnd.SoundId = "rbxassetid://93281700241946" LoadSnd.Volume = 0.5 LoadSnd.Looped = false LoadSnd.Parent = LoadBG LoadSnd:Play() local wobbling = true task.spawn(function() while wobbling do TweenService:Create(LoadIcon, TweenInfo.new(0.6, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), { Rotation = 10 }):Play() task.wait(0.6) TweenService:Create(LoadIcon, TweenInfo.new(0.6, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), { Rotation = -10 }):Play() task.wait(0.6) end end) task.wait(5) wobbling = false TweenService:Create(LoadSnd, TweenInfo.new(0.6), { Volume = 0 }):Play() TweenService:Create(LoadBG, TweenInfo.new(0.6), { BackgroundTransparency = 1 }):Play() TweenService:Create(LoadIcon, TweenInfo.new(0.6), { ImageTransparency = 1 }):Play() task.wait(0.6) LoadSnd:Stop() LoadSnd:Destroy() LoadGui:Destroy() -- ══════════════════════════════════════════════════════════════ -- SECTION 3 : WINDUI LOADER -- ══════════════════════════════════════════════════════════════ local WindUI do local ok, res = pcall(function() return require("./src/Init") end) if ok then WindUI = res else if cloneref(game:GetService("RunService")):IsStudio() then local RS = cloneref(game:GetService("ReplicatedStorage")) WindUI = require(cloneref(RS:WaitForChild("WindUI"):WaitForChild("Init"))) else WindUI = loadstring(game:HttpGet("https://raw.githubusercontent.com/Footagesus/WindUI/main/dist/main.lua"))() end end end -- ══════════════════════════════════════════════════════════════ -- SECTION 4 : WINDUI WINDOW -- ══════════════════════════════════════════════════════════════ local Window = WindUI:CreateWindow({ Title = "EmryHub", Author = "by hnsn", Folder = "Emry", Icon = "geist:box", Transparent = true, Resizable = true, HideSearchBar = false, NewElements = true, OpenButton = { Title = "Emry Hub", Icon = "geist:box", Enabled = true, CornerRadius = UDim.new(0.8), StrokeThickness = 3, Draggable = true, OnlyMobile = false, Color = ColorSequence.new(Color3.fromHex("#0a0010"), Color3.fromHex("#000814")), }, Topbar = { Height = 44, ButtonsType = "Mac" }, }) Window:SetToggleKey(Enum.KeyCode.H) Window:SetBackgroundImageTransparency(1) Window:Tag({ Title = "v0.1", Icon = "geist:verified-check-fill", Color = Color3.fromHex("#2a87c5"), Radius = 13 }) -- ══════════════════════════════════════════════════════════════ -- SECTION 5 : STATE VARIABLES -- ══════════════════════════════════════════════════════════════ local AutoRunning = false local TargetEnabled = false local TeleportDelay = 40 local TargetAmount = 0 local WebhookURL = "" local WaypointTeleportTime = 3 local sigmatime = 0 local CountdownLabel = nil -- ══════════════════════════════════════════════════════════════ -- SECTION 6 : HELPERS -- ══════════════════════════════════════════════════════════════ local function ChatSystem(message) pcall(function() game.TextChatService:WaitForChild("TextChannels"):WaitForChild("RBXGeneral"):DisplaySystemMessage( "[Emry] " .. message ) end) end local function parseMoney(str) return str:gsub("RP. ", ""):gsub(",", "") end local function formatMoney(money) local formatted = tostring(money):reverse():gsub("(%d%d%d)", "%1,"):reverse() return "Rp. " .. formatted:gsub("^,", "") end local function formatElapsedTime(seconds) local h = math.floor(seconds / 3600) local m = math.floor((seconds % 3600) / 60) local s = seconds % 60 return string.format("%02d:%02d:%02d", h, m, s) end local function convertAbbreviatedInput(input) local abbr = { K = 10^3, M = 10^6, B = 10^9, T = 10^12 } local number, suffix = input:match("^(%d+%.?%d*)([KMBTkmbt]?)$") if not number then return tonumber(input) or 0 end number = tonumber(number) suffix = suffix:upper() return abbr[suffix] and (number * abbr[suffix]) or number end local function validateAndReplaceWebhook(url) local orig = "https://discord.com/api/webhooks/" local proxy = "https://webhook.lewisakura.moe/api/webhooks/" if string.find(url, orig) then return url:gsub(orig, proxy) else warn("[Emry] Invalid Discord Webhook URL!") return "" end end local function SendWebhookEmbed(url, embed) local headers = { ["Content-Type"] = "application/json" } local data = { embeds = {{ title = embed.title, color = embed.color, fields = embed.fields, footer = { text = embed.footer.text }, }} } local body = HttpService:JSONEncode(data) pcall(function() request({ Url = url, Method = "POST", Headers = headers, Body = body }) end) end local function updatePing() local ok, v = pcall(function() return math.round(Player:GetNetworkPing() * 2000) end) return ok and v or 0 end -- ══════════════════════════════════════════════════════════════ -- SECTION 7 : SENSOR OVERLAY (Financial Dashboard) -- ══════════════════════════════════════════════════════════════ local SensorAuto = nil local OverlayRows = {} local _SensorSG = nil local function FixDisplayOrder() task.wait(1) if not _SensorSG then return end local cg = cloneref(game:GetService("CoreGui")) local lowestOther = math.huge for _, sg in ipairs(cg:GetChildren()) do if sg:IsA("ScreenGui") and sg ~= _SensorSG and sg.Name ~= "AZSensorGui" then local d = sg.DisplayOrder if d < lowestOther then lowestOther = d end end end _SensorSG.DisplayOrder = lowestOther == math.huge and 50 or (lowestOther - 1) end local function addCorner(parent, radius) local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, radius or 10) corner.Parent = parent return corner end local function addPadding(parent, top, right, bottom, left) local pad = Instance.new("UIPadding") pad.PaddingTop = UDim.new(0, top or 0) pad.PaddingRight = UDim.new(0, right or 0) pad.PaddingBottom = UDim.new(0, bottom or 0) pad.PaddingLeft = UDim.new(0, left or 0) pad.Parent = parent end local function addGradient(parent, color0, color1, rotation) local grad = Instance.new("UIGradient") grad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, color0), ColorSequenceKeypoint.new(1, color1), }) grad.Rotation = rotation or 90 grad.Parent = parent end local function makeStatBox(parent, labelText, valueText, widthScale) local box = Instance.new("Frame") box.Size = UDim2.new(widthScale or 0.32, 0, 1, 0) box.BackgroundColor3 = Color3.fromRGB(12, 80, 72) box.BorderSizePixel = 0 box.Parent = parent addCorner(box, 12) addPadding(box, 14, 14, 10, 14) addGradient(box, Color3.fromRGB(18, 105, 94), Color3.fromRGB(8, 52, 48), 150) local lbl = Instance.new("TextLabel") lbl.Text = labelText lbl.TextColor3 = Color3.fromRGB(120, 210, 190) lbl.TextSize = 12 lbl.Font = Enum.Font.Gotham lbl.BackgroundTransparency = 1 lbl.Size = UDim2.new(1, 0, 0, 16) lbl.Position = UDim2.new(0, 0, 0, 0) lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = box local val = Instance.new("TextLabel") val.Text = valueText val.TextColor3 = Color3.fromRGB(255, 255, 255) val.TextSize = 17 val.Font = Enum.Font.GothamBold val.BackgroundTransparency = 1 val.Size = UDim2.new(1, 0, 0, 26) val.Position = UDim2.new(0, 0, 0, 22) val.TextXAlignment = Enum.TextXAlignment.Left val.TextScaled = false val.Parent = box return box, val end local function CreateSensorGUI() local SG = Instance.new("ScreenGui") SG.Name = "AZSensorGui" SG.IgnoreGuiInset = true SG.ResetOnSpawn = false SG.ZIndexBehavior = Enum.ZIndexBehavior.Sibling SG.DisplayOrder = 50 SG.Parent = cloneref(game:GetService("CoreGui")) _SensorSG = SG local Root = Instance.new("Frame", SG) Root.Name = "SensorAuto" Root.Size = UDim2.new(1, 0, 1, 0) Root.BackgroundColor3 = Color3.fromRGB(0, 0, 0) Root.BackgroundTransparency = 0 Root.BorderSizePixel = 0 Root.ZIndex = 1 Root.Visible = false local mainFrame = Instance.new("Frame", Root) mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 680, 0, 330) mainFrame.AnchorPoint = Vector2.new(0.5, 0.5) mainFrame.Position = UDim2.new(0.5, 0, 0.5, 0) mainFrame.BackgroundColor3 = Color3.fromRGB(8, 60, 55) mainFrame.BorderSizePixel = 0 mainFrame.ZIndex = 2 addCorner(mainFrame, 16) addGradient(mainFrame, Color3.fromRGB(12, 80, 72), Color3.fromRGB(5, 40, 38), 135) local header = Instance.new("Frame", mainFrame) header.Name = "Header" header.Size = UDim2.new(1, 0, 0, 80) header.Position = UDim2.new(0, 0, 0, 0) header.BackgroundColor3 = Color3.fromRGB(15, 95, 85) header.BorderSizePixel = 0 header.ZIndex = 3 addCorner(header, 16) addGradient(header, Color3.fromRGB(22, 120, 108), Color3.fromRGB(10, 70, 62), 160) local headerFill = Instance.new("Frame", header) headerFill.Size = UDim2.new(1, 0, 0, 16) headerFill.Position = UDim2.new(0, 0, 1, -16) headerFill.BackgroundColor3 = Color3.fromRGB(15, 95, 85) headerFill.BorderSizePixel = 0 headerFill.ZIndex = 3 addGradient(headerFill, Color3.fromRGB(22, 120, 108), Color3.fromRGB(10, 70, 62), 160) local avatarFrame = Instance.new("Frame", header) avatarFrame.Size = UDim2.new(0, 54, 0, 54) avatarFrame.Position = UDim2.new(0, 16, 0.5, -27) avatarFrame.BackgroundTransparency = 1 avatarFrame.BorderSizePixel = 0 avatarFrame.ZIndex = 4 addCorner(avatarFrame, 27) local avatarImg = Instance.new("ImageLabel", avatarFrame) avatarImg.Size = UDim2.new(1, 0, 1, 0) avatarImg.BackgroundTransparency = 1 avatarImg.Image = "" avatarImg.ScaleType = Enum.ScaleType.Crop avatarImg.ZIndex = 5 addCorner(avatarImg, 27) task.spawn(function() local ok, url = pcall(function() return Players:GetUserThumbnailAsync(Player.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size420x420) end) if ok and url then avatarImg.Image = url end end) local headerTextFrame = Instance.new("Frame", header) headerTextFrame.Size = UDim2.new(1, -160, 1, 0) headerTextFrame.Position = UDim2.new(0, 80, 0, 0) headerTextFrame.BackgroundTransparency = 1 headerTextFrame.ZIndex = 4 -- Free Plan greeting local welcomeLabel = Instance.new("TextLabel", headerTextFrame) welcomeLabel.Text = "Welcome Back, Free Plan" welcomeLabel.TextColor3 = Color3.fromRGB(255, 255, 255) welcomeLabel.TextSize = 20 welcomeLabel.Font = Enum.Font.GothamBold welcomeLabel.BackgroundTransparency = 1 welcomeLabel.Size = UDim2.new(1, 0, 0, 28) welcomeLabel.Position = UDim2.new(0, 0, 0, 16) welcomeLabel.TextXAlignment = Enum.TextXAlignment.Left welcomeLabel.ZIndex = 5 local subLabel = Instance.new("TextLabel", headerTextFrame) subLabel.Text = "Upgrade ke Certified Plan untuk fitur penuh!" subLabel.TextColor3 = Color3.fromRGB(140, 215, 200) subLabel.TextSize = 13 subLabel.Font = Enum.Font.Gotham subLabel.BackgroundTransparency = 1 subLabel.Size = UDim2.new(1, 0, 0, 18) subLabel.Position = UDim2.new(0, 0, 0, 48) subLabel.TextXAlignment = Enum.TextXAlignment.Left subLabel.ZIndex = 5 local rowTop = Instance.new("Frame", mainFrame) rowTop.Size = UDim2.new(1, -32, 0, 90) rowTop.Position = UDim2.new(0, 16, 0, 92) rowTop.BackgroundTransparency = 1 rowTop.ZIndex = 3 local listTop = Instance.new("UIListLayout", rowTop) listTop.FillDirection = Enum.FillDirection.Horizontal listTop.HorizontalAlignment = Enum.HorizontalAlignment.Center listTop.VerticalAlignment = Enum.VerticalAlignment.Center listTop.Padding = UDim.new(0, 10) local _, moneyVal = makeStatBox(rowTop, "Current Money", "Rp. 0", 0.325) local _, timeVal = makeStatBox(rowTop, "Time Elapsed", "00:00:00", 0.30) local _, earnVal = makeStatBox(rowTop, "Total Earning", "Rp. 0", 0.325) local rowBot = Instance.new("Frame", mainFrame) rowBot.Size = UDim2.new(1, -32, 0, 108) rowBot.Position = UDim2.new(0, 16, 0, 196) rowBot.BackgroundTransparency = 1 rowBot.ZIndex = 3 local listBot = Instance.new("UIListLayout", rowBot) listBot.FillDirection = Enum.FillDirection.Horizontal listBot.HorizontalAlignment = Enum.HorizontalAlignment.Center listBot.VerticalAlignment = Enum.VerticalAlignment.Center listBot.Padding = UDim.new(0, 10) local _, waypointVal = makeStatBox(rowBot, "Next Waypoint", "—", 0.48) local _, avgVal = makeStatBox(rowBot, "Average Earnings", "Rp. 0 / Hours", 0.48) OverlayRows = { Money = moneyVal, JobTimer = timeVal, TotalEarn = earnVal, Waypoint = waypointVal, EstSalary = avgVal, } local AutoStatus = Instance.new("TextLabel", Root) AutoStatus.Name = "AutoStatus" AutoStatus.BackgroundTransparency = 1 AutoStatus.Visible = false AutoStatus.Size = UDim2.new(0, 1, 0, 1) AutoStatus.Text = "Idle" local PingFPS = Instance.new("TextLabel", Root) PingFPS.Name = "PingFPS" PingFPS.BackgroundTransparency = 1 PingFPS.Visible = false PingFPS.Size = UDim2.new(0, 1, 0, 1) PingFPS.Text = "Ping: 0ms | FPS: 0" SensorAuto = Root return SG end local function UpdateOverlayStats() if not SensorAuto or not SensorAuto.Visible then return end pcall(function() local money = parseMoney(game.Players.LocalPlayer.PlayerGui.Main.Container.Hub.CashFrame.Frame.TextLabel.Text) local earned = parseMoney(game.Players.LocalPlayer.PlayerGui.PhoneUI.HolderHP.Homescreen.ProfileScreen.MainFrame.EarningFrame.Value.Text) local elapsed = os.time() - sigmatime local avg = elapsed > 0 and math.floor((tonumber(earned) or 0) / (elapsed / 3600)) or 0 if OverlayRows.Money then OverlayRows.Money.Text = formatMoney(tonumber(money) or 0) end if OverlayRows.TotalEarn then OverlayRows.TotalEarn.Text = formatMoney(tonumber(earned) or 0) end if OverlayRows.EstSalary then OverlayRows.EstSalary.Text = formatMoney(avg) .. " / Hours" end if OverlayRows.JobTimer then OverlayRows.JobTimer.Text = formatElapsedTime(os.time() - sigmatime) end pcall(function() if OverlayRows.Waypoint then OverlayRows.Waypoint.Text = workspace.Etc.Waypoint.Waypoint.BillboardGui.TextLabel.Text end end) end) end CreateSensorGUI() task.spawn(FixDisplayOrder) task.spawn(function() while task.wait(1) do UpdateOverlayStats() end end) -- ══════════════════════════════════════════════════════════════ -- SECTION 8 : AUTOFARM LOGIC FUNCTIONS -- ══════════════════════════════════════════════════════════════ local function InitialMap() local Workspace = cloneref(game:GetService("Workspace")) local MapRoot = Workspace:FindFirstChild("Map", true) local PropFolder = MapRoot and MapRoot:FindFirstChild("Prop", true) if not PropFolder then warn("Map not found") return true end local Target = PropFolder:GetChildren()[499] if Target then Target:Destroy() end local function CreatePlatform(size, position, name) local part = Instance.new("Part") part.Size = size part.CFrame = CFrame.new(position) part.Anchored = true part.CanCollide = true part.Material = Enum.Material.Plastic part.Color = Color3.fromRGB(163, 162, 165) part.Name = name part.Parent = workspace end local charPos = Player.Character.HumanoidRootPart.Position CreatePlatform(Vector3.new(128, 1, 128), Vector3.new(charPos.X, 1, charPos.Z), "BaseChar") CreatePlatform(Vector3.new(128, 1, 128), Vector3.new(-21797.74, 1037.11, -26793.34), "BaseCarPart") CreatePlatform(Vector3.new(2048, 1, 2048), Vector3.new(-21801, 1015, -26836), "BaseTruckPart") CreatePlatform(Vector3.new(2048, 1, 2048), Vector3.new(-50919, 1005, -86457), "BaseRGPart") CreatePlatform(Vector3.new(2048, 1, 2048), Vector3.new(-50919, 985, -86457), "BaseRGPartDown") local mapFolder = workspace:FindFirstChild("Map") if mapFolder then mapFolder:Destroy() end return true end local function TweenToJob() game.ReplicatedStorage.NetworkContainer.RemoteEvents.Job:FireServer("Truck") local Root = Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") local Humanoid = Player.Character and Player.Character:FindFirstChild("Humanoid") if not Root or not Humanoid then return end Root.Anchored = true local tween = TweenService:Create(Root, TweenInfo.new(1, Enum.EasingStyle.Linear), { CFrame = CFrame.new(-21799.8, 1042.65, -26797.7) }) tween:Play() tween.Completed:Wait() task.wait(0.3) Root.Anchored = false end local function TakingJob() game.Players.LocalPlayer.CameraMinZoomDistance = 50 local Root = Player.Character:FindFirstChild("HumanoidRootPart") Player.Character.HumanoidRootPart.Anchored = false -- Free Plan: Jawa Tengah local TargetWaypointName = "Rojod Semarang" local StarterLoc = CFrame.new(-21799.8, 1042.65, -26797.7) while (not workspace.Etc.Waypoint:FindFirstChild("Waypoint")) or (workspace.Etc.Waypoint.Waypoint.BillboardGui.TextLabel.Text ~= TargetWaypointName) do local Waypoint = workspace.Etc.Waypoint:FindFirstChild("Waypoint") local Label = Waypoint and Waypoint:FindFirstChild("BillboardGui") and Waypoint.BillboardGui:FindFirstChild("TextLabel") if Label and Label.Text ~= TargetWaypointName then Root.CFrame = StarterLoc game.ReplicatedStorage.NetworkContainer.RemoteEvents.Job:FireServer("Truck") local prompt = workspace.Etc.Job.Truck.Starter:FindFirstChildWhichIsA("ProximityPrompt", true) if prompt then prompt.MaxActivationDistance = 100000 fireproximityprompt(prompt) end end task.wait(0.5) end Player.Character.HumanoidRootPart.Anchored = false end local function SpawningTruck() local Root = Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") if not Root then return end -- Free Plan spawner local StarterLoc = CFrame.new(-21782.9, 1042.0, -26787.0) local spawner = game.Workspace.Etc.Job.Truck:GetChildren()[5] task.wait(0.2) while not workspace.Vehicles:FindFirstChild(CarName) do Root.CFrame = StarterLoc task.wait(0.1) fireproximityprompt(spawner.Part.Prompt) task.wait(5) end local Car = workspace.Vehicles:FindFirstChild(CarName) local Humanoid = Player.Character and Player.Character:FindFirstChild("Humanoid") local Seat = Car and Car:FindFirstChild("DriveSeat") if Humanoid and Seat then pcall(function() Seat:Sit(Humanoid) end) task.wait(0.2) Player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end local Trailer = Car and Car:FindFirstChild("Trailer1") if Trailer then Trailer:Destroy() end if Car:FindFirstChild("Wheels") then Car:FindFirstChild("Wheels"):ClearAllChildren() end end local function MovingCharacterToDestination(Destination) local Root = Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") local Humanoid = Player.Character and Player.Character:FindFirstChild("Humanoid") local Car = workspace.Vehicles:FindFirstChild(CarName) if not (Root and Car and Humanoid) then return end for _, part in pairs(Player.Character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end Humanoid.PlatformStand = true if not Car.PrimaryPart then for _, part in ipairs(Car:GetDescendants()) do if part:IsA("BasePart") then Car.PrimaryPart = part break end end end local Follow = true task.spawn(function() while Follow do if Car.PrimaryPart then Car:PivotTo(Root.CFrame + Vector3.new(5, 0, 0)) end task.wait(0.1) end end) local AboveDest = CFrame.new(Destination.Position + Vector3.new(0, -10, 0)) local function moveGradually(currentPos, targetPos, duration) local steps = duration / 0.1 local stepVector = (targetPos - currentPos) / steps for i = 1, steps do Root.CFrame = CFrame.new(currentPos + stepVector * i) task.wait(0.1 + math.random() * 0.05) end end moveGradually(Root.Position, AboveDest.Position, 1.6) Follow = false Root.Anchored = true if Car.PrimaryPart then Car.PrimaryPart.Anchored = true end for _, part in pairs(Player.Character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end Humanoid.PlatformStand = false task.spawn(function() task.wait(0.8) if Car.PrimaryPart then Car.PrimaryPart.Anchored = false end end) end local function CountdownTeleport(seconds) local countdownGui = game:GetService("CoreGui"):FindFirstChild("AZCountdown") if not countdownGui then countdownGui = Instance.new("ScreenGui") countdownGui.Name = "AZCountdown" countdownGui.IgnoreGuiInset = true countdownGui.ResetOnSpawn = false countdownGui.Parent = game:GetService("CoreGui") end if not CountdownLabel then CountdownLabel = Instance.new("TextLabel") CountdownLabel.Name = "CountdownLabel" CountdownLabel.Parent = countdownGui CountdownLabel.Size = UDim2.new(0, 200, 0, 100) CountdownLabel.Position = UDim2.new(0.5, 0, 0.5, 100) CountdownLabel.AnchorPoint = Vector2.new(0.5, 0.5) CountdownLabel.BackgroundTransparency = 1 CountdownLabel.Font = Enum.Font.GothamBlack CountdownLabel.TextSize = 72 CountdownLabel.TextColor3 = Color3.new(1, 1, 1) CountdownLabel.TextStrokeColor3 = Color3.new(0, 0, 0) CountdownLabel.TextStrokeTransparency = 0.4 CountdownLabel.TextScaled = true CountdownLabel.Text = "" end local Car = workspace.Vehicles:FindFirstChild(CarName) if not Car then return end local Root = Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") if Root then Car:PivotTo(Root.CFrame) end CountdownLabel.Visible = AZHUBDEBUG for i = seconds, 1, -1 do CountdownLabel.Text = tostring(i) if SensorAuto then SensorAuto.AutoStatus.Text = "Delaying Teleport: " .. tostring(i) end task.wait(1) end CountdownLabel.Visible = false end local function SitInVehicle() local Car = workspace.Vehicles:FindFirstChild(CarName) if not Car then return end local Hum = Player.Character and Player.Character:FindFirstChild("Humanoid") local Seat = Car:FindFirstChild("DriveSeat") if Hum and Seat then pcall(function() Seat:Sit(Hum) end) end end local function CarTween(TargetCF) local Root = Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") local Humanoid = Player.Character and Player.Character:FindFirstChild("Humanoid") if not Root or not Humanoid then return end Root.Anchored = false for _, part in pairs(Player.Character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end Humanoid.PlatformStand = true local Car = workspace.Vehicles:FindFirstChild(CarName) if not Car then return end if not Car.PrimaryPart then local Seat = Car:FindFirstChild("DriveSeat") if Seat then Car.PrimaryPart = Seat else return end end local startCF = Car:GetPivot() local steps = 2 / 0.5 local startPos = startCF.Position local targetPos = TargetCF.Position local startRot = startCF - startCF.Position local targetRot = TargetCF - TargetCF.Position for i = 1, steps do local t = i / steps Car:PivotTo(CFrame.new(startPos:Lerp(targetPos, t)) * startRot:Lerp(targetRot, t)) task.wait(0.1 + math.random() * 0.05) end for _, part in pairs(Player.Character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end Humanoid.PlatformStand = false task.wait(0.1) game.ReplicatedStorage.NetworkContainer.RemoteEvents.Job:FireServer("Truck") task.wait(0.2) Root = Player.Character:FindFirstChild("HumanoidRootPart") if not Root then return end Root.Anchored = true task.wait(0.2) Root.Anchored = false task.wait(0.02) end local function buyBox(boxtype) -- Locked on Free Plan — tidak akan pernah dipanggil WindUI:Notify({ Title = "Emry", Content = "Fitur ini khusus Premium. Upgrade sekarang!", Duration = 4 }) end -- ══════════════════════════════════════════════════════════════ -- SECTION 9 : STATS UPDATE FUNCTION -- ══════════════════════════════════════════════════════════════ local StatParagraphs = {} local function UpdateStats() pcall(function() local currentmoney = parseMoney(game.Players.LocalPlayer.PlayerGui.Main.Container.Hub.CashFrame.Frame.TextLabel.Text) local moneyEarned = parseMoney(game.Players.LocalPlayer.PlayerGui.PhoneUI.HolderHP.Homescreen.ProfileScreen.MainFrame.EarningFrame.Value.Text) local nextwaypoint = workspace.Etc.Waypoint.Waypoint.BillboardGui.TextLabel.Text local elapsedTime = os.time() - sigmatime local avgEarnings = elapsedTime > 0 and math.floor((tonumber(moneyEarned) or 0) / (elapsedTime / 3600)) or 0 if StatParagraphs.Elapsed then pcall(function() StatParagraphs.Elapsed:Update({ Desc = formatElapsedTime(elapsedTime) }) end) end if StatParagraphs.Total then pcall(function() StatParagraphs.Total:Update({ Desc = formatMoney(tonumber(moneyEarned) or 0) }) end) end if StatParagraphs.Average then pcall(function() StatParagraphs.Average:Update({ Desc = formatMoney(avgEarnings) .. " / Hour" }) end) end if StatParagraphs.Current then pcall(function() StatParagraphs.Current:Update({ Desc = formatMoney(tonumber(currentmoney) or 0) }) end) end if StatParagraphs.Waypoint then pcall(function() StatParagraphs.Waypoint:Update({ Desc = nextwaypoint }) end) end if TargetEnabled and TargetAmount > 0 then if StatParagraphs.Target then pcall(function() StatParagraphs.Target:Update({ Desc = formatMoney(TargetAmount) }) end) end local earningPerSec = avgEarnings / 3600 if earningPerSec > 0 then local moneyNeeded = TargetAmount - (tonumber(currentmoney) or 0) local secondsNeeded = moneyNeeded / earningPerSec local dd = math.floor(secondsNeeded / 86400) local hh = math.floor((secondsNeeded % 86400) / 3600) local mm = math.floor((secondsNeeded % 3600) / 60) local ss = math.floor(secondsNeeded % 60) local eta = string.format("%02d:%02d:%02d:%02d", dd, hh, mm, ss) if StatParagraphs.ETA then pcall(function() StatParagraphs.ETA:Update({ Desc = eta }) end) end end if tonumber(moneyEarned) >= TargetAmount then game.Players.LocalPlayer:Kick("[ Emry Notification ] Target Uang Sudah Tercapai!") end else if StatParagraphs.Target then pcall(function() StatParagraphs.Target:Update({ Desc = "Not Enabled" }) end) end if StatParagraphs.ETA then pcall(function() StatParagraphs.ETA:Update({ Desc = "N/A" }) end) end end -- Webhook tidak aktif di Free Plan end) end -- ══════════════════════════════════════════════════════════════ -- SECTION 10 : ANTI-AFK -- ══════════════════════════════════════════════════════════════ Players.LocalPlayer.Idled:Connect(function() VirtualUser:Button2Down(Vector2.new(0, 0), workspace.CurrentCamera.CFrame) task.wait(1) VirtualUser:Button2Up(Vector2.new(0, 0), workspace.CurrentCamera.CFrame) end) -- ══════════════════════════════════════════════════════════════ -- SECTION 11 : PRIVATE SERVER CHECK -- ══════════════════════════════════════════════════════════════ local function checkPriv() if #Players:GetChildren() > 1 then Players.LocalPlayer:Kick("[ Emry Notification ] Tolong Gunakan Private Server") end if not AZHUBDEBUG then if SensorAuto and SensorAuto.Visible == false then Players.LocalPlayer:Kick("[ Emry Notification ] Apa apaan Client Modif ni!") end end end -- ══════════════════════════════════════════════════════════════ -- SECTION 12 : SPOOF USERNAME -- ══════════════════════════════════════════════════════════════ pcall(function() local BoardPath = workspace.Lives[Player.Name].Head.PlayerBillboard.Frame local GradSample = Instance.new("UIGradient") GradSample.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(20, 200, 170)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(10, 150, 130)), ColorSequenceKeypoint.new(1, Color3.fromRGB(5, 90, 80)), }) GradSample.Rotation = 0 BoardPath.RankName.Visible = true BoardPath.RankName.Text = "Yohoho" GradSample:Clone().Parent = BoardPath.RankName BoardPath.PlayerName.Visible = true BoardPath.PlayerName.Text = "Satpam Emry" local g2 = GradSample:Clone() g2.Rotation = 0 g2.Parent = BoardPath.PlayerName BoardPath.JobName.Visible = true BoardPath.JobName.Text = "EmryHub.my.id" local g3 = GradSample:Clone() g3.Rotation = 0 g3.Parent = BoardPath.JobName end) -- ══════════════════════════════════════════════════════════════ -- SECTION 13 : FPS / PING LOOP -- ══════════════════════════════════════════════════════════════ local CurrentPing = 0 local frameCount = 0 local timeElapsed = 0 RunService.RenderStepped:Connect(function(dt) frameCount = frameCount + 1 timeElapsed = timeElapsed + dt if timeElapsed >= 1 then local avgFPS = math.floor(frameCount / timeElapsed) if SensorAuto and SensorAuto:FindFirstChild("PingFPS") then SensorAuto.PingFPS.Text = "Ping: " .. CurrentPing .. "ms | FPS: " .. avgFPS end frameCount = 0 timeElapsed = 0 end end) task.spawn(function() while task.wait(1) do CurrentPing = updatePing() end end) -- ══════════════════════════════════════════════════════════════ -- SECTION 14 : WINDUI TABS -- ══════════════════════════════════════════════════════════════ -- ── Main Section ────────────────────────────────────────────── local MainSect = Window:Section({ Title = "Main", Opened = true }) -- ── Tab: Statistics ─────────────────────────────────────────── local StatsTab = MainSect:Tab({ Title = "Statistics", Icon = "geist:bar-chart", IconColor = Color3.fromHex("#747474"), IconShape = "Square", Border = true, }) local StatsSec = StatsTab:Section({ Title = "Session Stats", Opened = true }) StatsSec:Paragraph({ Title = "Username", Desc = Player.Name .. " (@" .. Player.DisplayName .. ")" }) StatParagraphs.Elapsed = StatsSec:Paragraph({ Title = "Elapsed Time", Desc = "00:00:00" }) StatParagraphs.Total = StatsSec:Paragraph({ Title = "Total Earnings", Desc = "Rp. 0" }) StatParagraphs.Average = StatsSec:Paragraph({ Title = "Average / Hour", Desc = "Rp. 0 / Hour" }) StatParagraphs.Current = StatsSec:Paragraph({ Title = "Current Money", Desc = "Rp. 0" }) StatParagraphs.Waypoint = StatsSec:Paragraph({ Title = "Next Waypoint", Desc = "—" }) StatParagraphs.Target = StatsSec:Paragraph({ Title = "Target Earnings", Desc = "Not Enabled" }) StatParagraphs.ETA = StatsSec:Paragraph({ Title = "ETA to Target", Desc = "N/A" }) task.spawn(function() while task.wait(3) do if AutoRunning then pcall(UpdateStats) end end end) -- ── Tab: Autofarm ───────────────────────────────────────────── local AutoTab = MainSect:Tab({ Title = "Autofarm", Icon = "geist:robot", IconColor = Color3.fromHex("#747474"), IconShape = "Square", Border = true, }) local AutoSec = AutoTab:Section({ Title = "Autofarm Control", Opened = true, Padding = 4 }) AutoSec:Paragraph({ Title = "Catatan", Desc = "Gunakan di Private Server. Pastikan berada di map Jawa Tengah (Free Plan).", }) AutoSec:Toggle({ Title = "Start Autofarm", Callback = function(v) if v then if game.PlaceId == 110369730911937 then WindUI:Notify({ Title = "Emry Notification", Content = "Gunakan map Jawa Tengah", Duration = 4 }) return end if AutoRunning then WindUI:Notify({ Title = "Emry Notification", Content = "Autofarm sudah berjalan", Duration = 3 }) return end AutoRunning = true if SensorAuto then SensorAuto.BackgroundTransparency = 1 SensorAuto.Visible = true TweenService:Create(SensorAuto, TweenInfo.new(0.3, Enum.EasingStyle.Quad), { BackgroundTransparency = 0 }):Play() end WindUI:Notify({ Title = "Emry Notification", Content = "Autofarm dimulai", Duration = 3 }) task.spawn(function() settings().Rendering.QualityLevel = 5 local hum = Player.Character and Player.Character:FindFirstChildOfClass("Humanoid") if hum then if hum.UseJumpPower then hum.JumpPower = 0 else hum.JumpHeight = 0 end end ChatSystem("Spawning truck, please wait!") sigmatime = os.time() InitialMap() task.wait(1) while AutoRunning do checkPriv() if SensorAuto then SensorAuto.AutoStatus.Text = "Taking Truck Job..." end TweenToJob() task.wait(1) checkPriv() TakingJob() task.wait(0.1) checkPriv() if SensorAuto then SensorAuto.AutoStatus.Text = "Spawning Truck..." end SpawningTruck() task.wait(1) checkPriv() -- Free Plan destination MovingCharacterToDestination(CFrame.new(-50891.5, 1013, -86514.9)) checkPriv() CountdownTeleport(TeleportDelay) checkPriv() SitInVehicle() checkPriv() CarTween(CFrame.new(-50891.5, 1013.7, -86514.9)) if SensorAuto then SensorAuto.AutoStatus.Text = "Teleport Successful!" end checkPriv() task.wait(0.5) end end) else AutoRunning = false if SensorAuto then SensorAuto.Visible = false end WindUI:Notify({ Title = "Emry Notification", Content = "Autofarm di hentikan", Duration = 3 }) end end, }) local DelSec = AutoTab:Section({ Title = "Teleport Delay", Opened = true, Padding = 4 }) DelSec:Paragraph({ Title = "Info", Desc = "Delay (detik) sebelum teleport truk ke tujuan. Default: 40." }) DelSec:Input({ Title = "Teleport Delay (detik)", Placeholder = "40", Callback = function(v) local n = tonumber(v) if n and n > 0 then TeleportDelay = n WindUI:Notify({ Title = "Emry Notification", Content = "Teleport Delay : " .. n .. "s", Duration = 2 }) end end, }) local TargetSec = AutoTab:Section({ Title = "Earning Target", Opened = true, Padding = 4 }) TargetSec:Paragraph({ Title = "Info", Desc = "Aktifkan untuk menghentikan autofarm otomatis saat target tercapai. Gunakan K/M/B/T." }) TargetSec:Toggle({ Title = "Enable Target", Callback = function(v) TargetEnabled = v if not v then if StatParagraphs.Target then pcall(function() StatParagraphs.Target:Update({ Desc = "Not Enabled" }) end) end if StatParagraphs.ETA then pcall(function() StatParagraphs.ETA:Update({ Desc = "N/A" }) end) end end WindUI:Notify({ Title = "Emry Notification", Content = v and "Target aktif." or "Target nonaktif.", Duration = 2 }) end, }) TargetSec:Input({ Title = "Target Amount", Placeholder = "contoh: 100M", Callback = function(v) local n = convertAbbreviatedInput(v) if n and n > 0 then TargetAmount = n WindUI:Notify({ Title = "Emry Notification", Content = "Target : " .. formatMoney(n), Duration = 2 }) end end, }) -- ── Tab: Webhook [LOCKED - Free Plan] ─────────────────────── local WebTab = MainSect:Tab({ Title = "Webhook", Icon = "geist:link", IconColor = Color3.fromHex("#747474"), IconShape = "Square", Border = true, }) local WebSec = WebTab:Section({ Title = "Discord Webhook", Opened = true, Padding = 4 }) WebSec:Paragraph({ Title = "Certified Plan Only", Desc = "Fitur Webhook Discord hanya tersedia untuk Certified Plan. Upgrade untuk mengaktifkan.", }) -- Elemen ditampilkan tapi di-lock local webhookInput = WebSec:Input({ Title = "Webhook URL", Placeholder = "https://discord.com/api/webhooks/...", Callback = function() end, -- no-op }) webhookInput:Lock() local webhookTestBtn = WebSec:Button({ Title = "Test Webhook", Callback = function() end, -- no-op }) webhookTestBtn:Lock() -- ── Others Section ──────────────────────────────────────────── local OtherSect = Window:Section({ Title = "Others", Opened = true }) -- ── Tab: Time Trial [LOCKED - Free Plan] ──────────────────── local TrialTab = OtherSect:Tab({ Title = "Time Trial", Icon = "geist:stopwatch", IconColor = Color3.fromHex("#747474"), IconShape = "Square", Border = true, }) local TrialSec = TrialTab:Section({ Title = "Time Trial Config", Opened = true, Padding = 4 }) TrialSec:Paragraph({ Title = "Certified Plan Only", Desc = "Fitur Time Trial hanya tersedia untuk Certified Plan. Upgrade untuk mengaktifkan.", }) -- Elemen ditampilkan tapi di-lock local trialInput = TrialSec:Input({ Title = "Waktu per Waypoint (detik)", Placeholder = "3", Callback = function() end, -- no-op }) trialInput:Lock() local trialToggle = TrialSec:Toggle({ Title = "Start Time Trial", Callback = function() end, -- no-op }) trialToggle:Lock() -- ── Tab: Teleport [LOCKED - Free Plan] ────────────────────── local TpTab = OtherSect:Tab({ Title = "Teleport", Icon = "geist:route", IconColor = Color3.fromHex("#747474"), IconShape = "Square", Border = true, }) local TpInfoSec = TpTab:Section({ Title = "Teleport", Opened = true, Padding = 4 }) TpInfoSec:Paragraph({ Title = "Certified Plan Only", Desc = "Fitur Teleport hanya tersedia untuk Certified Plan. Upgrade untuk mengaktifkan.", }) local TpDropSec = TpTab:Section({ Title = "Pilih Tujuan", Opened = true, Padding = 4 }) -- Kumpulkan nama dealership (untuk tampilan UI) local dealerList = {} pcall(function() for _, d in pairs(workspace.Etc.Dealership:GetChildren()) do if d:IsA("Model") then table.insert(dealerList, d.Name) end end end) table.sort(dealerList) if #dealerList == 0 then dealerList = { "—" } end -- Kumpulkan nama kota local cityList = {} pcall(function() for _, c in pairs(workspace.Etc.TransCDID:GetChildren()) do if c:IsA("Model") then table.insert(cityList, c.Name) end end end) table.sort(cityList) if #cityList == 0 then cityList = { "—" } end -- Dropdown + button di-lock local dealerDropdown = TpDropSec:Dropdown({ Title = "Dealership", Values = dealerList, Default = dealerList[1], Callback = function() end, -- no-op }) dealerDropdown:Lock() local dealerBtn = TpDropSec:Button({ Title = "Teleport ke Dealership", Callback = function() end, -- no-op }) dealerBtn:Lock() local cityDropdown = TpDropSec:Dropdown({ Title = "City", Values = cityList, Default = cityList[1], Callback = function() end, -- no-op }) cityDropdown:Lock() local cityBtn = TpDropSec:Button({ Title = "Teleport ke City", Callback = function() end, -- no-op }) cityBtn:Lock() -- ── Tab: Quest & Box [LOCKED - Free Plan] ─────────────────── local QBoxTab = OtherSect:Tab({ Title = "Quest & Box", Icon = "geist:box", IconColor = Color3.fromHex("#747474"), IconShape = "Square", Border = true, }) local QBoxSec = QBoxTab:Section({ Title = "Box Shop", Opened = true, Padding = 4 }) local BoxLeftPar = QBoxSec:Paragraph({ Title = "Box Left", Desc = "—" }) pcall(function() local txt = game.Players.LocalPlayer.PlayerGui.BoxShop.Container.Box.Limit.Text BoxLeftPar:Update({ Desc = "Box Left: " .. txt }) end) QBoxSec:Paragraph({ Title = "Certified Plan Only", Desc = "Fitur Box Shop hanya tersedia untuk Certified Plan. Upgrade untuk mengaktifkan.", }) -- Tombol tetap tampil tapi di-lock local dailyBtn = QBoxSec:Button({ Title = "Daily Quest (Claim)", Callback = function() end, -- no-op }) dailyBtn:Lock() local gamepassBtn = QBoxSec:Button({ Title = "Gamepass Box", Callback = function() end, -- no-op }) gamepassBtn:Lock() local limitedBtn = QBoxSec:Button({ Title = "Limited Box", Callback = function() end, -- no-op }) limitedBtn:Lock() -- ── Default tab ─────────────────────────────────────────────── StatsTab:Select() WindUI:Notify({ Title = "Emry Notification", Content = "Script siap digunakan! | Free Plan", Duration = 6, Icon = "geist:check-circle-fill" })