Tutorial Sit Yourself Down, Take A Seat, All You Gotta Do Is Repeat After Me (a Passenger Seating Tutorial)

Discussion in 'PC Editor Discussion' started by pwilson79, Jan 7, 2026 at 3:17 AM.

  1. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    352
    Likes Received:
    512
    Hey everyone, so I guess I promised you all a tutorial on passenger seating. here's part 1!

    Note: This tutorial series will assume that you have already created the basic setup for a Rail Vehicle, as outlined in part of @Martin_TSP 's useful Guide here: https://docs.google.com/document/d/1I6AABG0TIIS1Cg8ccXWzTYYGaO0qEKlRZkqkCABI1M0/edit?usp=sharing


    Part 1 - The Required Blueprint Components

    In your RVM, you will need to add the following components:
    • An InteractionEnvironmentComponent
    This component tells TSW that interactions can take place in part of your Rail Vehicle, not sure why it's needed, probably to make rolling stock more computationally manageable. I named mine "PassengerEnvironment."
    • A SeatManagerComponent
    This is what manages the seating in the general sense. Here you will add references to your individual seats, as I will discuss in later parts of this tutorial.
    In your RVV, you will need to add the following components:
    • A MultiSeatComponent
    This component stores information about specific seats, including the hitboxes that prompt the player to "take a seat." (The prompt is customizable, by the way, that's why mine says "Grab a seat.")
    • A HierarchicalInstancedStaticMeshComponent
    Here is where you provide the static meshes you want to use for the seats, and their locations. Using separate static mesh components would probably work, I just haven't tried it as i don't see the point.
    • An InteractionEnvironmentCameraComponent
    This is the camera that the game uses while you are interacting with the seat.

    Well, that's it for part 1 of the tutorial, part 2 will detail the setup of the components, when I get to it in a day or two. Feel free to test things out in the meantime!

    p.s. I hope no one minds the Jackson Five lyrics in the title; I couldn't resist!

    Click this link for Part 2
     
    Last edited: Jan 13, 2026 at 4:18 AM
    • Like Like x 3
  2. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    352
    Likes Received:
    512
    part 2 will be delayed by a few days until I can work out why my player pawn's camera feels it is necessary to teleport several hundred feet in the air upon standing up, and not want to come down again (although crouching makes him drop down about a hundred feet).

    I can tell it's just the camera, because I don't fall, and I have WASD control. It may be because the "Exit Transition Modifier" in my MultiSeatComponent is set to "None," or it may not, as the "Enter Transition Modifier" is also "None," and that doesn't prevent him from sitting right down like a good little possessed pawn actor.

    Not entirely sure what a Transition Modifier Blueprint is supposed to look like, but I think I can slap something together that might work as one, assuming that's where the trouble lies...

    Sigh, I'm obviously too tired to work it out tonight, at any rate. Sorry for the delay in putting up part 2 of this tutorial, but I want to make sure I get a better handle on the whole "getting up" situation to avoid leading anyone astray.
     
  3. Daunfr59

    Daunfr59 Well-Known Member

    Joined:
    Dec 8, 2016
    Messages:
    190
    Likes Received:
    483
    I don't know if this is relevant but when I was making my loco I had to add (Camera) Transition Modifiers to the RVV to get the ability to climb up into the loco cab and to climb down again.

    These are special components (like collision boxes) that have a re sizeable Entry box and an Exit box. The climb up ones look like a blue box at ground level with a second box attached which extends upwards to the cab. When the E key is pressed the player is transported to cab level like going up in a lift.
    Maybe you need something similar which you can refer to in the box in the Seat Manager (instead of "None") - although if so it suggests you need one for every seat !

    Apologies if you are already familiar with these and know much more about them than I do.
     
    • Helpful Helpful x 1
  4. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    352
    Likes Received:
    512
    No problem, I'm still learning most of this too. I think you may be absolutely right, I tried adding a camera transition modifier earlier to see if that was it, but I don't think I set it up quite right so I'll keep trying that. I threw together a blueprint to print whatever the current player pawn's camera component is named, and noticed when I sit, it briefly changes from "" to this: ScreenHunter_294 Jan. 10 13.30.jpg . This is not typical of any other rail vehicle with passenger seats.

    At this rate I'll have to add a "skip ahead to part 2" link (when I have a part 2) at the bottom of the first tutorial part, but it's all good!

    EDIT: It wasn't anything to do with the camera changing, that was a red herring output from another BP I had forgotten about, which was set up to report the name of the active camera component, and which happened to be firing off at the same time due to a hitbox overlap. Which is not to say that I have any idea where that vertical displacement upon exiting the camera transition is coming from, but I'm no longer barking up the wrong tree.
     
    Last edited: Jan 11, 2026 at 10:32 PM
  5. Matin_TSP

    Matin_TSP Well-Known Member

    Joined:
    Oct 4, 2020
    Messages:
    2,158
    Likes Received:
    5,690
    Hey, i have added that to the spreadsheet as well. Hope you're okay with that and i am excited for part 2 :)
     
  6. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    352
    Likes Received:
    512
    Part 2 - The RVM (passenger) Seating Components - a closer look

    • InteractionEnvironmentComponent
    There are three kinds of Interaction Environments that this component can be used to define; a Passenger Interaction Environment, a Driver Interaction Environment, or a Shared Interaction Environment. The setup for a Driver seat is just a little bit different, so for now we'll just be defining a Passenger Interaction Environment, which we do by selecting the "Passenger" option in the component Details panel, under Default: Environment Role.

    We can leave the other options on their class defaults. Your Details panel for your Interaction Environment Component should look something like this:

    ScreenHunter_296 Jan. 12 19.34.jpg

    (You may have noticed, I re-named mine "RVMPassengerEnvironment" after I wrote part 1 of this tutorial.)


    • SeatManagerComponent
    This is what manages the seating, and communicates with the MultiSeat Component in the RVV blueprint, which we will discuss in future parts of this tutorial. Here we need to add references to your individual seats, as I will discuss in later parts of this tutorial.

    For each seat, We need to add an Array Element to "Persistent Seat Details," and then define the 3 settings we will find therein: Seat Id, Initial Seat Permission and Interactive Environment.

    Seat Id is the GUID number the game uses to reference the seat internally. Don't worry, it's a bit over my head, too! It should be safe to click the down arrow beside the name and select "Generate," which will provide us with a name.

    Initial Seat Permission defines who is allowed to use the seat; NPCs, the Player, or both. Both is a safe bet.

    Interactive Environment is where we select the Interactive Environment that the seat exists in, as you may have suspected.
    Here again, we can leave the other options on their class defaults. This is my Seat Manager Component, after I have defined my first seat:

    ScreenHunter_297 Jan. 12 20.08.jpg

    That's it for part 2. Don't worry, there's more to come!

     
    Last edited: Jan 13, 2026 at 4:22 AM

Share This Page