every part is facing the same direction in its body
the animations are set the right direction
whats wrong
heres a video link
Try setting the AutoRotate property of the Humanoid to true. There’s a chance that the rotation of the NPC is locked, so that should enable it.
Thanks, ill give that a try right away
It does appear autorotate is on so thats not the issue here
Did you import this skeleton character, or did you make in Roblox? If you imported it, was it bigger or taller than it’s current size in the video?
i searched skeleton in the toolbox and i sized it down a lil
Try setting the CollisionFidelity
property of the skeleton mesh parts to Default
instead of Box
.
sorry if you cant see well but he is in fact still walking diagonally
It might be your movement script, because I found the same skeleton in the toolbox, grabbed a random chase script, and it worked normally.
hm i did just grab a movement script and edit it
do you wanna take a look at it?
Sure, I would love to see the movement script!
--//Services
local Players = game:GetService("Players")
--//Variables
local NPC = script.Parent -- ?
local mainTarget = script.Parent.Target
local isSame = nil
local points = game.Workspace.Points
--//Functions
local b = Instance.new("BodyGyro")
b.Parent = script.Parent.HumanoidRootPart
local function FindNearestPlayer()
local Closest = math.huge
local ClosestPlayer = nil
for i,v in pairs(Players:GetPlayers()) do
if v.Character:FindFirstChild("HumanoidRootPart") ~= nil and v.Character ~= script.Parent.Owner.Value and v.Character.HumanoidRootPart:FindFirstChild("FightMode") then -- make sure they're existant
local Distance = v:DistanceFromCharacter(NPC.HumanoidRootPart.Position)
if Distance < Closest then
Closest = Distance
ClosestPlayer = v.Character
end
if i == #Players:GetPlayers() then
return ClosestPlayer
end
end
end
end
while wait(0.1) do
local ClosestPlayer = FindNearestPlayer()
if ClosestPlayer then
b.CFrame = ClosestPlayer.PrimaryPart.CFrame
script.Parent.Humanoid:MoveTo(ClosestPlayer.PrimaryPart.Position)
elseif mainTarget.Value then
script.Parent.Humanoid.WalkSpeed = 50
if mainTarget.Value ~= isSame then
isSame = mainTarget.Value
if script.Parent:FindFirstChild("grr") then
script.Parent.grr:Destroy()
end
local grr = Instance.new("Sound", script.Parent)
grr.Name = "grr"
grr.SoundId = "rbxassetid://2111153598"
grr:Play()
end
for i, v in pairs(script.Parent:GetChildren()) do
if v:IsA("BasePart") and v.Name ~= "HumanoidRootPart" and v.Name ~= "Hitbox" then
v.Color = Color3.new(1, 0, 0)
v.Material = Enum.Material.Neon
end
end
if mainTarget.Value:FindFirstChild("Humanoid") then
b.CFrame = mainTarget.Value.PrimaryPart.CFrame
script.Parent.Humanoid:MoveTo(mainTarget.Value.PrimaryPart.Position)
elseif not mainTarget.Value:FindFirstChild("Humanoid") then
b.CFrame = mainTarget.Value.CFrame
script.Parent.Humanoid:MoveTo(mainTarget.Value.Position)
else
warn("lol u broke skele boiiiiiiiiiii")
end
end
end
--while true do
-- script.Parent.Humanoid:MoveTo(points.one.Position)
-- wait(4)
-- script.Parent.Humanoid:MoveTo(points.two.Position)
-- wait(4)
-- script.Parent.Humanoid:MoveTo(points.three.Position)
-- wait(4)
-- script.Parent.Humanoid:MoveTo(points.four.Position)
-- wait(4)
--end
i used the points for testing but never removed the variable
Did the mainTarget
variable come with the script, or did you add all that?
i added it, i can send you the skeleton model if it helps
Sure, that would be extremely helpful!
here ya go that should be it
Are you sure the HumanoidRootPart
is correctly rotated? Because in the videos provided, I can see that the NPC can rotate, but it isn’t facing the player.
Try changing the rotation of the HumanoidRootPart
and test it. Try changing it by 90 degrees and see if that makes a difference.
i checked every part and they all face the same way