Help with Horse, or Custom Humanoid?

I am trying to make a ‘vehicle’ to be specific a Horse, that the players can ride around.
However, the horse contains a Humanoid object, so that it can animate, move, etc…

The issue is that when I have a seat, attached to the Horse (for the player to sit on the saddle) I suppose because the player also has a Humanoid, when they sit in the saddle, it sometimes (not always) puts my horse into a ‘sitting’ state.

I am using the SetPart:Sit() command, with the SeatPart.CanTouch = false So I know its not due to the horse ‘touching’ the seat.

Would it be better to make a custom ‘Humanoid’ object for the horse, and what all things would I need to code for?
Or is there just a better way to go about this?

Thanks for any help.

try to rename the horses humanoid to something else idk

beacuse if they have the same name the script can be confused and sit the horse sit

the horse’s humanoid is named Pet

This topic is quite interesting. What are the values of the Seat’s occupant, and is the horse’s model parented inside the other character?

the horse model is its own model under workspace, and the character’s model is of course its own model under workspace. So there is no nesting of the two.

Seat’s occupant shows the humanoid of the character. It’s really strange.

However, I did do a SetStateEnabled on the horse’s humanoid for Seated to be false, this keeps it from happening. It just feels hacky. Also, I noticed using the same aniamtion code the player character is using (only converted to server side as the horse is a server object) and when I go from an idle animation to a walking animation, there is about a .5 second delay before it starts playing the walking
so for .5 seconds the horse is sliding in an idle animation.

Not sure why, as the code is identical to the characters code.
Really wish there was a standard proven way to have one humanoid rig hold another humanoid rig with a seat, and it just ‘work’ :stuck_out_tongue:

Been there where SetStateEnabled feels hacky. I made a very hacky ragdoll script that constantly sets the state both locally and on the server to make the character ragdoll, and it constantly glitched out at first, but then I made it more stable (it still does that state change thing though).

Anyways, to fix the seat, you can probably make a custom script for a normal part. The way a seat works is if it touches a part which, from the parent, finds a Humanoid, it will create a SeatWeld (which is either a weld or ManualWeld), and makes the Humanoid sit (this is all handled by a LocalScript). When the Humanoid jumps with the Jumped event, it will destroy the SeatWeld, and have a debounce of either 3 or 5 seconds (I forgot which one).

You need a humanoidrootpart, a humanoid object, and motor6D for each part.

I suppose I could try to make my own seats instead of make my own humanoid.
I just felt that there still might be issues with having a welded together structure, because essentially they are all welded together, horse and character, containing two humanoids.

But I will give it a shot, thanks.