CCCPaste

Menu Settings

-- Multi Toggle Hide NameTag & All GUI
-- LocalScript di StarterCharScripts (SPS)
-- By @KitooStudioLite

local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local Lighting = game:GetService("Lighting")
local StarterGui = game:GetService("StarterGui")
local SoundService = game:GetService("SoundService")

local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")

-- 🔊 Suara klik
local ClickSound = Instance.new("Sound")
ClickSound.SoundId = "rbxassetid://9118823106" -- suara klik lembut
ClickSound.Volume = 0.6
ClickSound.Parent = SoundService

-- ⚙️ Simpan & Muat Setting
local function SaveSetting(name, state)
	PlayerGui:SetAttribute(name, state)
end

local function LoadSetting(name)
	return PlayerGui:GetAttribute(name)
end

-- 🎛️ GUI Utama
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "SettingsGUI"
ScreenGui.ResetOnSpawn = false
ScreenGui.IgnoreGuiInset = true
ScreenGui.Parent = PlayerGui

-- ⚙️ Tombol Buka Menu
local OpenButton = Instance.new("TextButton")
OpenButton.Size = UDim2.new(0, 38, 0, 38)
OpenButton.Position = UDim2.new(1, -50, 0, 10)
OpenButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
OpenButton.Text = "⚙️"
OpenButton.TextSize = 26
OpenButton.TextColor3 = Color3.fromRGB(255, 255, 255)
OpenButton.Font = Enum.Font.GothamBold
OpenButton.Parent = ScreenGui
Instance.new("UICorner", OpenButton).CornerRadius = UDim.new(0, 30)

local Shadow = Instance.new("ImageLabel")
Shadow.Size = UDim2.new(1, 12, 1, 12)
Shadow.Position = UDim2.new(0, -6, 0, -6)
Shadow.BackgroundTransparency = 1
Shadow.Image = "rbxassetid://1316045217"
Shadow.ImageTransparency = 0.5
Shadow.ImageColor3 = Color3.fromRGB(0, 0, 0)
Shadow.ZIndex = -1
Shadow.Parent = OpenButton

-- 🧭 Frame Menu
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(0, 240, 0, 260)
Frame.Position = UDim2.new(0.5, -120, 0.5, -130)
Frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
Frame.Visible = false
Frame.Parent = ScreenGui
Instance.new("UICorner", Frame).CornerRadius = UDim.new(0, 12)

-- Shadow belakang menu
local FrameShadow = Shadow:Clone()
FrameShadow.Size = UDim2.new(1, 20, 1, 20)
FrameShadow.Position = UDim2.new(0, -10, 0, -10)
FrameShadow.ImageTransparency = 0.6
FrameShadow.Parent = Frame

-- 📜 ScrollingFrame
local Scroll = Instance.new("ScrollingFrame")
Scroll.Size = UDim2.new(1, -12, 1, -12)
Scroll.Position = UDim2.new(0, 6, 0, 6)
Scroll.CanvasSize = UDim2.new(0, 0, 0, 400)
Scroll.ScrollBarThickness = 6
Scroll.BackgroundTransparency = 1
Scroll.Parent = Frame

local UIList = Instance.new("UIListLayout")
UIList.Padding = UDim.new(0, 10)
UIList.Parent = Scroll

-- 🏷️ Judul
local Title = Instance.new("TextLabel")
Title.Text = "⚙️ Settings Menu"
Title.Size = UDim2.new(1, 0, 0, 45)
Title.BackgroundTransparency = 1
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 22
Title.Parent = Scroll

-- 🔘 Fungsi Buat Toggle
local function CreateToggle(parent, labelText, attributeName, callback)
	local ToggleFrame = Instance.new("Frame")
	ToggleFrame.Size = UDim2.new(1, -20, 0, 45)
	ToggleFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
	ToggleFrame.Parent = parent
	Instance.new("UICorner", ToggleFrame).CornerRadius = UDim.new(0, 10)

	local Label = Instance.new("TextLabel")
	Label.Text = labelText
	Label.Size = UDim2.new(0.6, 0, 1, 0)
	Label.Position = UDim2.new(0, 10, 0, 0)
	Label.BackgroundTransparency = 1
	Label.TextColor3 = Color3.new(1, 1, 1)
	Label.Font = Enum.Font.Gotham
	Label.TextSize = 18
	Label.TextXAlignment = Enum.TextXAlignment.Left
	Label.Parent = ToggleFrame

	local ToggleButton = Instance.new("Frame")
	ToggleButton.Size = UDim2.new(0, 50, 0, 26)
	ToggleButton.Position = UDim2.new(1, -60, 0.5, -13)
	ToggleButton.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
	ToggleButton.Parent = ToggleFrame
	Instance.new("UICorner", ToggleButton).CornerRadius = UDim.new(1, 0)

	local Knob = Instance.new("Frame")
	Knob.Size = UDim2.new(0, 22, 0, 22)
	Knob.Position = UDim2.new(0, 2, 0, 2)
	Knob.BackgroundColor3 = Color3.fromRGB(200, 200, 200)
	Knob.Parent = ToggleButton
	Instance.new("UICorner", Knob).CornerRadius = UDim.new(1, 0)

	local state = LoadSetting(attributeName) or false

	local function UpdateVisual()
		local color = state and Color3.fromRGB(0, 200, 80) or Color3.fromRGB(80, 80, 80)
		local knobPos = state and UDim2.new(1, -24, 0, 2) or UDim2.new(0, 2, 0, 2)
		TweenService:Create(ToggleButton, TweenInfo.new(0.25), {BackgroundColor3 = color}):Play()
		TweenService:Create(Knob, TweenInfo.new(0.25), {Position = knobPos}):Play()
	end

	UpdateVisual()
	callback(state)

	ToggleButton.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then
			state = not state
			ClickSound:Play()
			SaveSetting(attributeName, state)
			UpdateVisual()
			callback(state)
		end
	end)
end

-- 🎚️ Dropdown Mode Grafik
local function CreateGraphicsDropdown(parent)
	local FrameG = Instance.new("Frame")
	FrameG.Size = UDim2.new(1, -20, 0, 50)
	FrameG.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
	FrameG.Parent = parent
	Instance.new("UICorner", FrameG).CornerRadius = UDim.new(0, 10)

	local Label = Instance.new("TextLabel")
	Label.Text = "Graphics Mode"
	Label.Size = UDim2.new(0.6, 0, 1, 0)
	Label.Position = UDim2.new(0, 10, 0, 0)
	Label.BackgroundTransparency = 1
	Label.TextColor3 = Color3.new(1, 1, 1)
	Label.Font = Enum.Font.Gotham
	Label.TextSize = 18
	Label.TextXAlignment = Enum.TextXAlignment.Left
	Label.Parent = FrameG

	local Dropdown = Instance.new("TextButton")
	Dropdown.Size = UDim2.new(0.4, -10, 0, 30)
	Dropdown.Position = UDim2.new(0.6, 5, 0.5, -15)
	Dropdown.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
	Dropdown.TextColor3 = Color3.new(1, 1, 1)
	Dropdown.Text = LoadSetting("GraphicsMode") or "Medium"
	Dropdown.Font = Enum.Font.GothamBold
	Dropdown.TextSize = 16
	Dropdown.Parent = FrameG
	Instance.new("UICorner", Dropdown).CornerRadius = UDim.new(1, 0)

	local DropFrame = Instance.new("Frame")
	DropFrame.Size = UDim2.new(1, -20, 0, 90)
	DropFrame.Position = UDim2.new(0, 10, 1, 5)
	DropFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
	DropFrame.Visible = false
	DropFrame.ZIndex = 10
	DropFrame.Parent = FrameG
	Instance.new("UICorner", DropFrame).CornerRadius = UDim.new(0, 6)

	local UIList2 = Instance.new("UIListLayout")
	UIList2.Parent = DropFrame

	local modes = {"Low", "Medium", "High"}

	local function ApplyGraphics(mode)
		if mode == "Low" then
			Lighting.GlobalShadows = false
			Lighting.Brightness = 1
			Lighting.FogEnd = 150
		elseif mode == "Medium" then
			Lighting.GlobalShadows = true
			Lighting.Brightness = 2
			Lighting.FogEnd = 300
		elseif mode == "High" then
			Lighting.GlobalShadows = true
			Lighting.Brightness = 3
			Lighting.FogEnd = 800
		end
	end

	local function CreateOption(text)
		local b = Instance.new("TextButton")
		b.Text = text
		b.Size = UDim2.new(1, 0, 0, 30)
		b.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
		b.TextColor3 = Color3.new(1, 1, 1)
		b.Font = Enum.Font.Gotham
		b.TextSize = 16
		b.Parent = DropFrame

		b.MouseButton1Click:Connect(function()
			ClickSound:Play()
			Dropdown.Text = text
			SaveSetting("GraphicsMode", text)
			ApplyGraphics(text)
			DropFrame.Visible = false
		end)
	end

	for _, m in ipairs(modes) do
		CreateOption(m)
	end

	ApplyGraphics(Dropdown.Text)

	Dropdown.MouseButton1Click:Connect(function()
		ClickSound:Play()
		DropFrame.Visible = not DropFrame.Visible
	end)
end

-- 👤 Hide NameTag
local function SetNameTagsVisible(state)
	for _, plr in pairs(Players:GetPlayers()) do
		if plr.Character and plr.Character:FindFirstChild("Head") then
			for _, obj in pairs(plr.Character.Head:GetChildren()) do
				if obj:IsA("BillboardGui") then
					obj.Enabled = state
				end
			end
		end
	end
end

Players.PlayerAdded:Connect(function(plr)
	plr.CharacterAdded:Connect(function()
		task.wait(1)
		SetNameTagsVisible(not LoadSetting("HideNameTag"))
	end)
end)

-- 🧩 Hide GUI
local function SetAllGUIVisible(state)
	for _, gui in pairs(PlayerGui:GetChildren()) do
		if gui:IsA("ScreenGui") and gui.Name ~= "SettingsGUI" and gui.Name ~= "TouchGui" then
			gui.Enabled = state
		end
	end
	local touchGui = PlayerGui:FindFirstChild("TouchGui")
	if touchGui then
		touchGui.Enabled = true
	end
	StarterGui:SetCore("TopbarEnabled", state)
	pcall(function() StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, state) end)
	pcall(function() StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, state) end)
	pcall(function() StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, state) end)
end

-- Tambahkan ke Scroll
CreateToggle(Scroll, "Hide NameTags", "HideNameTag", function(state)
	SetNameTagsVisible(not state)
end)

CreateToggle(Scroll, "Hide All GUI", "HideAllGUI", function(state)
	SetAllGUIVisible(not state)
end)

CreateGraphicsDropdown(Scroll)

-- 🎬 Animasi buka/tutup menu
local isOpen = false
OpenButton.MouseButton1Click:Connect(function()
	isOpen = not isOpen
	ClickSound:Play()

	if isOpen then
		Frame.Visible = true
		TweenService:Create(Frame, TweenInfo.new(0.3, Enum.EasingStyle.Back), {
			BackgroundTransparency = 0
		}):Play()
	else
		local tween = TweenService:Create(Frame, TweenInfo.new(0.25), {
			BackgroundTransparency = 1
		})
		tween:Play()
		tween.Completed:Wait()
		Frame.Visible = false
	end
end)