Skip to content

Development aids

The dev client runs take a few environment variables, so screens can be checked without clicking:

Variable Effect
HEAVYMATICA_CLOUD_URL The cloud address of the dev client, http://localhost:5180 when unset.
HEAVYMATICA_DEV_SCREEN A ;-separated script of UI steps (signin, library, search=..., clickCard=0, clickButton=<translation key>, drop=<dir>, screenshot=<name>, quit, …; see DevScreens). Screenshots land in runs/client/screenshots/.
HEAVYMATICA_THUMBNAIL_SPIKE Renders the thumbnail of the named schematic file once the game has loaded and writes <file>.png next to it.
HEAVYMATICA_QUICKPLAY Joins this server on start, for example localhost:25565.
HEAVYMATICA_QUICKPLAY_WORLD Opens this singleplayer world on start, for example Testworld.
HEAVYMATICA_DEV_USER Plays as another offline player, <name>[,<uuid>]. A UUID the cloud has not seen signs in as an unknown Minecraft account.

Example:

HEAVYMATICA_DEV_SCREEN="signin;library;wait=60;screenshot=library;quit" ./gradlew :heavymatica:fabric:runClient

Longer scripts go into a file: HEAVYMATICA_DEV_SCREEN=@path/to/file.steps reads one step per line and skips blank lines and lines starting with #. The screenshot script works this way.

details opens the selected entry’s details page, materials the materials screen and pick=<block> its block picker (the first row when empty), settings and settingsSection=<section> the settings screen, and mods with selectMod=<mod id> and modConfig=<mod id> the mods list (Mod Menu on Fabric).

createWorld=<name>,<seed> creates and enters a creative, peaceful world with cheats from the seed; command=<command> then runs any command in it. capture=<start|click|capture|swap|reset|cancel> drives capture mode, and captureCorner=<x>,<y>,<z> sets the active corner on a block. setText=<text> replaces the text of the open screen’s first text box, for example the name of a capture.

anchorLocal=<name>, alignSelected=<x>,<y>,<z> and lockSelected set up a locked placement from a local entry, lookAt=<x>,<y>,<z> aims the crosshair, logClientBlock, logHit and logBuild log the world block, vanilla’s hit and the Easy Place / placement restriction settings with the action bar, and serverCommand=<command> runs a command on a dedicated server (with HEAVYMATICA_QUICKPLAY).

Client settings can also be changed in the game: the gear in the library, Mods → Heavymatica → Config on NeoForge, or Mod Menu’s config button on Fabric (dev runs with -PwithModMenu). The cloud address and devSessionJoinUrl stay in the config file only.