Skip to content
zrowny edited this page May 26, 2021 · 1 revision

Station Object Properties

Station objects are what you choose in the "Station style" dropdown when customizing a ride. They consist of an entrance and exit, and (optionally) the station cover pieces.

Note that there are 2 special station objects that come with OpenRCT2: openrct2.station.noentrance and openrct2.station.noplatformnoentrance. As of writing this, the "noplatforms" functionality has not been implemented so they both function the same. But they use no images, and the game recognizes that if a station object has no images, nothing should be rendered for the entrance and exit. There are 2 fields in the JSON files that aren't used yet, hasShelter and noPlatforms, that might implement this functionality some day.

Images for the stations are currently stored in g1.dat, though for new stations, having them in the .parkobj file should work. The images are laid out in the order of entrance, exit, and then platform pieces.

The images for the entrance/exit are laid out in the same way. The sprites are split into the parts that peeps walk in front of and then the parts that peeps walk behind. With reference to the side of the building that faces the queue, the images are in the order of:

  • 4 angles of back parts of Entrance, facing front left and then rotating clockwise
  • 4 angles of front parts of Exit, same

That's then repeated for the Exit.

The actual station platform is hard-coded into the game. These are the covers that go on top of that platform when you choose a theme other than "Plain" (if there are no images for the station covers, you'll just get the regular platform, just like the plain station style).

The station cover images are split up into three parts. Just like the entrance/exit, it's split into the front and rear parts that peeps walk between. There are two options for the rear parts, though. One where it makes a full "wall", and one where it makes a "door" (for when an entrance/exit is attached). Unlike the entrance/exit, the parts are interweaved, so all the images for one angle are together. Additionally, the station covers come in two flavors: short and tall (used for inverted coasters, for example). There are also only 2 angles. The game assumes they are symmetrical, and just resuses them (they're not necessarily! look closely and you'll notice the canvas tent colors swap when you change angles!) With reference to the side that's open:

  • Rear (door), then rear (wall), then front - facing front left (3 images)
  • Rear (door), then rear (wall), then front - facing front right (6 images total)
  • All that again, for the tall version of the station cover (12 images total)

For stations that use glass (isTransparent), each element has a second set of images after the first, with masks for the glass. So that's Regular Entrance Images, Glass Entrance Images, Regular Exit Images, etc.

height : integer
Height of the object, where there are 8 units per height step (for reference, a "quarter" height wall is one step = 8 units high). Therefore this value is generally a multiple of eight.
scrollingMode : integer
Scrolling mode of the sign
hasPrimaryColour : boolean
True for objects that have at least one remappable colors.
hasSecondaryColour : boolean
True for objects that have two remappable colors; hasPrimaryColour must also be set.
hasTernaryColour : boolean
True for objects that have three remappable colors.
isTransparent : boolean
True for objects that have glass elements. Requires a second set of images for the glass itself. These images are just a mask and should be a flat color.

rct2.station.abstract (Abstract)

    "properties": {
    "height": 40,
    "scrollingMode": 22,
    "hasShelter": true,
    "hasPrimaryColour": true,
    "isTransparent": true
}

rct2.station.plain (Plain)

    "properties": {
    "height": 32,
    "scrollingMode": 2,
    "hasShelter": false
}