Repository navigation
Command Line Usage
Arnis can run without the GUI. The release executables already include the command line mode: if you start Arnis with any arguments, it skips the window and generates straight from the terminal. Without arguments the GUI opens.
arnis-windows.exe --bbox="52.51,13.39,52.52,13.40" --output-dir="C:/YOUR_PATH/.minecraft/saves"
When you build it yourself, you can leave out the GUI completely with --no-default-features:
cargo run --release --no-default-features -- --bbox="min_lat,min_lng,max_lat,max_lng" --output-dir="C:/YOUR_PATH/.minecraft/saves"
For Java, --output-dir is the folder the new world gets created in (usually your saves folder). Arnis creates a new "Arnis World N" folder in there for every run.
With Nix you can run it directly:
nix run github:louis-e/arnis -- --output-dir=YOUR_PATH/.minecraft/saves --bbox="min_lat,min_lng,max_lat,max_lng"
Run arnis --help to see every option with its description. The rest of this page groups them by topic.
Most flags are simple switches (--caves, --bedrock). Settings that are on by default take a value instead, so you can turn them off: --overture false, --canopy-height false, --map-item false. Writing just --overture means true. A few switches only exist to turn something off, like --no-3d.
| Flag | Default | Description |
|---|---|---|
--bbox |
Area to generate as min_lat,min_lng,max_lat,max_lng. Required, unless --file gives a local OSM file to read the area from. Below scale 0.3 and on the Moon or Mars no OSM data is loaded, so there it's always required. |
|
--file |
Read the OSM data from a local file instead of downloading it. Overpass JSON as well as .osm/.xml files work (no PBF). Without --bbox, the area comes from the file's bounds (<bounds> in OSM XML, or the area a --save-json-file run asked for), or else from the extent of its nodes. |
|
--save-json-file |
Save the OSM data the run uses to a file as Overpass JSON, together with the area, e.g. to generate the same area again later with --file. Can't be combined with --file. |
|
--spawn-lat, --spawn-lng
|
Spawn point. Both have to be given and it has to be inside the area. Without it, Java worlds spawn at the corner of the area. |
| Flag | Default | Description |
|---|---|---|
--output-dir |
Where the world goes. Required for Java. For Bedrock it's optional and defaults to the Desktop, for Luanti it defaults to the Luanti worlds folder. The old name --path still works. |
|
--bedrock |
off | Generate a Bedrock Edition .mcworld file instead of a Java world. |
--luanti |
off | Generate a Luanti world (Mineclonia game, map.sqlite) instead of a Java world. Experimental. |
--one-world |
off | Add the area to one persistent Java world instead of creating a new one. --output-dir is then the saves folder. See One World. |
--world-name |
Arnis One World | Name of the One World folder. Only works together with --one-world. |
--map-preview |
off | Also render a top-down PNG map of the generated world (Java and Bedrock). |
| Flag | Default | Description |
|---|---|---|
--scale |
1.0 | Blocks per metre, from 0.05 to 4.0. Below 0.3 buildings and roads are skipped and only terrain and land cover are generated. |
--height-multiplier |
1.0 | Makes the terrain taller or flatter, from 0.1 to 10. Buildings and trees keep their size. |
--ground-level |
-62 | Base Y level of the world. In most cases you don't need to touch this: with an extended build height Arnis lowers the terrain on its own as far as it needs. |
--rotation |
0 | Rotates the area clockwise, from -90 to 90 degrees. Not allowed with --one-world. |
--projection |
local |
local puts the corner of every area at Minecraft 0,0. web_mercator centres the world on the area in a Web Mercator frame (the scale is exact at the centre latitude only). One World always uses its own Web Mercator frame. |
--body |
earth |
earth, moon or mars. The Moon and Mars use NASA elevation data at a fixed scale (1 block = 200 m on the Moon, 500 m on Mars) and have no map data, so all object options are ignored. |
| Flag | Default | Description |
|---|---|---|
--mode |
geo-terrain |
geo-terrain: buildings, roads and other OSM objects on real terrain. geo-only: the same on flat ground. terrain-only: real terrain with OSM water and nature, but no buildings, roads or other man-made objects. blueprint: roads, rails, water and nature on real terrain, with every building drawn as a light blue outline on the ground. |
--winter |
off | Snow on the ground, roofs and trees, frozen rivers and lakes and snowy biomes. |
--post-apocalyptic |
off | Collapsed and overgrown buildings, cracked roads, rubble and no lights. |
--interior |
off | Furnished interiors, picked by what the building is used for. |
--fillground |
off | Fill everything under the surface with stone and ores. |
--caves |
off | Carve Minecraft-style caves, underground rivers, ores and cave biomes into the filled ground. Turns on --fillground. |
--cave-biomes |
How much of each cave biome you get, as name=percent pairs. Names: lush, dripstone, deepdark, mushroom, ice, amethyst, volcanic, coral. 100 is the normal share, 0 turns a biome off, 200 roughly doubles it. Example: --cave-biomes lush=150,deepdark=0. |
|
--cave-asset-pack |
Folder with a cave asset pack (cave_pack.json plus .schem formations like ice spikes, dripstone columns and amethyst clusters). If there's a cave-pack folder next to the executable, that one is used. |
|
--overture |
true | Add buildings from Overture Maps that are missing in OSM, and take building heights from it where OSM has none. |
--no-3d |
Turns off the 3D landmark models and all bundled props (cars, boats, cranes and so on). | |
--signage |
basic |
none, basic (street names, traffic signs, transit stops, information boards, billboards) or full (adds shop name plates, house numbers and crossing signs). Java only. |
--canopy-height |
true | Place trees from the global canopy height map. |
--legacy-trees |
off | Use the old procedural trees instead of the tree models. |
--max-tree-size |
giant | Largest tree to place: small, medium, big, tall or giant. |
| Flag | Default | Description |
|---|---|---|
--gamemode |
creative |
survival, creative or spectator. |
--world-time |
6000 | Time of day in ticks: 0 = dawn, 6000 = noon, 18000 = midnight. Moon and Mars worlds start at midnight unless you set it. |
--world-type |
void | What Minecraft generates around the area: void or flat. Java only. |
--map-item |
true | Give the player a map. On Java it's a locked map of the whole world, on Bedrock the game's own starting map. |
See Building Facades for what these do.
| Flag | Default | Description |
|---|---|---|
--building-facades |
off | Hang a bundled facade photo on every building, picked by building type. Java 1.21.4+. Turns the Mapillary facades off for this run. |
--mapillary-token |
Your Mapillary token. Can also come from the MAPILLARY_TOKEN environment variable. With a token, Mapillary facades are on. |
|
--mapillary-facades |
true with a token |
--mapillary-facades false keeps the token but skips the facades. |
--mapillary-facade-mode |
photos |
photos hangs the photos on the walls (Java 1.21.4+). blocks matches the wall blocks to the photos and works everywhere. |
--facade-detail |
standard |
standard or high (sharper, needs a modern graphics card). |
--facade-px |
16 | Texture resolution in pixels per block: 4, 8, 16 or 32. Lowered automatically if the panels wouldn't fit. |
--mapillary-probe |
off | Only check how much Mapillary coverage the area has, print it and exit. |
--building-facades-dir |
Use your own preset facade set (a folder with manifest.json and the images). |
There are a few more --mapillary-* flags for debugging the facade pipeline (--mapillary-debug-dir, --mapillary-facades-dir, --mapillary-facade-debug-dir, --mapillary-facade-debug-walls). They're described in --help.
All of these come with a data pack in the world. They are Java only and don't work with --one-world yet. See Gameplay Extras.
| Flag | Minecraft | Description |
|---|---|---|
--pause-menu |
1.21.6+ | "Arnis" button in the pause menu with travel, discoveries and credits. |
--discoveries |
1.21.4+ | Advancement tab for the area's landmarks, unlocked by walking there. |
--traffic-lights |
1.21.4+ | Traffic lights that cycle red, amber and green. |
--moving-vehicles |
1.21.4+ | Cars on the streets and trains, metros and trams on the tracks. --moving-cars works too. |
--zombie-outbreak |
1.21.6+ | Five nights of zombie waves with a boss. Starts the world in survival. |
--body-gravity |
1.21.4+ | Lower gravity on Moon and Mars worlds. Only with --body moon or --body mars. |
| Flag | Default | Description |
|---|---|---|
--disable-height-limit |
off | Install the extended build height data pack (Java 1.21.4+: Y -2032 to 2031, Bedrock 1.21.40+: up to Y 511). Experimental, and not for Realms. |
--aws-only-elevation |
off | Use the legacy AWS Terrain Tiles (about 30 m) instead of Mapterhorn. Same as Legacy terrain in the GUI. |
--bake-lighting |
off | Precompute chunk lighting for LOD mods. Slower. |
--voxy-lod |
off | Pre-generate the Voxy LOD cache. Java only, turns on --bake-lighting. |
| Flag | Default | Description |
|---|---|---|
--osm-tiles-url |
https://tiles.arnisproject.com/v1 |
Base URL of the Arnis OSM tile archive. |
--no-tile-archive |
off | Skip the tile archive and query the Overpass API directly. |
--downloader |
requests | How Overpass requests are made: requests (built in), curl or wget. |
--overture-source |
auto | Where Overture buildings come from: auto, tiles or parquet. |
--timeout |
Flood fill timeout in seconds. | |
--debug |
off | Prints more output and writes debug files (parsed OSM data, land cover images) to the working directory. |
--cave-zone-map |
Renders the cave biome layout for --bbox to two PNGs (<PREFIX>-upper.png and <PREFIX>-deep.png) and exits without generating a world. --cave-zone-map-step sets the blocks per pixel. |
The old --terrain flag is still accepted so older scripts keep working, but it does nothing anymore since terrain is on by default. Use --mode geo-only for flat ground.
A Bedrock world of central Munich at half scale:
arnis --bedrock --scale 0.5 --bbox="48.133,11.565,48.143,11.585"
A snowy Java survival world with caves:
arnis --output-dir="C:/YOUR_PATH/.minecraft/saves" --bbox="47.26,11.38,47.28,11.41" --winter --caves --gamemode survival
Adding an area to a One World:
arnis --one-world --output-dir="C:/YOUR_PATH/.minecraft/saves" --world-name="My City" --bbox="min_lat,min_lng,max_lat,max_lng"
The Copernicus crater on the Moon:
arnis --body moon --output-dir="C:/YOUR_PATH/.minecraft/saves" --bbox="8.6,-21.1,10.6,-19.1"
Using Arnis
- Getting Started
- Generation Settings
- Command Line Usage
- One World
- Gameplay Extras
- Building Facades
- FAQ
How Arnis works
- Data Sources
- Architecture & Workflow
- Element Processors
- Ground Generation
- WorldEditor System
- Coordinate System
Contributing