How do i make a boat move in water?

I have made a boat, but its not working for some reason in the water.


The wheel is being rotated by 1 hingeconstraint.
The wheel paddles are welded via WeldConstraints

How do i make the boat move forward in the water?

4 Likes

Make sure that your welding parts and not anchoring them.

https://developer.roblox.com/en-us/api-reference/class/WeldConstraint
Versus
https://developer.roblox.com/en-us/articles/positioning-objects#anchoring-objects

The parts are welded together with WeldConstraints and are not anchored.
image

1 Like

Try thicker paddles (aka the wood things)

If that doesn’t work, there is a tutorial on youtube you can try: https://www.youtube.com/watch?v=loEGS-ge_sQ

That did not work aswell. And i would like to use the actual water physics instead programming it to actually move.

1 Like

Roblox doesn’t do water simulation. You will have to implement drag yourself.
This won’t be hard, all you need is a VectorForce in each wheel and a desired force as a number. Then you set the Force property to (0,0,force) when moving forwards, (0,0,-force) to go back and a nul vector when not moving.

3 Likes

Also, use attachments parented to the boat’s body as the wheels spin and will make the force spin with them, giving a total vector of (0,0,0)

I cant parent something to the boat’s body because players can make their own creation which means there is no way to find the body.

Captain seat?

WWWWWWWWWWWWWOOOOOOOOOOOOOOOOOOOOOORRRRRDDDDDDDDDDDSSSSSSSS

This seat can be placed anywhere. There are people out there that will not place the seat on the boat but somewhere else instead.

In that case you can easily re-assign the position when either the seat, or the wheel are moved.
It would be: wheel.Position-seat.Position

Making a boat move in water won’t be to most complex thing you can do.
I myself 2 months ago, created the basic groundwork for a boat system in one of my projects. It’s really simple on how it works as well. It simply makes use of both UserInputService and BodyMovers.

Whenever the use presses the forward key, connecting it to a function with UIS’ InputBegan event, it’d tell one of the BodyMovers to move the boat in the forward direction, and it would coast to a stop when the player let go of the forward key. Quite similar to what nooneisback said.
When it comes to moving the boat around, in my basic boat framework, I used BodyThrust to handle forward and back movements, and a BodyAngularVelocity instance to handle turns.

2 Likes

Roblox definitely has/had proper water simulation. I’m thinking this is a bug of some sort. Did a quick google search and at 5:30 on the video you can see a working paddle boat in exactly the same game working just fine.

I created something similar in studio just now, and no dice. Couldnt find anything in the updates section of the forum referencing a change to water physics.

1 Like

I figured it out. Roblox does not take the AngularVelocity of a part into account at all when calculating water physics. The paddles you have are centered with the wheel - i.e. opposite paddles are one part passing through the middle. Therefore the paddles dont gain linear velocity when the wheel starts spinning, and so create no force.
To fix it, just make your paddles like this


Instead of this

15 Likes