
KeylessUniversal

-- LocalScript (colocar en StarterGui)
-- Valk_X8 UI v0.1
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- Helpers
local function HSV(h,s,v) return Color3.fromHSV(h%1, math.clamp(s,0,1), math.clamp(v,0,1)) end
-- Root ScreenGui
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "ValkX8_GUI"
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui
-- MAIN container (holds buttons)
local mainContainerOuter = Instance.new("Frame")
mainContainerOuter.Name = "MainOuter"
mainContainerOuter.AnchorPoint = Vector2.new(0,0)
mainContainerOuter.Position = UDim2.new(0, 0, 0, 10)
mainContainerOuter.Size = UDim2.new(0, 1000, 0, 260) -- ancho grande para filas horizontales
mainContainerOuter.BackgroundTransparency = 1
mainContainerOuter.Parent = screenGui
-- function to create a rainbow-border framed element (outer border animates)
local function createRainbowFrame(parent, pos, size, cornerRadius)
local outer = Instance.new("Frame")
outer.AnchorPoint = Vector2.new(0,0)
outer.Position = pos
outer.Size = size
outer.BackgroundColor3 = HSV(0,1,1)
outer.BorderSizePixel = 0
outer.Parent = parent
local uic = Instance.new("UICorner", outer)
uic.CornerRadius = cornerRadius or UDim.new(0,0)
local inner = Instance.new("Frame")
inner.Size = UDim2.new(1, -4, 1, -4)
inner.Position = UDim2.new(0, 2, 0, 2)
inner.BackgroundColor3 = Color3.new(0,0,0)
inner.BorderSizePixel = 0
inner.Parent = outer
Instance.new("UICorner", inner).CornerRadius = cornerRadius or UDim.new(0,0)
return outer, inner
end
-- animate rainbow color for a frame (cycles hue)
local function animateRainbow(frame, speed)
speed = speed or 0.1
local hue = 0
-- store a connection to stop later if needed
local conn
conn = RunService.Heartbeat:Connect(function(dt)
if not frame.Parent then
conn:Disconnect()
return
end
hue = hue + dt * speed
frame.BackgroundColor3 = HSV(hue, 1, 1)
end)
return conn
end
-- Create button factory (black inner + rainbow border)
local function createButton(parent, name, pos, size, onClick)
local outer, inner = createRainbowFrame(parent, pos, size, UDim.new(0,0.15))
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1,0,1,0)
btn.Position = UDim2.new(0,0,0,0)
btn.Text = name
btn.TextColor3 = Color3.new(1,1,1)
btn.BackgroundTransparency = 1
btn.BorderSizePixel = 0
btn.Font = Enum.Font.SourceSansBold
btn.TextScaled = true
btn.Parent = inner
btn.MouseButton1Click:Connect(function()
pcall(onClick)
end)
-- animate the outer border
animateRainbow(outer, 0.6)
return btn, outer, inner
end
-- Ensure character/humanoid refs update on respawn
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:FindFirstChildOfClass("Humanoid") or character:WaitForChild("Humanoid")
local rootPart = character:FindFirstChild("HumanoidRootPart") or character:WaitForChild("HumanoidRootPart")
player.CharacterAdded:Connect(function(char)
character = char
humanoid = char:WaitForChild("Humanoid")
rootPart = char:WaitForChild("HumanoidRootPart")
end)
-- BUTTON LAYOUT SETTINGS
local btnW, btnH = 32, 14 -- aún más compactos
local gapX, gapY = 6, 6
local perRow = 25 -- cuantos botones por fila (horizontalidad)
local startX, startY = 6, 6
-- Velocities (S1..S100)
local speedLabelYOffset = startY
for i = 1, 100 do
local idx = i - 1
local row = math.floor(idx / perRow)
local col = idx % perRow
local x = startX + (btnW + gapX) * col
local y = speedLabelYOffset + (btnH + gapY) * row
createButton(mainContainerOuter, "S"..i, UDim2.new(0, x, 0, y), UDim2.new(0, btnW, 0, btnH), function()
if humanoid and humanoid.Parent then
humanoid.WalkSpeed = i
end
end)
end
-- Jump buttons (J1..J100) placed debajo speeds with small separation
local jumpStartY = speedLabelYOffset + math.ceil(100 / perRow) * (btnH + gapY) + 10
for i = 1, 100 do
local idx = i - 1
local row = math.floor(idx / perRow)
local col = idx % perRow
local x = startX + (btnW + gapX) * col
local y = jumpStartY + (btnH + gapY) * row
createButton(mainContainerOuter, "J"..i, UDim2.new(0, x, 0, y), UDim2.new(0, btnW, 0, btnH), function()
if humanoid and humanoid.Parent then
-- En Roblox moderno JumpPower puede usarse o JumpHeight; usamos JumpPower por compatibilidad
pcall(function() humanoid.JumpPower = i end)
pcall(function() humanoid.JumpHeight = nil end)
end
end)
end
-- Special buttons area (fly, noclip, morir) to the right of the main block
local specialX = startX + (btnW + gapX) * (perRow + 1)
local specialY = startY
-- Fly
local flying = false
local bv = nil
local flySpeed = 80
createButton(mainContainerOuter, "Fly", UDim2.new(0, specialX, 0, specialY), UDim2.new(0, 64, 0, 20), function()
flying = not flying
if flying then
if rootPart then
bv = Instance.new("BodyVelocity")
bv.MaxForce = Vector3.new(1e5,1e5,1e5)
bv.Velocity = Vector3.new(0,0,0)
bv.Parent = rootPart
end
else
if bv and bv.Parent then bv:Destroy() end
bv = nil
end
end)
-- Noclip
local noclip = false
createButton(mainContainerOuter, "Noclip", UDim2.new(0, specialX, 0, specialY + 26), UDim2.new(0, 64, 0, 20), function()
noclip = not noclip
end)
-- Morir
createButton(mainContainerOuter, "Morir", UDim2.new(0, specialX, 0, specialY + 52), UDim2.new(0, 64, 0, 20), function()
if humanoid and humanoid.Parent then
humanoid.Health = 0
end
end)
-- Fly movement handling
local UserInputService = game:GetService("UserInputService")
RunService.RenderStepped:Connect(function(dt)
if flying and bv and rootPart and workspace.CurrentCamera then
local cam = workspace.CurrentCamera
local move = Vector3.new()
if UserInputService:IsKeyDown(Enum.KeyCode.W) then move = move + cam.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then move = move - cam.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then move = move - cam.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then move = move + cam.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then move = move + Vector3.new(0,1,0) end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then move = move - Vector3.new(0,1,0) end
if move.Magnitude > 0.01 then
bv.Velocity = move.Unit * flySpeed
else
bv.Velocity = Vector3.new(0,0,0)
end
end
end)
-- Noclip handling
RunService.Stepped:Connect(function()
if character and character.Parent then
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = not noclip
end
end
end
end)
-- CENTER TITLE "Valk_X8 9997 V0.1"
local titleOuter, titleInner = createRainbowFrame(screenGui, UDim2.new(0.5, -180, 0.5, -30), UDim2.new(0, 360, 0, 60), UDim.new(0,0.2))
local titleLabel = Instance.new("TextLabel", titleInner)
titleLabel.Size = UDim2.new(1,0,1,0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Valk_X8 9997 V0.1"
titleLabel.TextColor3 = Color3.new(1,1,1)
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextScaled = true
titleLabel.TextStrokeTransparency = 0.6
titleLabel.Parent = titleInner
animateRainbow(titleOuter, 0.25)
-- BOTTOM-LEFT toggle circle (black inside, rainbow border). Minimiza/Restaurar GUI
local toggleOuter, toggleInner = createRainbowFrame(screenGui, UDim2.new(0, 10, 1, -60), UDim2.new(0, 48, 0, 48), UDim.new(1,0))
local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(1,1,1,1)
toggleBtn.Position = UDim2.new(0,0,0,0)
toggleBtn.BackgroundTransparency = 1
toggleBtn.Text = ""
toggleBtn.Parent = toggleInner
local minimized = false
local function setMinimized(m)
minimized = m
if minimized then
mainContainerOuter.Visible = false
titleOuter.Visible = false
-- shrink toggle to smaller circle to indicate minimized
tween = TweenService:Create(toggleOuter, TweenInfo.new(0.15), {Size = UDim2.new(0,40,0,40)})
tween:Play()
else
mainContainerOuter.Visible = true
titleOuter.Visible = true
tween = TweenService:Create(toggleOuter, TweenInfo.new(0.15), {Size = UDim2.new(0,48,0,48)})
tween:Play()
end
end
toggleBtn.MouseButton1Click:Connect(function()
setMinimized(not minimized)
end)
-- Make sure the GUI follows character respawn state (rebinds done above)
player.CharacterAdded:Connect(function()
-- ensure references update (handled earlier)
wait(0.5)
-- if flying was active, remove BV to avoid errors
if bv and bv.Parent then
bv:Destroy()
bv = nil
flying = false
end
end)
-- END OF SCRIPT-- Hacer draggable el título central
do
local dragging = false
local dragStart = Vector2.new()
local guiStart = Vector2.new()
local function updatePosition(input)
local delta = input.Position - dragStart
titleOuter.Position = UDim2.new(0, guiStart.X + delta.X, 0, guiStart.Y + delta.Y)
end
local mouse = player:GetMouse()
titleOuter.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
guiStart = Vector2.new(titleOuter.Position.X.Offset, titleOuter.Position.Y.Offset)
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
titleOuter.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
updatePosition(input)
end
end)
-- También actualizar mientras se mueve el mouse (para smooth drag)
mouse.Move:Connect(function()
if dragging then
local delta = mouse.X - dragStart.X
local deltaY = mouse.Y - dragStart.Y
titleOuter.Position = UDim2.new(0, guiStart.X + delta, 0, guiStart.Y + deltaY)
end
end)
endNo comments yet for this script.



