Getting Started

Install ShmupKit and build a playable scrolling stage in Unreal Engine 5.

⚙️6 Steps
⏱️10 min setup
🎮Unreal Engine 5.6
🧩No code required

ShmupKit is a complete vertical shoot-'em-up framework for Unreal Engine 5.6. Everything is written in C++ and exposed to Blueprint, so you can ship a game with the kit without writing a line of code.

1

Install the plugin

Copy the ShmupKit folder into your project's Plugins/ directory, creating that folder if it doesn't exist. Open the project and accept the rebuild prompt, then enable it under Edit → Plugins and restart.

ShmupKit depends on Enhanced Input and Niagara. Both ship with Unreal and are enabled automatically.
2

Add the projectile collision channel

This is the one step the kit cannot do for you, and nothing will collide until it's done. Go to Project Settings → Engine → Collision → Object Channels → New Object Channel.

FieldValue
NameSKProjectile — must match exactly
Default ResponseIgnore

The channel is resolved by name at runtime, so it can occupy any free slot in your project.

Why Ignore? Every projectile lives on this channel, and anything hittable opts in with an Overlap response — pawn capsules already do. Bullets therefore never test against each other or against scenery, which is what keeps thousands of on-screen projectiles cheap.
3

Point the project at the kit

Under Project Settings → Project → Maps & Modes, set Default GameMode to BP_GameMode. It brings its own player pawn, controller and HUD, so this single setting wires up the whole framework. Subclass any of them later.

4

Configure ShmupKit

All global settings live in one place: Project Settings → Game → ShmupKit.

SettingPurpose
StagesYour levels in play order. The game advances through this list as each stage is cleared, and Retry returns to the first entry.
Stage Clear DelaySeconds between clearing a stage and travelling to the next. Any exit animation must fit inside this.
Weapon CatalogThe weapons offered by the pre-run select screen. Leave empty if you aren't using it.
Max High ScoresHow many entries the high-score table keeps.
High Score Slot NameSave-slot name on disk. Change it to namespace the table away from other saves.
Cast Mesh ShadowsOff by default. Shmup cameras rarely show shadows to advantage, and turning them off is free performance.
5

Build a level

A playable stage needs four actors. Drop them into an empty level:

ActorRole
BP_ScrollingBackgroundThe moving world. Parent all scenery meshes under its SceneRoot — one tick moves everything. Place exactly one per level.
SKCameraDirectorThe camera. Fixed in world X; the terrain scrolls through its view.
BP_ScrollSpawnerEnemy placement. Enemies appear as the terrain scrolls to each spawn point.
PlayerStartWhere the ship begins.

Press Play. You have a scrolling stage with a controllable ship.

The core idea: the camera does not move — the world scrolls through it. Anything that should feel part of the world must be parented to the scrolling background, including scenery, spawners and world effects.
6

Add enemies

Select the spawner, press Add Spawn Point in the Details panel, set the point's Enemy Class, and drag it to where that enemy should appear.

Position is timing. A spawn point fires when it scrolls to the trigger line. Points spread along the scroll axis arrive in sequence; points at the same height arrive together as a group. There is no delay field — the spacing is the delay.

Setup checklist

  • Plugin enabled and the editor restarted
  • SKProjectile object channel added, default response Ignore
  • Default GameMode set to BP_GameMode
  • Stages list populated in Project Settings → Game → ShmupKit
  • Scrolling background, camera director, spawner and PlayerStart in the level

Where next

Weapons

Weapon assets, power levels, fire points and mounts.

Read →

Enemies & Spawning

Spawn points, formations, paths and the timed wave system.

Read →

Pickups & Drops

Drop tables, pickup types and the collection magnet.

Read →

Bosses

Multi-part bosses, phases and the boss health bar.

Read →