--[[ Dolta Aimbot + ESP GUI (Pro Version) Features: ✅ Aimbot + FOV ✅ ESP (Name & Box) ✅ Toggles for features ✅ GUI Toggle Hotkey ✅ Save/Load config ✅ Custom FOV color ]] --// Services local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UIS = game:GetService("UserInputService") local HttpService = game:GetService("HttpService") local TweenService = game:GetService("TweenService") local StarterGui = game:GetService("StarterGui") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera --// Config local Settings = { Aimbot = true, ESP = true, TeamCheck = false, AimPart = "Head", FOV = 85, Color = Color3.fromRGB(255, 255, 255), } local configKey = "DoltaSettings" --// FOV Circle local FOV = Drawing.new("Circle") FOV.Radius = Settings.FOV FOV.Color = Settings.Color FOV.Filled = false FOV.Thickness = 1 FOV.Transparency = 0.65 FOV.NumSides = 64 FOV.Visible = true FOV.Position = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) --// Load Saved Config pcall(function() local data = HttpService:JSONDecode(readfile(configKey .. ".json")) for k, v in pairs(data) do Settings[k] = v end FOV.Color = Settings.Color end) --// GUI local GUI = Instance.new("ScreenGui", game.CoreGui) GUI.Name = "DoltaAimbotUI" local Frame = Instance.new("Frame", GUI) Frame.Size = UDim2.new(0, 260, 0, 220) Frame.Position = UDim2.new(0, 25, 0.5, -110) Frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) Frame.BorderSizePixel = 0 Instance.new("UICorner", Frame) local Title = Instance.new("TextLabel", Frame) Title.Text = "🔥 Dolta Aimbot GUI" Title.Size = UDim2.new(1, 0, 0, 30) Title.BackgroundTransparency = 1 Title.TextColor3 = Color3.new(1, 1, 1) Title.Font = Enum.Font.GothamBold Title.TextSize = 20 --// Toggle Creator local function CreateToggle(name, state, callback) local btn = Instance.new("TextButton", Frame) btn.Size = UDim2.new(1, -20, 0, 30) btn.Position = UDim2.new(0, 10, 0, 40 + (#Frame:GetChildren() - 2) * 35) btn.BackgroundColor3 = state and Color3.fromRGB(0, 170, 0) or Color3.fromRGB(170, 0, 0) btn.Text = name .. ": " .. (state and "ON" or "OFF") btn.TextColor3 = Color3.new(1, 1, 1) btn.Font = Enum.Font.Gotham btn.TextSize = 16 btn.MouseButton1Click:Connect(function() state = not state btn.Text = name .. ": " .. (state and "ON" or "OFF") btn.BackgroundColor3 = state and Color3.fromRGB(0, 170, 0) or Color3.fromRGB(170, 0, 0) callback(state) writefile(configKey .. ".json", HttpService:JSONEncode(Settings)) end) end --// RGB Picker local function CreateColorSlider(name, colorProp) local label = Instance.new("TextLabel", Frame) label.Size = UDim2.new(1, -20, 0, 20) label.Position = UDim2.new(0, 10, 0, 160 + (#Frame:GetChildren() - 5) * 25) label.BackgroundTransparency = 1 label.Text = name label.Font = Enum.Font.Gotham label.TextSize = 14 label.TextColor3 = Color3.new(1, 1, 1) local slider = Instance.new("TextBox", Frame) slider.Size = UDim2.new(0, 60, 0, 20) slider.Position = label.Position + UDim2.new(0, 100, 0, 0) slider.BackgroundColor3 = Color3.fromRGB(30, 30, 30) slider.TextColor3 = Color3.new(1, 1, 1) slider.Font = Enum.Font.Gotham slider.TextSize = 14 slider.PlaceholderText = tostring(Settings.Color[colorProp]) slider.Text = "" slider.FocusLost:Connect(function() local num = tonumber(slider.Text) if num and num >= 0 and num <= 255 then local c = Settings.Color local newColor = Color3.fromRGB( colorProp == "R" and num or math.floor(c.R * 255), colorProp == "G" and num or math.floor(c.G * 255), colorProp == "B" and num or math.floor(c.B * 255) ) Settings.Color = newColor FOV.Color = newColor writefile(configKey .. ".json", HttpService:JSONEncode(Settings)) end end) end --// GUI Elements CreateToggle("Aimbot", Settings.Aimbot, function(v) Settings.Aimbot = v; FOV.Visible = v end) CreateToggle("ESP", Settings.ESP, function(v) Settings.ESP = v end) CreateToggle("TeamCheck", Settings.TeamCheck, function(v) Settings.TeamCheck = v end) CreateColorSlider("FOV R", "R") CreateColorSlider("FOV G", "G") CreateColorSlider("FOV B", "B") --// GUI Toggle Key local hotkey = Enum.KeyCode.RightAlt UIS.InputBegan:Connect(function(i, g) if not g and i.KeyCode == hotkey then GUI.Enabled = not GUI.Enabled end end) --// Notification StarterGui:SetCore("SendNotification", { Title = "Dolta GUI", Text = "Loaded with hotkey: RightAlt", Duration = 4 }) --// Aimbot local IsHolding = false UIS.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton2 then IsHolding = true end end) UIS.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton2 then IsHolding = false end end) local function GetClosest() local shortest, target = Settings.FOV + 1, nil local mouse = UIS:GetMouseLocation() for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then if player.Team == LocalPlayer.Team and Settings.TeamCheck then continue end local pos, onScreen = Camera:WorldToScreenPoint(player.Character.HumanoidRootPart.Position) if onScreen then local dist = (Vector2.new(pos.X, pos.Y) - mouse).Magnitude if dist < shortest then shortest = dist target = player end end end end return target end --// ESP local ESPDraws = {} local function DrawESP(player) if ESPDraws[player] then return end local box = Drawing.new("Square") box.Color = Color3.new(0, 1, 0) box.Thickness = 1.5 box.Filled = false box.Transparency = 1 local name = Drawing.new("Text") name.Color = Color3.new(1, 1, 1) name.Size = 16 name.Center = true name.Outline = true ESPDraws[player] = {Box = box, Name = name} end local function ClearESP(player) if ESPDraws[player] then for _, draw in pairs(ESPDraws[player]) do draw:Remove() end ESPDraws[player] = nil end end local function UpdateESP() for _, p in ipairs(Players:GetPlayers()) do if p == LocalPlayer then continue end local char = p.Character if not char or not char:FindFirstChild("HumanoidRootPart") or not char:FindFirstChild("Head") then ClearESP(p) continue end if Settings.TeamCheck and p.Team == LocalPlayer.Team then ClearESP(p) continue end DrawESP(p) local root = char.HumanoidRootPart local head = char.Head local headPos, onScreen = Camera:WorldToViewportPoint(head.Position) local rootPos = Camera:WorldToViewportPoint(root.Position) if onScreen then local h = math.abs(headPos.Y - rootPos.Y) local w = h / 1.5 ESPDraws[p].Box.Position = Vector2.new(rootPos.X - w/2, headPos.Y) ESPDraws[p].Box.Size = Vector2.new(w, h) ESPDraws[p].Box.Visible = Settings.ESP ESPDraws[p].Name.Position = Vector2.new(rootPos.X, headPos.Y - 15) ESPDraws[p].Name.Text = p.Name ESPDraws[p].Name.Visible = Settings.ESP else ClearESP(p) end end end --// Main Loop RunService.RenderStepped:Connect(function() FOV.Position = UIS:GetMouseLocation() if Settings.Aimbot and IsHolding then local t = GetClosest() if t and t.Character and t.Character:FindFirstChild(Settings.AimPart) then TweenService:Create(Camera, TweenInfo.new(0.015), { CFrame = CFrame.new(Camera.CFrame.Position, t.Character[Settings.AimPart].Position) }):Play() end end if Settings.ESP then UpdateESP() end end)