Hello Guys, I’m Making A Pet Movement System But Pet Not Looking Chatacter Successfly!
Error Video:
https://gyazo.com/bd28843038b4be67dc4e4a34b88a7be7
Error ScreenShot:
local plr = game.Players.LocalPlayer
local Character = plr.Character or plr.CharacterAdded:Wait()
local HumanoidRootPart = Character:WaitForChild("HumanoidRootPart")
local fullCircle = 2 * math.pi
local radius = 10
local LERPH_ALPHA = 0.1
local function getXAndZPositions(angle)
local x = math.cos(angle) * radius
local z = math.sin(angle) * radius
return x, z
end
local function getAngle(firstPart, TwoPart)
return math.atan2(firstPart.X - TwoPart.X, firstPart.Z - TwoPart.Z)
end
game:GetService("RunService").RenderStepped:Connect(function()
local PetsFolder = workspace.Pets
local blaclistpartsfolder = game.Workspace.RaycastBlacklistParts
local PetTable = workspace.Pets:WaitForChild(plr.Name):GetChildren()
for i, v in pairs(PetTable) do
local chrAngle = Character.Humanoid.MoveDirection.Magnitude > 0 and getAngle(v.PrimaryPart.Position, v.PrimaryPart.Position + HumanoidRootPart.CFrame.LookVector) or getAngle(v.PrimaryPart.Position, HumanoidRootPart.Position)
local x, z = getXAndZPositions(i * (fullCircle / #PetTable))
local list = {}
for _, v in pairs(game:GetService("Players"):GetPlayers()) do
for _, q in pairs(v.Character:GetDescendants()) do
if q:IsA("BasePart") then
table.insert(list, q)
end
end
end
for i,v in pairs(PetsFolder:GetDescendants()) do
if v:IsA("BasePart") then
table.insert(list,v)
end
end
for i,v in pairs(game.Workspace.RaycastBlacklistParts:GetDescendants()) do
if v:IsA("BasePart") then
table.insert(list,v)
end
end
local rayParam = RaycastParams.new()
rayParam.FilterType = Enum.RaycastFilterType.Blacklist
rayParam.FilterDescendantsInstances = list
local raycastResult = workspace:Raycast(v.PrimaryPart.Position, v.PrimaryPart.Position - Vector3.new(0, 100, 0), rayParam)
if raycastResult then
local ObjectPosition = raycastResult.Position
local Object = raycastResult.Instance
if Object then
if ObjectPosition then
v.PrimaryPart.CFrame = v.PrimaryPart.CFrame:Lerp(CFrame.new(HumanoidRootPart.CFrame.p + Vector3.new(x,0,z)) * CFrame.Angles(0,chrAngle,0), LERPH_ALPHA)
v.PrimaryPart.CFrame = CFrame.new(v.PrimaryPart.CFrame.X, ObjectPosition.Y + v.PrimaryPart.Size.Y / 2, v.PrimaryPart.CFrame.Z)
v.PrimaryPart.CFrame = v.PrimaryPart.CFrame:Lerp(v.PrimaryPart.CFrame.p * CFrame.Angles(0,chrAngle,0), LERPH_ALPHA)
else
end
else
end
end
end
end)