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.

  1. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    365
    Likes Received:
    520
    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
    Click this link for Part 3(a)
    Click this link for Part 3(b)
     
    Last edited: Jan 18, 2026
    • Like Like x 3
  2. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    365
    Likes Received:
    520
    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:
    195
    Likes Received:
    509
    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:
    365
    Likes Received:
    520
    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
  5. Matin_TSP

    Matin_TSP Well-Known Member

    Joined:
    Oct 4, 2020
    Messages:
    2,161
    Likes Received:
    5,706
    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:
    365
    Likes Received:
    520
    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
    • Like Like x 2
  7. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    365
    Likes Received:
    520
    Part 3(a) - The RVV (passenger) Seating Components - a closer look

    • MultiSeatComponent
    This component carries most of the information about your seats. Each seating area requires three things; a hitbox, which defines which area the player's mouse will be over when the prompt to sit appears, an entry box, which defines where the player and NPCs can begin their "sitting down" animation, and an exit offset, which lets TSW know where to put you and the NPC characters, after you have stood up.

    ScreenHunter_298 Jan. 15 19.45.jpg

    As for the specific, individual spots for players and NPCs to actually sit themselves, we have the "Seats" section. Here we need to provide the name of a socket, which we can make in the Skeletal Mesh editor by right-clicking on a bone (I suggest the root bone,) and selecting "Add a socket." Then you just position the socket where you want the seat to go. As for the Seat ID, I forget if it is automatically generated after you add the Socket name, but if not, we can generate one using the same method I mentioned in the previous part of this tutorial.

    ScreenHunter_300 Jan. 15 19.57.jpg

    The Seat Transition Name is where we set the text that will appear when the character mouses over the seat, such as "sit down," "take a seat," or "sit here," for instance. Go wild!

    For seats that require fancy maneuvers to get into or out of, we would want to specify a Transition Modifier. This lets us define curves to get from the start (0) to the finish (1.) We have a default blueprint class (TS2Prototype.SeatCameraTransitionModifier,) but DTG have failed to set it up with the Class Default curves and options to make them work properly, at least out of the box, or at least without adding using some kind of Blueprint Interface. --> ( DTG Matt or DTG Lukas , could you have someone look at this for an update? Or would changing that break something?) <-- Luckily for us, these are not strictly nessecary. (As far as I can tell.)

    Apart from that, the only really important setting here is the Initial Camera Component. What is that? Let's look at it in the next part of this tutorial. (Don't forget to come back to this component and select it after we make one!)

    That's it for part 3a. Still more to come!
     
    Last edited: Jan 16, 2026
    • Helpful Helpful x 2
  8. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    365
    Likes Received:
    520
    Part 3(b) - The RVV (passenger) Seating Components - a closer look

    • InteractionEnvironmentCameraComponent
    This is a camera that the game uses from when you start to sit down until you finish getting up, including while you are seated. I got a little nervous when I realized the game introduces another camera, but I think the game switches between them on its' own without extra steps needed*, once we fill out a few settings:

    The Camera Name. I'm honestly not sure why this is important, or just where it is used, so I just went with PassengerCamera, so it matches the Initial Camera Component I mentioned in a previous part of this tutorial.

    The Camera Location, at least in our case, should be "Interior."

    The Interaction Environment Component will be the one we set up back in part 2 of this tutorial.
    Also, if you can't specify the correct Interaction Environment Component (the one in your RVM,) make sure you have your RVM specified in the details of the top level component of your RVV. The Interaction Envronment Component in the RVM won't appear from the dropdown list if you don't!

    You can now go back and set the "Inintial Camera Component" to use this InteractionEnvironmentCameraComponent in your MultiSeatComponent, in part 3(a) of this tutorial.

    *
    (As a side note, my character's camera (but not my character, it seems,) pops out of my train and flies upward several hundred feet, as soon as my character is done standing up. I think this is because of something not right with my collision or simulation for my rail vehicle, but it is also possible that there's something not quite right with my camera setup, so I thought this would be a good place to mention it.)

    ScreenHunter_301 Jan. 17 23.16.jpg

    ScreenHunter_300 Jan. 17 23.08.jpg

    • HierarchicalInstancedStaticMeshComponent
    These look to be the pretty much the same as a standard StaticMeshComponent, but allow for multiple instances of your mesh, I suppose to make things more manageable. You add new copies, including the first one, by adding Instances in the Instance section, and setting the transform to put the seat where you want it.


    You now know as much about passenger seating as I do, and should be able to add usable seats to your Rail Vehicle.

    Thanks for reading my tutorial!
     
    Last edited: Jan 18, 2026
    • Like Like x 1
  9. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    365
    Likes Received:
    520
    I saw there was a PC Editor update today! Still missing the curves and variables from the class defaults of the seat camera transition modifier Blueprint. Oh well, maybe next time :(
     
  10. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    365
    Likes Received:
    520
    Addendum 1

    After spending the weekend getting back to where I was in terms of seating, after making changes to my skeletal mesh and the internal hierarchy of my RVV caused the seating to stop working entirely, I wanted to mention a couple of points I may have glossed over in the tutorial:

    • Firstly, I'm basing all of my advice on what I've been able to learn from studying the setup of the LIRR M3. There may be things done there that can or should be done differently, depending on your Rail Vehicle.
    • Secondly, the hierarchy of the components in the RVV seems to be more important than I originally thought; the passenger camera and any single Seat Components in the RVV should be parented to the Skeletal Mesh they are part of. (The M3 uses a separate Cab skeletal mesh, mine does not, thus far.)
    • Thirdly, the Seat Manager looks like it only needs an entry for the driver seat, but at the same time my passenger seats don't work without it. I guess it's safe to say the component itself is needed, at least.
    • Lastly, My Gloucester subway cars are still ejecting me like a toaster when I attempt to stand up, though only after any exit modifier runs properly, so that's some kind of clue. I get the impression it's failing to respawn or re-possess the player pawn properly after the seat interaction finishes. When I had my driver seat hooked up, it seemed to do that as well as make the whole Rail Vehicle fall through the world when I sat down in the cab, with me going along for the ride, still seated.
     

Share This Page