Installing The Randomizer On Your PC
This page will be all about installation and preparation for development for the Symphony of the Night Randomizer. You might ask yourself, "Why would I want to download the Randomizer if it's available on the internet for free?" Fantastic question! In most cases, you don't!
There are, however, certain instances where we want to download and install the Randomizer on our own computer, for instance:
You might not always have access to the internet or you'll install it on a laptop for entertainment on the go.
You plan on trying to develop new features or preset for the Randomizer.
You wish to utilize options that the web version of the Randomizer simply cannot allow like vanilla music in a Lycanthrope seed or using item stat randomization in a Nimble seed.
If any of these situations applies to you, then this page should be for you.
We recommend that you follow this process from beginning to end before generating seeds to ensure that there are no issues. Diagnosing issues with the Randomizer is easy, diagnosing issues with PC installations of the same are not.
Getting Started:
In order to properly work with the randomizer offline, we'll first need to establish how you can download and interact with it. In order to do that, let's get some things installed first that will be required.
Tools:
Node.js https://nodejs.org/en/download
Download and run the installation for your system.
When asked, use the "Recommended for Most Users" setting
You don't need the "Native Madule Applications". This is all extra stuff that you don't need for the randomizer.
If you plan on developing your own presets and aren't planning on only running the randomizer from your desktop, you will likely want Visual Studio Code https://code.visualstudio.com/
This application will make it easier to read and edit code utilizing the below:
Color-Coordinated commands, bracketing, and notes.
Error detection
Highlighting a word will highlight all instances of that word
Replace function includes line breaks
Can be used to create and edit many file types and folders
Git https://git-scm.com/downloads
Helps users share programs (Like the Randomizer) in a fast and efficient way.
GitHub Desktop https://desktop.github.com/
This application requires you to sign up for a GitHub account
This makes locating and navigating the randomizer folder system easier
If you plan on developing for the Randomizer, you can utilize GitHub desktop to try to upload your changes to the main site
During the installation:
When you're asked about integrations, if you installed Visual Studio Code, make sure that your external editor selected is Visual Studio Code
Your editor should be GitBash but Powershell also works. We recommend Git Bash as does the Randomizer's developer, so in this guide we're using that.
Downloading the Randomizer:
Head to the main site: https://sotnrando.net
2. Click on the ribbon in the upper left corner that says "Fork Me on GitHub!"
3. Copy the web address of the site that link takes you to.
4. Open GitHub Desktop and select "File" → "Clone repository..."
5. In the window that comes up, select the "URL" tab.
6. Make sure that where you're putting the randomizer (Local Path) is a safe place for editing and creating files. No drives with limited space, etc.
7. Paste the address you copied into the "Repository URL..." and then press the "Clone" button to get your copy of the Randomizer.
8. In GitHub Desktop go to "Repository" → "Show in Explorer"
9. When the file folder shows up, right-click in a blank are and select "New" and then "Folder".
10. Name the new folder "seeds" as this is where our commands will send the .PPF files that we create to to prevent confusion and deleting important files. You can close Windows Explorer after this.
Installing the Randomizer:
Now that we've downloaded everything, the files are there, but we need to actually install the Randomizer. That way we can run CLI, or Command Line Interface and generate more interesting seeds.
11. In GitHub Desktop, go to "Repository" → "Open in Git Bash"
12. After it opens Git Bash, just type "npm install" as depicted below. If it tells you that something is out of date, it will explain in Green Text what you need to type to update it. Follow those instructions. After that, type "npm install hygen" to install hygen, and then "npm install yargs" for yargs. This may not be necessary, but we are covering our bases to make sure everything is properly installed.
Generating Your First Seed:
Generating Seeds Offline With Index.html:
Running the Randomizer on your computer without all the technical knowledge of using command lines is easy.
Double click "index.html" in the Randomizer folder. It will open in your default browser. If that is not Google Chrome, then I suggest using right-click and then choosing Google Chrome under "Open with..."
The webpage should look like this. Despite the warnings, everything here should work almost exactly like it does on the main website.
Generating Seeds Offline with CLI (Command Line Interface):
If you're looking for a little more customization or for development, then you might be ready to start generating seeds with the CLI, or Command Line Interface. In Git Bash, you can enter "node randomize --help" and there will be a wide array of options available to you. However, we are going to start off with some simple examples to get you started.
node randomize -t -p casual -s ExampleSeed1 -o ./seeds/ExampleSeed1.ppf
This will create a tournament mode (-t) casual preset (-p casual) seed with the seed "ExampleSeed1" (-s ExampleSeed1) in the "seeds" folder we created during setup (-o ./seeds/ExampleSeed1.ppf)
Keep in mind that the name of the PPF in the output argument (-o) does not need to match the actual seed, it just helps with keeping track of things.
node randomize -t -p safe -c 7 -s ExampleSeed2 -o ./seeds/ExampleSeed2.ppf
This will create a tournament mode (-t) safe preset (-p safe) complexity 7 (-c 7) seed with the seed of "ExampleSeed2" (-s ExampleSeed2) in the "seeds" folder (-o ./seeds/ExampleSeed2.ppf)
Now let's move on to something a little more complicated:
node randomize -p adventure --opt ~s~m -s ExampleSeed3 -o ./seeds/ExampleSeed3.ppf
This will create a non-tournament mode (Notice the lack of -t) Adventure preset (-p adventure) with options (--opt) to remove item stat randomization (~s) and to remove music randomization (~m) with the seed "ExampleSeed3" (-s ExampleSeed3) in the "seeds" folder (-o ./seeds/ExampleSeed3.ppf)
Note that in the options, to remove an already enabled option of an existing preset, you need to use the tilde (~) before that feature's call letter. Since Adventure normally has item stat randomization and music randomization, we needed to turn those off to have vanilla item stats and vanilla music.