Code Monkey home page Code Monkey logo

rollercoaster-tycoon-randomizer's Introduction

RollerCoaster Tycoon Randomizer

RollerCoaster Tycoon Randomizer mod for RCT1 and RCT2 inside of OpenRCT2.

You'll need the latest version of OpenRCT2 from https://openrct2.org/downloads/releases/latest

Download the rctrando.js file from the releases page and copy it into the OpenRCT2 plugin folder, which is usually %USERPROFILE%\Documents\OpenRCT2\plugin\

Currently randomizes:

  • Scenario goals
  • Scenario length
  • Park values such as starting cash, starting bank loan amount, maxBankLoan, landPrice
  • Park flags such as difficultGuestGeneration, forbidMarketingCampaigns, and preferMoreIntenseRides
  • Research order
  • The base stats of each ride type
    • runningCost, excitement, intensity, and nausea
  • Ride Type Stat Re-rolls
    • How often to rerandomize the stats for ride types. Build the Theme Park of Theseus.
    • You will get notifications at the bottom of the screen when these re-rolls happen.

The Randomization Range option specifies how much values can be changed from their original. Low will have a narrow range so the values are close to their originals, while Extreme can give much wider variety. This is mostly separate from difficulty, but Extreme can give unpredictable results that are sometimes very difficult.

We also have an option for Crowd Control to allow your streaming viewers to troll you or help you!

Settings Menu

Menus are in the map icon

Changes List

Here is a video of Marcel Vos explaining the Randomizer plugin.

Join the Discord discussion here, or follow me on Twitter @Die4EverDM, or on Mastodon @[email protected].

rollercoaster-tycoon-randomizer's People

Contributors

die4ever avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

crazycolbster

rollercoaster-tycoon-randomizer's Issues

random cheats?

    interface Cheats {
        allowArbitraryRideTypeChanges: boolean;
        allowTrackPlaceInvalidHeights: boolean;
        buildInPauseMode: boolean;
        disableAllBreakdowns: boolean;
        disableBrakesFailure: boolean;
        disableClearanceChecks: boolean;
        disableLittering: boolean;
        disablePlantAging: boolean;
        disableRideValueAging: boolean;
        disableSupportLimits: boolean;
        disableTrainLengthLimit: boolean;
        disableVandalism: boolean;
        enableAllDrawableTrackPieces: boolean;
        enableChainLiftOnAllTrack: boolean;
        fastLiftHill: boolean;
        freezeWeather: boolean;
        ignoreResearchStatus: boolean;
        ignoreRideIntensity: boolean;
        neverendingMarketing: boolean;
        sandboxMode: boolean;
        showAllOperatingModes: boolean;
        showVehiclesFromOtherTrackTypes: boolean;
    }

random events set to happen on certain dates

at the start, randomize some dates for events and put them in the changes list so the player can plan for them

https://github.com/Die4Ever/rollercoaster-tycoon-randomizer/blob/main/src/modules/park.ts#L38

could do basically any crowd control effect or cheat, even getting money ("you won a lawsuit" notification?)

earthquake, breaks all rides, I don't think the API can do this yet

https://github.com/OpenRCT2/OpenRCT2/blob/b6f64bae9e0161e458891ccfea8699cc0808e144/src/openrct2/ride/Ride.cpp#L4620

randomize some guests stats

adjusting how easy it is for guests to become unhappy would be good, but it would require some difficult logic in manually manipulating their current happiness variable?

minIntensity and maxIntensity could also be randomized per guest, but is that better than doing it globally?

random chance for guests needing to use the bathroom often would be funny

interface Guest extends Peep {
        /**
         * How happy the guest is between 0 and 255.
         */
        happiness: number;

        /**
         * The target happiness value. Happiness will increase / decrease slowly towards this value.
         */
        happinessTarget: number;

        /**
         * How nauseated the guest is between 0 and 255.
         */
        nausea: number;

        /**
         * The target nausea value. Nausea will increase / decrease slowly towards this value.
         */
        nauseaTarget: number;

        /**
         * How hungry the guest is between 0 and 255. Lower is more hungry.
         */
        hunger: number;

        /**
         * How thirsty the guest is between 0 and 255. Lower is more thirsty.
         */
        thirst: number;

        /**
         * How much the guest requires the need to go to the toilet between 0 and 255.
         */
        toilet: number;

        /**
         * The mass of the guest. Affects vehicle mass.
         */
        mass: number;

        /**
         * The guest's minimum preferred intensity between 0 and 15.
         */
        minIntensity: number;

        /**
         * The guest's maximum preferred intensity between 0 and 15.
         */
        maxIntensity: number;

        /**
         * The guest's tolerance to nauseating rides between 0 and 3.
         */
        nauseaTolerance: number;

        /**
         * Amount of cash in the guest's pocket.
         */
        cash: number;

ride type randomization spoilers

option to show ride type stat changes for all researched rides? also unresearched rides? might need API updates in OpenRCT2 to do this

some more crowd control effects

effect to spawn peeps

give/take $10k

effect to spawn many ducks?

destroy a random ride?

change prices?

more stuff from the cheats

enum Cheat {
    SandboxMode = 0,
    DisableClearanceChecks,
    DisableSupportLimits,
    ShowAllOperatingModes,
    ShowVehiclesFromOtherTrackTypes,
    DisableTrainLengthLimit,
    EnableChainLiftOnAllTrack,
    FastLiftHill,
    DisableBrakesFailure,
    DisableAllBreakdowns,
    UnlockAllPrices,
    BuildInPauseMode,
    IgnoreRideIntensity,
    DisableVandalism,
    DisableLittering,
    NoMoney,
    AddMoney,
    SetMoney,
    ClearLoan,
    SetGuestParameter,
    GenerateGuests,
    RemoveAllGuests,
    GiveAllGuests,
    SetGrassLength,
    waterplants,
    DisablePlantAging,
    FixVandalism,
    RemoveLitter,
    SetStaffSpeed,
    RenewRides,
    MakeDestructible,
    fixrides,
    ResetCrashStatus,
    TenMinuteInspections,
    WinScenario,
    ForceWeather,
    freezeweather,
    OpenClosePark,
    HaveFun,
    SetForcedParkRating,
    NeverEndingMarketing,
    AllowArbitraryRideTypeChanges,
    OwnAllLand,
    DisableRideValueAging,
    IgnoreResearchStatus,
    EnableAllDrawableTrackPieces,
    CreateDucks,
    RemoveDucks,
    AllowTrackPlaceInvalidHeights,
    Count
}

randomize ride types

individual ride pieces, like corkscrews, should have random stats

fixed rides like Haunted Houses should have random stats, and it would be nice to create clones for less intense and more intense versions of them

should also randomize maintenance costs and reliability

might need OpenRCT2 to add more javascript bindings

randomize goal type

can try to give a difficulty rating to the vanilla goal, then convert to a different goal type according to that difficulty rating?

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.