Skip to content

Migrate into your project

Use this when you want the template’s vehicle soccer systems inside a game you already have, instead of building on the standalone FAB project.

flowchart TD
  A["Migrate VehicleSoccerTemplate content"] --> B["Enable ChaosVehicles, EnhancedInput, CommonUI"]
  B --> C["Merge DefaultEngine.ini settings"]
  C --> D["Set GameInstanceClass"]
  D --> E["Override arena map Game Mode"]
  E --> F["Place PlayerStarts and GoalPosts"]
  F --> G["Copy Inputs folder"]
  G --> H["PIE smoke test"]
  1. Open the Vehicle Soccer Template project from FAB.
  2. In the Content Browser, select Content/VehicleSoccerTemplate/ (or specific subfolders you need).
  3. Right-click → Asset Actions → Migrate.
  4. Choose the Content folder of your target project and confirm.

Minimum set for full gameplay:

  • VehicleSoccerTemplate/Blueprints/ (all subfolders)
  • VehicleSoccerTemplate/Inputs/
  • VehicleSoccerTemplate/Meshes/, Materials/, Textures/, Sounds/, FX/
  • VehicleSoccerTemplate/PhysicsMaterials/
  • VehicleSoccerTemplate/Maps/Map_MainMenu, Map_VehicleSelection, Map_Gameplay (optional reference levels)

The template expects these plugins (see VehicleSoccer_v2.uproject):

PluginPurpose
ChaosVehiclesPluginCar physics pawns
EnhancedInputVehiclePlayerController bindings
CommonUIMenu widget infrastructure

Enable the same plugins in your target .uproject, then restart the editor.

Merge these sections from the template Config/DefaultEngine.ini into your project:

[/Script/EngineSettings.GameMapsSettings]
GameInstanceClass=/Game/VehicleSoccerTemplate/Blueprints/BP_VehicleGameInstance.BP_VehicleGameInstance_C
[/Script/Engine.PhysicsSettings]
bSubstepping=True
MaxSubsteps=6

Point GameInstanceClass at the migrated BP_VehicleGameInstance path. Keep Chaos sub-stepping for stable ball collisions.

Set your startup map to Map_MainMenu or wire BP_VehicleGameInstance travel from your own front-end.

BP_VehicleGameMode expects:

  • Player controller → VehiclePlayerController
  • Game state → BP_VehicleGameState
  • Player state → BP_VehiclePlayerState
  • Default pawn → a BP_VehicleParent child (from DT_Vehicles)

For a quick test in your project:

  1. Duplicate Map_Gameplay or open your arena map.
  2. World Settings → Game Mode OverrideBP_VehicleGameMode.
  3. Place BP_VehiclePlayerStart actors for each spawn slot and two BP_GoalPost actors with opposing Goal Post Team values.
  4. Place a BP_Ball instance (or let the game mode spawn it at Ball Spawn Transform).

Copy VehicleSoccerTemplate/Inputs/ and ensure your VehiclePlayerController (or project input settings) registers:

  • IMC_KeyboardDefault
  • IMC_GamepadDefault

DefaultInput.ini should keep:

DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput
DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent

The template uses DefaultPlatformService=Null for offline testing. Replace with your shipping OSS (Steam, EOS, etc.) and retest Host Match, Find Matches, and Join Session on WBP_MainMenu.

Example — minimal migration into MyArenaGame

Section titled “Example — minimal migration into MyArenaGame”

Suppose you already have a C++ arena project and only need vehicle soccer gameplay in one map.

Content/MyArenaGame/ ← your existing game
Content/VehicleSoccerTemplate/ ← migrated folder (full tree)

Minimum migrate selection from the FAB project:

  1. VehicleSoccerTemplate/Blueprints/ (entire tree)
  2. VehicleSoccerTemplate/Inputs/
  3. VehicleSoccerTemplate/PhysicsMaterials/
  4. VehicleSoccerTemplate/Meshes/, Materials/, Textures/, Sounds/, FX/
  5. VehicleSoccerTemplate/Maps/Map_Gameplay (reference layout)

Config snippet for MyArenaGame/Config/DefaultEngine.ini

Section titled “Config snippet for MyArenaGame/Config/DefaultEngine.ini”
[/Script/EngineSettings.GameMapsSettings]
GameInstanceClass=/Game/VehicleSoccerTemplate/Blueprints/BP_VehicleGameInstance.BP_VehicleGameInstance_C
[/Script/Engine.PhysicsSettings]
bSubstepping=True
MaxSubsteps=6

Keep your existing GameDefaultMap if you only want soccer on one level — do not overwrite it unless you want Map_MainMenu as the project entry point.

  1. Open your stadium map (or duplicate Map_Gameplay into Content/MyArenaGame/Maps/).
  2. World Settings → Game Mode OverrideBP_VehicleGameMode.
  3. Place four BP_VehiclePlayerStart actors (two per side).
  4. Place two BP_GoalPost actors:
    • Goal A → Goal Post Team = TeamOne
    • Goal B → Goal Post Team = TeamTwo
  5. Press Play with Number of Players = 1 and confirm Sports spawns from DT_Vehicles.
{ "Name": "ChaosVehiclesPlugin", "Enabled": true },
{ "Name": "EnhancedInput", "Enabled": true },
{ "Name": "CommonUI", "Enabled": true }

Restart the editor after editing the .uproject file.

StepPass criteria
PIE on your arena mapVehiclePlayerController possesses SportsCar_Pawn or selected DT_Vehicles class
Drive into BP_BallBall moves; NS_BallTrail visible
Score on opponent goalWBP_VehicleUI updates team score; MS_Goal plays
Hold TabWBP_ScoreBoard appears