
KeylessUniversal

--[[
Roblox Executor Side Menu Script
Features:
- Toggleable side menu
- Executor: Input and execute Lua code
- X-ray: See player names, distance, and health through walls
- Credits: Display script creators
]]
-- SERVICES
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local CoreGui = game:GetService("CoreGui") -- Using CoreGui for executor compatibility
-- LOCAL PLAYER
local LocalPlayer = Players.LocalPlayer
-- GUI SETUP
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "ExecutorSideMenu"
ScreenGui.Parent = CoreGui -- Parent to CoreGui for better executor reliability
-- MAIN MENU FRAME
local MenuFrame = Instance.new("Frame")
MenuFrame.Name = "MenuFrame"
MenuFrame.Size = UDim2.new(0, 350, 1, 0) -- Width: 350px, Full Height
MenuFrame.Position = UDim2.new(0, -MenuFrame.Size.X.Offset, 0, 0) -- Initially off-screen to the left
MenuFrame.AnchorPoint = Vector2.new(0, 0) -- Anchor at top-left
MenuFrame.BackgroundColor3 = Color3.fromRGB(0,0,0)
MenuFrame.BackgroundTransparency = 0.1
MenuFrame.BorderSizePixel = 0
MenuFrame.Parent = ScreenGui
-- UI Corner for aesthetics
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 8)
UICorner.Parent = MenuFrame
-- UI STROKE for aesthetics
local UIStroke = Instance.new("UIStroke")
UIStroke.Color = Color3.fromRGB(255,100,4)
UIStroke.Thickness = 1
UIStroke.Parent = MenuFrame
-- MENU HEADER
local HeaderLabel = Instance.new("TextLabel")
HeaderLabel.Name = "Header"
HeaderLabel.Size = UDim2.new(1, 0, 0, 40)
HeaderLabel.Text = "ChipGUI"
HeaderLabel.Font = Enum.Font.SourceSansBold
HeaderLabel.TextSize = 24
HeaderLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
HeaderLabel.BackgroundTransparency = 1
HeaderLabel.Parent = MenuFrame
-- CONTENT FRAME (where sub-menus will be displayed)
local ContentFrame = Instance.new("Frame")
ContentFrame.Name = "ContentFrame"
ContentFrame.Size = UDim2.new(1, -120, 1, -40) -- Adjusted for buttons and header
ContentFrame.Position = UDim2.new(0, 120, 0, 40)
ContentFrame.BackgroundColor3 = Color3.fromRGB(0,0,0)
ContentFrame.BackgroundTransparency = 0.2
ContentFrame.BorderSizePixel = 0
ContentFrame.Parent = MenuFrame
local ContentUICorner = Instance.new("UICorner")
ContentUICorner.CornerRadius = UDim.new(0, 8)
ContentUICorner.Parent = ContentFrame
-- BUTTONS CONTAINER
local ButtonContainer = Instance.new("Frame")
ButtonContainer.Name = "ButtonContainer"
ButtonContainer.Size = UDim2.new(0, 120, 1, -40) -- Fixed width for buttons
ButtonContainer.Position = UDim2.new(0, 0, 0, 40)
ButtonContainer.BackgroundColor3 = Color3.fromRGB(255,100,4)
ButtonContainer.BackgroundTransparency = 0.1
ButtonContainer.BorderSizePixel = 0
ButtonContainer.Parent = MenuFrame
local ButtonListLayout = Instance.new("UIListLayout")
ButtonListLayout.FillDirection = Enum.FillDirection.Vertical
ButtonListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
ButtonListLayout.Padding = UDim.new(0, 5)
ButtonListLayout.Parent = ButtonContainer
-- TOGGLE BUTTON (to open/close the menu)
local ToggleButton = Instance.new("TextButton")
ToggleButton.Name = "ToggleButton"
ToggleButton.Size = UDim2.new(0, 100, 0, 40)
ToggleButton.Position = UDim2.new(0, 5, 0.5, -20) -- Positioned fixed on the left side
ToggleButton.Text = "Toggle Menu"
ToggleButton.Font = Enum.Font.SourceSansBold
ToggleButton.TextSize = 18
ToggleButton.TextColor3 = Color3.fromRGB(255, 255, 255)
ToggleButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
ToggleButton.Parent = ScreenGui
local ToggleUICorner = Instance.new("UICorner")
ToggleUICorner.CornerRadius = UDim.new(0, 8)
ToggleUICorner.Parent = ToggleButton
local ToggleUIStroke = Instance.new("UIStroke")
ToggleUIStroke.Color = Color3.fromRGB(90,90,90)
ToggleUIStroke.Thickness = 1
ToggleUIStroke.Parent = ToggleButton
-- GLOBAL VARIABLES
local menuOpen = false
local currentContent = nil
local xrayEnabled = false
local activeXRayBillboards = {} -- Table to hold active billboard GUIs for X-ray
-- TWEEN INFO for menu animation
local tweenInfoIn = TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local tweenInfoOut = TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.In)
-- HELPER FUNCTION TO CREATE MENU BUTTONS
local function createMenuButton(name, text)
local button = Instance.new("TextButton")
button.Name = name .. "Button"
button.Size = UDim2.new(0.9, 0, 0, 35) -- Relative width, fixed height
button.Text = text
button.Font = Enum.Font.SourceSans
button.TextSize = 16
button.TextColor3 = Color3.fromRGB(200, 200, 200)
button.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
button.Parent = ButtonContainer
local buttonUICorner = Instance.new("UICorner")
buttonUICorner.CornerRadius = UDim.new(0, 5)
buttonUICorner.Parent = button
return button
end
-- HELPER FUNCTION TO SHOW SPECIFIC CONTENT
local function showContent(contentFrame)
if currentContent then
currentContent.Visible = false
end
contentFrame.Visible = true
currentContent = contentFrame
end
-- ====================================================================================================
-- 1. EXECUTOR TAB
-- ====================================================================================================
local ExecutorContent = Instance.new("Frame")
ExecutorContent.Name = "ExecutorContent"
ExecutorContent.Size = UDim2.new(1, 0, 1, 0)
ExecutorContent.BackgroundTransparency = 1
ExecutorContent.Visible = false
ExecutorContent.Parent = ContentFrame
local ExecutorLayout = Instance.new("UIListLayout")
ExecutorLayout.FillDirection = Enum.FillDirection.Vertical
ExecutorLayout.Padding = UDim.new(0, 10)
ExecutorLayout.Parent = ExecutorContent
local ExecutorTextBox = Instance.new("TextBox")
ExecutorTextBox.Name = "ScriptInput"
ExecutorTextBox.Size = UDim2.new(1, 0, 0.8, 0)
ExecutorTextBox.MultiLine = true
ExecutorTextBox.TextWrapped = true
ExecutorTextBox.PlaceholderText = "Enter Lua code here..."
ExecutorTextBox.Text = ""
ExecutorTextBox.Font = Enum.Font.Code
ExecutorTextBox.TextSize = 14
ExecutorTextBox.TextColor3 = Color3.fromRGB(255, 255, 255)
ExecutorTextBox.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
ExecutorTextBox.TextXAlignment = Enum.TextXAlignment.Left
ExecutorTextBox.TextYAlignment = Enum.TextYAlignment.Top
ExecutorTextBox.ClearTextOnFocus = false
ExecutorTextBox.Parent = ExecutorContent
local ExecuteButton = Instance.new("TextButton")
ExecuteButton.Name = "ExecuteButton"
ExecuteButton.Size = UDim2.new(1, 0, 0.2, -10) -- Adjust height to fit with padding
ExecuteButton.Text = "Execute Script"
ExecuteButton.Font = Enum.Font.SourceSansBold
ExecuteButton.TextSize = 20
ExecuteButton.TextColor3 = Color3.fromRGB(255, 255, 255)
ExecuteButton.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
ExecuteButton.Parent = ExecutorContent
local ExecutorButton = createMenuButton("Executor", "Executor")
ExecuteButton.MouseButton1Click:Connect(function()
local code = ExecutorTextBox.Text
if code ~= "" then
local success, err = pcall(function()
-- For security, actual production environments should avoid loadstring with user input.
-- However, for executor scripts, loadstring is the primary method.
local func = loadstring(code)
if func then
func()
else
warn("Failed to load string: " .. tostring(err))
end
end)
if not success then
warn("Script Execution Error: " .. tostring(err))
-- Optionally, display error in a debug label or print to console
end
end
end)
-- ====================================================================================================
-- 2. X-RAY TAB
-- ====================================================================================================
local XRayContent = Instance.new("Frame")
XRayContent.Name = "XRayContent"
XRayContent.Size = UDim2.new(1, 0, 1, 0)
XRayContent.BackgroundTransparency = 1
XRayContent.Visible = false
XRayContent.Parent = ContentFrame
local XRayLayout = Instance.new("UIListLayout")
XRayLayout.FillDirection = Enum.FillDirection.Vertical
XRayLayout.Padding = UDim.new(0, 10)
XRayLayout.Parent = XRayContent
local XRayToggleBtn = Instance.new("TextButton")
XRayToggleBtn.Name = "XRayToggleButton"
XRayToggleBtn.Size = UDim2.new(1, 0, 0, 40)
XRayToggleBtn.Text = "Toggle X-ray (OFF)"
XRayToggleBtn.Font = Enum.Font.SourceSansBold
XRayToggleBtn.TextSize = 20
XRayToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
XRayToggleBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) -- Red for OFF
XRayToggleBtn.Parent = XRayContent
local XRayButton = createMenuButton("XRay", "X-ray")
local function createBillboardTag(player, head)
local billboard = Instance.new("BillboardGui")
billboard.Name = "XRayTag-" .. player.Name
billboard.AlwaysOnTop = true
billboard.Size = UDim2.new(0, 150, 0, 60) -- Width 150, Height 60
billboard.StudsOffset = Vector3.new(0, 2, 0) -- Offset above head
billboard.Adornee = head
billboard.ZIndexBehavior = Enum.ZIndexBehavior.Sibling -- Render consistently
local UIAspectRatio = Instance.new("UIAspectRatioConstraint")
UIAspectRatio.AspectRatio = billboard.Size.X.Offset / billboard.Size.Y.Offset
UIAspectRatio.AspectType = Enum.AspectType.FitWithinMaxSize
UIAspectRatio.Parent = billboard
local containerFrame = Instance.new("Frame")
containerFrame.Name = "Container"
containerFrame.Size = UDim2.new(1, 0, 1, 0)
containerFrame.BackgroundTransparency = 0.8
containerFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
containerFrame.Parent = billboard
local nameLabel = Instance.new("TextLabel")
nameLabel.Name = "NameLabel"
nameLabel.Size = UDim2.new(1, 0, 0.33, 0)
nameLabel.Text = player.DisplayName or player.Name
nameLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
nameLabel.BackgroundTransparency = 1
nameLabel.TextScaled = true
nameLabel.Font = Enum.Font.SourceSansBold
nameLabel.Parent = containerFrame
local distanceLabel = Instance.new("TextLabel")
distanceLabel.Name = "DistanceLabel"
distanceLabel.Size = UDim2.new(1, 0, 0.33, 0)
distanceLabel.Position = UDim2.new(0, 0, 0.33, 0)
distanceLabel.Text = "Dist: Calculating..."
distanceLabel.TextColor3 = Color3.fromRGB(150, 200, 255)
distanceLabel.BackgroundTransparency = 1
distanceLabel.TextScaled = true
distanceLabel.Font = Enum.Font.SourceSans
distanceLabel.Parent = containerFrame
local healthLabel = Instance.new("TextLabel")
healthLabel.Name = "HealthLabel"
healthLabel.Size = UDim2.new(1, 0, 0.34, 0)
healthLabel.Position = UDim2.new(0, 0, 0.66, 0)
healthLabel.Text = "HP: ???/100"
healthLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
healthLabel.BackgroundTransparency = 1
healthLabel.TextScaled = true
healthLabel.Font = Enum.Font.SourceSans
healthLabel.Parent = containerFrame
billboard.Parent = head
activeXRayBillboards[player.UserId] = billboard
end
local function updateXRay()
if not xrayEnabled then return end
local localCharacter = LocalPlayer.Character
if not localCharacter then return end
local localHead = localCharacter:FindFirstChild("Head")
if not localHead then return end
local playersToProcess = {}
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("Humanoid") and player.Character:FindFirstChild("Head") then
playersToProcess[player.UserId] = player
end
end
-- Update existing or create new billboards
for userId, player in pairs(playersToProcess) do
local character = player.Character
local head = character:FindFirstChild("Head")
local humanoid = character:FindFirstChild("Humanoid")
if head and humanoid and humanoid.Health > 0 then
local billboard = activeXRayBillboards[userId]
if not billboard then
createBillboardTag(player, head)
billboard = activeXRayBillboards[userId]
end
if billboard then
local distance = (localHead.Position - head.Position).Magnitude
billboard.DistanceLabel.Text = string.format("Dist: %.1f studs", distance)
billboard.HealthLabel.Text = string.format("HP: %d/%d", math.floor(humanoid.Health), humanoid.MaxHealth)
-- Color health based on value
local healthRatio = humanoid.Health / humanoid.MaxHealth
billboard.HealthLabel.TextColor3 = Color3.fromRGB(
math.floor(255 * (1 - healthRatio)),
math.floor(255 * healthRatio),
0
)
end
else -- Player character died or removed, remove billboard
if activeXRayBillboards[userId] then
activeXRayBillboards[userId]:Destroy()
activeXRayBillboards[userId] = nil
end
end
end
-- Remove billboards for players who have left the game
for userId, billboard in pairs(activeXRayBillboards) do
if not playersToProcess[userId] then
billboard:Destroy()
activeXRayBillboards[userId] = nil
end
end
end
XRayToggleBtn.MouseButton1Click:Connect(function()
xrayEnabled = not xrayEnabled
if xrayEnabled then
XRayToggleBtn.Text = "Toggle X-ray (ON)"
XRayToggleBtn.BackgroundColor3 = Color3.fromRGB(50, 200, 50) -- Green for ON
-- Start continuous updates
RunService.RenderStepped:Connect(updateXRay)
else
XRayToggleBtn.Text = "Toggle X-ray (OFF)"
XRayToggleBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) -- Red for OFF
-- Clean up all existing billboards
for userId, billboard in pairs(activeXRayBillboards) do
billboard:Destroy()
activeXRayBillboards[userId] = nil
end
end
end)
-- Initial run to attach RenderStepped if X-ray is enabled (though it starts off)
RunService.RenderStepped:Connect(updateXRay)
-- ====================================================================================================
-- 3. CREDITS TAB
-- ====================================================================================================
local CreditsContent = Instance.new("Frame")
CreditsContent.Name = "CreditsContent"
CreditsContent.Size = UDim2.new(1, 0, 1, 0)
CreditsContent.BackgroundTransparency = 1
CreditsContent.Visible = false
CreditsContent.Parent = ContentFrame
local CreditsLabel = Instance.new("TextLabel")
CreditsLabel.Name = "CreditsLabel"
CreditsLabel.Size = UDim2.new(1, 0, 1, 0)
CreditsLabel.Text = "--- Script Credits ---\n\nScript by:\n\nCreator Name 1\n(Chip)\n\nCreator Name 2\n(XRay broken rn sorry)\n\n"
CreditsLabel.TextWrapped = true
CreditsLabel.Font = Enum.Font.SourceSans
CreditsLabel.TextSize = 18
CreditsLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
CreditsLabel.BackgroundTransparency = 1
CreditsLabel.Parent = CreditsContent
local CreditsButton = createMenuButton("Credits", "Credits")
-- ====================================================================================================
-- MAIN TOGGLE LOGIC
-- ====================================================================================================
ToggleButton.MouseButton1Click:Connect(function()
menuOpen = not menuOpen
if menuOpen then
-- Tween in from off-screen (left) to 0,0 position
local goal = {Position = UDim2.new(0, 0, 0, 0)}
local tween = TweenService:Create(MenuFrame, tweenInfoIn, goal)
tween:Play()
else
-- Tween out to off-screen (left) based on its width
local goal = {Position = UDim2.new(0, -MenuFrame.Size.X.Offset, 0, 0)}
local tween = TweenService:Create(MenuFrame, tweenInfoOut, goal)
tween:Play()
end
end)
-- ====================================================================================================
-- BUTTON CONNECTIONS
-- ====================================================================================================
ExecutorButton.MouseButton1Click:Connect(function()
showContent(ExecutorContent)
end)
XRayButton.MouseButton1Click:Connect(function()
showContent(XRayContent)
end)
CreditsButton.MouseButton1Click:Connect(function()
showContent(CreditsContent)
end)
-- Initial display: show the Executor tab by default when opened
showContent(ExecutorContent)No comments yet for this script.



