How to add a new passenger seat
- In the vehicle actor, duplicate
PassengerZoneand rename the new component to something likePassengerZone_Back. - Set the new component’s tag to
Passenger_2. - Copy the child
Arrow Componentfrom the originalPassengerZoneand place it so the player exits the vehicle at the correct location. The vehicle system uses predefined exit points and validates safe placement before releasing the player, so the exit transform needs to be positioned properly. [file:12]
Create a profile Data Asset
- Create a new Data Asset based on the parent
BP_DA_InteractVehicleProfiles. - The easiest option is to duplicate an existing asset such as
DA_BP_Passenger_1. - Rename the new asset to something like
DA_BP_Passenger_2.
Configure these parameters:
AttachSocket—Passenger_2, or any other socket name you want to use for the second passenger seat.Animation— any sitting animation you want.DeadAnimation— any animation you want to use when the player is killed while seated in the vehicle.InteractType—Passenger.
Configure the seat socket
- Open the
Static MeshorSkeletal Meshused by the vehicle. - Create a socket for the passenger seat attachment point.
- Name that socket exactly the same as the value used in
AttachSocket, for examplePassenger_2.
Important notes:
- By default, the vehicle body usually uses the skeletal mesh named
Mesh. - However, you can also set up the vehicle so that its visual representation is driven by a static mesh.
- A working example of that approach exists in
BP_OffroadCar_Pawn. - If you use that setup, you need to override the function
BPI VP GetSeatPawnProfileAttachDatain the vehicle blueprint. - You can use
BP_OffroadCar_Pawnas the implementation reference.
Register the new seat in the vehicle blueprint
- Open the vehicle blueprint.
- Find the
InteractProfilesparameter, which is aMap<Name, BP_DA_InteractVehicleProfiles>. - Add a new entry:
- Key — the tag used on the new
BoxComponent; in this example it isPassenger_2. - Value — the Data Asset you created, for example
DA_BP_Passenger_2.
This works together with the project’s existing vehicle interaction architecture, where vehicles are entered through the interaction layer and passenger occupancy is tracked through seat-related tags and arrays on the vehicle side. [file:12][file:1]
Done
That’s it — the new passenger seat is now added to the vehicle.