Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
UserInputService = :()
LocalPlayer = Players.LocalPlayer
Camera = .CurrentCamera
Mouse = LocalPlayer:()
rightCtrlDown =
(logType, message, bypass)
(bypass ().Network.Output.Enabled) (logType) ==
(().Network.Output.Prefix .. message)
().Network
Network = {
BaseParts = {},
Output = {
Enabled = ,
Prefix = ,
Send = logOutput
},
CharacterRelative = ,
Velocity = .(, , )
}
().Network = Network
(, )
Network.(part, returnFake)
(, ..(part)..)
(, ..((part) == ))
(, ..(part:() part:()))
(, ..(part:()))
((part) == (part:() part:()) part:(), )
returnFake (returnFake) ~=
()
.(Network.BaseParts, part)
(, .. part:())
Network.CharacterRelative
character = LocalPlayer.Character
(character character.PrimaryPart)
(, )
dist = (character.PrimaryPart.Position - part.Position).Magnitude
dist >
(, .. part:())
.(Network.BaseParts, part)
part.CustomPhysicalProperties = PhysicalProperties.(, , , , )
(, .. part:())
returnFake FakePart
Network.(part)
((part) == part:(), )
idx = .(Network.BaseParts, part)
idx
.(Network.BaseParts, idx)
(, .. part:())
(, .. part:())
SuperStepper = .()
Network.SuperStepper = SuperStepper
_, event ({RunService.Stepped, RunService.Heartbeat})
event:(()
SuperStepper:(SuperStepper, ())
)
Network.PartOwnership = {
Enabled = ,
PreMethodSettings = {}
}
Network.PartOwnership.()
Network.PartOwnership.Enabled
(, )
Network.PartOwnership.Enabled =
Network.PartOwnership.PreMethodSettings = {
ReplicationFocus = LocalPlayer.ReplicationFocus,
SimulationRadius = (LocalPlayer, )
}
LocalPlayer.ReplicationFocus =
Network.PartOwnership.Connection = SuperStepper.Event:(()
(LocalPlayer, , .huge)
_, part (Network.BaseParts)
.(()
part:()
Network.CharacterRelative
character = LocalPlayer.Character
(character character.PrimaryPart)
(, )
(character.PrimaryPart.Position - part.Position).Magnitude >
(, .. part:())
Network.(part)
part.Velocity = Network.Velocity + .(, .(() * ) / , )
Network.(part)
)
)
(, )
Network.PartOwnership.()
Network.PartOwnership.Connection
(, )
Network.PartOwnership.Connection:()
LocalPlayer.ReplicationFocus = Network.PartOwnership.PreMethodSettings.ReplicationFocus
(LocalPlayer, , Network.PartOwnership.PreMethodSettings.SimulationRadius)
_, part (Network.BaseParts)
Network.(part)
Network.BaseParts = {}
Network.PartOwnership.Enabled =
(, )
(, )
.(().Network.PartOwnership.Enable)
character = LocalPlayer.Character
IsR15 = character.Humanoid.RigType == .HumanoidRigType.R15
root
handsAndLegs = {}
IsR15
_,v character:():()
v.Name ==
v.Handle.MeshId ==
root = v.Handle
.(handsAndLegs, v.Handle)
_,v character:():()
v.Name ==
v.Handle.SpecialMesh.MeshId ==
root = v.Handle
.(handsAndLegs, v.Handle)
pet = character[].Handle
(part)
bp = .(, part)
bp.D =
bp.P =
bp.MaxForce = .(.huge, .huge, .huge)
bg = .(, part)
bg.D =
bg.P =
bg.MaxTorque = .(.huge, .huge, .huge)
bp, bg
(LocalPlayer.ConnectDiedSignalBackend)
.(Players.RespawnTime)
startPos = character.HumanoidRootPart.Position
character.HumanoidRootPart.CFrame = .(, .FallenPartsDestroyHeight+, )
.()
character:():()
().Network.(root)
().Network.(pet)
handsMovers = {}
i = ,
part = handsAndLegs[i]
part
bp, bg = (part)
handsMovers[i] = {
bp = bp,
bg = bg,
angleX = (i == i == ) .(-) .(),
angleY = ,
offset = i <=
.(i == -, , )
.(i == -, -, )
}
_,v handsAndLegs
().Network.(v)
bp, bg = (root)
bpPet, bgPet = (pet)
movementPart = .(, )
movementPart.Position = startPos
movementPart.Size = .(, , )
movementPart.Transparency =
tempMover = .(, movementPart)
tempMover.MaxTorque = .(.huge, .huge, .huge)
tempMover.AngularVelocity = .zero
tempMover.P =
tempMover = .(, movementPart)
tempMover.MaxForce = .(.huge, , .huge)
tempMover.Velocity = .zero
tempMover.P =
movementPart.CustomPhysicalProperties = PhysicalProperties.(, , , , )
UserInputService.JumpRequest:(()
movementPart.Velocity += .(, , )
)
Mouse.Button1Down:(()
UserInputService:(.KeyCode.RightControl)
movementPart.Position = Mouse.Hit.Position + .yAxis
)
Camera.CameraSubject = movementPart
(direction, deltaTime)
direction.Magnitude ==
flatDirection = .(direction.X, , direction.Z).Unit
targetRotation = .(movementPart.Position, movementPart.Position - flatDirection)
smoothCFrame = movementPart.CFrame:(.(movementPart.Position) * targetRotation.Rotation, deltaTime*)
movementPart.CFrame = smoothCFrame
()
lookVector = Camera.CFrame.LookVector
flatLook = .(lookVector.X, , lookVector.Z).Unit
flatLook.Magnitude ==
targetRotation = .(movementPart.Position, movementPart.Position - flatLook)
movementPart.CFrame = .(movementPart.Position) * targetRotation.Rotation
rad15Z = .(, , -.())
rad180Y = .(, .(), )
forward =
moving =
Players = :()
()
lowest = .huge
NearestPlayer
_,plr (Players:())
plr ~= LocalPlayer plr.Character
distance = plr:(movementPart.Position)
distance < lowest
lowest = distance
NearestPlayer = plr
NearestPlayer
willFollowNotMe =
targetOffset = .zero
target
tempPlr
(()
(.(, ))
targetOffset = .zero
.(, ) >
target = ().Character.Head
willNotFollowMe =
tempPlr = ().Character
tempPlr:()
target = tempPlr.LowerTorso
willNotFollowMe =
tempPlr:()
target = tempPlr.Torso
targetOffset = .(, -, )
willNotFollowMe =
willNotFollowMe
(.(, ))
willNotFollowMe =
)
bpPet.Position = startPos
pet.Position = startPos
RunService.Heartbeat:((deltaTime)
UserInputService:()
moveDir = .zero
(UserInputService:(.KeyCode.W) UserInputService:(.KeyCode.S))
UserInputService:(.KeyCode.W)
lookVector = Camera.CFrame.LookVector
moveDir += .(lookVector.X, , lookVector.Z)
UserInputService:(.KeyCode.S)
lookVector = Camera.CFrame.LookVector
moveDir -= .(lookVector.X, , lookVector.Z)
(UserInputService:(.KeyCode.A) UserInputService:(.KeyCode.D))
UserInputService:(.KeyCode.A)
rightVector = Camera.CFrame.RightVector
moveDir -= .(rightVector.X, , rightVector.Z)
UserInputService:(.KeyCode.D)
rightVector = Camera.CFrame.RightVector
moveDir += .(rightVector.X, , rightVector.Z)
moveDir.Magnitude >
moving =
moveDir = moveDir.Unit
movementPart.Position += moveDir * deltaTime *
UserInputService.MouseBehavior ~= .MouseBehavior.LockCenter
(moveDir, deltaTime)
moving =
forward =
UserInputService.MouseBehavior == .MouseBehavior.LockCenter
()
bp.Position = movementPart.Position + .yAxis
bg.CFrame = movementPart.CFrame * rad15Z
root.CFrame = movementPart.CFrame * rad15Z + .yAxis
i = ,
mover = handsMovers[i]
mover
moving
i == i ==
forward
mover.angleY +=
mover.angleY ==
forward =
mover.angleY -=
mover.angleY == -
forward =
forward
mover.angleY -=
mover.angleY +=
mover.angleY =
targetCFrame = movementPart.CFrame
* .(mover.offset)
* .(.(mover.angleY), , mover.angleX)
mover.bp.Position = targetCFrame.Position
mover.bg.CFrame = targetCFrame
handsAndLegs[i].CFrame = targetCFrame
tempCFrame
tempPos
willNotFollowMe
target
(pet.Position - target.Position).Magnitude >
tempCFrame = .(pet.Position, target.Position + targetOffset)*rad180Y
bgPet.CFrame = tempCFrame
tempPos = (pet.Position - (bgPet.CFrame.LookVector * deltaTime * ))
bpPet.Position = tempPos
pet.Position = tempPos
willNotFollowMe =
(pet.Position - movementPart.Position).Magnitude >
tempCFrame = .(pet.Position, movementPart.Position)*rad180Y
bgPet.CFrame = tempCFrame
tempPos = pet.Position - (bgPet.CFrame.LookVector * deltaTime * )
bpPet.Position = tempPos
pet.Position = tempPos
)"your little friend" in the title means "pet", because scriptblox doesn't allow the word "pet" in script title This is my open source reanim script. Also I added pet that follows you. Accessories: https://www.roblox.com/catalog/4819740796/Robox and 4 any fedoras any accessory for pet DONT FORGET TO SCALE THESE ACCESSORIES TO MAX You can change your pet accessory on line 176 and body parts(NO HEAD) on line 154

Universal