Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Converted using Mokiros's Model to Script plugin
- -- Converted string size: 10055
- local genv={}
- local Scripts = {
- function() local CurrentPart = nil
- local MaxInc = 60
- function onTouched(hit)
- if hit.Parent == nil then
- return
- end
- local humanoid = hit.Parent:findFirstChild("Humanoid")
- if humanoid == nil then
- CurrentPart = hit
- end
- end
- function waitForChild(parent, childName)
- local child = parent:findFirstChild(childName)
- if child then
- return child
- end
- while true do
- print(childName)
- child = parent.ChildAdded:wait()
- if child.Name==childName then
- return child
- end
- end
- end
- local Figure = script.Parent
- local Humanoid = waitForChild(Figure, "Humanoid")
- local Torso = waitForChild(Figure, "HumanoidRootPart")
- local Left = waitForChild(Figure, "LeftFoot")
- local Right = waitForChild(Figure, "RightFoot")
- Humanoid.Jump = true
- Left.Touched:connect(onTouched)
- Right.Touched:connect(onTouched)
- while true do
- wait(math.random(2, 6))
- if CurrentPart ~= nil then
- if math.random(5, 7) == 1 then
- Humanoid.Jump = true
- end
- Humanoid:MoveTo(Torso.Position + Vector3.new(math.random(-MaxInc, MaxInc), 0, math.random(-MaxInc, MaxInc)), CurrentPart)
- end
- end end;
- function() ---This server script creates the sounds and also exists so that it can be easily copied into an NPC and create sounds for that NPC.
- --Remove the local script if you copy this into an NPC.
- function waitForChild(parent, childName)
- local child = parent:findFirstChild(childName)
- if child then return child end
- while true do
- child = parent.ChildAdded:wait()
- if child.Name==childName then return child end
- end
- end
- function newSound(name, id)
- local sound = Instance.new("Sound")
- sound.SoundId = id
- sound.Name = name
- sound.archivable = false
- sound.Parent = script.Parent.Head
- return sound
- end
- -- declarations
- local sGettingUp = newSound("GettingUp", "rbxasset://sounds/action_get_up.mp3")
- local sDied = newSound("Died", "rbxasset://sounds/uuhhh.mp3")
- local sFreeFalling = newSound("FreeFalling", "rbxasset://sounds/action_falling.mp3")
- local sJumping = newSound("Jumping", "rbxasset://sounds/action_jump.mp3")
- local sLanding = newSound("Landing", "rbxasset://sounds/action_jump_land.mp3")
- local sSplash = newSound("Splash", "rbxasset://sounds/impact_water.mp3")
- local sRunning = newSound("Running", "rbxasset://sounds/action_footsteps_plastic.mp3")
- sRunning.Looped = true
- local sSwimming = newSound("Swimming", "rbxasset://sounds/action_swim.mp3")
- sSwimming.Looped = true
- local sClimbing = newSound("Climbing", "rbxasset://sounds/action_footsteps_plastic.mp3")
- sClimbing.Looped = true
- local Figure = script.Parent
- local Head = waitForChild(Figure, "Head")
- local Humanoid = waitForChild(Figure, "Humanoid")
- local hasPlayer = game.Players:GetPlayerFromCharacter(script.Parent)
- local filteringEnabled = game.Workspace.FilteringEnabled
- local prevState = "None"
- -- functions
- function onDied()
- stopLoopedSounds()
- sDied:Play()
- end
- local fallCount = 0
- local fallSpeed = 0
- function onStateFall(state, sound)
- fallCount = fallCount + 1
- if state then
- sound.Volume = 0
- sound:Play()
- Spawn( function()
- local t = 0
- local thisFall = fallCount
- while t < 1.5 and fallCount == thisFall do
- local vol = math.max(t - 0.3 , 0)
- sound.Volume = vol
- wait(0.1)
- t = t + 0.1
- end
- end)
- else
- sound:Stop()
- end
- fallSpeed = math.max(fallSpeed, math.abs(Head.Velocity.Y))
- end
- function onStateNoStop(state, sound)
- if state then
- sound:Play()
- end
- end
- function onRunning(speed)
- sClimbing:Stop()
- sSwimming:Stop()
- if (prevState == "FreeFall" and fallSpeed > 0.1) then
- local vol = math.min(1.0, math.max(0.0, (fallSpeed - 50) / 110))
- sLanding.Volume = vol
- sLanding:Play()
- fallSpeed = 0
- end
- if speed>0.5 then
- sRunning.Playing = true
- sRunning.Pitch = 1.85
- else
- sRunning:Stop()
- end
- prevState = "Run"
- end
- function onSwimming(speed)
- if (prevState ~= "Swim" and speed > 0.1) then
- local volume = math.min(1.0, speed / 350)
- sSplash.Volume = volume
- sSplash:Play()
- prevState = "Swim"
- end
- sClimbing:Stop()
- sRunning:Stop()
- sSwimming.Pitch = 1.6
- sSwimming:Play()
- end
- function onClimbing(speed)
- sRunning:Stop()
- sSwimming:Stop()
- if speed>0.01 then
- sClimbing:Play()
- sClimbing.Pitch = speed / 5.5
- else
- sClimbing:Stop()
- end
- prevState = "Climb"
- end
- -- connect up
- function stopLoopedSounds()
- sRunning:Stop()
- sClimbing:Stop()
- sSwimming:Stop()
- end
- if hasPlayer == nil then
- Humanoid.Died:connect(onDied)
- Humanoid.Running:connect(onRunning)
- Humanoid.Swimming:connect(onSwimming)
- Humanoid.Climbing:connect(onClimbing)
- Humanoid.Jumping:connect(function(state) onStateNoStop(state, sJumping) prevState = "Jump" end)
- Humanoid.GettingUp:connect(function(state) stopLoopedSounds() onStateNoStop(state, sGettingUp) prevState = "GetUp" end)
- Humanoid.FreeFalling:connect(function(state) stopLoopedSounds() onStateFall(state, sFreeFalling) prevState = "FreeFall" end)
- Humanoid.FallingDown:connect(function(state) stopLoopedSounds() end)
- Humanoid.StateChanged:connect(function(old, new)
- if not (new.Name == "Dead" or
- new.Name == "Running" or
- new.Name == "RunningNoPhysics" or
- new.Name == "Swimming" or
- new.Name == "Jumping" or
- new.Name == "GettingUp" or
- new.Name == "Freefall" or
- new.Name == "FallingDown") then
- stopLoopedSounds()
- end
- end)
- end
- end;
- function() --This local script will run only for the player whos character it is in. It's changes to the sounds will replicate as they are changes to the character.
- -- util
- function waitForChild(parent, childName)
- local child = parent:findFirstChild(childName)
- if child then return child end
- while true do
- child = parent.ChildAdded:wait()
- if child.Name==childName then return child end
- end
- end
- -- declarations
- local Figure = script.Parent.Parent
- local Head = waitForChild(Figure, "Head")
- local Humanoid = waitForChild(Figure, "Humanoid")
- local sGettingUp = waitForChild(Head, "GettingUp")
- local sDied = waitForChild(Head, "Died")
- local sFreeFalling = waitForChild(Head, "FreeFalling")
- local sJumping = waitForChild(Head, "Jumping")
- local sLanding = waitForChild(Head, "Landing")
- local sSplash = waitForChild(Head, "Splash")
- local sRunning = waitForChild(Head, "Running")
- sRunning.Looped = true
- local sSwimming = waitForChild(Head, "Swimming")
- sSwimming.Looped = true
- local sClimbing =waitForChild(Head, "Climbing")
- sClimbing.Looped = true
- local prevState = "None"
- -- functions
- function onDied()
- stopLoopedSounds()
- sDied:Play()
- end
- local fallCount = 0
- local fallSpeed = 0
- function onStateFall(state, sound)
- fallCount = fallCount + 1
- if state then
- sound.Volume = 0
- sound:Play()
- Spawn( function()
- local t = 0
- local thisFall = fallCount
- while t < 1.5 and fallCount == thisFall do
- local vol = math.max(t - 0.3 , 0)
- sound.Volume = vol
- wait(0.1)
- t = t + 0.1
- end
- end)
- else
- sound:Stop()
- end
- fallSpeed = math.max(fallSpeed, math.abs(Head.Velocity.Y))
- end
- function onStateNoStop(state, sound)
- if state then
- sound:Play()
- end
- end
- function onRunning(speed)
- sClimbing:Stop()
- sSwimming:Stop()
- if (prevState == "FreeFall" and fallSpeed > 0.1) then
- local vol = math.min(1.0, math.max(0.0, (fallSpeed - 50) / 110))
- sLanding.Volume = vol
- sLanding:Play()
- fallSpeed = 0
- end
- if speed>0.5 then
- sRunning:Play()
- sRunning.Pitch = speed / 8.0
- else
- sRunning:Stop()
- end
- prevState = "Run"
- end
- function onSwimming(speed)
- if (prevState ~= "Swim" and speed > 0.1) then
- local volume = math.min(1.0, speed / 350)
- sSplash.Volume = volume
- sSplash:Play()
- prevState = "Swim"
- end
- sClimbing:Stop()
- sRunning:Stop()
- sSwimming.Pitch = 1.6
- sSwimming:Play()
- end
- function onClimbing(speed)
- sRunning:Stop()
- sSwimming:Stop()
- if speed>0.01 then
- sClimbing:Play()
- sClimbing.Pitch = speed / 5.5
- else
- sClimbing:Stop()
- end
- prevState = "Climb"
- end
- -- connect up
- function stopLoopedSounds()
- sRunning:Stop()
- sClimbing:Stop()
- sSwimming:Stop()
- end
- Humanoid.Died:connect(onDied)
- Humanoid.Running:connect(onRunning)
- Humanoid.Swimming:connect(onSwimming)
- Humanoid.Climbing:connect(onClimbing)
- Humanoid.Jumping:connect(function(state) onStateNoStop(state, sJumping) prevState = "Jump" end)
- Humanoid.GettingUp:connect(function(state) stopLoopedSounds() onStateNoStop(state, sGettingUp) prevState = "GetUp" end)
- Humanoid.FreeFalling:connect(function(state) stopLoopedSounds() onStateFall(state, sFreeFalling) prevState = "FreeFall" end)
- Humanoid.FallingDown:connect(function(state) stopLoopedSounds() end)
- Humanoid.StateChanged:connect(function(old, new)
- if not (new.Name == "Dead" or
- new.Name == "Running" or
- new.Name == "RunningNoPhysics" or
- new.Name == "Swimming" or
- new.Name == "Jumping" or
- new.Name == "GettingUp" or
- new.Name == "Freefall" or
- new.Name == "FallingDown") then
- stopLoopedSounds()
- end
- end)
- end;
- function() --Responsible for regening a player's humanoid's health
- -- declarations
- local Figure = script.Parent
- local Head = Figure:WaitForChild("Head")
- local Humanoid = Figure:WaitForChild("Humanoid")
- local regening = false
- -- regeneration
- function regenHealth()
- if regening then return end
- regening = true
- while Humanoid.Health < Humanoid.MaxHealth do
- local s = wait(1)
- local health = Humanoid.Health
- if health > 0 and health < Humanoid.MaxHealth then
- local newHealthDelta = 0.01 * s * Humanoid.MaxHealth
- health = health + newHealthDelta
- Humanoid.Health = math.min(health,Humanoid.MaxHealth)
- end
- end
- if Humanoid.Health > Humanoid.MaxHealth then
- Humanoid.Health = Humanoid.MaxHealth
- end
- regening = false
- end
- Humanoid.HealthChanged:connect(regenHealth)
- end;
- function() function waitForChild(parent, childName)
- local child = parent:findFirstChild(childName)
- if child then return child end
- while true do
- child = parent.ChildAdded:wait()
- if child.Name==childName then return child end
- end
- end
- local Figure = script.Parent
- local Humanoid = waitForChild(Figure, "Humanoid")
- local pose = "Standing"
- local currentAnim = ""
- local currentAnimInstance = nil
- local currentAnimTrack = nil
- local currentAnimKeyframeHandler = nil
- local currentAnimSpeed = 1.0
- 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=507768133", weight = 10 }
- },
- toolnone = {
- { id = "http://www.roblox.com/asset/?id=507768375", weight = 10 }
- },
- toolslash = {
- { id = "http://www.roblox.com/asset/?id=507768375", weight = 10 }
- -- { id = "slash.xml", weight = 10 }
- },
- toollunge = {
- { id = "http://www.roblox.com/asset/?id=507768375", 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 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 = {}
- -- check for config values
- local config = script:FindFirstChild(name)
- if (config ~= nil) then
- -- print("Loading anims " .. name)
- 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
- -- print(name .. " [" .. idx .. "] " .. animTable[name][idx].anim.AnimationId .. " (" .. 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
- 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
- -- 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
- currentAnim = ""
- currentAnimInstance = nil
- if (currentAnimKeyframeHandler ~= nil) then
- currentAnimKeyframeHandler:disconnect()
- end
- if (currentAnimTrack ~= nil) then
- currentAnimTrack:Stop()
- currentAnimTrack:Destroy()
- currentAnimTrack = nil
- end
- return oldAnim
- end
- function setAnimationSpeed(speed)
- if speed ~= currentAnimSpeed then
- currentAnimSpeed = speed
- currentAnimTrack:AdjustSpeed(currentAnimSpeed)
- end
- end
- function keyFrameReachedFunc(frameName)
- if (frameName == "End") then
- -- print("Keyframe : ".. frameName)
- local repeatAnim = currentAnim
- -- return to idle if finishing an emote
- if (emoteNames[repeatAnim] ~= nil and emoteNames[repeatAnim] == false) then
- repeatAnim = "idle"
- end
- local animSpeed = currentAnimSpeed
- playAnimation(repeatAnim, 0.15, Humanoid)
- setAnimationSpeed(animSpeed)
- end
- end
- -- Preload animations
- function playAnimation(animName, transitionTime, humanoid)
- 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
- end
- -- print(animName .. " " .. idx .. " [" .. origRoll .. "]")
- local anim = animTable[animName][idx].anim
- -- switch animation
- if (anim ~= currentAnimInstance) then
- if (currentAnimTrack ~= nil) then
- currentAnimTrack:Stop(transitionTime)
- currentAnimTrack:Destroy()
- end
- currentAnimSpeed = 1.0
- -- load it to the humanoid; get AnimationTrack
- currentAnimTrack = humanoid:LoadAnimation(anim)
- -- 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)
- end
- end
- -------------------------------------------------------------------------------------------
- -------------------------------------------------------------------------------------------
- local toolAnimName = ""
- local toolAnimTrack = nil
- local toolAnimInstance = nil
- local currentToolAnimKeyframeHandler = nil
- function toolKeyFrameReachedFunc(frameName)
- if (frameName == "End") then
- -- print("Keyframe : ".. frameName)
- playToolAnimation(toolAnimName, 0.0, Humanoid)
- end
- end
- function playToolAnimation(animName, transitionTime, humanoid)
- 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
- end
- -- print(animName .. " * " .. idx .. " [" .. origRoll .. "]")
- 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)
- -- 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
- -------------------------------------------------------------------------------------------
- -------------------------------------------------------------------------------------------
- function onRunning(speed)
- if speed > 0.01 then
- local scale = 15.0
- playAnimation("walk", 0.1, Humanoid)
- setAnimationSpeed(speed / scale)
- pose = "Running"
- else
- playAnimation("idle", 0.1, Humanoid)
- pose = "Standing"
- 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 getTool()
- for _, kid in ipairs(Figure:GetChildren()) do
- if kid.className == "Tool" then return kid end
- end
- return nil
- 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
- function animateTool()
- if (toolAnim == "None") then
- playToolAnimation("toolnone", toolTransitionTime, Humanoid)
- return
- end
- if (toolAnim == "Slash") then
- playToolAnimation("toolslash", 0, Humanoid)
- return
- end
- if (toolAnim == "Lunge") then
- playToolAnimation("toollunge", 0, Humanoid)
- return
- end
- end
- function moveSit()
- RightShoulder.MaxVelocity = 0.15
- LeftShoulder.MaxVelocity = 0.15
- RightShoulder:SetDesiredAngle(3.14 /2)
- LeftShoulder:SetDesiredAngle(-3.14 /2)
- RightHip:SetDesiredAngle(3.14 /2)
- LeftHip:SetDesiredAngle(-3.14 /2)
- end
- local lastTick = 0
- function move(time)
- local amplitude = 1
- local frequency = 1
- local deltaTime = time - lastTick
- lastTick = time
- 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.1, 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 = getTool()
- if tool then
- animStringValueObject = getToolAnim(tool)
- if animStringValueObject then
- toolAnim = animStringValueObject.Value
- -- message recieved, delete StringValue
- animStringValueObject.Parent = nil
- toolAnimTime = time + .3
- end
- if time > 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)
- -- setup emote chat hook
- script.msg.Changed:connect(function(msg)
- script.msg.Value = ""
- local emote = ""
- if (string.sub(msg, 1, 3) == "/e ") then
- emote = string.sub(msg, 4)
- elseif (string.sub(msg, 1, 7) == "/emote ") then
- emote = string.sub(msg, 8)
- end
- if (pose == "Standing" and emoteNames[emote] ~= nil) then
- playAnimation(emote, 0.1, Humanoid)
- end
- -- print("===> " .. string.sub(msg, 1, 3) .. "(" .. emote .. ")")
- end)
- -- main program
- local runService = game:service("RunService");
- -- print("bottom")
- -- initialize to idle
- playAnimation("idle", 0.1, Humanoid)
- pose = "Standing"
- while Figure.Parent~=nil do
- local _, time = wait(0.1)
- move(time)
- end
- end;
- function() script.Parent.DisplayDistanceType = 'Viewer'
- end;}local ActualScripts = {}
- function s(var)
- local func = table.remove(Scripts,1)
- setfenv(func,setmetatable({script=var,require=fake_require or require,global=genv},{
- __index = getfenv(func),
- }))
- table.insert(ActualScripts,coroutine.wrap(func))
- end
- Decode = function(str,t,props,classes,values,ICList,Model,CurPar,LastIns,split,RemoveAndSplit,InstanceList)
- local tonum,table_remove,inst,parnt,comma,table_foreach = tonumber,table.remove,Instance.new,"Parent",",",
- function(t,f)
- for a,b in pairs(t) do
- f(a,b)
- end
- end
- local Types = {
- Color3 = Color3.new,
- Vector3 = Vector3.new,
- Vector2 = Vector2.new,
- UDim = UDim.new,
- UDim2 = UDim2.new,
- CFrame = CFrame.new,
- Rect = Rect.new,
- NumberRange = NumberRange.new,
- BrickColor = BrickColor.new,
- PhysicalProperties = PhysicalProperties.new,
- NumberSequence = function(...)
- local a = {...}
- local t = {}
- repeat
- t[#t+1] = NumberSequenceKeypoint.new(table_remove(a,1),table_remove(a,1),table_remove(a,1))
- until #a==0
- return NumberSequence.new(t)
- end,
- ColorSequence = function(...)
- local a = {...}
- local t = {}
- repeat
- t[#t+1] = ColorSequenceKeypoint.new(table_remove(a,1),Color3.new(table_remove(a,1),table_remove(a,1),table_remove(a,1)))
- until #a==0
- return ColorSequence.new(t)
- end,
- number = tonumber,
- boolean = function(a)
- return a=="1"
- end
- }
- split = function(str,sep)
- if not str then return end
- local fields = {}
- local ConcatNext = false
- str:gsub(("([^%s]+)"):format(sep),function(c)
- if ConcatNext == true then
- fields[#fields] = fields[#fields]..sep..c
- ConcatNext = false
- else
- fields[#fields+1] = c
- end
- if c:sub(#c)=="\\" then
- c = fields[#fields]
- fields[#fields] = c:sub(1,#c-1)
- ConcatNext = true
- end
- end)
- return fields
- end
- RemoveAndSplit = function(t)
- return split(table_remove(t,1),comma)
- end
- t = split(str,";")
- props = RemoveAndSplit(t)
- classes = RemoveAndSplit(t)
- values = split(table_remove(t,1),'|')
- ICList = RemoveAndSplit(t)
- InstanceList = {}
- Model = inst"Model"
- CurPar = Model
- table_foreach(t,function(ct,c)
- if c=="n" or c=="p" then
- CurPar = c=="n" and LastIns or CurPar[parnt]
- else
- ct = split(c,"|")
- local class = classes[tonum(table_remove(ct,1))]
- if class=="UnionOperation" then
- LastIns = {UsePartColor="1"}
- else
- LastIns = inst(class)
- if LastIns:IsA"Script" then
- s(LastIns)
- elseif LastIns:IsA("ModuleScript") then
- ms(LastIns)
- end
- end
- local function SetProperty(LastIns,p,str,s)
- s = Types[typeof(LastIns[p])]
- if p=="CustomPhysicalProperties" then
- s = PhysicalProperties.new
- end
- if s then
- LastIns[p] = s(unpack(split(str,comma)))
- else
- LastIns[p] = str
- end
- end
- local UnionData
- table_foreach(ct,function(s,p,a,str)
- a = p:find":"
- p,str = props[tonum(p:sub(1,a-1))],values[tonum(p:sub(a+1))]
- if p=="UnionData" then
- UnionData = split(str," ")
- return
- end
- if class=="UnionOperation" then
- LastIns[p] = str
- return
- end
- SetProperty(LastIns,p,str)
- end)
- if UnionData then
- local LI_Data = LastIns
- LastIns = DecodeUnion(UnionData)
- table_foreach(LI_Data,function(p,str)
- SetProperty(LastIns,p,str)
- end)
- end
- table.insert(InstanceList,LastIns)
- LastIns[parnt] = CurPar
- end
- end)
- table_remove(ICList,1)
- table_foreach(ICList,function(a,b)
- b = split(b,">")
- InstanceList[tonum(b[1])][props[tonum(b[2])]] = InstanceList[tonum(b[3])]
- end)
- return Model:GetChildren()
- end
- local Objects = Decode('Name,CustomPhysicalProperties,Color,Material,Transparency,Position,Size,Part0,Part1,Orientation,CanCollide,CFrame,C0,C1,Rotation,AnimationId,Value,BottomSurface,TopSurface,Scale,MaxDistance,EmitterSiz'
- ..'e,SoundId,Volume,Looped,PlaybackSpeed,Texture,DisplayDistanceType,HipHeight,WalkSpeed,AttachmentPoint,AttachmentPos,Locked,MeshId,TextureId,MeshType;Part,Model,MeshPart,WeldConstraint,Attachment,Motor'
- ..'6D,Script,LocalScript,StringValue,Animation,NumberValue,SpecialMesh,Sound,Decal,Weld,Humanoid,Hat;Part|Program NPC|Body|Base|0.0099,0,0,0,0|0.0666,0.0666,0.0666|1568|-0.0001|-28.1421,4.7956,69.2392|2,'
- ..'2,2|Neon|0,1,0|288|0.2499|-28.1421,4.8386,69.2392|2.0999,2.0999,2.0999|EyeRight|-27.892,4.7956,68.6892|0.375,0.875,1|EyeLeft|-28.392,4.7956,68.6892|-29.5171,2.5706,69.2392|0.75,0.75,0.75|0.85,0.85,0.8'
- ..'5|-26.7671,2.5706,69.2392|-90,180,0|-28.1421,2.3206,69.2392|-90,0,0|1.375,1.375,2.25|1.475,1.475,2.3499|LeftFoot|0.8039,0.8039,0.8039|1|-28.6071,0.15,69.2348|1,0.3,1|0|LeftAnkleRigAttachment|-0.0001,0'
- ..'.05,0|-0.0001,0.05,0,1,0,0,0,1,0,0,0,1|LeftAnkle|-0.0001,-0.75,0,1,0,0,0,1,0,0,0,1|LeftHand|-29.6071,2.15,69.2348|0.9999,0.2999,0.9999|LeftWristRigAttachment|0.0004,0.1499,0|0.0004,0.1499,0,1,0,0,0,1,'
- ..'0,0,0,1|LeftGripAttachment|-0.0001,-0.15,-0.0001|-90,-0,0|-90,-0,-0|-0.0001,-0.15,-0.0001,1,0,-0,0,0,1,0,-1,0|LeftWrist|0.0004,-0.55,0,1,0,0,0,1,0,0,0,1|LeftLowerArm|-29.6071,2.85,69.2348|0.9999,1.2,1'
- ..'|LeftElbowRigAttachment|0.0004,0.25,0|0.0004,0.25,0,1,0,0,0,1,0,0,0,1|0.0004,-0.55,0|LeftElbow|0.0004,-0.2001,0,1,0,0,0,1,0,0,0,1|LeftLowerLeg|-28.6071,0.95,69.2348|0.9999,1.5,1|LeftKneeRigAttachment|'
- ..'-0,0.2499,-0.0001|-0,0.2499,-0.0001,1,0,0,0,1,0,0,0,1|-0.0001,-0.75,0|LeftKnee|0,-0.3,-0.0001,1,0,0,0,1,0,0,0,1|LeftUpperArm|-29.6071,3.3,69.2348|0.9999,1.4,0.9999|LeftShoulderRigAttachment|0.2501,0.4'
- ..'499,0|0.2501,0.4499,0,1,0,0,0,1,0,0,0,1|0.0004,-0.2001,0|LeftShoulderAttachment|0,0.7,-0.0001|0,0.7,-0.0001,1,0,0,0,1,0,0,0,1|LeftShoulder|-1.2499,0.5499,0,1,0,0,0,1,0,0,0,1|LeftUpperLeg|-28.6071,1.5,'
- ..'69.2348|1,1.4999,0.9999|LeftHipRigAttachment|0,0.5,-0.0001|0,0.5,-0.0001,1,0,0,0,1,0,0,0,1|0,-0.3,-0.0001|LeftHip|-0.5001,-0.2,-0,1,0,0,0,1,0,0,0,1|LowerTorso|-28.1071,2.2,69.2348|1.9999,0.3999,1|Root'
- ..'RigAttachment|-0.0001,0.15,-0|-0.0001,0.15,-0,1,0,0,0,1,0,0,0,1|WaistRigAttachment|-0.0001,0.55,0|-0.0001,0.55,0,1,0,0,0,1,0,0,0,1|-0.5001,-0.2,-0|RightHipRigAttachment|0.4999,-0.2,-0|0.4999,-0.2,-0,1'
- ..',0,0,0,1,0,0,0,1|WaistCenterAttachment|-0.0001,-0.0001,0|-0.0001,-0.0001,0,1,0,0,0,1,0,0,0,1|WaistFrontAttachment|-0.0001,0,-0.5001|-0.0001,0,-0.5001,1,0,0,0,1,0,0,0,1|WaistBackAttachment|-0.0001,0,0.'
- ..'5|-0.0001,0,0.5,1,0,0,0,1,0,0,0,1|Root|Move|RightFoot|-27.6071,0.15,69.2348|0.9999,0.3,1|RightAnkleRigAttachment|-0,0.0499,0|-0,0.0499,0,1,0,0,0,1,0,0,0,1|RightAnkle|-0,-0.7501,0,1,0,0,0,1,0,0,0,1|Rig'
- ..'htHand|-26.6071,2.15,69.2348|RightWristRigAttachment|0,0.1499,0|0,0.1499,0,1,0,0,0,1,0,0,0,1|RightGripAttachment|0,-0.15,-0.0001|0,-0.15,-0.0001,1,0,-0,0,0,1,0,-1,0|RightWrist|0,-0.55,-0.0001,1,0,0,0,'
- ..'1,0,0,0,1|RightLowerArm|-26.6071,2.85,69.2348|RightElbowRigAttachment|0,0.25,0|0,0.25,0,1,0,0,0,1,0,0,0,1|0,-0.55,-0.0001|RightElbow|-0.0001,-0.2001,0,1,0,0,0,1,0,0,0,1|RightLowerLeg|-27.6071,0.95,69.'
- ..'2348|RightKneeRigAttachment|-0,0.2499,0|-0,0.2499,0,1,0,0,0,1,0,0,0,1|-0,-0.7501,0|RightKnee|-0,-0.3,0,1,0,0,0,1,0,0,0,1|RightUpperArm|-26.6071,3.3,69.2348|RightShoulderRigAttachment|-0.2501,0.4499,0|'
- ..'-0.2501,0.4499,0,1,0,0,0,1,0,0,0,1|-0.0001,-0.2001,0|RightShoulderAttachment|-0.0001,0.7,-0.0001|-0.0001,0.7,-0.0001,1,0,0,0,1,0,0,0,1|RightShoulder|1.2499,0.5499,0,1,0,0,0,1,0,0,0,1|RightUpperLeg|-27'
- ..'.6071,1.5,69.2348|-0,0.5,-0.0001|-0,0.5,-0.0001,1,0,0,0,1,0,0,0,1|-0,-0.3,0|RightHip|Sound|LocalSound|Health|UpperTorso|-28.1071,3.2,69.2348|2,1.6,1|-0.0001,-0.4501,0|-0.0001,-0.4501,0,1,0,0,0,1,0,0,0'
- ..',1|NeckRigAttachment|-0.0001,0.7999,0|-0.0001,0.7999,0,1,0,0,0,1,0,0,0,1|-1.2499,0.5499,0|1.2499,0.5499,0|BodyFrontAttachment|-0.0001,-0.2001,-0.5|-0.0001,-0.2001,-0.5,1,0,0,0,1,0,0,0,1|BodyBackAttach'
- ..'ment|-0.0001,-0.2001,0.5|-0.0001,-0.2001,0.5,1,0,0,0,1,0,0,0,1|LeftCollarAttachment|-1,0.8,-0.0001|-1,0.8,-0.0001,1,0,0,0,1,0,0,0,1|RightCollarAttachment|0.9999,0.7999,0|0.9999,0.7999,0,1,0,0,0,1,0,0,'
- ..'0,1|Waist|HumanoidRootPart|-28.1071,2.35,69.2348|2,2,1|Animate|msg|climb|ClimbAnim|http://www.roblox.com/asset/?id=507765644|fall|FallAnim|http://www.roblox.com/asset/?id=507767968|idle|Animation1|htt'
- ..'p://www.roblox.com/asset/?id=507766388|Weight|9|Animation2|http://www.roblox.com/asset/?id=507766666|jump|JumpAnim|http://www.roblox.com/asset/?id=507765000|run|RunAnim|http://www.roblox.com/asset/?id'
- ..'=5077677142|sit|SitAnim|http://www.roblox.com/asset/?id=507768133|swim|Swim|http://www.roblox.com/asset/?id=507784897|swimidle|SwimIdle|http://www.roblox.com/asset/?id=481825862|toolnone|ToolNoneAnim|'
- ..'http://www.roblox.com/asset/?id=507768375|walk|http://www.roblox.com/asset/?id=507777826|Head|-28.1071,4.6,69.2351|2,1,1|0|1.25,1.25,1.25|FaceCenterAttachment|-0.0001,0,-0.0003|0,0,-0.0001|-0.0001,0,-'
- ..'0.0003,1,0,0,-0.0001,1,-0.0001,-0.0001,0,1|FaceFrontAttachment|-0.0001,0,-0.6003|-0.0001,0,-0.6003,1,0,0,-0.0001,1,-0.0001,-0.0001,0,1|HairAttachment|-0.0001,0.6,-0.0003|-0.0001,0.6,-0.0003,1,0,0,-0.0'
- ..'001,1,-0.0001,-0.0001,0,1|HatAttachment|NeckAttachment|-0.0001,-0.6,-0.0003|-0.0001,-0.6,-0.0003,1,0,0,-0.0001,1,-0.0001,-0.0001,0,1|-0.0001,-0.6001,-0.0003|-0.0001,-0.6001,-0.0003,1,0,0,0,1,0,0,0,1|N'
- ..'eck|GettingUp|150|5|rbxasset://sounds/action_get_up.mp3|0.6499|Died|rbxasset://sounds/uuhhh.mp3|FreeFalling|rbxasset://sounds/action_falling.mp3|Jumping|rbxasset://sounds/action_jump.mp3|Landing|rbxas'
- ..'set://sounds/action_jump_land.mp3|Splash|rbxasset://sounds/impact_water.mp3|Running|1.85|rbxasset://sounds/action_footsteps_plastic.mp3|Swimming|1.6|rbxasset://sounds/action_swim.mp3|Climbing|face|htt'
- ..'p://www.roblox.com/asset/?id=10747911|HeadWeld|0,0.5,0,1,0,0,0,1,0,0,0,1|0,0.2,0,1,0,0,0,1,0,0,0,1|2|1.35|13|NerdHair|0,0.2,0|Handle|-28.1071,4.9,69.2351|1,1,1|http://www.roblox.com/asset/?id=29938421'
- ..'|http://www.roblox.com/asset/?id=29938532|5;0,4>8>3,4>9>121,6>8>5,6>9>121,8>8>7,8>9>121,10>8>9,10>9>121,12>8>11,12>9>26,14>8>13,14>9>26,16>8>15,16>9>60,18>8>17,18>9>60,20>8>19,20>9>84,22>8>21,22>9>84,'
- ..'25>8>34,25>9>23,29>8>30,29>9>26,33>8>38,33>9>30,37>8>43,37>9>34,42>8>84,42>9>38,46>8>47,46>9>43,55>8>94,55>9>47,59>8>68,59>9>57,63>8>64,63>9>60,67>8>72,67>9>64,71>8>77,71>9>68,76>8>84,76>9>72,80>8>47,'
- ..'80>9>77,93>8>47,93>9>84,129>8>84,129>9>121,140>8>121,140>9>144;2|1:2;n;2|1:3;n;3|1:4|2:5|3:6|4:7|5:8|6:9|7:10|3:6|3:6;n;4;p;3|1:11|2:5|3:12|4:13|5:14|6:15|7:16|3:12|3:12;n;4;p;3|1:17|2:5|3:12|4:13|5:8'
- ..'|6:18|7:19|3:12|3:12;n;4;p;3|1:20|2:5|3:12|4:13|5:8|6:21|7:19|3:12|3:12;n;4;p;3|1:4|2:5|3:6|4:7|5:8|6:22|7:23|3:6|3:6;n;4;p;3|1:11|2:5|3:12|4:13|5:14|6:22|7:24|3:12|3:12;n;4;p;3|1:4|2:5|3:6|4:7|5:8|6:'
- ..'25|7:23|3:6|3:6;n;4;p;3|1:11|2:5|3:12|4:13|5:14|6:25|10:26|7:24|3:12|3:12;n;4;p;3|1:4|2:5|3:6|4:7|5:8|6:27|10:28|7:29|3:6|3:6;n;4;p;3|1:11|2:5|3:12|4:13|5:14|6:27|10:28|7:30|3:12|3:12;n;4;p;p;3|1:31|3'
- ..':32|5:33|6:34|7:35|11:36|3:32|3:32;n;5|1:37|6:38|12:39;6|1:40|13:41|14:39;p;3|1:42|3:32|5:33|6:43|7:44|11:36|3:32|3:32;n;5|1:45|6:46|12:47;5|1:48|6:49|10:50|15:51|12:52;6|1:53|13:54|14:47;p;3|1:55|3:3'
- ..'2|5:33|6:56|7:57|11:36|3:32|3:32;n;5|1:58|6:59|12:60;5|1:45|6:61|12:54;6|1:62|13:63|14:60;p;3|1:64|3:32|5:33|6:65|7:66|11:36|3:32|3:32;n;5|1:67|6:68|12:69;5|1:37|6:70|12:41;6|1:71|13:72|14:69;p;3|1:73'
- ..'|3:32|5:33|6:74|7:75|11:36|3:32|3:32;n;5|1:76|6:77|12:78;5|1:58|6:79|12:63;5|1:80|6:81|12:82;6|1:83|13:84|14:78;p;3|1:85|3:32|5:33|6:86|7:87|11:36|3:32|3:32;n;5|1:88|6:89|12:90;5|1:67|6:91|12:72;6|1:9'
- ..'2|13:93|14:90;p;3|1:94|3:32|5:33|6:95|7:96|3:32|3:32;n;5|1:97|6:98|12:99;5|1:100|6:101|12:102;5|1:88|6:103|12:93;5|1:104|6:105|12:106;5|1:107|6:108|12:109;5|1:110|6:111|12:112;5|1:113|6:114|12:115;6|1'
- ..':116|14:99;p;7|1:117;3|1:118|3:32|5:33|6:119|7:120|11:36|3:32|3:32;n;5|1:121|6:122|12:123;6|1:124|13:125|14:123;p;3|1:126|3:32|5:33|6:127|7:44|11:36|3:32|3:32;n;5|1:128|6:129|12:130;5|1:131|6:132|10:5'
- ..'0|15:51|12:133;6|1:134|13:135|14:130;p;3|1:136|3:32|5:33|6:137|7:57|11:36|3:32|3:32;n;5|1:138|6:139|12:140;5|1:128|6:141|12:135;6|1:142|13:143|14:140;p;3|1:144|3:32|5:33|6:145|7:66|11:36|3:32|3:32;n;5'
- ..'|1:146|6:147|12:148;5|1:121|6:149|12:125;6|1:150|13:151|14:148;p;3|1:152|3:32|5:33|6:153|7:75|11:36|3:32|3:32;n;5|1:154|6:155|12:156;5|1:138|6:157|12:143;5|1:158|6:159|12:160;6|1:161|13:162|14:156;p;3'
- ..'|1:163|3:32|5:33|6:164|7:87|11:36|3:32|3:32;n;5|1:104|6:165|12:166;5|1:146|6:167|12:151;6|1:168|13:106|14:166;p;7|1:169;n;8|1:170;p;7|1:171;3|1:172|3:32|5:33|6:173|7:174|3:32|3:32;n;5|1:100|6:175|12:1'
- ..'76;5|1:177|6:178|12:179;5|1:76|6:180|12:84;5|1:154|6:181|12:162;5|1:182|6:183|12:184;5|1:185|6:186|12:187;5|1:188|6:189|12:190;5|1:191|6:192|12:193;6|1:194|13:102|14:176;p;1|1:195|5:33|6:196|7:197;n;5'
- ..'|1:97;p;7|1:198;n;9|1:199;9|1:200;n;10|1:201|16:202;p;9|1:203;n;10|1:204|16:205;p;9|1:206;n;10|1:207|16:208;n;11|1:209|17:210;p;10|1:211|16:212;n;11|1:209|17:33;p;p;9|1:213;n;10|1:214|16:215;p;9|1:216'
- ..';n;10|1:217|16:218;p;9|1:219;n;10|1:220|16:221;p;9|1:222;n;10|1:223|16:224;p;9|1:225;n;10|1:226|16:227;p;9|1:228;n;10|1:229|16:230;p;9|1:231;n;10|1:217|16:232;p;p;1|1:233|3:32|5:33|6:234|7:235|18:236|'
- ..'19:236|3:32|3:32;n;12|20:237;5|1:238|6:239|10:240|15:240|12:241;5|1:242|6:243|10:240|15:240|12:244;5|1:245|6:246|10:240|15:240|12:247;5|1:248|6:246|10:240|15:240|12:247;5|1:249|6:250|10:240|15:240|12:'
- ..'251;5|1:177|6:252|12:253;6|1:254|13:179|14:253;13|1:255|21:256|22:257|21:256|23:258|24:259;13|1:260|21:256|22:257|21:256|23:261|24:259;13|1:262|21:256|22:257|25:33|21:256|23:263|24:259;13|1:264|21:256'
- ..'|22:257|21:256|23:265|24:259;13|1:266|21:256|22:257|21:256|23:267|24:259;13|1:268|21:256|22:257|21:256|23:269|24:259;13|1:270|21:256|22:257|25:33|21:256|26:271|23:272|24:259;13|1:273|21:256|22:257|25:'
- ..'33|21:256|26:274|23:275|24:259;13|1:276|21:256|22:257|25:33|21:256|23:272|24:259;14|1:277|27:278;15|1:279|13:280|14:281;p;16|28:282|29:283|30:284;n;7;p;17|1:285|31:281|32:286;n;1|1:287|33:33|6:288|7:2'
- ..'89|11:36|18:236|19:236;n;12|34:290|35:291|36:292;p;p;p;')
- for _,Object in pairs(Objects) do
- Object.Parent = script and script.Parent==workspace and script or workspace
- end
- for _,f in pairs(ActualScripts) do f() end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement