Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/seraxis/lr2oraja-endlessdream/llms.txt

Use this file to discover all available pages before exploring further.

For day-to-day development you can launch Endless Dream directly from Gradle without building a distributable JAR first. The core:runShadow task compiles the project and runs it in place, letting you iterate quickly on code changes.
Do not use the default Gradle run tasks. They will not work correctly with this project. Always use core:runShadow to launch the game during development.

Pointing to a beatoraja install

By default, core:runShadow uses the assets/ folder inside the repository as its working directory. To run against real song data and a full game installation, set the -DrunDir system property to the absolute path of your beatoraja 0.8.8 directory. The game will use that directory as its working directory, reading your songs, skins, and configuration from there.

IntelliJ IDEA setup

1

Open the Gradle tool window

In IntelliJ IDEA, open the Gradle panel on the right side of the window. Expand core → application / shadow to find the available run and build tasks.
2

Locate the runShadow task

Expand core → Tasks → shadow and find the runShadow task. Right-click it and select Modify Run Configuration (or click the three-dots menu next to the run configuration in the toolbar and choose Edit Configurations).
3

Add the runDir JVM argument

In the run configuration editor, find the VM options (or JVM arguments) field and add:
-DrunDir="C:\path\to\your\beatoraja0.8.8"
Use the full absolute path to your beatoraja installation directory. On macOS and Linux, use forward slashes without quotes if the path contains no spaces.
4

(Optional) Enable IR testing

To test Internet Ranking (IR) dependent changes, append the useIR property to the same VM options field:
-DrunDir="/path/to/beatoraja0.8.8" -DuseIR=true
When both runDir and useIR=true are set, the build system automatically configures the -DcustomIRDirectory to point to the ir/ subdirectory of your beatoraja install.
There is a known bug with the useIR property. Check the linked issue for the current status and any workarounds before relying on this flag.
5

Run the configuration

Click the Run button or press Shift+F10 to launch the game with your configured settings.

Resolving “Cannot Resolve Symbols” in IntelliJ

IntelliJ IDEA sometimes cannot identify the project submodules, which causes missing class errors such as bms.model.*. This does not affect the ability to build or run the project, but it makes working with the code harder.
First verify that core/dependencies/ contains both the jbms-parser and jbmstable-parser folders. If they are missing, run the following command to fetch them:
git submodule update --init --recursive
If the submodule folders are present but symbols are still unresolved, go to File → Project Structure → Modules → core → Dependencies → Add → JARs or Directories and add both ./core/dependencies/jbms-parser and ./core/dependencies/jbmstable-parser, then click Apply.

Running from the command line

You can also run the project directly from a terminal. Pass the same system properties you would use in IntelliJ.
.\gradlew.bat core:runShadow -Dplatform=windows -DrunDir="C:\beatoraja0.8.8"
To also enable IR testing from the command line, append -DuseIR=true:
./gradlew core:runShadow -Dplatform=linux -DrunDir="/home/user/beatoraja0.8.8" -DuseIR=true

Build docs developers (and LLMs) love