
Keyless

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local VirtualInputManager = game:GetService("VirtualInputManager")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
-- Cleanup previous instance
local GLOBAL_KEY = "SquareUnderScript"
if _G[GLOBAL_KEY] then
local old = _G[GLOBAL_KEY]
if old.part then old.part:Destroy() end
if old.gui then old.gui:Destroy() end
if old.connections then
for _, c in ipairs(old.connections) do pcall(c.Disconnect, c) end
end
end
_G[GLOBAL_KEY] = {}
local storage = _G[GLOBAL_KEY]
-- Animation IDs to detect
local TARGET_ANIM_IDS = {
105018679651616,
138386253518573,
99539252076343,
92343089184929,
109073770803138,
108438446017492,
78844120285210,
96153006014341,
75726689596677,
129086720270183,
89934284994477
}
local targetSet = {}
for _, id in ipairs(TARGET_ANIM_IDS) do targetSet[id] = true end
local COLOR = Color3.fromRGB(255, 0, 0)
local FIXED_HEIGHT = 0.6
local DEFAULT_SIZE = 24
local MIN_SIZE = 10
local MAX_SIZE = 80
local CHECK_INTERVAL = 0.3
local currentSize = DEFAULT_SIZE
local autoQEnabled = false
local logEnabled = false
-- Create square under feet
local part = Instance.new("Part")
part.Name = "SquareUnder"
part.Shape = Enum.PartType.Block
part.Size = Vector3.new(currentSize, FIXED_HEIGHT, currentSize)
part.Color = COLOR
part.Transparency = 0.5
part.CanCollide = false
part.Anchored = true
part.Material = Enum.Material.Neon
part.Parent = workspace
local renderConn = RunService.RenderStepped:Connect(function()
if part.Parent and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
local hrp = LocalPlayer.Character.HumanoidRootPart
part.CFrame = hrp.CFrame * CFrame.new(0, -3.2, 0)
end
end)
storage.part = part
storage.connections = {renderConn}
-- GUI
local gui = Instance.new("ScreenGui")
gui.ResetOnSpawn = false
gui.Parent = LocalPlayer:WaitForChild("PlayerGui")
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 260, 0, 180)
frame.Position = UDim2.new(0.5, -130, 0.1, 0)
frame.BackgroundColor3 = Color3.fromRGB(30,30,40)
frame.Parent = gui
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1,0,0,30)
title.Text = "SQUARE UNDER FEET"
title.TextColor3 = Color3.new(1,0.3,0.3)
title.BackgroundTransparency = 1
title.Font = Enum.Font.GothamBold
title.TextSize = 18
title.Parent = frame
local sizeTxt = Instance.new("TextLabel")
sizeTxt.Size = UDim2.new(1,0,0,25)
sizeTxt.Position = UDim2.new(0,0,0,35)
sizeTxt.Text = "Size: " .. currentSize
sizeTxt.TextColor3 = Color3.new(1,1,1)
sizeTxt.BackgroundTransparency = 1
sizeTxt.TextSize = 16
sizeTxt.Parent = frame
local minus = Instance.new("TextButton")
minus.Size = UDim2.new(0,50,0,30)
minus.Position = UDim2.new(0.1,0,0,65)
minus.Text = "-"
minus.BackgroundColor3 = Color3.fromRGB(150,0,0)
minus.TextColor3 = Color3.new(1,1,1)
minus.TextSize = 22
minus.Parent = frame
local plus = Instance.new("TextButton")
plus.Size = UDim2.new(0,50,0,30)
plus.Position = UDim2.new(0.7,0,0,65)
plus.Text = "+"
plus.BackgroundColor3 = Color3.fromRGB(0,150,0)
plus.TextColor3 = Color3.new(1,1,1)
plus.TextSize = 22
plus.Parent = frame
local qBtn = Instance.new("TextButton")
qBtn.Size = UDim2.new(0.8,0,0,35)
qBtn.Position = UDim2.new(0.1,0,0,100)
qBtn.Text = "AUTO Q: OFF"
qBtn.BackgroundColor3 = Color3.fromRGB(80,80,80)
qBtn.TextColor3 = Color3.new(1,1,1)
qBtn.TextSize = 16
qBtn.Parent = frame
local logBtn = Instance.new("TextButton")
logBtn.Size = UDim2.new(0.8,0,0,35)
logBtn.Position = UDim2.new(0.1,0,0,140)
logBtn.Text = "ANIMATION LOG: OFF"
logBtn.BackgroundColor3 = Color3.fromRGB(80,80,80)
logBtn.TextColor3 = Color3.new(1,1,1)
logBtn.TextSize = 16
logBtn.Parent = frame
minus.MouseButton1Click:Connect(function()
currentSize = math.max(MIN_SIZE, currentSize - 4)
sizeTxt.Text = "Size: " .. currentSize
part.Size = Vector3.new(currentSize, FIXED_HEIGHT, currentSize)
end)
plus.MouseButton1Click:Connect(function()
currentSize = math.min(MAX_SIZE, currentSize + 4)
sizeTxt.Text = "Size: " .. currentSize
part.Size = Vector3.new(currentSize, FIXED_HEIGHT, currentSize)
end)
qBtn.MouseButton1Click:Connect(function()
autoQEnabled = not autoQEnabled
qBtn.Text = "AUTO Q: " .. (autoQEnabled and "ON" or "OFF")
qBtn.BackgroundColor3 = autoQEnabled and Color3.fromRGB(0,180,0) or Color3.fromRGB(80,80,80)
end)
logBtn.MouseButton1Click:Connect(function()
logEnabled = not logEnabled
logBtn.Text = "ANIMATION LOG: " .. (logEnabled and "ON" or "OFF")
logBtn.BackgroundColor3 = logEnabled and Color3.fromRGB(0,120,255) or Color3.fromRGB(80,80,80)
end)
storage.gui = gui
-- Reliable Q press
local function pressQ()
VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Q, false, game)
task.wait(0.04)
VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Q, false, game)
pcall(function()
local input = {
KeyCode = Enum.KeyCode.Q,
UserInputType = Enum.UserInputType.Keyboard,
UserInputState = Enum.UserInputState.Begin
}
firesignal(UserInputService.InputBegan, input, false)
task.wait(0.04)
input.UserInputState = Enum.UserInputState.End
firesignal(UserInputService.InputEnded, input, false)
end)
print("Q PRESSED")
end
-- Detection loop (works after respawn)
spawn(function()
while true do
if part.Parent then
local half = currentSize / 2
local pos = part.Position
for _, model in ipairs(workspace:GetChildren()) do
if model:IsA("Model") and model ~= LocalPlayer.Character then
local root = model:FindFirstChild("HumanoidRootPart") or model.PrimaryPart
if root then
local dx = math.abs(root.Position.X - pos.X)
local dz = math.abs(root.Position.Z - pos.Z)
if dx < half and dz < half and math.abs(root.Position.Y - pos.Y) < 6 then
local controller = model:FindFirstChildOfClass("Humanoid") or model:FindFirstChild("AnimationController")
if controller then
local animator = controller:FindFirstChild("Animator") or controller
for _, track in ipairs(animator:GetPlayingAnimationTracks()) do
if track.IsPlaying and track.Animation then
local id = tonumber(track.Animation.AnimationId:match("%d+"))
if id and targetSet[id] and autoQEnabled then
print("Q TRIGGERED → ID: " .. id .. " (" .. model.Name .. ")")
pressQ()
task.wait(0.3)
break
end
end
end
end
end
end
end
end
end
task.wait(CHECK_INTERVAL)
end
end)
-- Handle respawns for all players (including NPCs)
local function hookCharacter(character)
local humanoid = character:WaitForChild("Humanoid", 5)
if not humanoid then return end
-- Re-hook animator after respawn
local animator = humanoid:WaitForChild("Animator", 5)
if animator then
-- You can add extra logic here if needed
print("Animator re-hooked for: " .. character.Name)
end
end
-- Hook all existing characters
for _, player in ipairs(Players:GetPlayers()) do
if player.Character then
hookCharacter(player.Character)
end
player.CharacterAdded:Connect(hookCharacter)
end
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(hookCharacter)
end)
print("Script loaded. Use AUTO Q toggle to enable.")
nope not at all
this is *
Dont work