
KeylessUniversal

local Players = game:GetService("Players")
local player = Players.LocalPlayer
-------------------------------------------------
-- VARIABLES
-------------------------------------------------
local character
local humanoid
-------------------------------------------------
-- FUNCION PARA CONECTAR NUEVO PERSONAJE
-------------------------------------------------
local function setupCharacter(char)
character = char
humanoid = character:WaitForChild("Humanoid")
end
-- Conectar cuando aparece personaje
player.CharacterAdded:Connect(setupCharacter)
-- Si ya existe al iniciar
if player.Character then
setupCharacter(player.Character)
end
-------------------------------------------------
-- GUI
-------------------------------------------------
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "JumpButtonGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = player:WaitForChild("PlayerGui")
local button = Instance.new("TextButton")
button.Size = UDim2.new(0, 120, 0, 120)
button.Position = UDim2.new(0.5, -60, 0.7, 0)
button.BackgroundColor3 = Color3.fromRGB(0, 170, 255)
button.Text = "Jump"
button.TextScaled = true
button.TextColor3 = Color3.new(1,1,1)
button.Parent = screenGui
button.Active = true
button.AnchorPoint = Vector2.new(0.5,0.5)
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(1,0)
corner.Parent = button
-------------------------------------------------
-- FUNCION SALTO (NO EN EL AIRE)
-------------------------------------------------
local function jump()
if not humanoid then return end
-- Solo si está tocando el suelo
if humanoid.FloorMaterial ~= Enum.Material.Air then
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
end
button.MouseButton1Click:Connect(jump)
-------------------------------------------------
-- SISTEMA ARRASTRAR (PC + MÓVIL)
-------------------------------------------------
local dragging = false
local dragStart
local startPos
button.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = button.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
button.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch then
if dragging then
local delta = input.Position - dragStart
button.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end
end)No comments yet for this script.



