-- LocalScript: Place this in StarterPlayer > StarterPlayerScripts -- SERVICES local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Lighting = game:GetService("Lighting") local RunService = game:GetService("RunService") -- PLAYER local player = Players.LocalPlayer -- REMOTE SETUP local remoteEvent = ReplicatedStorage:FindFirstChild("FE_GUI_Action") or Instance.new("RemoteEvent") remoteEvent.Name = "FE_GUI_Action" remoteEvent.Parent = ReplicatedStorage -- SERVER HANDLER (Runs on server using BindableEvent simulation) if RunService:IsServer() then local flyingPlayers = {} local function getRootPart(character) return character:FindFirstChild("HumanoidRootPart") or character:FindFirstChild("Torso") end remoteEvent.OnServerEvent:Connect(function(player, action) local char = player.Character if not char then return end local root = getRootPart(char) if not root then return end if action == "TeleportToSpawn" then root.CFrame = CFrame.new(0, 10, 0) elseif action == "PrintHello" then print(player.Name .. " clicked Hello!") elseif action == "ToggleFly" then if flyingPlayers[player] then local bv = root:FindFirstChild("BodyVelocity") if bv then bv:Destroy() end flyingPlayers[player] = nil else local bv = Instance.new("BodyVelocity") bv.Name = "BodyVelocity" bv.Velocity = Vector3.new(0, 50, 0) bv.MaxForce = Vector3.new(0, math.huge, 0) bv.P = 1250 bv.Parent = root flyingPlayers[player] = true end elseif action == "ChangeSkybox" then for _, v in pairs(Lighting:GetChildren()) do if v:IsA("Sky") then v:Destroy() end end local sky = Instance.new("Sky") local skyId = "rbxassetid://113346754" sky.SkyboxBk = skyId sky.SkyboxDn = skyId sky.SkyboxFt = skyId sky.SkyboxLf = skyId sky.SkyboxRt = skyId sky.SkyboxUp = skyId sky.Name = "CustomSkybox" sky.Parent = Lighting end end) end -- GUI CREATION local gui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui")) gui.Name = "LY_GUIv3" local frame = Instance.new("Frame", gui) frame.Size = UDim2.new(0, 300, 0, 280) frame.Position = UDim2.new(0.5, -150, 0.5, -140) frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true local title = Instance.new("TextLabel", frame) title.Text = "LY GUI v3 (FE Safe)" title.Size = UDim2.new(1, 0, 0, 40) title.BackgroundColor3 = Color3.fromRGB(20, 20, 20) title.TextColor3 = Color3.new(1, 1, 1) title.Font = Enum.Font.SourceSansBold title.TextSize = 20 -- BUTTON FUNCTION local function createButton(name, posY, callback) local btn = Instance.new("TextButton", frame) btn.Text = name btn.Size = UDim2.new(1, -20, 0, 35) btn.Position = UDim2.new(0, 10, 0, posY) btn.BackgroundColor3 = Color3.fromRGB(50, 50, 50) btn.TextColor3 = Color3.new(1, 1, 1) btn.Font = Enum.Font.SourceSans btn.TextSize = 18 btn.MouseButton1Click:Connect(callback) return btn end -- BUTTONS createButton("Teleport to Spawn", 50, function() remoteEvent:FireServer("TeleportToSpawn") end) createButton("Say Hello", 95, function() remoteEvent:FireServer("PrintHello") end) createButton("Toggle Fly (R6/R15)", 140, function() remoteEvent:FireServer("ToggleFly") end) createButton("Change Skybox", 185, function() remoteEvent:FireServer("ChangeSkybox") end) createButton("Close GUI", 230, function() gui:Destroy() end)