GIANT HAND
Key RequiredUniversal

GIANT HAND

Universal ScriptGAMMERGAMMER 2.6K views 1.8K executesUpdated Jun 13, 2026
Unrated
00
Lua Script•224 lines (5468 chars)
local player = game.Players.LocalPlayer

local function setup(char)
	local humanoid = char:WaitForChild("Humanoid")
	local animator = humanoid:WaitForChild("Animator")

	-- stop default animate script
	local animate = char:FindFirstChild("Animate")
	if animate then
		animate.Disabled = true
	end

	-- stop all existing tracks
	for _, track in ipairs(humanoid:GetPlayingAnimationTracks()) do
		track:Stop()
	end

	-- animation IDs
	local IDLE = "rbxassetid://115339997830808"
	local WALK = "rbxassetid://126540738694429"
	local RUN = "rbxassetid://126540738694429"

	-- load animations ONCE
	local idleAnim = Instance.new("Animation")
	idleAnim.AnimationId = IDLE
	local idleTrack = animator:LoadAnimation(idleAnim)
	idleTrack.Looped = true

	local walkAnim = Instance.new("Animation")
	walkAnim.AnimationId = WALK
	local walkTrack = animator:LoadAnimation(walkAnim)
	walkTrack.Looped = true

	local runAnim = Instance.new("Animation")
	runAnim.AnimationId = RUN
	local runTrack = animator:LoadAnimation(runAnim)
	runTrack.Looped = true

	local current = nil

	local function play(track)
		if current == track then return end

		if current then
			current:Stop()
		end

		current = track
		current:Play()
	end

	humanoid.Running:Connect(function(speed)
		if speed < 1 then
			play(idleTrack)
		elseif speed < 16 then
			play(walkTrack)
		else
			play(runTrack)
		end
	end)

	play(idleTrack)
end

player.CharacterAdded:Connect(setup)
if player.Character then
	setup(player.Character)
end



local player = game.Players.LocalPlayer

local gui = Instance.new("ScreenGui")
gui.Name = "CombatGui"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")

local player = game.Players.LocalPlayer

local animations = {
	WAVE = "rbxassetid://YOUR_WAVE_ID",
	CLICK = "rbxassetid://YOUR_CLICK_ID",
	SLAM = "rbxassetid://YOUR_SLAM_ID"
}

local currentTrack

local function playAnimation(animId)
	local character = player.Character
	if not character then return end

	local humanoid = character:FindFirstChild("Humanoid")
	if not humanoid then return end

	-- Stop previous emote only
	if currentTrack then
		currentTrack:Stop()
		currentTrack:Destroy()
	end

	local animation = Instance.new("Animation")
	animation.AnimationId = animId

	currentTrack = humanoid:LoadAnimation(animation)
	currentTrack.Priority = Enum.AnimationPriority.Action4
	currentTrack.Looped = true
	currentTrack:Play()
end

local gui = Instance.new("ScreenGui")
gui.Name = "EmoteGui"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")

local frame = Instance.new("Frame")
frame.Size = UDim2.new(0,170,0,190)
frame.Position = UDim2.new(1,-190,0.5,-140) -- higher on right side
frame.BackgroundColor3 = Color3.fromRGB(20,20,20)
frame.BorderSizePixel = 2
frame.BorderColor3 = Color3.fromRGB(255,0,0)
frame.Parent = gui

local corner = Instance.new("UICorner")
corner.Parent = frame

local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0,10)
layout.HorizontalAlignment = Enum.HorizontalAlignment.Center
layout.VerticalAlignment = Enum.VerticalAlignment.Center
layout.Parent = frame

for name, id in pairs(animations) do
	local button = Instance.new("TextButton")
	button.Size = UDim2.new(0,150,0,45)
	button.Text = name
	button.TextScaled = true
	button.BackgroundColor3 = Color3.fromRGB(140,0,0)
	button.TextColor3 = Color3.new(1,1,1)
	button.Parent = frame

	local buttonCorner = Instance.new("UICorner")
	buttonCorner.Parent = button

	button.MouseButton1Click:Connect(function()
		playAnimation(id)
	end)
end

local player = game.Players.LocalPlayer

local animations = {
	WAVE = "rbxassetid://77304386644418",
	FLICK  = "rbxassetid://88992279344579",
	SLAM = "rbxassetid://80401959620185"
}

local currentTrack
local gui = Instance.new("ScreenGui")
gui.Name = "Emotes"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")

local frame = Instance.new("Frame")
frame.Size = UDim2.new(0,180,0,200)
frame.Position = UDim2.new(1,-200,0.5,-150)
frame.BackgroundColor3 = Color3.fromRGB(15,15,15)
frame.BorderSizePixel = 2
frame.BorderColor3 = Color3.fromRGB(255,0,0)
frame.Parent = gui

Instance.new("UICorner", frame).CornerRadius = UDim.new(0,10)

local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0,10)
layout.HorizontalAlignment = Enum.HorizontalAlignment.Center
layout.VerticalAlignment = Enum.VerticalAlignment.Center
layout.Parent = frame

local function playEmote(animId)
	local character = player.Character
	if not character then return end

	local humanoid = character:FindFirstChildOfClass("Humanoid")
	if not humanoid then return end

	if currentTrack then
		currentTrack:Stop()
		currentTrack:Destroy()
		currentTrack = nil
	end

	local animation = Instance.new("Animation")
	animation.AnimationId = animId

	local track = humanoid:LoadAnimation(animation)
	track.Priority = Enum.AnimationPriority.Action4
	track.Looped = false

	currentTrack = track
	track:Play()

	track.Stopped:Connect(function()
		if currentTrack == track then
			currentTrack = nil
		end
	end)
end

for _, name in ipairs({"WAVE","FLICK","SLAM"}) do
	local button = Instance.new("TextButton")
	button.Size = UDim2.new(0,160,0,45)
	button.BackgroundColor3 = Color3.fromRGB(170,0,0)
	button.TextColor3 = Color3.new(1,1,1)
	button.TextScaled = true
	button.Text = name
	button.Parent = frame

	Instance.new("UICorner", button).CornerRadius = UDim.new(0,8)

	button.MouseButton1Click:Connect(function()
		playEmote(animations[name])
	end)
end

Features & Information

Made by 000 FE (Animations aren't mine)

Community Comments (3)

GAMMERGAMMERJun 22, 2026

Fuccck u niiga

Replying to @GAMMER
oskaremailshortoskaremailshortJul 5, 2026

@GAMMER can you please put this into a load string because I have trouble copy pasting this.

Replying to @oskaremailshort
GAMMERGAMMERJul 7, 2026(edited)

@oskaremailshort why what happened?

More Scripts for Universal Scripts