Giter Site home page Giter Site logo

basssiiie / openrct2-ridevehicleeditor Goto Github PK

View Code? Open in Web Editor NEW
34.0 4.0 5.0 24.24 MB

A plugin for OpenRCT2 that lets you edit vehicles on any ride in your park on the fly.

License: MIT License

JavaScript 1.19% TypeScript 98.81%
openrct2 plugin rct2 tycoon ride rollercoaster vehicle car editor openrct2-plugin

openrct2-ridevehicleeditor's Introduction

RideVehicleEditor plugin for OpenRCT2

This plugin lets you edit vehicles on any ride in your park on the fly.

(Manticore's carrousel with edited vehicles)

Carrousel made by Manticore

Current features

  • Select and switch through all ride vehicles in your park, or use the picker to click on the vehicle directly.
  • Modify properties like vehicle type, colour, mass, number of seats, (powered) acceleration of each vehicle.
  • Switch through different variants of the same ride type. (E.g. locomotive, tender or passenger car.)
  • Modify the track position of or spacing between different vehicles on the same train.
  • Pick up and move stationery vehicles to different places on the map.
  • Copy and paste the settings of a vehicle over other completely unrelated vehicles.
  • Easily apply your changes to all vehicles on the train or the ride, or update multiple vehicles at the same time.
  • Edit and freeze the ride's excitement, intensity or nausea ratings.

Planned features

  • Please submit any ideas under Issues.

Installation

  1. This plugin requires at least OpenRCT2 version v0.4.4.
  2. Download the latest version of the plugin from the Releases page.
  3. To install it, put the downloaded *.js file into your /OpenRCT2/plugin folder.
    • Easiest way to find the OpenRCT2-folder is by launching the OpenRCT2 game, click and hold on the red toolbox in the main menu, and select "Open custom content folder".
    • Otherwise this folder is commonly found in C:/Users/<YOUR NAME>/Documents/OpenRCT2/plugin on Windows.
    • If you already had this plugin installed before, you can safely overwrite the old file.
  4. Once the file is there, it should show up ingame in the dropdown menu under the map icon.

Inspirations!

Here are some inspirations and examples of what you can do with this plugin.

Toy machine, by Manticore
Toy machine, by Manticore
Parking lot, by Fidwell
Parking lot, by Fidwell
Bicycle parking, by Enox
Bicycle parking, by Enox
Space mine train, by Deurklink
Space mine train, by Deurklink
Train with different carriages, by Emiel
Train with different carriages, by Emiel
Shark chasing row boat, by Deurklink
Shark chasing row boat, by Deurklink
Horse carriage, by Zarathustra
Horse carriage, by Zarathustra
Dragon ships, by Mamarillas
Dragon ships, by Mamarillas

See it in action

The plugin was featured in these plugin recommendations / rankings!

The plugin was also featured in the following videos (grouped by plugin version):

v2.0

v1.1

v1.0

v0.3

Tutorials

Copy & paste vehicles

To copy the settings of a vehicle to any other ride, you can use the copy and paste feature.

  1. Click the copy Copy button button to the left of the viewport.
    • If a copy is currently selected, the button will be in the pressed state.
  2. Select another vehicle that you want to override.
  3. Click the paste Paste button button to the left of the viewport (the paper off the clipboard).
  4. All settings from the copied vehicle will be pasted onto the currently selected vehicle.

How to copy and paste

Synchronize changes to multiple vehicles

By enabling the synchronize option, all changes made to the selected vehicle will also be applied to a specific set of other vehicles on the same ride.

  1. From the dropdown in the Apply & synchronize section, select the vehicles that should be updated alongside the currently selected vehicle.
  2. Enable synchronization by clicking the Synchronize button.
  3. Any changes you make to the selected vehicle, will instantly be applied to the other vehicles as well.

If you only want to synchronize specific settings, you can use the checkboxes in the Apply & synchronize section to limit what settings should synchronize.

How to synchronize changes to multiple vehicles

Apply or copy and paste changes to multiple vehicles

With the Apply button it is possible to copy and paste the currently selected vehicle to multiple other vehicles in a single click.

  1. Select the vehicle you want to copy.
  2. From the dropdown in the Apply & synchronize section, select the set of vehicles where the settings should be pasted to.
  3. Optionally, use the checkboxes to specify which settings should be copied.
  4. Click the Apply button to copy and paste all settings to selected set of vehicles.

How to apply changes to multiple vehicles

Move vehicles off the track

When a vehicle is in a stationary position, like waiting in a closed station, it is possible to move the vehicle off the track to another position on the map.

  1. Put the selected vehicle in a still-standing state, like waiting in a station.
  2. Use the clipper Clipper button button to the left of the viewport to pick up the selected currently vehicle.
  3. Place it down at a new location on the map.

For more detailed placement, it is recommended to use the X, Y and Z position settings.

Note: if a vehicle starts "moving" again (for example: leaving the station), it will teleport back to its appropriate position on the track. To make it work permanently, keep the vehicle stationary, by for example keeping the ride closed.

How to move a vehicle to another location

Multiplayer! (How to setup)

This plugin supports multiplayer! A few key points to note:

  1. For the plugin to work in multiplayer, it needs to be installed on the server. Make sure it is installed in the plugin's folder of the server's user directory.
  2. When the server is started, the plugin will be distributed to every player joining the server. Players do not need to install the plugin for themselves.
  3. Players need the Ride Properties permission to be able to modify any vehicles.
  4. When a player who did not have the plugin before joining leaves the server, the plugin will be removed from the game.
  5. When the plugin is installed in singleplayer, but not on the server, the plugin will be disabled on the server.

FAQ

Does it transfer over save games?

Answer: yes, all changes will be saved with your save game.

Can someone who doesn't have the plugin still open my park after I edited my vehicles?

Answer: yes, all changes to vehicles will still work if the player does not have the plugin installed. The plugin is only required to make any new changes.

I want to add 100 to a vehicle's property without clicking a 100 times, how?

Answer: in the bottom right corner of the editor window, there's a dropdown with the value x1. Change it to x10 or x100 to add or subtract by tens or hundreds respectively. You can also hold down the [+] and [-] buttons.

Can I reset the changes I made to a ride?

Answer: yes, you can reset the ride by closing it twice (to remove the vehicles) and reopening it again. All vehicles will respawn with the original values.

Is this cheating?

Answer: yes, I suppose so. This plugin replaces a previous technique involving memory hacking, which is similar to how cheat engines work. This "cheat" is not active until you have made changes in the editor window though!

Can I still play without it when I have it installed?

Answer: yes, the plugin does not do anything if you do not open the editor window.

Is it safe to uninstall the plugin if I don't want it anymore?

Answer: yes, uninstalling the plugin (by removing it from the Plugins folder) does not break your game or save files.


For developers: building the source code

  1. Install latest version of Node and make sure to include NPM in the installation options.
  2. Clone the project to a location of your choice on your PC.
  3. Open command prompt, use cd to change your current directory to the root folder of this project and run npm install.
  4. Find openrct2.d.ts TypeScript API declaration file in OpenRCT2 files and copy it to lib folder (this file can usually be found in C:/Users/<YOUR NAME>/Documents/OpenRCT2/bin/ or C:/Program Files/OpenRCT2/).
    • Alternatively, you can make a symbolic link instead of copying the file, which will keep the file up to date whenever you install new versions of OpenRCT2.
  5. Run npm run build (release build) or npm run build:dev (develop build) to build the project.
    • For the release build, the default output folder is (project directory)/dist.
    • For the develop build, the project tries to put the plugin into your game's plugin directory.
    • These output paths can be changed in rollup.config.js.

User interface

This plugin makes use of the FlexUI framework to create and manage the user interface. It is automatically fetched from NPM with npm install.

Hot reload

This project supports the OpenRCT2 hot reload feature for development.

  1. Make sure you've enabled it by setting enable_hot_reloading = true in your /OpenRCT2/config.ini.
  2. Open command prompt and use cd to change your current directory to the root folder of this project.
  3. Run npm start to start the hot reload server.
  4. Use the /OpenRCT2/bin/openrct2.com executable to start OpenRCT2 with console and load a save or start new game.
  5. Each time you save any of the files in ./src/, the server will compile ./src/plugin.ts and place compiled plugin file inside your local OpenRCT2 plugin directory.
  6. OpenRCT2 will notice file changes and it will reload the plugin.

If your local OpenRCT2 plugin folder is not in the default location, you can specify a custom path in rollup.config.js.

Final notes

Thanks to wisnia74 for providing the template for this mod and readme. Thanks to the community for the enthusiasm for this plugin and their amazing creations.

openrct2-ridevehicleeditor's People

Contributors

basssiiie avatar dependabot[bot] avatar manticore-007 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

openrct2-ridevehicleeditor's Issues

Make it possible to search rides through text input

Idea
I've seen this concept used in the new Scenery view, where it is possible to filter/find something through the use of a text input. This could maybe also be useful for the RideVehicleEditor, especially when there are quite some rides in the park.

The scenery window also has a "Clear" button, which could also provide some usefulness.

Additional context
image

Saving Paint schemes

Idea
Please describe what you'd like to see added or changed.
As discussed in the other issue, I would like to see the ability to save custom color schemes for easy use later in case of crashes or ride modifications or just so a custom train design can be reused on a different coaster later.
Additional context
Add any other context, screenshots, related information about the feature request here.

Multiplayer doesn't work on headless servers

I am running a headless server (with a Docker container). I installed the plugin in my server's plugin directory. On startup, I get the following in my server logs:

[RideVehicleEditor] Registered
[RideVehicleEditor] Loaded
[RideVehicleEditor] Started
'UI unavailable, plugin disabled.'

So the plugin is getting properly loaded, starts up, but then realizes it's running in a headless server, and shuts off. If the clients have the plugin installed locally, it'll show up in the UI, but nothing will happen why they try to use it.

Dynamic Visuals for Ride Vehicles

Idea
Please describe what you'd like to see added or changed.
An idea that I have is for the ability to pick a certain spot on the track and have the ride vehicles automatically change visuals on that spot. In my mind, it could work similar to the Advanced Track plug-in.
So if there was a Transformers-themed coaster, the ride could start with a street-race section with automobile cars and then at a set point on the ride, the cars would visually at least change to look like Optimus Prime(then there would obviously be a 2nd location where it would switch back to the original). I know the vehicles actually changing shape mid-ride is not realistic, but my thought is this could be used to simulate a VR type ride experience, where this kind of thing would be possible.

Thanks.

Additional context
Add any other context, screenshots, related information about the feature request here.

Add spinner control for distance between vehicles

Idea
Add an extra spinner control to configure the distance between the current vehicle and the preceding vehicle. The value of this control would support copy/paste and apply-to-all-vehicles, because it can be equal for all cars.

Additional context
Implementation would require additional features in the OpenRCT2 plugin API regarding traversal of track pieces. Currently the distance between vehicles cannot be calculated if they are on different track pieces, because the track-progress is limited to the current track piece the vehicle is on.

Add controls for changing colours

Idea
Add extra controls to edit the colours of the vehicles.

Additional context
You can change the colours via the window of the ride itself, but colours may be limited by the original vehicle type of the ride. Furthermore, adding colour controls to plugin would allow for more detailed choices per vehicle, and for them to be copy/pasted to other vehicles.

Open for consideration: should it always copy/paste the colours, even to different rides? Or should it accept the ride's own colour scheme?

Allow long press on buttons "+" and "-"

Hello,

When you want to modify to track progress, you need to click much and much time on buttons "+" and "-" to increase or decrease value.
It could be great to stay clicked on buttons until we had the wanted value.

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.