Spaceship Controller

I can’t seem to find a tutorial to create a smooth spaceship controller. I just want to make a basic fighter style spaceship that can land on a bigger ship and fly around well. The only tutorial I could find on a spaceship tutorial used physics and was really buggy. Please could someone point me in the right direction.

You can control the ship like a pawn. What’s the issue? Do you need some special controller? Or do you need AI to control your second ship?

I don’t understand the question. Are you meaning like the small ship lands on the mothership and then you control the mothership?

IF that is what you mean then you need an ENTER / EXIT. Kind of like a multiplayer combat game where the player walks up and presses E and gets in a chopper or tank or something?

But in your case you would not be triggering it with an input but likely by proximity which you can do through math or box collisions / overlaps, and then some logic to have the smaller ship land or dock with the bigger ship.

So, for the spaceship, I just need like basic controls set up. I tried all the tutorials I saw on how to make a spaceship and they were all super buggy around other objects. For the mothership, I just have a button that they press to get out.

Basic controls in UE will work for any pawn. If you don’t understand how to set it up, I recommend not relying on tutorials but instead figuring it out yourself and understanding how it works in UE. It’s not complicated. If tutorials are easier for you, watch one, try to understand what you saw, and implement it yourself instead of copying what others do without trying to grasp what’s happening. What kind of bugs could there be in ship controls? It’s not entirely clear.

Like the above post is saying, I try to think of what I am trying to do and simplify it as much as possible and try to find a solution for that one issue / problem.

There is no such thing as “smooth” in space.

If you apply the physics you know are true to a simulator “as is”, you end up unable to control the ship for everything about what you think is “wrong” and even an F1 driver (worlds top reaction speeds) will have trouble issuing corrective commands effectively.

Ergo, what you need is your own solution that feels like nice gameplay to you and your testers.

The only way to achieve that is precisely what was suggested above… and a ton of trial and error.
Plus maybe hiring Picard to say engage. I think it helps :stuck_out_tongue_winking_eye:

On the market place look for gravity system MGT. They had a space ship controler
that actually really complexe system to not have glitch character sliding around

Thanks to all for your help. I was able to set up a basic ship controller, but I can’t seem to get it to work on a client. The Server can move just fine, but the client can only rotate in a fixed point. The ship won’t actually move. Any suggestions? Here is the ship controller I made. The first is to rotate and the second is to move forward.


May sound silly. But before even looking at your code you need to verify that the input settings on the client are correct.
And that nothing else consumes the input.

With client running you should be able to select from the dropdown at the top of the BP which BP to debug.
Figure out what the instance of the client is, throw a breakpoint on the fisrt node after the input.
Follow alonf and see if it fails at all.

Hi, the forward thrust function is called on tick. Since a version of that actor also exists on the server, it means the server will call this on the client’s ship as wells and override the value the client send, setting it to zero every frame. You would need to send it directly from the input action (which will only be executed locally), not from the tick which will be executed on the server as well.

Oh well yea, good catch.

Just connect the input directly into that.
You shouldnt be using tick and the pressing of an input that isnt consumed acts exactly like tick (unless you change the blueprint’s tick group, then input keeps running every frame while the bp will respect the tick group setting).