--[[ EKKO YIELD — Owner-Only Self Tools Place in: StarterPlayer > StarterPlayerScripts (as a LocalScript) This script ONLY affects the local player running it, and ONLY runs its effects if their UserId matches OWNER_ID below. It does not give you any power over other players. --]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") local player = Players.LocalPlayer ---------------------------------------------------------------- -- OWNER CHECK ---------------------------------------------------------------- local OWNER_ID = 10687208976 -- your UserId, double check this is correct if player.UserId ~= OWNER_ID then return -- script does nothing for anyone else end ---------------------------------------------------------------- -- STATE ---------------------------------------------------------------- local state = { noclip = false, fly = false, flySpeed = 50, walkSpeed = 16, godMode = false, infiniteJump = false, glow = false, invisible = false, rainbow = false, ragdoll = false, size = 1, } local waypoints = {} local character = player.Character local humanoid, rootPart local flyConnection local noclipConnection local godModeConnection local rainbowConnection local jumpConnection local applyGlow, applyInvisible, applyRainbow, applySize, applyGodMode, setInfiniteJump, applyRagdoll ---------------------------------------------------------------- -- CHARACTER HANDLING ---------------------------------------------------------------- local function disconnectAll() if noclipConnection then noclipConnection:Disconnect() noclipConnection = nil end if godModeConnection then godModeConnection:Disconnect() godModeConnection = nil end if rainbowConnection then rainbowConnection:Disconnect() rainbowConnection = nil end if jumpConnection then jumpConnection:Disconnect() jumpConnection = nil end end local function applyNoclip(char, enabled) for _, part in ipairs(char:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = not enabled end end end local function setupCharacter(char) character = char humanoid = char:WaitForChild("Humanoid") rootPart = char:WaitForChild("HumanoidRootPart") disconnectAll() if state.noclip then applyNoclip(char, true) noclipConnection = char.DescendantAdded:Connect(function(descendant) if descendant:IsA("BasePart") then descendant.CanCollide = false end end) end if state.godMode then applyGodMode(true) end if state.infiniteJump then setInfiniteJump(true) end humanoid.WalkSpeed = state.walkSpeed if state.glow then applyGlow(true) end if state.invisible then applyInvisible(true) end if state.rainbow then applyRainbow(true) end applySize(state.size) end ---------------------------------------------------------------- -- NOCLIP ---------------------------------------------------------------- local function setNoclip(enabled) state.noclip = enabled if not character then return end applyNoclip(character, enabled) if noclipConnection then noclipConnection:Disconnect() noclipConnection = nil end if enabled then noclipConnection = character.DescendantAdded:Connect(function(descendant) if descendant:IsA("BasePart") then descendant.CanCollide = false end end) end end ---------------------------------------------------------------- -- FLY (smooth version — uses PlatformStand + AssemblyLinearVelocity -- instead of BodyVelocity, which was fighting the Humanoid's own -- physics state every frame and causing the jitter/lag) ---------------------------------------------------------------- local flyConn local flyingNow = false local function setFly(enabled) state.fly = enabled if flyConn then flyConn:Disconnect() flyConn = nil end if not enabled then flyingNow = false if humanoid then humanoid.PlatformStand = false humanoid:ChangeState(Enum.HumanoidStateType.GettingUp) end if rootPart then rootPart.AssemblyLinearVelocity = Vector3.new() end return end if not rootPart or not humanoid then return end flyingNow = true humanoid.PlatformStand = true -- stops Humanoid fighting our velocity every frame rootPart.AssemblyLinearVelocity = Vector3.new() flyConn = RunService.RenderStepped:Connect(function() if not flyingNow or not rootPart or not rootPart.Parent then return end local camera = Workspace.CurrentCamera local moveDir = Vector3.new() local cf = camera.CFrame if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDir += cf.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDir -= cf.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDir -= cf.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDir += cf.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveDir += Vector3.new(0, 1, 0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then moveDir -= Vector3.new(0, 1, 0) end if moveDir.Magnitude > 0 then moveDir = moveDir.Unit end -- Directly set velocity instead of going through a BodyMover — -- avoids the per-frame fight with Humanoid ground physics. rootPart.AssemblyLinearVelocity = moveDir * state.flySpeed end) end local function setFlySpeed(value) state.flySpeed = value end ---------------------------------------------------------------- -- WALK SPEED ---------------------------------------------------------------- local function setWalkSpeed(value) state.walkSpeed = value if humanoid then humanoid.WalkSpeed = value end end ---------------------------------------------------------------- -- GOD MODE ---------------------------------------------------------------- applyGodMode = function(enabled) state.godMode = enabled if godModeConnection then godModeConnection:Disconnect() godModeConnection = nil end if not humanoid then return end if enabled then humanoid.MaxHealth = math.huge humanoid.Health = math.huge godModeConnection = humanoid.HealthChanged:Connect(function() if state.godMode and humanoid.Health < humanoid.MaxHealth then humanoid.Health = humanoid.MaxHealth end end) else humanoid.MaxHealth = 100 humanoid.Health = 100 end end ---------------------------------------------------------------- -- INFINITE JUMP ---------------------------------------------------------------- setInfiniteJump = function(enabled) state.infiniteJump = enabled if jumpConnection then jumpConnection:Disconnect() jumpConnection = nil end if enabled then jumpConnection = UserInputService.JumpRequest:Connect(function() if state.infiniteJump and humanoid then humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end) end end ---------------------------------------------------------------- -- GLOW ---------------------------------------------------------------- applyGlow = function(enabled) state.glow = enabled if not rootPart then return end local existing = rootPart:FindFirstChild("EkkoYieldGlow") if enabled then if existing then return end local light = Instance.new("PointLight") light.Name = "EkkoYieldGlow" light.Brightness = 8 light.Range = 16 light.Color = Color3.fromRGB(150, 220, 255) light.Parent = rootPart else if existing then existing:Destroy() end end end ---------------------------------------------------------------- -- INVISIBILITY (local-only, doesn't hide you from other players) ---------------------------------------------------------------- applyInvisible = function(enabled) state.invisible = enabled if not character then return end for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") or part:IsA("Decal") then part.LocalTransparencyModifier = enabled and 1 or 0 end end end ---------------------------------------------------------------- -- RAINBOW ---------------------------------------------------------------- applyRainbow = function(enabled) state.rainbow = enabled if rainbowConnection then rainbowConnection:Disconnect() rainbowConnection = nil end if not enabled then if character then for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") then part.Color = Color3.fromRGB(163, 162, 165) end end end return end if not character then return end local hue = 0 rainbowConnection = RunService.Heartbeat:Connect(function(dt) if not character or not character.Parent then if rainbowConnection then rainbowConnection:Disconnect() rainbowConnection = nil end return end hue = (hue + dt * 0.5) % 1 local color = Color3.fromHSV(hue, 1, 1) for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") then part.Color = color end end end) end ---------------------------------------------------------------- -- RAGDOLL (self only) ---------------------------------------------------------------- applyRagdoll = function(enabled) state.ragdoll = enabled if not humanoid then return end if enabled then humanoid:ChangeState(Enum.HumanoidStateType.Ragdoll) humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, true) humanoid.PlatformStand = true else humanoid.PlatformStand = false humanoid:ChangeState(Enum.HumanoidStateType.GettingUp) end end ---------------------------------------------------------------- -- HEAL / RESPAWN ---------------------------------------------------------------- local function healSelf() if humanoid then humanoid.Health = humanoid.MaxHealth end end local function respawnSelf() if humanoid then humanoid.Health = 0 end end ---------------------------------------------------------------- -- WAYPOINTS ---------------------------------------------------------------- local function setWaypoint(name) if not rootPart then return end waypoints[name] = rootPart.CFrame end local function gotoWaypoint(name) local cf = waypoints[name] if cf and rootPart then rootPart.CFrame = cf return true end return false end ---------------------------------------------------------------- -- SIZE ---------------------------------------------------------------- applySize = function(multiplier) state.size = multiplier if not humanoid then return end multiplier = math.clamp(multiplier, 0.2, 5) pcall(function() humanoid.BodyDepthScale.Value = multiplier humanoid.BodyWidthScale.Value = multiplier humanoid.BodyHeightScale.Value = multiplier humanoid.HeadScale.Value = multiplier end) end ---------------------------------------------------------------- -- CHARACTER LIFECYCLE ---------------------------------------------------------------- player.CharacterAdded:Connect(setupCharacter) if player.Character then setupCharacter(player.Character) end ---------------------------------------------------------------- -- UI — styled to match reference: dark rows, red ON/OFF labels, -- scrollable list, command bar at the bottom ---------------------------------------------------------------- local toggleRefs = {} local function setToggleVisual(button, name, on) button.Text = name .. ": " .. (on and "ON" or "OFF") button.TextColor3 = Color3.fromRGB(255, 90, 90) end local function buildUI() local gui = Instance.new("ScreenGui") gui.Name = "EkkoYieldGui" gui.ResetOnSpawn = false gui.Parent = player:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 230, 0, 420) frame.Position = UDim2.new(0, 16, 0.5, -210) frame.BackgroundColor3 = Color3.fromRGB(13, 14, 22) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true frame.Parent = gui local outline = Instance.new("UIStroke") outline.Color = Color3.fromRGB(40, 60, 110) outline.Thickness = 1 outline.Parent = frame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 6) corner.Parent = frame local titleBar = Instance.new("Frame") titleBar.Size = UDim2.new(1, 0, 0, 32) titleBar.BackgroundColor3 = Color3.fromRGB(10, 11, 18) titleBar.BorderSizePixel = 0 titleBar.Parent = frame local titleCorner = Instance.new("UICorner") titleCorner.CornerRadius = UDim.new(0, 6) titleCorner.Parent = titleBar local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -10, 1, 0) title.Position = UDim2.new(0, 10, 0, 0) title.BackgroundTransparency = 1 title.Text = "EKKO YIELD" title.TextColor3 = Color3.fromRGB(120, 170, 255) title.Font = Enum.Font.GothamBold title.TextSize = 16 title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = titleBar local scroll = Instance.new("ScrollingFrame") scroll.Size = UDim2.new(1, 0, 1, -68) scroll.Position = UDim2.new(0, 0, 0, 32) scroll.BackgroundTransparency = 1 scroll.BorderSizePixel = 0 scroll.ScrollBarThickness = 4 scroll.CanvasSize = UDim2.new(0, 0, 0, 0) scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y scroll.Parent = frame local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0, 4) layout.Parent = scroll local padding = Instance.new("UIPadding") padding.PaddingTop = UDim.new(0, 6) padding.PaddingLeft = UDim.new(0, 6) padding.PaddingRight = UDim.new(0, 6) padding.PaddingBottom = UDim.new(0, 6) padding.Parent = scroll local function makeRow() local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 0, 34) btn.BackgroundColor3 = Color3.fromRGB(22, 23, 33) btn.AutoButtonColor = false btn.Font = Enum.Font.GothamBold btn.TextSize = 13 btn.Parent = scroll local rc = Instance.new("UICorner") rc.CornerRadius = UDim.new(0, 5) rc.Parent = btn return btn end local function makeToggleRow(name, onChange) local btn = makeRow() local on = false setToggleVisual(btn, name, on) btn.MouseButton1Click:Connect(function() on = not on setToggleVisual(btn, name, on) onChange(on) end) toggleRefs[name] = { set = function(value) on = value setToggleVisual(btn, name, on) onChange(on) end } return btn end local function makeActionRow(name, onClick) local btn = makeRow() btn.Text = name btn.TextColor3 = Color3.fromRGB(220, 220, 230) btn.MouseButton1Click:Connect(onClick) return btn end makeToggleRow("Fly", setFly) makeToggleRow("Noclip", setNoclip) makeToggleRow("God Mode", applyGodMode) makeToggleRow("Invisible", applyInvisible) makeToggleRow("Infinite Jump", setInfiniteJump) makeToggleRow("Ragdoll", applyRagdoll) makeToggleRow("Glow", applyGlow) makeToggleRow("Rainbow", applyRainbow) makeActionRow("Respawn", respawnSelf) makeActionRow("Heal Me", healSelf) makeActionRow("Set Waypoint", function() setWaypoint("default") end) makeActionRow("Go To Waypoint", function() gotoWaypoint("default") end) local commandBox = Instance.new("TextBox") commandBox.Size = UDim2.new(1, -12, 0, 28) commandBox.Position = UDim2.new(0, 6, 1, -34) commandBox.BackgroundColor3 = Color3.fromRGB(10, 11, 18) commandBox.TextColor3 = Color3.fromRGB(200, 200, 210) commandBox.PlaceholderText = "Type :command here..." commandBox.PlaceholderColor3 = Color3.fromRGB(110, 110, 120) commandBox.Font = Enum.Font.Gotham commandBox.TextSize = 13 commandBox.ClearTextOnFocus = false commandBox.TextXAlignment = Enum.TextXAlignment.Left commandBox.Parent = frame local cbCorner = Instance.new("UICorner") cbCorner.CornerRadius = UDim.new(0, 5) cbCorner.Parent = commandBox local cbPad = Instance.new("UIPadding") cbPad.PaddingLeft = UDim.new(0, 8) cbPad.Parent = commandBox local function runCommand(raw) raw = raw:gsub("^:", ""):gsub("^%s+", ""):gsub("%s+$", "") if raw == "" then return end local parts = {} for word in raw:gmatch("%S+") do table.insert(parts, word) end local cmd = parts[1] and parts[1]:lower() local arg = parts[2] if cmd == "speed" or cmd == "walkspeed" then local v = tonumber(arg) if v then setWalkSpeed(v) end elseif cmd == "flyspeed" then local v = tonumber(arg) if v then setFlySpeed(v) end elseif cmd == "size" then local v = tonumber(arg) if v then applySize(v) end elseif cmd == "fly" then toggleRefs["Fly"].set(arg ~= "off") elseif cmd == "noclip" then toggleRefs["Noclip"].set(arg ~= "off") elseif cmd == "god" or cmd == "godmode" then toggleRefs["God Mode"].set(arg ~= "off") elseif cmd == "invisible" or cmd == "invis" then toggleRefs["Invisible"].set(arg ~= "off") elseif cmd == "infinitejump" or cmd == "infjump" then toggleRefs["Infinite Jump"].set(arg ~= "off") elseif cmd == "ragdoll" then toggleRefs["Ragdoll"].set(arg ~= "off") elseif cmd == "glow" then toggleRefs["Glow"].set(arg ~= "off") elseif cmd == "rainbow" then toggleRefs["Rainbow"].set(arg ~= "off") elseif cmd == "respawn" then respawnSelf() elseif cmd == "heal" then healSelf() elseif cmd == "setwp" then setWaypoint(arg or "default") elseif cmd == "gotowp" or cmd == "goto" then gotoWaypoint(arg or "default") end end commandBox.FocusLost:Connect(function(enterPressed) if enterPressed then runCommand(commandBox.Text) commandBox.Text = "" end end) end buildUI() print("[EKKO YIELD] Loaded for owner: " .. player.Name)