Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
LocalPlayer = Players.LocalPlayer
physicsLoop =
renderLoop =
(character)
physicsLoop physicsLoop:(); physicsLoop =
renderLoop renderLoop:(); renderLoop =
Figure = character
Humanoid = Figure:()
RootPart = Figure:()
Torso = Figure:()
RightShoulder = Torso:(, )
RootJoint = RootPart:(, )
originalC0 = RightShoulder RightShoulder.C0 .(, , ) * .(, .pi/, )
nativeAnimate = Figure:(, )
nativeAnimate
nativeAnimate.Disabled =
nativeAnimate:()
Animator = Humanoid:() .(, Humanoid)
_, track (Animator:())
track:()
anims = {
idle = .(),
walk = .(),
jump = .(),
fall = .(),
climb = .(),
swim = .(),
sit = .()
}
anims.idle.AnimationId =
anims.walk.AnimationId =
anims.jump.AnimationId =
anims.fall.AnimationId =
anims.climb.AnimationId =
anims.swim.AnimationId =
anims.sit.AnimationId =
tracks = {}
name, anim (anims)
tracks[name] = Animator:(anim)
tracks[name].Priority = .AnimationPriority.Action3
currentTrack =
currentPose =
isHoldingTool =
armLiftProgress =
jumpTime =
JUMP_DURATION =
()
toolFound =
_, child (Figure:())
child:()
toolFound =
isHoldingTool = toolFound
()
toolAddedConn = Figure.ChildAdded:((child)
child:() isHoldingTool =
)
toolRemovedConn = Figure.ChildRemoved:((child)
child:() .(checkToolState)
)
(name)
targetTrack = tracks[name]
targetTrack
currentTrack ~= targetTrack
currentTrack currentTrack:()
currentTrack = targetTrack
name == name == name == name == name ==
currentTrack.Looped =
currentTrack.Looped =
currentTrack:()
currentTrack.IsPlaying currentTrack:()
stateConn = Humanoid.StateChanged:((_, newState)
newState == .HumanoidStateType.Jumping
currentPose =
jumpTime = .()
)
renderLoop = RunService.Stepped:((_, deltaTime)
deltaTime = deltaTime (/)
Figure Figure:() Humanoid.Health <=
renderLoop renderLoop:(); renderLoop =
shouldRaiseArm = isHoldingTool currentPose ~= currentPose ~=
RightShoulder RootJoint Torso RootPart
RightShoulder.Transform = RightShoulder.Transform:(.(), armLiftProgress)
shouldRaiseArm
armLiftProgress = .(, armLiftProgress + (deltaTime * ))
currentTorsoRotation = (RootPart.CFrame:() * Torso.CFrame).Rotation
counterTwist = currentTorsoRotation:()
shoulderPos = .(originalC0.Position)
shoulderRot = originalC0.Rotation
stabilizedC0 = shoulderPos * counterTwist * shoulderRot * .(, , .())
RightShoulder.C0 = originalC0:(stabilizedC0, armLiftProgress)
armLiftProgress = .(, armLiftProgress - (deltaTime * ))
targetAngle = .() * armLiftProgress
RightShoulder.C0 = originalC0 * .(, , targetAngle)
)
physicsLoop = RunService.PostSimulation:(()
Figure Figure:() Humanoid.Health <=
toolAddedConn toolAddedConn:()
toolRemovedConn toolRemovedConn:()
stateConn stateConn:()
physicsLoop physicsLoop:(); physicsLoop =
currentState = Humanoid:()
isMidAir = (Humanoid.FloorMaterial == .Material.Air)
horizontalVelocity = (RootPart.AssemblyLinearVelocity * .(, , )).Magnitude
isMoving = (Humanoid.MoveDirection.Magnitude > ) (horizontalVelocity > )
currentState == .HumanoidStateType.Seated
currentPose =
currentState == .HumanoidStateType.Swimming
currentPose =
currentState == .HumanoidStateType.Climbing
currentPose =
currentPose ==
.() - jumpTime > JUMP_DURATION
currentPose =
isMidAir
currentPose =
isMoving
currentPose =
currentPose =
currentPose ==
()
currentTrack currentTrack:(Humanoid.WalkSpeed / )
currentPose ==
()
currentPose ==
()
currentPose ==
()
currentPose ==
()
currentPose ==
()
currentTrack
Torso.AssemblyLinearVelocity.Magnitude > currentTrack:()
currentTrack:()
currentPose ==
()
currentTrack
.(Torso.AssemblyLinearVelocity.Y) >
currentTrack:()
currentTrack:()
)
LocalPlayer.Character
.(setupAnimateEngine, LocalPlayer.Character)
LocalPlayer.CharacterAdded:((newCharacter)
(newCharacter)
)
2013 R6

Universal