
Key Required VerifiedUniversal
![[UPDATE] Stalker Anims BETTER VERSION](https://cdn.kocakz.me/images/b03e8f68619987c0dfc0b136235923282b641ad4c4b5c76e9003b751607b5efc.webp)
-- Local Executor Script: Animation Toggle + Persistent Settings & Drag Toggle
local CoreGui = game:GetService("CoreGui")
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
---------------------------------------------------------
-- 1. ANIMATION SETS SETUP
---------------------------------------------------------
local isUsingSetA = true
local animSetA = {
idle = "rbxassetid://135419935358802",
walk = "rbxassetid://108287960442206"
}
local animSetB = {
idle = "rbxassetid://74530436512522",
walk = "rbxassetid://109671225388655"
}
local currentSet = animSetA
local walkTrack, idleTrack
local runningConnection
local function applyAnimations(character)
local humanoid = character:WaitForChild("Humanoid", 10)
if not humanoid then return end
humanoid.WalkSpeed = 24
if walkTrack then walkTrack:Stop() end
if idleTrack then idleTrack:Stop() end
if runningConnection then runningConnection:Disconnect() end
local walkAnim = Instance.new("Animation")
walkAnim.AnimationId = currentSet.walk
walkTrack = humanoid:LoadAnimation(walkAnim)
local idleAnim = Instance.new("Animation")
idleAnim.AnimationId = currentSet.idle
idleTrack = humanoid:LoadAnimation(idleAnim)
runningConnection = humanoid.Running:Connect(function(speed)
if speed > 0 then
idleTrack:Stop()
if not walkTrack.IsPlaying then walkTrack:Play() end
else
walkTrack:Stop()
if not idleTrack.IsPlaying then idleTrack:Play() end
end
end)
idleTrack:Play()
end
---------------------------------------------------------
-- 2. PERSISTENT GUI CREATION
---------------------------------------------------------
local parentContainer = CoreGui:FindFirstChild("RobloxGui") or player:WaitForChild("PlayerGui")
if parentContainer:FindFirstChild("AnimToggleGui") then
parentContainer.AnimToggleGui:Destroy()
end
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "AnimToggleGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = parentContainer
-- Toggle Animation Main Button
local animButton = Instance.new("TextButton")
animButton.Name = "ToggleAnimButton"
animButton.Size = UDim2.new(0, 120, 0, 40)
animButton.Position = UDim2.new(1, -130, 0.5, -20)
animButton.BackgroundColor3 = Color3.fromRGB(70, 70, 200)
animButton.TextColor3 = Color3.new(1, 1, 1)
animButton.Font = Enum.Font.GothamBold
animButton.TextSize = 14
animButton.Text = "Toggle Anim"
animButton.Active = true
animButton.Parent = screenGui
local animCorner = Instance.new("UICorner")
animCorner.CornerRadius = UDim.new(0, 8)
animCorner.Parent = animButton
---------------------------------------------------------
-- 3. SETTINGS MENU (⚙️ Top Right)
---------------------------------------------------------
local isDragEnabled = true
local settingsButton = Instance.new("TextButton")
settingsButton.Name = "SettingsButton"
settingsButton.Size = UDim2.new(0, 40, 0, 40)
settingsButton.Position = UDim2.new(1, -50, 0, 10)
settingsButton.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
settingsButton.TextColor3 = Color3.new(1, 1, 1)
settingsButton.TextSize = 20
settingsButton.Text = "⚙️"
settingsButton.Parent = screenGui
local setBtnCorner = Instance.new("UICorner")
setBtnCorner.CornerRadius = UDim.new(0, 8)
setBtnCorner.Parent = settingsButton
-- Settings Window Frame
local settingsFrame = Instance.new("Frame")
settingsFrame.Name = "SettingsFrame"
settingsFrame.Size = UDim2.new(0, 200, 0, 100)
settingsFrame.Position = UDim2.new(0.5, -100, 0.5, -50)
settingsFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
settingsFrame.Visible = false
settingsFrame.Parent = screenGui
local frameCorner = Instance.new("UICorner")
frameCorner.CornerRadius = UDim.new(0, 10)
frameCorner.Parent = settingsFrame
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, 0, 0, 30)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Settings"
titleLabel.TextColor3 = Color3.new(1, 1, 1)
titleLabel.TextSize = 16
titleLabel.Font = Enum.Font.GothamBold
titleLabel.Parent = settingsFrame
-- Button Drag Toggle Button Inside Settings
local toggleDragBtn = Instance.new("TextButton")
toggleDragBtn.Name = "ToggleDragButton"
toggleDragBtn.Size = UDim2.new(0.85, 0, 0, 35)
toggleDragBtn.Position = UDim2.new(0.075, 0, 0.45, 0)
toggleDragBtn.BackgroundColor3 = Color3.fromRGB(46, 204, 113)
toggleDragBtn.TextColor3 = Color3.new(1, 1, 1)
toggleDragBtn.Font = Enum.Font.GothamBold
toggleDragBtn.TextSize = 13
toggleDragBtn.Text = "Button Drag: ON"
toggleDragBtn.Parent = settingsFrame
local dragBtnCorner = Instance.new("UICorner")
dragBtnCorner.CornerRadius = UDim.new(0, 6)
dragBtnCorner.Parent = toggleDragBtn
---------------------------------------------------------
-- 4. BUTTON & DRAGGING LOGIC
---------------------------------------------------------
-- Open/Close Settings
settingsButton.MouseButton1Click:Connect(function()
settingsFrame.Visible = not settingsFrame.Visible
end)
-- Toggle Dragging Setting
toggleDragBtn.MouseButton1Click:Connect(function()
isDragEnabled = not isDragEnabled
if isDragEnabled then
toggleDragBtn.Text = "Button Drag: ON"
toggleDragBtn.BackgroundColor3 = Color3.fromRGB(46, 204, 113)
else
toggleDragBtn.Text = "Button Drag: OFF"
toggleDragBtn.BackgroundColor3 = Color3.fromRGB(231, 76, 60)
end
end)
-- Toggle Animation Event
local function toggleAnims()
isUsingSetA = not isUsingSetA
currentSet = isUsingSetA and animSetA or animSetB
if player.Character then
applyAnimations(player.Character)
end
end
animButton.MouseButton1Click:Connect(toggleAnims)
-- Generic Draggable Function
local function makeDraggable(guiObject)
local dragging = false
local dragInput, dragStart, startPos
guiObject.InputBegan:Connect(function(input)
if isDragEnabled and (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then
dragging = true
dragStart = input.Position
startPos = guiObject.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
guiObject.InputChanged:Connect(function(input)
if isDragEnabled and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging and isDragEnabled then
local delta = input.Position - dragStart
guiObject.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)
end
makeDraggable(animButton)
makeDraggable(settingsFrame)
---------------------------------------------------------
-- 5. SPAWN / RESPAWN LOGIC
---------------------------------------------------------
if player.Character then
task.spawn(function()
applyAnimations(player.Character)
end)
end
player.CharacterAdded:Connect(function(character)
task.spawn(function()
applyAnimations(character)
end)
end)



Bro it's easy to skidder pls make it with LOADSTRING and moonsec to protect it
@warrioroflua Yes because people are going to skid a *ing animation changer script you dullhead
fe?
This script was supposed to be a leak 😑
make it loadstring and moonsec
How do I even use MoonSec??
HOOOOOOOOOOOOLY GPT