The Player Ship
Four weapon mounts, tuned movement, pointer steering and scripted entry and exit flights.
The player ship is a pawn with four weapon mounts, a movement component tuned for shmup feel, and optional pointer steering. Subclass it once in Blueprint and you have a playable ship.
Mounts
Four weapon components: Front, Left, Right and
Rear. The rear mount ships pre-configured to fire backwards. Which button fires each one
is worked out automatically โ see Weapons.
Movement
| Property | Default | Purpose |
|---|---|---|
| Move Speed | 800 | Top speed. |
| Lerp Speed | 5 | Acceleration character. Higher is snappier; 0 is instant, which suits a precise bullet-hell feel. |
| Bank Angle | 15 | Degrees the mesh rolls when moving sideways. Purely visual, and it does more for feel than its size suggests. |
| Bank Lerp Speed | 8 | How quickly the roll eases in. |
| Min Bounds / Max Bounds | ยฑ700 / ยฑ500 | The play area, in world units. The ship is clamped inside this. |
Input
Enhanced Input throughout. The shipped BP_PlayerPawn carries the default assets; set
your own on a subclass to rebind.
| Property | Purpose |
|---|---|
| Default Mapping Context | Applied when the pawn is possessed. |
| Move Action | 2D movement input. |
| Fire Action | Main fire button. |
| Fire Left Action | Fires the left manual mount โ middle mouse by default. |
| Fire Right Action | Fires the right manual mount โ right mouse by default. |
Firing is driven by which buttons are currently held rather than by press and release events. That is what allows one mount to answer several buttons, and it means releasing one button while another is still down does not interrupt fire โ including through a mid-hold weapon swap.
Blueprint hooks
| Event | Fires |
|---|---|
| On Fire / On Stop Fire | The main button is pressed or released โ for recoil, a muzzle flash or an animation. |
| On Pawn Damaged / On Pawn Death | Inherited from the pawn base. |
Pointer steering
USKTouchDragComponentPoke-and-drag steering: mouse on desktop, touch on mobile. It coexists with keyboard and gamepad โ the most recent input wins โ so you don't choose one scheme at build time.
| Property | Default | Purpose |
|---|---|---|
| Drag Enabled | On | Master switch. Turn it off for keys only. |
| Mouse Steering | On | Allow the mouse to steer as well as touch. |
| Drag Sensitivity | 1 | Hand movement to ship movement ratio. At 1, a full-screen-height drag crosses the full play area. |
| Invert Y | Off | Flip the vertical axis. |
Steering uses raw pointer deltas rather than cursor position, so it is unbounded at screen edges, needs no cursor warping, and behaves identically on every platform. Movement is resolution and aspect independent.
Entry and exit flights
The ship can fly in at the start of a stage and out when it is cleared. Both suspend control and guns, lift the play-area bounds, and make the ship untouchable for the duration โ being shot down during a cinematic you can't control is simply unfair.
| Property | Default | Purpose |
|---|---|---|
| Intro Duration | 0 | Seconds the entry takes. 0 is off โ the ship starts where it is placed. |
| Intro Start Offset | -1200, 0 | Where it flies in from, relative to its spawn point. |
| Intro Overshoot | 0.2 | How far it sails past its mark before settling back, as a share of the trip. The settle is what makes it read as an arrival rather than a slide to a halt. 0 gives a plain glide. |
| Intro Spin Degrees | 720 | Barrel roll during the entry. Use multiples of 360 or the ship finishes banked. |
| Play Intro On Respawn | Off | Replay the entry on every respawn. Off by default โ a respawn already has its invulnerability window, and the cinematic gets old fast. |
| Outro Duration | 0 | Seconds the exit takes. Keep it below Stage Clear Delay or the level travels before the flight finishes. |
| Outro End Offset | 2000, 0 | Where it flies out to. |
| Outro Backup | 0.2 | How far it draws back before launching away. The little run-up sells the departure as deliberate. |
| Outro Spin Degrees | 720 | Barrel roll on the way out. |
| Function / Event | Purpose |
|---|---|
| Play Intro / Play Outro | Trigger a flight manually. Both no-op when their duration is 0. |
| Cancel Sequence | Abort a flight in progress, restoring control, bounds and collision. |
| Is Playing Sequence | True while either flight runs. |
| On Intro Finished / On Outro Finished | Blueprint hooks for FX and audio. The stage transition runs on its own timer, so these are for presentation only. |
Blob shadows
USKBlobShadowComponentA cheap ground shadow, drawn as a decal so it lands correctly on real terrain at any height rather than floating on a flat plane. Add it to ships and other significant actors โ a decal per bullet would be expensive.
| Property | Default | Purpose |
|---|---|---|
| Radius | 100 | Size of the blob. |
| Projection Depth | 2000 | How far down it projects. Must exceed the ship's height above the terrain or nothing lands โ this is the most common reason a blob shadow appears to do nothing. |
| Keep World Down | On | Holds the projection pointing straight down, so a banking ship's shadow doesn't skew with it. |
A procedural material is recommended over a texture: nothing to license, resolution-independent and free of compression banding. A Deferred Decal, Translucent and Unlit, with a radial gradient driving opacity over a black base colour, is the whole recipe.
Common fixes
- The ship won't leave the screen during an exit flight โ that is the bounds clamp; flights lift it automatically, so check Outro Duration is above 0
- The exit is cut off mid-air โ Outro Duration exceeds Stage Clear Delay
- The ship finishes banked after an entry โ the spin isn't a whole multiple of 360
- Mouse steering fights the keyboard โ that is most-recent-input-wins working; turn off Mouse Steering for keys only
- No blob shadow โ Projection Depth is shorter than the ship's height above the ground