Motor6D/Custom Rig/Anim issue

I have made a bunch of “brooms” of sorts, some have multiple moving parts, so I’ve made a custom rig for each broom and animated them. All of that stuff is fine and works okay.

I’m really not sure how to describe this issue, or what is causing it. However, on your own broom, the broom appears to work perfect! All parts are in the right place, the animation is running smoothly. But, if you look at anyone else riding a broom, they’re always connected to it wrong, and sometimes the animation doesn’t play properly.

When other people are on their broom, you see them riding it like this.

On your own broom, it looks like this. (the correct way to ride a broom)

The Motor6d is connected on the server, Part0 is set to the HumanoidRootPart, Part1 is set to a handle in the broom model. The broom is parented to the character when they equip the broom.

m6 = Instance.new("Motor6D",Character.HumanoidRootPart)
m6.Part0 = Character.HumanoidRootPart
broom.PrimaryPart = broom.BroomHold
broom:SetPrimaryPartCFrame(Character.HumanoidRootPart.CFrame)
broom.Parent = Character
m6.Part1 = broom.BroomHold

Thats the code which connects the broom to the character. Animating is ran on client. I’m all out of methods to try to fix this now. Any suggestions from anyone who may have experienced something similar would be appreciated.

Used a different method before, the main difference was running animations on the server- the same issue occurred however as soon as your character model made contact with another player’s (who was riding a broom), the animations would fix and it would look like they’re riding the broom completely normally. This time im animating on client, and contact with anyone else riding a broom does not affect how their animation looks on my client.

Sorry it’s not explained well, not exactly sure whats causing this or what to even call this issue.

Well honestly its kinda pretty obvious what the problem is, it has to be a replicating issue because if it works well on the client locally but to others not so much, then I think theres some underlying replication issues going on

Maybe trying testing out somethings using network ownership, its a bit of a stretch but thats really all I can think of

1 Like

Are you doing this via a local script? make sure to fire a remote in order to replicate the Motor6D attachments to the server via remote events.

basically copy over your Motor6D setup into a server script.

1 Like

Yuup that script above was done on the server!

I looked up Motor6Ds on the dev forum api and it didnt say anything about it being replicated or not replicated to either the servers or all other clients

Although since Motor6DS are used for humanoid joints and stuff youd think it would replicate on its own?

1 Like

Thats a good idea didn’t think abt trying to play with the network ownership, ill give that a try.

Ya I assumed so too but it’s not really looking that way, I use a similar method for animating “animal morphs” onto players, and once again they sometimes just don’t replicate properly.

1 Like

Are you running the animations via the Animator or the outdated method?

1 Like

Try creating an animator and parenting it to the custom rigs humanoid. You can create a animator in studio by typing this into the output

local new = Instance.new("Animator") new.Parent = game.StarterPlayer.StarterCharacter.Humanoid
1 Like

Uhhh

function PlayAnimation(anim,title)
	if currentAnim ~= nil then
		currentAnim:Stop()
	end
	local animTrack = Player.Character.Humanoid:LoadAnimation(anim)
	currentAnim = animTrack
	currentRunning = title
	animTrack:Play()
end

Considering I have no idea what “the animator” is, no
I did google it though, and I think I know what you mean- I can give it a go.

This here shows the animation running fine, however the motor6d joint is facing the wrong way. But if I ride the dragon skin broom, on my client, it’s facing the right way… so… bit stuck on what to do with that.

The brooms were animated with a model as an extension to the character model, therefore there is no “Humanoid” in this broom rig. It’s just connected to the humanoidrootpart. I think that means adding a new Animator is redundant as the Humanoid already has one- but I might be wrong idk

Are you creating the motor6d in a script? or is it already created? If nots not already created before it welds it to the player. Try having it created before you weld it.

Try running your animations via the animator

local AnimTrack = Player.Character.Humanoid.Animator:LoadAnimation(anim)

much more reliable and efficient!

1 Like

The only thing that connects the Broom model to the character model is a Motor6d joint though, connecting the HumanoidRootPart to the “BroomHold” part, I can always pre-emptively creative a Motor6d joint but Im not sure if it would make much difference it being created when the character spawns, or when they equip the broom.

We still riding brooms backwards unfortunately, despite using the Animator.

After all these very helpful responses and perspectives, I think this is a Motor6D issue and not an animating issue, personally. I just have no clue what to do about it :skull:

I had an issue where the tool wasnt animating for other players but it was for the client. I fixed it by creating the motor6d when the player spawned instead of creating it when the tool was equipped. Give it a try.

1 Like

i owe u a can of pepsi for doubting your method before.

motor6d is DEFO working properly now, its just the animation only loading on the client side :weary:, or at least only part of the animation

marked as solution because it resolved the motor6d replicating incorrectly/poorly.