Can the starter character be a ball with something inside?

Hi, I was wondering if the starter character could be a rolling ball (fish bowl, actually), with inside water and a fish, and basically when you move in one direction (you are the fish), the bowl that contains you rolls in the same direction you are taking, I don’t know if I was clear enough, let me know if not. It should look something like this:

image

I hope somebody has the answer, thank you.

Yes, this is possible.

To make something like this, I would recommend creating a Part when the player joins, weld it to the Character so it stays on the character, make the Character invisible and finally use some type of mesh that looks like a fish (or whatever you are using) and weld it to the Character's RootPart.

Make some adjustments to the fish (or whatever you are using) so it faces forwards, after that, you can do some type of code which usesbodyforces to make the ball rotate everytime you move.

I’m not quite sure on how to do that, may you help me?

no problem!

here is the code (not mine btw)

game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(char)
		local HRP = char:WaitForChild("HumanoidRootPart")
		local marble = Instance.new("Part")
		marble.Size = Vector3.new(8,8,8)
		marble.BrickColor = BrickColor.Random()
		marble.Transparency = .5
		marble.Shape = Enum.PartType.Ball
		marble.Parent = char
		marble.Material = Enum.Material.SmoothPlastic
		local Velocity = Instance.new("BodyAngularVelocity")
		Velocity.Parent = marble
		local Hum = char:WaitForChild("Humanoid")
		local Weld = Instance.new("Weld")
		Weld.Parent = marble
		Weld.Part0 = HRP
		Weld.Part1 = marble
		Hum.PlatformStand = true
		
		while true do
			wait()
			marble.BodyAngularVelocity.AngularVelocity = Vector3.new(char.Humanoid.MoveDirection.z * 32,0,char.Humanoid.MoveDirection.x * -32)
			marble.BodyAngularVelocity.MaxTorque = Vector3.new(10000,10000,10000)
			if char.Humanoid.MoveDirection == Vector3.new(0,0,0) then
				marble.BodyAngularVelocity.MaxTorque = Vector3.new(0,0,0)
			end
		end
	end)
end)

This is supposed to be inside of a ServerScript and the ServerScript should be inside of ServerScriptService

thank you, it works, but the player rotates with the ball. is there any way to make the player not roll? Also, is there any way to add real water inside of the ball? (With “real water” I mean water you can swim into)

I apologize, but I have no idea on how to make the stuff that you have written.

Ok, thank you anyways! I’m grateful you helped :slight_smile: :slight_smile:

by any chance do you know how to increase the speed please?

Sorry for not replying, but try messing with this marble.BodyAngularVelocity.AngularVelocity = Vector3.new(char.Humanoid.MoveDirection.z * 32,0,char.Humanoid.MoveDirection.x * -32) part of the code. Try changing the Z or X values to make it faster.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.