How to create a custom character using a dinosaur rig

  1. I am trying to figure out how to turn the players character from a humanoid shape to the dinosaur model I have which is just a mesh with a bunch of bones

  2. Whenever I try to put it in as a starter player or morph the character into the dinosaur there is issues with the movement and or it could not move at all.
    image

I have looked all over and cant find a solution that works for a custom rigged model like this and I am confused on where to start here.

I need to be able to have my own custom walking and running animations for the dinosaur too. If I need to create a custom character controller that is fine with my I just need to know how to turn the player into the actual rig

   function DinoModule.MorphPlayer(dinoName: string)
	local oldCharacter = player.Character or player.CharacterAdded:Wait()
	local newCharacter = ReplicatedStorage.Dinos:FindFirstChild(dinoName):Clone()
	
	newCharacter.HumanoidRootPart.Anchored = false
	newCharacter.PrimaryPart.CFrame = oldCharacter.PrimaryPart.CFrame
	
	player.Character = newCharacter
	newCharacter.Parent = workspace
end

This is what I have currently and it just moves the player with the camera and causes all kinds of other issues

So, your mesh is correctly rigged from Blender or any software you use?
You can move the bones in blender and the mesh moves along correctly?

Because the shape, bones and names are different than the ones included into the default roblox rigs. You can’t use the Animate default script that roblox provides for players.

When you set your Rigged Model as the StarterCharacter, when player joins it gets the character and the Animate script, which surely cant find the proper parts/bones/motors inside your Rigged Model cause yours are custom. So you could edit the Animate script and
change the animations ids in it. Fork it and check its children to find the animations and edit it to be compatible with the parts/bones of your custom rig. (not an easy task)

If you use the code that you are showing, then you should delete the OldCharacter after placing the NewCharacter, causing to delete the Animate script in the Old one, the newCharacter doesnt contain the Animate script, again causing the character not being able to animate.

The code you are showing should work normally to simply give the player a new character, and delete the previous one, that wont make it able to be animated until you add your edited Animate script or your build your own.

Last thing, seems that your code is for Client Side, did you tried doing it in ServerSide?

function MorphPlayer(player, dinoName)
	local oldCharacter = player.Character or player.CharacterAdded:Wait()
	local newCharacter = game.ServerStorage:WaitForChild("Dinos"):WaitForChild(dinoName):Clone()

	newCharacter.HumanoidRootPart.Anchored = false
	
	player.Character = newCharacter
	newCharacter.PrimaryPart.CFrame = oldCharacter.PrimaryPart.CFrame
	newCharacter.Parent = workspace
	
	oldCharacter:Destroy()
	
end

-- From any event you like, fire the function in server
MorphPlayer(player, "Dino Name")

As you suggested, could be better to build your own Animate script.
(I could be wrong, honestly, I would need to check the rig myself to find what could be a decent approach)

Thank you but the animation is not the problem is being able to just move around normally as the custom character I can make my own animate script from there

Sorry, then I dont understand the issue, if your custom character already is animated (idk if you used the Animate script and edited or build your own)

If the custom character is animating normally, and is being able to move around normally, then what is the issue?
The script I posted is very similar to the one you have, and that already turns a player into a custom character without issues