-- ===================================================== -- ✨ Elemental Macro GUI (Uranium → Cobalt → Titanium) -- Polished with Gradients, Animations, Hover Effects, Sparkles -- Unified Dark Shaded Theme -- ===================================================== local Players = game:GetService("Players") local player = Players.LocalPlayer local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") -- ===== Macro Data ===== local macros = { Uranium = { type = "rune", color = Color3.fromRGB(90,130,255), tabColor = Color3.fromRGB(60,90,200), runes = { {Name="Heat", pos = Vector3.new(-503.907, -0.9476, 255.5186)}, {Name="Cold", pos = Vector3.new(-525.820, -0.9476, 255.5186)}, {Name="Light", pos = Vector3.new(-547.844, -0.9476, 255.6855)}, {Name="Gravity", pos = Vector3.new(-568.768, -0.9476, 255.6855)}, {Name="Uranium", pos = Vector3.new(-105.2854, -256.637, 380.38)} } }, Cobalt = { type = "ore", color = Color3.fromRGB(70,200,255), tabColor = Color3.fromRGB(50,130,190), ores = { {Name="Coal", pos = Vector3.new(-850.89, -0.4364, -38.4863)}, {Name="Copper", pos = Vector3.new(-900, -0.4364, -38)}, {Name="Gold", pos = Vector3.new(-248.178, -256.126, 313.0443)}, {Name="Cobalt", pos = Vector3.new(-248.1143, -256.126, 354.222)} }, currentDelay = 1 }, Titanium = { type = "ore", color = Color3.fromRGB(255,130,100), tabColor = Color3.fromRGB(200,80,60), ores = { {Name="Coal", pos = Vector3.new(-850.89, -0.4364, -38.4863)}, {Name="Copper", pos = Vector3.new(-900, -0.4364, -38)}, {Name="Gold", pos = Vector3.new(-248.178, -256.126, 313.0443)}, {Name="Cobalt", pos = Vector3.new(-248.1143, -256.126, 354.222)}, {Name="Titanium", pos = Vector3.new(-248.1143, -256.126, 397.625)} }, currentDelay = 1 } } local running = false local minimized = false local activeMacro -- ===== GUI ===== local screenGui = Instance.new("ScreenGui") screenGui.Name = "MacroGUI" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 240, 0, 190) mainFrame.Position = UDim2.new(0.5, -120, 0.5, -95) mainFrame.BackgroundColor3 = Color3.fromRGB(30,30,40) mainFrame.Active = true mainFrame.Draggable = true mainFrame.BorderSizePixel = 0 mainFrame.Parent = screenGui Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0,10) local mainGradient = Instance.new("UIGradient") mainGradient.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(60,60,80)), ColorSequenceKeypoint.new(1, Color3.fromRGB(30,30,40))}) mainGradient.Parent = mainFrame local titleBar = Instance.new("Frame") titleBar.Size = UDim2.new(1,0,0,26) titleBar.BackgroundColor3 = Color3.fromRGB(45,45,60) titleBar.Parent = mainFrame Instance.new("UICorner", titleBar).CornerRadius = UDim.new(0,10) local title = Instance.new("TextLabel") title.Text = "✨ Elemental Macro ✨" title.Size = UDim2.new(1,-30,1,0) title.Position = UDim2.new(0,8,0,0) title.BackgroundTransparency = 1 title.TextColor3 = Color3.fromRGB(255,255,255) title.Font = Enum.Font.GothamBold title.TextSize = 16 title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = titleBar local minimizeButton = Instance.new("TextButton") minimizeButton.Text = "-" minimizeButton.Size = UDim2.new(0,26,1,0) minimizeButton.Position = UDim2.new(1,-26,0,0) minimizeButton.BackgroundColor3 = Color3.fromRGB(80,80,100) minimizeButton.TextColor3 = Color3.new(1,1,1) minimizeButton.Font = Enum.Font.GothamBold minimizeButton.TextSize = 18 minimizeButton.Parent = titleBar Instance.new("UICorner", minimizeButton).CornerRadius = UDim.new(0,8) local tabsFrame = Instance.new("Frame") tabsFrame.Size = UDim2.new(1,0,0,22) tabsFrame.Position = UDim2.new(0,0,0,26) tabsFrame.BackgroundTransparency = 1 tabsFrame.Parent = mainFrame local contentFrame = Instance.new("Frame") contentFrame.Size = UDim2.new(1,0,1,-48) contentFrame.Position = UDim2.new(0,0,0,48) contentFrame.BackgroundTransparency = 1 contentFrame.Parent = mainFrame -- ===== Utilities ===== local function clearContent() for _,v in pairs(contentFrame:GetChildren()) do if not v:IsA("UIListLayout") then v:Destroy() end end end local function createHoverEffect(button, originalColor) button.MouseEnter:Connect(function() local hoverTween = TweenService:Create(button, TweenInfo.new(0.15), {BackgroundColor3 = originalColor:Lerp(Color3.fromRGB(255,255,255),0.15)}) hoverTween:Play() end) button.MouseLeave:Connect(function() local leaveTween = TweenService:Create(button, TweenInfo.new(0.15), {BackgroundColor3 = originalColor}) leaveTween:Play() end) end local function pulseLabel(label) spawn(function() while label.Parent do local tweenUp = TweenService:Create(label, TweenInfo.new(0.7, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true), {TextTransparency = 0.4}) tweenUp:Play() wait(0.7) end end) end local function createIndicator(text, pos) local lbl = Instance.new("TextLabel") lbl.Text = text lbl.Size = UDim2.new(0.9,0,0,22) lbl.Position = pos lbl.BackgroundColor3 = mainFrame.BackgroundColor3:Lerp(Color3.fromRGB(20,20,30),0.2) lbl.TextColor3 = Color3.fromRGB(230,230,230) lbl.Font = Enum.Font.GothamBold lbl.TextSize = 13 lbl.Parent = contentFrame Instance.new("UICorner", lbl).CornerRadius = UDim.new(0,6) return lbl end -- ===== Stable Teleport Function (waist safe) ===== local function stableTeleport(pos) if player.Character and player.Character:FindFirstChild("HumanoidRootPart") and player.Character:FindFirstChild("Humanoid") then local hrp = player.Character.HumanoidRootPart local hum = player.Character.Humanoid hum.PlatformStand = true hrp.Anchored = true hrp.CFrame = CFrame.new(pos) + Vector3.new(0,3,0) -- offset to avoid waist getting stuck hrp.Velocity = Vector3.new(0,0,0) hrp.RotVelocity = Vector3.new(0,0,0) wait(0.05) hrp.Anchored = false hum.PlatformStand = false end end -- ===== Rune Macro ===== local function renderRuneMacro(data) clearContent() mainFrame.BackgroundColor3 = data.color local runeStatus = createIndicator("Current Rune: None", UDim2.new(0,6,0,5)) local speedInput = Instance.new("TextBox") speedInput.Text = data.currentDelay or "2.75" speedInput.Size = UDim2.new(0.45,0,0,20) speedInput.Position = UDim2.new(0.5,0,0,32) speedInput.BackgroundColor3 = mainFrame.BackgroundColor3:Lerp(Color3.fromRGB(25,25,35),0.3) speedInput.TextColor3 = Color3.fromRGB(230,230,230) speedInput.Font = Enum.Font.GothamBold speedInput.TextSize = 12 speedInput.ClearTextOnFocus = false speedInput.Parent = contentFrame Instance.new("UICorner", speedInput).CornerRadius = UDim.new(0,6) createHoverEffect(speedInput, speedInput.BackgroundColor3) speedInput.FocusLost:Connect(function() local val = tonumber(speedInput.Text) if val then data.currentDelay = val speedInput.Text = tostring(val) else speedInput.Text = tostring(data.currentDelay or 2.75) end end) local startButton = Instance.new("TextButton") startButton.Text = "▶ Start" startButton.Size = UDim2.new(0.45,0,0,26) startButton.Position = UDim2.new(0.05,0,1,-34) startButton.BackgroundColor3 = mainFrame.BackgroundColor3:Lerp(Color3.fromRGB(0,100,60),0.5) startButton.TextColor3 = Color3.fromRGB(230,230,230) startButton.Font = Enum.Font.GothamBold startButton.TextSize = 13 startButton.Parent = contentFrame Instance.new("UICorner", startButton).CornerRadius = UDim.new(0,6) createHoverEffect(startButton, startButton.BackgroundColor3) local stopButton = Instance.new("TextButton") stopButton.Text = "■ Stop" stopButton.Size = UDim2.new(0.45,0,0,26) stopButton.Position = UDim2.new(0.5,0,1,-34) stopButton.BackgroundColor3 = mainFrame.BackgroundColor3:Lerp(Color3.fromRGB(100,30,30),0.5) stopButton.TextColor3 = Color3.fromRGB(230,230,230) stopButton.Font = Enum.Font.GothamBold stopButton.TextSize = 13 stopButton.Parent = contentFrame Instance.new("UICorner", stopButton).CornerRadius = UDim.new(0,6) createHoverEffect(stopButton, stopButton.BackgroundColor3) startButton.MouseButton1Click:Connect(function() if running then return end running = true spawn(function() while running do for _, rune in pairs(data.runes) do if not running then break end stableTeleport(rune.pos) runeStatus.Text = "Current Rune: "..rune.Name wait(data.currentDelay or 2.75) end end end) end) stopButton.MouseButton1Click:Connect(function() running = false runeStatus.Text = "Current Rune: None" end) end -- ===== Ore Macro ===== local function renderOreMacro(data) clearContent() mainFrame.BackgroundColor3 = data.color local oreStatus = createIndicator("Current Ore: None", UDim2.new(0,6,0,5)) local delayInput = Instance.new("TextBox") delayInput.Text = data.currentDelay or "1" delayInput.Size = UDim2.new(0.45,0,0,20) delayInput.Position = UDim2.new(0.5,0,0,32) delayInput.BackgroundColor3 = mainFrame.BackgroundColor3:Lerp(Color3.fromRGB(25,25,35),0.3) delayInput.TextColor3 = Color3.fromRGB(230,230,230) delayInput.Font = Enum.Font.GothamBold delayInput.TextSize = 12 delayInput.ClearTextOnFocus = false delayInput.Parent = contentFrame Instance.new("UICorner", delayInput).CornerRadius = UDim.new(0,6) createHoverEffect(delayInput, delayInput.BackgroundColor3) delayInput.FocusLost:Connect(function() local val = tonumber(delayInput.Text) if val then data.currentDelay = val delayInput.Text = tostring(val) else delayInput.Text = tostring(data.currentDelay or 1) end end) local startButton = Instance.new("TextButton") startButton.Text = "▶ Start" startButton.Size = UDim2.new(0.45,0,0,26) startButton.Position = UDim2.new(0.05,0,1,-34) startButton.BackgroundColor3 = mainFrame.BackgroundColor3:Lerp(Color3.fromRGB(0,100,60),0.5) startButton.TextColor3 = Color3.fromRGB(230,230,230) startButton.Font = Enum.Font.GothamBold startButton.TextSize = 13 startButton.Parent = contentFrame Instance.new("UICorner", startButton).CornerRadius = UDim.new(0,6) createHoverEffect(startButton, startButton.BackgroundColor3) local stopButton = Instance.new("TextButton") stopButton.Text = "■ Stop" stopButton.Size = UDim2.new(0.45,0,0,26) stopButton.Position = UDim2.new(0.5,0,1,-34) stopButton.BackgroundColor3 = mainFrame.BackgroundColor3:Lerp(Color3.fromRGB(100,30,30),0.5) stopButton.TextColor3 = Color3.fromRGB(230,230,230) stopButton.Font = Enum.Font.GothamBold stopButton.TextSize = 13 stopButton.Parent = contentFrame Instance.new("UICorner", stopButton).CornerRadius = UDim.new(0,6) createHoverEffect(stopButton, stopButton.BackgroundColor3) startButton.MouseButton1Click:Connect(function() if running then return end running = true spawn(function() while running do for _, ore in pairs(data.ores) do if not running then break end stableTeleport(ore.pos) oreStatus.Text = "Current Ore: "..ore.Name wait(data.currentDelay or 1) end end end) end) stopButton.MouseButton1Click:Connect(function() running = false oreStatus.Text = "Current Ore: None" end) end -- ===== Tabs ===== local i = 0 for name,macroData in pairs(macros) do local btn = Instance.new("TextButton") btn.Text = name btn.Size = UDim2.new(0.3,0,0,20) btn.Position = UDim2.new(i*0.32 + 0.01,0,0,3) btn.BackgroundColor3 = mainFrame.BackgroundColor3:Lerp(Color3.fromRGB(20,20,30),0.2) btn.TextColor3 = Color3.fromRGB(230,230,230) btn.Font = Enum.Font.GothamBold btn.TextSize = 12 btn.Parent = tabsFrame Instance.new("UICorner", btn).CornerRadius = UDim.new(0,6) createHoverEffect(btn, btn.BackgroundColor3) i = i + 1 btn.MouseButton1Click:Connect(function() activeMacro = macroData if macroData.type == "rune" then renderRuneMacro(macroData) else renderOreMacro(macroData) end end) end -- ===== Minimize ===== minimizeButton.MouseButton1Click:Connect(function() minimized = not minimized contentFrame.Visible = not minimized tabsFrame.Visible = not minimized mainFrame.Size = minimized and UDim2.new(0,240,0,26) or UDim2.new(0,240,0,190) end) -- Default tab renderRuneMacro(macros.Uranium)