local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local Players = game:GetService("Players") local Lighting = game:GetService("Lighting") local HttpService = game:GetService("HttpService") local Camera = workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer local Maldix = { ToggleKey = Enum.KeyCode.Insert, AimKey = Enum.UserInputType.MouseButton2, Visible = true, ThemeColor = Color3.fromRGB(180, 0, 255), Aimbot = false, FOV = 150, Smoothing = 15, -- Whole number 1-100 TargetPlayers = true, TargetNPCs = true, SpeedEnabled = false, WalkSpeed = 50, JumpEnabled = false, JumpPower = 100, ESP_Enabled = false, LightingMod = false, TimeOfDay = 12, Binding = false, CyanTheme = false } local Registry = {} local Themes = { Strokes = {}, Texts = {}, Fills = {}, Toggles = {}, Tabs = {} } -------------------------------------------------------------------------------- -- ENGINE -------------------------------------------------------------------------------- local function ApplyTheme() for _, s in pairs(Themes.Strokes) do s.Color = Maldix.ThemeColor end for _, t in pairs(Themes.Texts) do t.TextColor3 = Maldix.ThemeColor end for _, f in pairs(Themes.Fills) do f.BackgroundColor3 = Maldix.ThemeColor end for btn, data in pairs(Themes.Toggles) do if data.state then btn.BackgroundColor3 = Maldix.ThemeColor end end for btn, data in pairs(Themes.Tabs) do if data.state then btn.TextColor3 = Maldix.ThemeColor end end end local function RefreshUI() for key, updateFunc in pairs(Registry) do pcall(updateFunc) end ApplyTheme() end local ConfigFolder = "MaldixConfigs" if isfolder and not isfolder(ConfigFolder) then makefolder(ConfigFolder) end local function SaveSettings(name) local Data = {} for k, v in pairs(Maldix) do if typeof(v) == "Color3" then Data[k] = {R = v.R, G = v.G, B = v.B, Type = "Color3"} elseif typeof(v) == "EnumItem" then Data[k] = {Name = tostring(v), Type = "Enum"} elseif k ~= "Binding" then Data[k] = v end end writefile(ConfigFolder.."/"..name..".json", HttpService:JSONEncode(Data)) end local function LoadSettings(name) local path = ConfigFolder.."/"..name..".json" if not isfile(path) then return end local success, decoded = pcall(function() return HttpService:JSONDecode(readfile(path)) end) if success then for k, v in pairs(decoded) do if type(v) == "table" and v.Type == "Color3" then Maldix[k] = Color3.new(v.R, v.G, v.B) elseif type(v) == "table" and v.Type == "Enum" then local split = string.split(v.Name, ".") Maldix[k] = Enum[split[2]][split[3]] else -- REPAIR LOGIC: If loading an old decimal smoothing, convert it to whole number if k == "Smoothing" and v < 1 then Maldix[k] = math.floor(v * 100) else Maldix[k] = v end end end RefreshUI() end end -------------------------------------------------------------------------------- -- UI CONSTRUCTORS -------------------------------------------------------------------------------- local ScreenGui = Instance.new("ScreenGui", LocalPlayer:WaitForChild("PlayerGui")) ScreenGui.Name = "Maldixware"; ScreenGui.ResetOnSpawn = false; ScreenGui.IgnoreGuiInset = true local Main = Instance.new("Frame", ScreenGui) Main.Size = UDim2.new(0, 500, 0, 420); Main.Position = UDim2.new(0.5, -250, 0.5, -210); Main.BackgroundColor3 = Color3.fromRGB(12, 12, 16); Main.BorderSizePixel = 0 local MainStroke = Instance.new("UIStroke", Main); MainStroke.Thickness = 2; Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 6); table.insert(Themes.Strokes, MainStroke) local Sidebar = Instance.new("Frame", Main) Sidebar.Size = UDim2.new(0, 140, 1, -41); Sidebar.Position = UDim2.new(0, 0, 0, 41); Sidebar.BackgroundColor3 = Color3.fromRGB(16, 16, 22) Instance.new("UIListLayout", Sidebar) local ContentArea = Instance.new("Frame", Main) ContentArea.Size = UDim2.new(1, -140, 1, -41); ContentArea.Position = UDim2.new(0, 140, 0, 41); ContentArea.BackgroundTransparency = 1 local Tabs = {} local function CreateTab(name) local TabBtn = Instance.new("TextButton", Sidebar) TabBtn.Size = UDim2.new(1, 0, 0, 45); TabBtn.BackgroundTransparency = 1; TabBtn.Text = name; TabBtn.TextColor3 = Color3.fromRGB(200, 200, 200); TabBtn.Font = Enum.Font.Code local TabContent = Instance.new("ScrollingFrame", ContentArea) TabContent.Size = UDim2.new(1, -20, 1, -20); TabContent.Position = UDim2.new(0, 10, 0, 10); TabContent.BackgroundTransparency = 1; TabContent.ScrollBarThickness = 0; TabContent.Visible = false Instance.new("UIListLayout", TabContent).Padding = UDim.new(0, 10) local tabState = {state = false}; Themes.Tabs[TabBtn] = tabState TabBtn.MouseButton1Click:Connect(function() for _, t in pairs(Tabs) do t.Content.Visible = false; t.Btn.TextColor3 = Color3.fromRGB(200, 200, 200); Themes.Tabs[t.Btn].state = false end TabContent.Visible = true; TabBtn.TextColor3 = Maldix.ThemeColor; tabState.state = true end) table.insert(Tabs, {Btn = TabBtn, Content = TabContent}) if #Tabs == 1 then TabContent.Visible = true; TabBtn.TextColor3 = Maldix.ThemeColor; tabState.state = true end return TabContent end local function CreateToggle(parent, text, key, callback) local Frame = Instance.new("Frame", parent); Frame.Size = UDim2.new(1, 0, 0, 35); Frame.BackgroundTransparency = 1 local Lbl = Instance.new("TextLabel", Frame); Lbl.Size = UDim2.new(1, -50, 1, 0); Lbl.Text = text; Lbl.TextColor3 = Color3.fromRGB(220, 220, 220); Lbl.Font = Enum.Font.Code; Lbl.TextXAlignment = Enum.TextXAlignment.Left; Lbl.BackgroundTransparency = 1 local Btn = Instance.new("TextButton", Frame); Btn.Size = UDim2.new(0, 40, 0, 20); Btn.Position = UDim2.new(1, -40, 0.5, -10); Btn.BackgroundColor3 = Maldix[key] and Maldix.ThemeColor or Color3.fromRGB(40, 40, 45); Btn.Text = ""; Instance.new("UICorner", Btn).CornerRadius = UDim.new(1, 0) local toggleState = {state = Maldix[key]}; Themes.Toggles[Btn] = toggleState Registry[key] = function() toggleState.state = Maldix[key]; Btn.BackgroundColor3 = Maldix[key] and Maldix.ThemeColor or Color3.fromRGB(40, 40, 45) end Btn.MouseButton1Click:Connect(function() toggleState.state = not toggleState.state; Maldix[key] = toggleState.state; Btn.BackgroundColor3 = toggleState.state and Maldix.ThemeColor or Color3.fromRGB(40, 40, 45); callback(toggleState.state) end) end local function CreateSlider(parent, text, key, min, max, callback) local Frame = Instance.new("Frame", parent); Frame.Size = UDim2.new(1, 0, 0, 50); Frame.BackgroundTransparency = 1 local Lbl = Instance.new("TextLabel", Frame); Lbl.Size = UDim2.new(1, 0, 0, 20); Lbl.Text = text .. " : " .. math.floor(Maldix[key]); Lbl.TextColor3 = Color3.fromRGB(220, 220, 220); Lbl.Font = Enum.Font.Code; Lbl.TextXAlignment = Enum.TextXAlignment.Left; Lbl.BackgroundTransparency = 1 local Bar = Instance.new("Frame", Frame); Bar.Size = UDim2.new(1, 0, 0, 6); Bar.Position = UDim2.new(0, 0, 0, 30); Bar.BackgroundColor3 = Color3.fromRGB(30, 30, 35) local Fill = Instance.new("Frame", Bar); Fill.Size = UDim2.new((Maldix[key]-min)/(max-min), 0, 1, 0); Fill.BackgroundColor3 = Maldix.ThemeColor; table.insert(Themes.Fills, Fill) Registry[key] = function() local val = math.floor(Maldix[key]) local percent = math.clamp((val - min) / (max - min), 0, 1) Fill.Size = UDim2.new(percent, 0, 1, 0) Lbl.Text = text .. " : " .. tostring(val) end Bar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then local conn; conn = RunService.RenderStepped:Connect(function() if not UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) then conn:Disconnect(); return end local percent = math.clamp((UserInputService:GetMouseLocation().X - Bar.AbsolutePosition.X) / Bar.AbsoluteSize.X, 0, 1) local val = math.floor(min + (max-min)*percent) Maldix[key] = val; Fill.Size = UDim2.new(percent, 0, 1, 0); Lbl.Text = text .. " : " .. tostring(val); callback(val) end) end end) end local function CreateButton(parent, text, callback) local Btn = Instance.new("TextButton", parent); Btn.Size = UDim2.new(1, 0, 0, 35); Btn.BackgroundColor3 = Color3.fromRGB(30, 30, 35); Btn.Text = text; Btn.TextColor3 = Color3.fromRGB(220, 220, 220); Btn.Font = Enum.Font.Code; Btn.TextSize = 14 Instance.new("UICorner", Btn).CornerRadius = UDim.new(0, 4); Btn.MouseButton1Click:Connect(callback) return Btn end -------------------------------------------------------------------------------- -- TABS -------------------------------------------------------------------------------- local CombatTab = CreateTab("Combat") CreateToggle(CombatTab, "Aimbot", "Aimbot", function() end) CreateToggle(CombatTab, "Players", "TargetPlayers", function() end) CreateToggle(CombatTab, "NPCs", "TargetNPCs", function() end) CreateSlider(CombatTab, "FOV", "FOV", 10, 800, function() end) CreateSlider(CombatTab, "Smoothing", "Smoothing", 1, 100, function() end) local MoveTab = CreateTab("Movement") CreateToggle(MoveTab, "Speed", "SpeedEnabled", function() end) CreateSlider(MoveTab, "WalkSpeed", "WalkSpeed", 16, 250, function() end) CreateToggle(MoveTab, "Jump", "JumpEnabled", function() end) CreateSlider(MoveTab, "JumpPower", "JumpPower", 50, 500, function() end) local VisualsTab = CreateTab("Visuals") CreateToggle(VisualsTab, "ESP", "ESP_Enabled", function() end) CreateToggle(VisualsTab, "Lighting", "LightingMod", function() end) CreateSlider(VisualsTab, "Time", "TimeOfDay", 0, 24, function() end) local SettingsTab = CreateTab("Settings") CreateToggle(SettingsTab, "Cyan Theme", "CyanTheme", function(v) Maldix.ThemeColor = v and Color3.fromRGB(0, 255, 255) or Color3.fromRGB(180, 0, 255); ApplyTheme() end) local ConfigTab = CreateTab("Configs") local NameBox = Instance.new("TextBox", ConfigTab); NameBox.Size = UDim2.new(1, 0, 0, 35); NameBox.BackgroundColor3 = Color3.fromRGB(20, 20, 25); NameBox.Text = ""; NameBox.PlaceholderText = "Config Name..."; NameBox.TextColor3 = Color3.fromRGB(255, 255, 255); NameBox.Font = Enum.Font.Code; Instance.new("UICorner", NameBox).CornerRadius = UDim.new(0, 4) local ListFrame = Instance.new("Frame", ConfigTab); ListFrame.Size = UDim2.new(1, 0, 0, 200); ListFrame.BackgroundTransparency = 1; Instance.new("UIListLayout", ListFrame).Padding = UDim.new(0, 5) local function RefreshList() for _, c in pairs(ListFrame:GetChildren()) do if c:IsA("Frame") then c:Destroy() end end if not listfiles then return end for _, p in pairs(listfiles(ConfigFolder)) do local n = p:gsub(ConfigFolder.."/", ""):gsub(".json", "") local R = Instance.new("Frame", ListFrame); R.Size = UDim2.new(1, 0, 0, 30); R.BackgroundTransparency = 1 local L = CreateButton(R, "Load: "..n, function() LoadSettings(n) end); L.Size = UDim2.new(0.8, -5, 1, 0) local D = CreateButton(R, "X", function() delfile(p); R:Destroy() end); D.Size = UDim2.new(0.2, 0, 1, 0); D.Position = UDim2.new(0.8, 5, 0, 0); D.BackgroundColor3 = Color3.fromRGB(80, 20, 20) end end CreateButton(ConfigTab, "Save Config", function() if NameBox.Text ~= "" then SaveSettings(NameBox.Text); RefreshList() end end) -------------------------------------------------------------------------------- -- LOOPS -------------------------------------------------------------------------------- local FOVFrame = Instance.new("Frame", ScreenGui) FOVFrame.AnchorPoint = Vector2.new(0.5, 0.5); FOVFrame.BackgroundTransparency = 1; local FOVStroke = Instance.new("UIStroke", FOVFrame); FOVStroke.Thickness = 1.5; Instance.new("UICorner", FOVFrame).CornerRadius = UDim.new(1, 0); table.insert(Themes.Strokes, FOVStroke) local HighlightFolder = Instance.new("Folder", ScreenGui) task.spawn(function() while task.wait(0.5) do HighlightFolder:ClearAllChildren() if Maldix.ESP_Enabled then for _, v in pairs(workspace:GetDescendants()) do if v:IsA("Humanoid") and v.Parent ~= LocalPlayer.Character and v.Parent:FindFirstChild("HumanoidRootPart") then local isP = Players:GetPlayerFromCharacter(v.Parent) if (isP and Maldix.TargetPlayers) or (not isP and Maldix.TargetNPCs) then local hl = Instance.new("Highlight", HighlightFolder); hl.Adornee = v.Parent; hl.FillColor = Maldix.ThemeColor end end end end end end) local function GetTarget() local t, d = nil, Maldix.FOV; local m = UserInputService:GetMouseLocation() for _, v in pairs(workspace:GetDescendants()) do if v:IsA("Humanoid") and v.Parent ~= LocalPlayer.Character and v.Health > 0 then local isP = Players:GetPlayerFromCharacter(v.Parent) if (isP and Maldix.TargetPlayers) or (not isP and Maldix.TargetNPCs) then local p = v.Parent:FindFirstChild("Head") or v.Parent:FindFirstChild("HumanoidRootPart") if p then local s, on = Camera:WorldToViewportPoint(p.Position) if on then local mag = (Vector2.new(s.X, s.Y) - m).Magnitude; if mag < d then t, d = p, mag end end end end end end return t end RunService.RenderStepped:Connect(function() local m = UserInputService:GetMouseLocation() FOVFrame.Position = UDim2.new(0, m.X, 0, m.Y); FOVFrame.Size = UDim2.new(0, Maldix.FOV * 2, 0, Maldix.FOV * 2) local isAiming = Maldix.AimKey.Name:find("MouseButton") and UserInputService:IsMouseButtonPressed(Maldix.AimKey) or UserInputService:IsKeyDown(Maldix.AimKey) if Maldix.Aimbot and isAiming then local target = GetTarget() if target then -- Safety: math.max(Maldix.Smoothing, 1) prevents Smoothing from ever being 0 local smoothVal = math.max(Maldix.Smoothing, 1) / 100 Camera.CFrame = Camera.CFrame:Lerp(CFrame.new(Camera.CFrame.Position, target.Position), smoothVal) end end if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then local h = LocalPlayer.Character.Humanoid if Maldix.SpeedEnabled then h.WalkSpeed = Maldix.WalkSpeed end if Maldix.JumpEnabled then h.JumpPower = Maldix.JumpPower; h.UseJumpPower = true end end if Maldix.LightingMod then Lighting.ClockTime = Maldix.TimeOfDay end end) UserInputService.InputBegan:Connect(function(i, g) if not g and i.KeyCode == Maldix.ToggleKey then Main.Visible = not Main.Visible end end) pcall(RefreshList); ApplyTheme()