make an animation play while the gui is visible, then go back to normal when its not visible
set walkspeed to 0 then back to 16 when its not visible
The Script:
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:FindFirstChildOfClass("Animator")
local loadAnim
if animator then
loadAnim = animator:LoadAnimation(script.Animation)
loadAnim.Priority = Enum.AnimationPriority.Idle
loadAnim.Looped = true
repeat
loadAnim:Play()
wait()
until loadAnim.IsPlaying == true
end
script.Parent.Frame:GetPropertyChangedSignal("Visible"):Connect(function()
if script.Parent.Frame.Visible == false then
if loadAnim then
loadAnim:Stop()
end
end
end)
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:FindFirstChildOfClass("Animator")
local loadAnim
function playAnim()
if animator then
loadAnim = animator:LoadAnimation(script.Animation)
loadAnim.Priority = Enum.AnimationPriority.Idle
loadAnim.Looped = true
repeat
loadAnim:Play()
humanoid.WalkSpeed = 0
wait()
until loadAnim.IsPlaying == true and humanoid.WalkSpeed == 0
end
end
playAnim()
script.Parent.Frame:GetPropertyChangedSignal("Visible"):Connect(function()
if script.Parent.Frame.Visible == true then
playAnim()
elseif script.Parent.Frame.Visible == false then
if loadAnim then
loadAnim:Stop()
repeat
humanoid.WalkSpeed = 16
wait()
until humanoid.WalkSpeed == 16
end
end
end)