Animate script but its a ling (R15)

Run Settings
LanguageLua
Language Version
Run Command
--Converted with ttyyuu12345's model to script plugin v4 (Edit by ew_001) local function sandbox(var,func) local env = getfenv(func) local newenv = setmetatable({},{ __index = function(self,k) if k=="script" then return var else return env[k] end end, }) setfenv(func,newenv) return func end local cors = {} local arg = {...} local char = arg[1] local inst = {["mas"] = char} inst['Script0'] = Instance.new("Script") inst['BindableFunction1'] = Instance.new("BindableFunction") inst['NumberValue2'] = Instance.new("NumberValue") inst['StringValue3'] = Instance.new("StringValue") inst['Animation4'] = Instance.new("Animation") inst['StringValue5'] = Instance.new("StringValue") inst['Animation6'] = Instance.new("Animation") inst['StringValue7'] = Instance.new("StringValue") inst['Animation8'] = Instance.new("Animation") inst['NumberValue9'] = Instance.new("NumberValue") inst['Animation10'] = Instance.new("Animation") inst['NumberValue11'] = Instance.new("NumberValue") inst['Animation12'] = Instance.new("Animation") inst['NumberValue13'] = Instance.new("NumberValue") inst['StringValue14'] = Instance.new("StringValue") inst['Animation15'] = Instance.new("Animation") inst['NumberValue16'] = Instance.new("NumberValue") inst['Animation17'] = Instance.new("Animation") inst['NumberValue18'] = Instance.new("NumberValue") inst['Animation19'] = Instance.new("Animation") inst['NumberValue20'] = Instance.new("NumberValue") inst['StringValue21'] = Instance.new("StringValue") inst['Animation22'] = Instance.new("Animation") inst['NumberValue23'] = Instance.new("NumberValue") inst['Animation24'] = Instance.new("Animation") inst['NumberValue25'] = Instance.new("NumberValue") inst['Animation26'] = Instance.new("Animation") inst['NumberValue27'] = Instance.new("NumberValue") inst['StringValue28'] = Instance.new("StringValue") inst['Animation29'] = Instance.new("Animation") inst['StringValue30'] = Instance.new("StringValue") inst['Animation31'] = Instance.new("Animation") inst['NumberValue32'] = Instance.new("NumberValue") inst['Animation33'] = Instance.new("Animation") inst['NumberValue34'] = Instance.new("NumberValue") inst['StringValue35'] = Instance.new("StringValue") inst['Animation36'] = Instance.new("Animation") inst['StringValue37'] = Instance.new("StringValue") inst['Animation38'] = Instance.new("Animation") inst['StringValue39'] = Instance.new("StringValue") inst['Animation40'] = Instance.new("Animation") inst['StringValue41'] = Instance.new("StringValue") inst['Animation42'] = Instance.new("Animation") inst['StringValue43'] = Instance.new("StringValue") inst['Animation44'] = Instance.new("Animation") inst['StringValue45'] = Instance.new("StringValue") inst['Animation46'] = Instance.new("Animation") inst['StringValue47'] = Instance.new("StringValue") inst['Animation48'] = Instance.new("Animation") inst['StringValue49'] = Instance.new("StringValue") inst['Animation50'] = Instance.new("Animation") inst['StringValue51'] = Instance.new("StringValue") inst['Animation52'] = Instance.new("Animation") inst['StringValue53'] = Instance.new("StringValue") inst['Animation54'] = Instance.new("Animation") inst['StringValue55'] = Instance.new("StringValue") inst['Animation56'] = Instance.new("Animation") inst['StringValue57'] = Instance.new("StringValue") inst['Animation58'] = Instance.new("Animation") inst['Script0'].Name = "AnimateR15" inst['Script0'].Parent = inst['mas'] table.insert(cors,sandbox(inst['Script0'],function() local Character = script.Parent local Humanoid = Character:WaitForChild("Humanoid") local pose = "Standing" local userNoUpdateOnLoopSuccess, userNoUpdateOnLoopValue = pcall(function() return UserSettings():IsUserFeatureEnabled("UserNoUpdateOnLoop") end) local userNoUpdateOnLoop = userNoUpdateOnLoopSuccess and userNoUpdateOnLoopValue local userEmoteToRunThresholdChange do local success, value = pcall(function() return UserSettings():IsUserFeatureEnabled("UserEmoteToRunThresholdChange") end) userEmoteToRunThresholdChange = success and value end local userPlayEmoteByIdAnimTrackReturn do local success, value = pcall(function() return UserSettings():IsUserFeatureEnabled("UserPlayEmoteByIdAnimTrackReturn2") end) userPlayEmoteByIdAnimTrackReturn = success and value end local animateScriptEmoteHookFlagExists, animateScriptEmoteHookFlagEnabled = pcall(function() return UserSettings():IsUserFeatureEnabled("UserAnimateScriptEmoteHook") end) local FFlagAnimateScriptEmoteHook = animateScriptEmoteHookFlagExists and animateScriptEmoteHookFlagEnabled local AnimationSpeedDampeningObject = script:FindFirstChild("ScaleDampeningPercent") local HumanoidHipHeight = 2 local EMOTE_TRANSITION_TIME = 0.1 local currentAnim = "" local currentAnimInstance = nil local currentAnimTrack = nil local currentAnimKeyframeHandler = nil local currentAnimSpeed = 1.0 local runAnimTrack = nil local runAnimKeyframeHandler = nil local PreloadedAnims = {} local animTable = {} local animNames = { idle = { { id = "http://www.roblox.com/asset/?id=507766666", weight = 1 }, { id = "http://www.roblox.com/asset/?id=507766951", weight = 1 }, { id = "http://www.roblox.com/asset/?id=507766388", weight = 9 } }, walk = { { id = "http://www.roblox.com/asset/?id=507777826", weight = 10 } }, run = { { id = "http://www.roblox.com/asset/?id=507767714", weight = 10 } }, swim = { { id = "http://www.roblox.com/asset/?id=507784897", weight = 10 } }, swimidle = { { id = "http://www.roblox.com/asset/?id=507785072", weight = 10 } }, jump = { { id = "http://www.roblox.com/asset/?id=507765000", weight = 10 } }, fall = { { id = "http://www.roblox.com/asset/?id=507767968", weight = 10 } }, climb = { { id = "http://www.roblox.com/asset/?id=507765644", weight = 10 } }, sit = { { id = "http://www.roblox.com/asset/?id=2506281703", weight = 10 } }, toolnone = { { id = "http://www.roblox.com/asset/?id=507768375", weight = 10 } }, toolslash = { { id = "http://www.roblox.com/asset/?id=522635514", weight = 10 } }, toollunge = { { id = "http://www.roblox.com/asset/?id=522638767", weight = 10 } }, wave = { { id = "http://www.roblox.com/asset/?id=507770239", weight = 10 } }, point = { { id = "http://www.roblox.com/asset/?id=507770453", weight = 10 } }, dance = { { id = "http://www.roblox.com/asset/?id=507771019", weight = 10 }, { id = "http://www.roblox.com/asset/?id=507771955", weight = 10 }, { id = "http://www.roblox.com/asset/?id=507772104", weight = 10 } }, dance2 = { { id = "http://www.roblox.com/asset/?id=507776043", weight = 10 }, { id = "http://www.roblox.com/asset/?id=507776720", weight = 10 }, { id = "http://www.roblox.com/asset/?id=507776879", weight = 10 } }, dance3 = { { id = "http://www.roblox.com/asset/?id=507777268", weight = 10 }, { id = "http://www.roblox.com/asset/?id=507777451", weight = 10 }, { id = "http://www.roblox.com/asset/?id=507777623", weight = 10 } }, laugh = { { id = "http://www.roblox.com/asset/?id=507770818", weight = 10 } }, cheer = { { id = "http://www.roblox.com/asset/?id=507770677", weight = 10 } }, } -- Existance in this list signifies that it is an emote, the value indicates if it is a looping emote local emoteNames = { wave = false, point = false, dance = true, dance2 = true, dance3 = true, laugh = false, cheer = false} math.randomseed(tick()) function findExistingAnimationInSet(set, anim) if set == nil or anim == nil then return 0 end for idx = 1, set.count, 1 do if set[idx].anim.AnimationId == anim.AnimationId then return idx end end return 0 end function configureAnimationSet(name, fileList) if (animTable[name] ~= nil) then for _, connection in pairs(animTable[name].connections) do connection:disconnect() end end animTable[name] = {} animTable[name].count = 0 animTable[name].totalWeight = 0 animTable[name].connections = {} local allowCustomAnimations = true local success, msg = pcall(function() allowCustomAnimations = game:GetService("StarterPlayer").AllowCustomAnimations end) if not success then allowCustomAnimations = true end -- check for config values local config = script:FindFirstChild(name) if (allowCustomAnimations and config ~= nil) then table.insert(animTable[name].connections, config.ChildAdded:connect(function(child) configureAnimationSet(name, fileList) end)) table.insert(animTable[name].connections, config.ChildRemoved:connect(function(child) configureAnimationSet(name, fileList) end)) local idx = 0 for _, childPart in pairs(config:GetChildren()) do if (childPart:IsA("Animation")) then local newWeight = 1 local weightObject = childPart:FindFirstChild("Weight") if (weightObject ~= nil) then newWeight = weightObject.Value end animTable[name].count = animTable[name].count + 1 idx = animTable[name].count animTable[name][idx] = {} animTable[name][idx].anim = childPart animTable[name][idx].weight = newWeight animTable[name].totalWeight = animTable[name].totalWeight + animTable[name][idx].weight table.insert(animTable[name].connections, childPart.Changed:connect(function(property) configureAnimationSet(name, fileList) end)) table.insert(animTable[name].connections, childPart.ChildAdded:connect(function(property) configureAnimationSet(name, fileList) end)) table.insert(animTable[name].connections, childPart.ChildRemoved:connect(function(property) configureAnimationSet(name, fileList) end)) end end end -- fallback to defaults if (animTable[name].count <= 0) then for idx, anim in pairs(fileList) do animTable[name][idx] = {} animTable[name][idx].anim = Instance.new("Animation") animTable[name][idx].anim.Name = name animTable[name][idx].anim.AnimationId = anim.id animTable[name][idx].weight = anim.weight animTable[name].count = animTable[name].count + 1 animTable[name].totalWeight = animTable[name].totalWeight + anim.weight end end -- preload anims for i, animType in pairs(animTable) do for idx = 1, animType.count, 1 do if PreloadedAnims[animType[idx].anim.AnimationId] == nil then Humanoid:LoadAnimation(animType[idx].anim) PreloadedAnims[animType[idx].anim.AnimationId] = true end end end end ------------------------------------------------------------------------------------------------------------ function configureAnimationSetOld(name, fileList) if (animTable[name] ~= nil) then for _, connection in pairs(animTable[name].connections) do connection:disconnect() end end animTable[name] = {} animTable[name].count = 0 animTable[name].totalWeight = 0 animTable[name].connections = {} local allowCustomAnimations = true local success, msg = pcall(function() allowCustomAnimations = game:GetService("StarterPlayer").AllowCustomAnimations end) if not success then allowCustomAnimations = true end -- check for config values local config = script:FindFirstChild(name) if (allowCustomAnimations and config ~= nil) then table.insert(animTable[name].connections, config.ChildAdded:connect(function(child) configureAnimationSet(name, fileList) end)) table.insert(animTable[name].connections, config.ChildRemoved:connect(function(child) configureAnimationSet(name, fileList) end)) local idx = 1 for _, childPart in pairs(config:GetChildren()) do if (childPart:IsA("Animation")) then table.insert(animTable[name].connections, childPart.Changed:connect(function(property) configureAnimationSet(name, fileList) end)) animTable[name][idx] = {} animTable[name][idx].anim = childPart local weightObject = childPart:FindFirstChild("Weight") if (weightObject == nil) then animTable[name][idx].weight = 1 else animTable[name][idx].weight = weightObject.Value end animTable[name].count = animTable[name].count + 1 animTable[name].totalWeight = animTable[name].totalWeight + animTable[name][idx].weight idx = idx + 1 end end end -- fallback to defaults if (animTable[name].count <= 0) then for idx, anim in pairs(fileList) do animTable[name][idx] = {} animTable[name][idx].anim = Instance.new("Animation") animTable[name][idx].anim.Name = name animTable[name][idx].anim.AnimationId = anim.id animTable[name][idx].weight = anim.weight animTable[name].count = animTable[name].count + 1 animTable[name].totalWeight = animTable[name].totalWeight + anim.weight -- print(name .. " [" .. idx .. "] " .. anim.id .. " (" .. anim.weight .. ")") end end -- preload anims for i, animType in pairs(animTable) do for idx = 1, animType.count, 1 do Humanoid:LoadAnimation(animType[idx].anim) end end end -- Setup animation objects function scriptChildModified(child) local fileList = animNames[child.Name] if (fileList ~= nil) then configureAnimationSet(child.Name, fileList) end end script.ChildAdded:connect(scriptChildModified) script.ChildRemoved:connect(scriptChildModified) for name, fileList in pairs(animNames) do configureAnimationSet(name, fileList) end -- ANIMATION -- declarations local toolAnim = "None" local toolAnimTime = 0 local jumpAnimTime = 0 local jumpAnimDuration = 0.31 local toolTransitionTime = 0.1 local fallTransitionTime = 0.2 local currentlyPlayingEmote = false -- functions function stopAllAnimations() local oldAnim = currentAnim -- return to idle if finishing an emote if (emoteNames[oldAnim] ~= nil and emoteNames[oldAnim] == false) then oldAnim = "idle" end if FFlagAnimateScriptEmoteHook and currentlyPlayingEmote then oldAnim = "idle" currentlyPlayingEmote = false end currentAnim = "" currentAnimInstance = nil if (currentAnimKeyframeHandler ~= nil) then currentAnimKeyframeHandler:disconnect() end if (currentAnimTrack ~= nil) then currentAnimTrack:Stop() currentAnimTrack:Destroy() currentAnimTrack = nil end -- clean up walk if there is one if (runAnimKeyframeHandler ~= nil) then runAnimKeyframeHandler:disconnect() end if (runAnimTrack ~= nil) then runAnimTrack:Stop() runAnimTrack:Destroy() runAnimTrack = nil end return oldAnim end function getHeightScale() if Humanoid then if not Humanoid.AutomaticScalingEnabled then return 1 end local scale = Humanoid.HipHeight / HumanoidHipHeight if AnimationSpeedDampeningObject == nil then AnimationSpeedDampeningObject = script:FindFirstChild("ScaleDampeningPercent") end if AnimationSpeedDampeningObject ~= nil then scale = 1 + (Humanoid.HipHeight - HumanoidHipHeight) * AnimationSpeedDampeningObject.Value / HumanoidHipHeight end return scale end return 1 end local function rootMotionCompensation(speed) local speedScaled = speed * 1.25 local heightScale = getHeightScale() local runSpeed = speedScaled / heightScale return runSpeed end local smallButNotZero = 0.0001 local function setRunSpeed(speed) local normalizedWalkSpeed = 0.5 -- established empirically using current `913402848` walk animation local normalizedRunSpeed = 1 local runSpeed = rootMotionCompensation(speed) local walkAnimationWeight = smallButNotZero local runAnimationWeight = smallButNotZero local walkAnimationTimewarp = runSpeed/normalizedWalkSpeed local runAnimationTimerwarp = runSpeed/normalizedRunSpeed if runSpeed <= normalizedWalkSpeed then walkAnimationWeight = 1 elseif runSpeed < normalizedRunSpeed then local fadeInRun = (runSpeed - normalizedWalkSpeed)/(normalizedRunSpeed - normalizedWalkSpeed) walkAnimationWeight = 1 - fadeInRun runAnimationWeight = fadeInRun walkAnimationTimewarp = 1 runAnimationTimerwarp = 1 else runAnimationWeight = 1 end currentAnimTrack:AdjustWeight(walkAnimationWeight) runAnimTrack:AdjustWeight(runAnimationWeight) currentAnimTrack:AdjustSpeed(walkAnimationTimewarp) runAnimTrack:AdjustSpeed(runAnimationTimerwarp) end function setAnimationSpeed(speed) if currentAnim == "walk" then setRunSpeed(speed) else if speed ~= currentAnimSpeed then currentAnimSpeed = speed currentAnimTrack:AdjustSpeed(currentAnimSpeed) end end end function keyFrameReachedFunc(frameName) if (frameName == "End") then if currentAnim == "walk" then if userNoUpdateOnLoop == true then if runAnimTrack.Looped ~= true then runAnimTrack.TimePosition = 0.0 end if currentAnimTrack.Looped ~= true then currentAnimTrack.TimePosition = 0.0 end else runAnimTrack.TimePosition = 0.0 currentAnimTrack.TimePosition = 0.0 end else local repeatAnim = currentAnim -- return to idle if finishing an emote if (emoteNames[repeatAnim] ~= nil and emoteNames[repeatAnim] == false) then repeatAnim = "idle" end if FFlagAnimateScriptEmoteHook and currentlyPlayingEmote then if currentAnimTrack.Looped then -- Allow the emote to loop return end repeatAnim = "idle" currentlyPlayingEmote = false end local animSpeed = currentAnimSpeed playAnimation(repeatAnim, 0.15, Humanoid) setAnimationSpeed(animSpeed) end end end function rollAnimation(animName) local roll = math.random(1, animTable[animName].totalWeight) local origRoll = roll local idx = 1 while (roll > animTable[animName][idx].weight) do roll = roll - animTable[animName][idx].weight idx = idx + 1 task.wait() end return idx end local function switchToAnim(anim, animName, transitionTime, humanoid) -- switch animation if (anim ~= currentAnimInstance) then if (currentAnimTrack ~= nil) then currentAnimTrack:Stop(transitionTime) currentAnimTrack:Destroy() end if (runAnimTrack ~= nil) then runAnimTrack:Stop(transitionTime) runAnimTrack:Destroy() if userNoUpdateOnLoop == true then runAnimTrack = nil end end currentAnimSpeed = 1.0 -- load it to the humanoid; get AnimationTrack currentAnimTrack = humanoid:LoadAnimation(anim) currentAnimTrack.Priority = Enum.AnimationPriority.Core -- play the animation currentAnimTrack:Play(transitionTime) currentAnim = animName currentAnimInstance = anim -- set up keyframe name triggers if (currentAnimKeyframeHandler ~= nil) then currentAnimKeyframeHandler:disconnect() end currentAnimKeyframeHandler = currentAnimTrack.KeyframeReached:connect(keyFrameReachedFunc) -- check to see if we need to blend a walk/run animation if animName == "walk" then local runAnimName = "run" local runIdx = rollAnimation(runAnimName) runAnimTrack = humanoid:LoadAnimation(animTable[runAnimName][runIdx].anim) runAnimTrack.Priority = Enum.AnimationPriority.Core runAnimTrack:Play(transitionTime) if (runAnimKeyframeHandler ~= nil) then runAnimKeyframeHandler:disconnect() end runAnimKeyframeHandler = runAnimTrack.KeyframeReached:connect(keyFrameReachedFunc) end end end function playAnimation(animName, transitionTime, humanoid) local idx = rollAnimation(animName) local anim = animTable[animName][idx].anim switchToAnim(anim, animName, transitionTime, humanoid) currentlyPlayingEmote = false end function playEmote(emoteAnim, transitionTime, humanoid) switchToAnim(emoteAnim, emoteAnim.Name, transitionTime, humanoid) currentlyPlayingEmote = true end ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- local toolAnimName = "" local toolAnimTrack = nil local toolAnimInstance = nil local currentToolAnimKeyframeHandler = nil function toolKeyFrameReachedFunc(frameName) if (frameName == "End") then playToolAnimation(toolAnimName, 0.0, Humanoid) end end function playToolAnimation(animName, transitionTime, humanoid, priority) local idx = rollAnimation(animName) local anim = animTable[animName][idx].anim if (toolAnimInstance ~= anim) then if (toolAnimTrack ~= nil) then toolAnimTrack:Stop() toolAnimTrack:Destroy() transitionTime = 0 end -- load it to the humanoid; get AnimationTrack toolAnimTrack = humanoid:LoadAnimation(anim) if priority then toolAnimTrack.Priority = priority end -- play the animation toolAnimTrack:Play(transitionTime) toolAnimName = animName toolAnimInstance = anim currentToolAnimKeyframeHandler = toolAnimTrack.KeyframeReached:connect(toolKeyFrameReachedFunc) end end function stopToolAnimations() local oldAnim = toolAnimName if (currentToolAnimKeyframeHandler ~= nil) then currentToolAnimKeyframeHandler:disconnect() end toolAnimName = "" toolAnimInstance = nil if (toolAnimTrack ~= nil) then toolAnimTrack:Stop() toolAnimTrack:Destroy() toolAnimTrack = nil end return oldAnim end ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- -- STATE CHANGE HANDLERS function onRunning(speed) local movedDuringEmote = userEmoteToRunThresholdChange and currentlyPlayingEmote and Humanoid.MoveDirection == Vector3.new(0, 0, 0) local speedThreshold = movedDuringEmote and Humanoid.WalkSpeed or 0.75 if speed > speedThreshold then local scale = 16.0 playAnimation("walk", 0.2, Humanoid) setAnimationSpeed(speed / scale) pose = "Running" else if emoteNames[currentAnim] == nil and not currentlyPlayingEmote then playAnimation("idle", 0.2, Humanoid) pose = "Standing" end end end function onDied() pose = "Dead" end function onJumping() playAnimation("jump", 0.1, Humanoid) jumpAnimTime = jumpAnimDuration pose = "Jumping" end function onClimbing(speed) local scale = 5.0 playAnimation("climb", 0.1, Humanoid) setAnimationSpeed(speed / scale) pose = "Climbing" end function onGettingUp() pose = "GettingUp" end function onFreeFall() if (jumpAnimTime <= 0) then playAnimation("fall", fallTransitionTime, Humanoid) end pose = "FreeFall" end function onFallingDown() pose = "FallingDown" end function onSeated() pose = "Seated" end function onPlatformStanding() pose = "PlatformStanding" end ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- function onSwimming(speed) if speed > 1.00 then local scale = 10.0 playAnimation("swim", 0.4, Humanoid) setAnimationSpeed(speed / scale) pose = "Swimming" else playAnimation("swimidle", 0.4, Humanoid) pose = "Standing" end end function animateTool() if (toolAnim == "None") then playToolAnimation("toolnone", toolTransitionTime, Humanoid, Enum.AnimationPriority.Idle) return end if (toolAnim == "Slash") then playToolAnimation("toolslash", 0, Humanoid, Enum.AnimationPriority.Action) return end if (toolAnim == "Lunge") then playToolAnimation("toollunge", 0, Humanoid, Enum.AnimationPriority.Action) return end end function getToolAnim(tool) for _, c in ipairs(tool:GetChildren()) do if c.Name == "toolanim" and c.className == "StringValue" then return c end end return nil end local lastTick = 0 function stepAnimate(currentTime) local amplitude = 1 local frequency = 1 local deltaTime = currentTime - lastTick lastTick = currentTime local climbFudge = 0 local setAngles = false if (jumpAnimTime > 0) then jumpAnimTime = jumpAnimTime - deltaTime end if (pose == "FreeFall" and jumpAnimTime <= 0) then playAnimation("fall", fallTransitionTime, Humanoid) elseif (pose == "Seated") then playAnimation("sit", 0.5, Humanoid) return elseif (pose == "Running") then playAnimation("walk", 0.2, Humanoid) elseif (pose == "Dead" or pose == "GettingUp" or pose == "FallingDown" or pose == "Seated" or pose == "PlatformStanding") then stopAllAnimations() amplitude = 0.1 frequency = 1 setAngles = true end -- Tool Animation handling local tool = Character:FindFirstChildOfClass("Tool") if tool and tool:FindFirstChild("Handle") then local animStringValueObject = getToolAnim(tool) if animStringValueObject then toolAnim = animStringValueObject.Value -- message recieved, delete StringValue animStringValueObject.Parent = nil toolAnimTime = currentTime + .3 end if currentTime > toolAnimTime then toolAnimTime = 0 toolAnim = "None" end animateTool() else stopToolAnimations() toolAnim = "None" toolAnimInstance = nil toolAnimTime = 0 end end -- connect events Humanoid.Died:connect(onDied) Humanoid.Running:connect(onRunning) Humanoid.Jumping:connect(onJumping) Humanoid.Climbing:connect(onClimbing) Humanoid.GettingUp:connect(onGettingUp) Humanoid.FreeFalling:connect(onFreeFall) Humanoid.FallingDown:connect(onFallingDown) Humanoid.Seated:connect(onSeated) Humanoid.PlatformStanding:connect(onPlatformStanding) Humanoid.Swimming:connect(onSwimming) -- initialize to idle playAnimation("idle", 0.1, Humanoid) pose = "Standing" -- loop to handle timed state transitions and tool animations while Character.Parent ~= nil do local _, currentGameTime = wait(0.1) stepAnimate(currentGameTime) end end)) inst['BindableFunction1'].Name = "PlayEmote" inst['BindableFunction1'].Parent = inst['Script0'] inst['NumberValue2'].Name = "ScaleDampeningPercent" inst['NumberValue2'].Parent = inst['Script0'] inst['NumberValue2'].Value = 0.40000000596046 inst['StringValue3'].Name = "cheer" inst['StringValue3'].Parent = inst['Script0'] inst['Animation4'].Name = "CheerAnim" inst['Animation4'].Parent = inst['StringValue3'] inst['Animation4'].AnimationId = "http://www.roblox.com/asset/?id=507770677" inst['StringValue5'].Name = "climb" inst['StringValue5'].Parent = inst['Script0'] inst['Animation6'].Name = "ClimbAnim" inst['Animation6'].Parent = inst['StringValue5'] inst['Animation6'].AnimationId = "http://www.roblox.com/asset/?id=507765644" inst['StringValue7'].Name = "dance" inst['StringValue7'].Parent = inst['Script0'] inst['Animation8'].Name = "Animation1" inst['Animation8'].Parent = inst['StringValue7'] inst['Animation8'].AnimationId = "http://www.roblox.com/asset/?id=507771019" inst['NumberValue9'].Name = "Weight" inst['NumberValue9'].Parent = inst['Animation8'] inst['NumberValue9'].Value = 10 inst['Animation10'].Name = "Animation2" inst['Animation10'].Parent = inst['StringValue7'] inst['Animation10'].AnimationId = "http://www.roblox.com/asset/?id=507771955" inst['NumberValue11'].Name = "Weight" inst['NumberValue11'].Parent = inst['Animation10'] inst['NumberValue11'].Value = 10 inst['Animation12'].Name = "Animation3" inst['Animation12'].Parent = inst['StringValue7'] inst['Animation12'].AnimationId = "http://www.roblox.com/asset/?id=507772104" inst['NumberValue13'].Name = "Weight" inst['NumberValue13'].Parent = inst['Animation12'] inst['NumberValue13'].Value = 10 inst['StringValue14'].Name = "dance2" inst['StringValue14'].Parent = inst['Script0'] inst['Animation15'].Name = "Animation1" inst['Animation15'].Parent = inst['StringValue14'] inst['Animation15'].AnimationId = "http://www.roblox.com/asset/?id=507776043" inst['NumberValue16'].Name = "Weight" inst['NumberValue16'].Parent = inst['Animation15'] inst['NumberValue16'].Value = 10 inst['Animation17'].Name = "Animation2" inst['Animation17'].Parent = inst['StringValue14'] inst['Animation17'].AnimationId = "http://www.roblox.com/asset/?id=507776720" inst['NumberValue18'].Name = "Weight" inst['NumberValue18'].Parent = inst['Animation17'] inst['NumberValue18'].Value = 10 inst['Animation19'].Name = "Animation3" inst['Animation19'].Parent = inst['StringValue14'] inst['Animation19'].AnimationId = "http://www.roblox.com/asset/?id=507776879" inst['NumberValue20'].Name = "Weight" inst['NumberValue20'].Parent = inst['Animation19'] inst['NumberValue20'].Value = 10 inst['StringValue21'].Name = "dance3" inst['StringValue21'].Parent = inst['Script0'] inst['Animation22'].Name = "Animation1" inst['Animation22'].Parent = inst['StringValue21'] inst['Animation22'].AnimationId = "http://www.roblox.com/asset/?id=507777268" inst['NumberValue23'].Name = "Weight" inst['NumberValue23'].Parent = inst['Animation22'] inst['NumberValue23'].Value = 10 inst['Animation24'].Name = "Animation2" inst['Animation24'].Parent = inst['StringValue21'] inst['Animation24'].AnimationId = "http://www.roblox.com/asset/?id=507777451" inst['NumberValue25'].Name = "Weight" inst['NumberValue25'].Parent = inst['Animation24'] inst['NumberValue25'].Value = 10 inst['Animation26'].Name = "Animation3" inst['Animation26'].Parent = inst['StringValue21'] inst['Animation26'].AnimationId = "http://www.roblox.com/asset/?id=507777623" inst['NumberValue27'].Name = "Weight" inst['NumberValue27'].Parent = inst['Animation26'] inst['NumberValue27'].Value = 10 inst['StringValue28'].Name = "fall" inst['StringValue28'].Parent = inst['Script0'] inst['Animation29'].Name = "FallAnim" inst['Animation29'].Parent = inst['StringValue28'] inst['Animation29'].AnimationId = "http://www.roblox.com/asset/?id=507767968" inst['StringValue30'].Name = "idle" inst['StringValue30'].Parent = inst['Script0'] inst['Animation31'].Name = "Animation1" inst['Animation31'].Parent = inst['StringValue30'] inst['Animation31'].AnimationId = "http://www.roblox.com/asset/?id=507766388" inst['NumberValue32'].Name = "Weight" inst['NumberValue32'].Parent = inst['Animation31'] inst['NumberValue32'].Value = 9 inst['Animation33'].Name = "Animation2" inst['Animation33'].Parent = inst['StringValue30'] inst['Animation33'].AnimationId = "http://www.roblox.com/asset/?id=507766666" inst['NumberValue34'].Name = "Weight" inst['NumberValue34'].Parent = inst['Animation33'] inst['NumberValue34'].Value = 1 inst['StringValue35'].Name = "jump" inst['StringValue35'].Parent = inst['Script0'] inst['Animation36'].Name = "JumpAnim" inst['Animation36'].Parent = inst['StringValue35'] inst['Animation36'].AnimationId = "http://www.roblox.com/asset/?id=507765000" inst['StringValue37'].Name = "laugh" inst['StringValue37'].Parent = inst['Script0'] inst['Animation38'].Name = "LaughAnim" inst['Animation38'].Parent = inst['StringValue37'] inst['Animation38'].AnimationId = "http://www.roblox.com/asset/?id=507770818" inst['StringValue39'].Name = "point" inst['StringValue39'].Parent = inst['Script0'] inst['Animation40'].Name = "PointAnim" inst['Animation40'].Parent = inst['StringValue39'] inst['Animation40'].AnimationId = "http://www.roblox.com/asset/?id=507770453" inst['StringValue41'].Name = "run" inst['StringValue41'].Parent = inst['Script0'] inst['Animation42'].Name = "RunAnim" inst['Animation42'].Parent = inst['StringValue41'] inst['Animation42'].AnimationId = "rbxassetid://2510197257" inst['StringValue43'].Name = "sit" inst['StringValue43'].Parent = inst['Script0'] inst['Animation44'].Name = "SitAnim" inst['Animation44'].Parent = inst['StringValue43'] inst['Animation44'].AnimationId = "http://www.roblox.com/asset/?id=2506281703" inst['StringValue45'].Name = "swim" inst['StringValue45'].Parent = inst['Script0'] inst['Animation46'].Name = "Swim" inst['Animation46'].Parent = inst['StringValue45'] inst['Animation46'].AnimationId = "http://www.roblox.com/asset/?id=913384386" inst['StringValue47'].Name = "swimidle" inst['StringValue47'].Parent = inst['Script0'] inst['Animation48'].Name = "SwimIdle" inst['Animation48'].Parent = inst['StringValue47'] inst['Animation48'].AnimationId = "http://www.roblox.com/asset/?id=913389285" inst['StringValue49'].Name = "toollunge" inst['StringValue49'].Parent = inst['Script0'] inst['Animation50'].Name = "ToolLungeAnim" inst['Animation50'].Parent = inst['StringValue49'] inst['Animation50'].AnimationId = "http://www.roblox.com/asset/?id=522638767" inst['StringValue51'].Name = "toolnone" inst['StringValue51'].Parent = inst['Script0'] inst['Animation52'].Name = "ToolNoneAnim" inst['Animation52'].Parent = inst['StringValue51'] inst['Animation52'].AnimationId = "http://www.roblox.com/asset/?id=507768375" inst['StringValue53'].Name = "toolslash" inst['StringValue53'].Parent = inst['Script0'] inst['Animation54'].Name = "ToolSlashAnim" inst['Animation54'].Parent = inst['StringValue53'] inst['Animation54'].AnimationId = "http://www.roblox.com/asset/?id=522635514" inst['StringValue55'].Name = "walk" inst['StringValue55'].Parent = inst['Script0'] inst['Animation56'].Name = "WalkAnim" inst['Animation56'].Parent = inst['StringValue55'] inst['Animation56'].AnimationId = "rbxassetid://2510198475" inst['StringValue57'].Name = "wave" inst['StringValue57'].Parent = inst['Script0'] inst['Animation58'].Name = "WaveAnim" inst['Animation58'].Parent = inst['StringValue57'] inst['Animation58'].AnimationId = "http://www.roblox.com/asset/?id=507770239" for _,v in ipairs(cors) do coroutine.wrap(function() local s,e = pcall(v) if not s then warn("Error in sandbox script: "..tostring(e)) end end)() end
Editor Settings
Theme
Key bindings
Full width
Lines