
Key RequiredUniversal

--[[
AIR-WALK V5.2: CAMINO PERMANENTE + LIMPIEZA (SIN RESET)
--]]
local CONFIG = {
Dimensiones = { Tamano = Vector3.new(6, 0.6, 6) },
Propiedades = {
Material = Enum.Material.Neon,
Color = Color3.fromRGB(0, 255, 255),
TransparenciaInicial = 0.5,
},
AjusteY = 3.2
}
local Player = game.Players.LocalPlayer
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local SistemaActivo = false
local Minimizado = false
local AlturaDeseada = 0
local ultimaPlataforma = nil
local Character, Root
local Folder = workspace:FindFirstChild("AirWalk_Folder") or Instance.new("Folder", workspace)
Folder.Name = "AirWalk_Folder"
local function ActualizarReferencias()
Character = Player.Character or Player.CharacterAdded:Wait()
Root = Character:WaitForChild("HumanoidRootPart")
end
ActualizarReferencias()
Player.CharacterAdded:Connect(ActualizarReferencias)
-- --- INTERFAZ ---
local ScreenGui = Instance.new("ScreenGui", Player.PlayerGui)
ScreenGui.Name = "AirWalk_Fixed"
ScreenGui.ResetOnSpawn = false
ScreenGui.IgnoreGuiInset = true
local MainFrame = Instance.new("Frame", ScreenGui)
MainFrame.Size = UDim2.new(0, 160, 0, 220) -- Tamaño reducido al quitar un botón
MainFrame.Position = UDim2.new(0.5, -80, 0.5, -110)
MainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
MainFrame.BorderSizePixel = 0
MainFrame.ClipsDescendants = true
MainFrame.Active = true
Instance.new("UICorner", MainFrame)
local TitleBar = Instance.new("TextButton", MainFrame)
TitleBar.Size = UDim2.new(1, 0, 0, 35)
TitleBar.Text = " AIR WALK PRO"
TitleBar.TextColor3 = Color3.new(1, 1, 1)
TitleBar.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
TitleBar.TextXAlignment = Enum.TextXAlignment.Left
TitleBar.Font = Enum.Font.GothamBold
TitleBar.TextSize = 12
TitleBar.AutoButtonColor = false
Instance.new("UICorner", TitleBar)
local MiniBtn = Instance.new("TextButton", TitleBar)
MiniBtn.Size = UDim2.new(0, 30, 0, 30)
MiniBtn.Position = UDim2.new(1, -32, 0, 2)
MiniBtn.Text = "-"
MiniBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
MiniBtn.TextColor3 = Color3.new(1, 1, 1)
MiniBtn.Font = Enum.Font.GothamBold
Instance.new("UICorner", MiniBtn)
-- --- LÓGICA DE ARRASTRAR (FIJADA) ---
local dragging, dragInput, dragStart, startPos
local function update(input)
local delta = input.Position - dragStart
MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
TitleBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = MainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then dragging = false end
end)
end
end)
TitleBar.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and input == dragInput then update(input) end
end)
-- --- BOTONES ---
local ButtonContainer = Instance.new("Frame", MainFrame)
ButtonContainer.Size = UDim2.new(1, 0, 1, -35)
ButtonContainer.Position = UDim2.new(0, 0, 0, 35)
ButtonContainer.BackgroundTransparency = 1
local List = Instance.new("UIListLayout", ButtonContainer)
List.Padding = UDim.new(0, 5)
List.HorizontalAlignment = Enum.HorizontalAlignment.Center
Instance.new("UIPadding", ButtonContainer).PaddingTop = UDim.new(0, 10)
local function crearBoton(texto, color)
local btn = Instance.new("TextButton", ButtonContainer)
btn.Size = UDim2.new(0, 140, 0, 35) -- Un poco más altos para llenar mejor el espacio
btn.Text = texto
btn.BackgroundColor3 = color
btn.TextColor3 = Color3.new(1, 1, 1)
btn.Font = Enum.Font.GothamSemibold
btn.TextSize = 11
Instance.new("UICorner", btn)
return btn
end
local btnToggle = crearBoton("ESTADO: OFF", Color3.fromRGB(180, 50, 50))
local btnSubir = crearBoton("↑ SUBIR (Q)", Color3.fromRGB(40, 120, 180))
local btnBajar = crearBoton("↓ BAJAR (E)", Color3.fromRGB(130, 60, 160))
local btnClear = crearBoton("LIMPIAR CAMINO", Color3.fromRGB(200, 0, 0))
-- Minimizar
MiniBtn.MouseButton1Click:Connect(function()
Minimizado = not Minimizado
local targetSize = Minimizado and UDim2.new(0, 160, 0, 35) or UDim2.new(0, 160, 0, 220)
MiniBtn.Text = Minimizado and "+" or "-"
TweenService:Create(MainFrame, TweenInfo.new(0.3), {Size = targetSize}):Play()
end)
-- Lógica de Funciones
btnToggle.MouseButton1Click:Connect(function()
SistemaActivo = not SistemaActivo
btnToggle.Text = SistemaActivo and "ESTADO: ON" or "ESTADO: OFF"
btnToggle.BackgroundColor3 = SistemaActivo and Color3.fromRGB(40, 180, 100) or Color3.fromRGB(180, 50, 50)
if SistemaActivo then AlturaDeseada = Root.Position.Y - CONFIG.AjusteY end
end)
btnSubir.MouseButton1Click:Connect(function() AlturaDeseada = AlturaDeseada + 3 end)
btnBajar.MouseButton1Click:Connect(function() AlturaDeseada = AlturaDeseada - 3 end)
btnClear.MouseButton1Click:Connect(function()
Folder:ClearAllChildren()
ultimaPlataforma = nil
end)
-- Atajos
UserInputService.InputBegan:Connect(function(i, gpe)
if gpe then return end
if i.KeyCode == Enum.KeyCode.Q then AlturaDeseada = AlturaDeseada + 3
elseif i.KeyCode == Enum.KeyCode.E then AlturaDeseada = AlturaDeseada - 3 end
end)
-- Bucle de construcción
RunService.Heartbeat:Connect(function()
if not SistemaActivo or not Root then return end
local pos = Root.Position
local platformPos = Vector3.new(pos.X, AlturaDeseada, pos.Z)
if not ultimaPlataforma or (Vector2.new(pos.X, pos.Z) - Vector2.new(ultimaPlataforma.Position.X, ultimaPlataforma.Position.Z)).Magnitude > 3 then
local p = Instance.new("Part")
p.Size = CONFIG.Dimensiones.Tamano
p.Position = platformPos
p.Anchored = true
p.Material = CONFIG.Propiedades.Material
p.Color = CONFIG.Propiedades.Color
p.Transparency = CONFIG.Propiedades.TransparenciaInicial
p.Parent = Folder
ultimaPlataforma = p
end
end)No comments yet for this script.



