Skip to content

Environment variables and flags

VlcekM edited this page Oct 8, 2026 · 1 revision

Environment variables and flags

Values are as read in the code at commit 0fe8d3e (git rev-parse --short HEAD). Environment variables are read with Environment.GetEnvironmentVariable: most in static field initialisers (read once per process), a few when a feature starts (for example MEITOU_DRAW_LOG, MEITOU_PIPELINE_CACHE). Flags are parsed by the switch blocks of each entry point: GameOptions.Split (game), WorldOptions.Parse and PostOptions.TryParse (world viewer), ImpostorApp.Run, NavmeshTool.Run, WeatherTool.Run, and the tools Program.cs files.

Not MEITOU_* but read by the engine: KENSHI_PATH (game install, src/Meitou.Core/Content/GameInstall.cs:11), NAV_VERBOSE and NAV_DUMP (src/Meitou.Navigation/NavDebug.cs:10,13).

Environment variables

Boolean variables are written as they are tested in code: == "1" means only 1 turns the switch on, != "0" means only 0 turns it off. MEITOU_FRAGMENT is a shader macro defined by the compiler (src/Meitou.Rendering/Gpu/Shaders/GlslProgramCompiler.cs:158), not an environment variable, and is left out. MEITOU_REFL_* is built by string concatenation (ReflectionPass.cs:51). Its comment lists four names (OBJECTS, FOLIAGE, LOD, AGE), but the code also reads MEITOU_REFL_TLOD, so five are listed.

Variables marked tools only are read only under tools/ (the model viewer, tools/Meitou.ModelViewer). tools/Meitou.Tools reads no environment variable.

Path switches

Variable Type Values Effect Source file
MEITOU_MESH_STREAM boolean 0: loads every LOD level of every mesh. Other values or unset: default, streams levels. Default: on. Whether far mesh levels are streamed in or all loaded. src/Meitou.Rendering/BuildingLodMesh.cs:152
MEITOU_MIP_STREAM boolean 0: no texture mip is dropped by distance. Default: on. Turns distance-based texture mip streaming on or off. src/Meitou.Rendering/MipStreaming.cs:34
MEITOU_MIP_SKIP string Comma-separated substrings (case-insensitive). Textures whose name contains one keep all mips. Default: unset (none). Per-texture exemption from mip dropping. src/Meitou.Rendering/WorldTextureCache.cs:108
MEITOU_CHARACTER_LOD string faithful: keeps the files' own mesh levels. Other or unset: default, Meitou mode generates levels by edge collapse. Default: generated. Chooses the character mesh LOD source. src/Meitou.Rendering/Characters/CharacterSwitches.cs:15
MEITOU_CHARACTER_MORPH boolean 0: face poses (GPU morph of the body mesh) off. Default: on. Turns the character face-pose morph on or off. src/Meitou.Rendering/Characters/CharacterSwitches.cs:18
MEITOU_CHARACTER_MOTION boolean 0: characters' own motion left out of the upscalers' motion vectors. Default: on. Motion vectors for characters on or off. src/Meitou.Rendering/Characters/CharacterSwitches.cs:21
MEITOU_GPU_CULL boolean 0: starts with the CPU foliage cull (A1) instead of the GPU cull. Default: on. Selects the GPU or CPU foliage cull at start. src/Meitou.Rendering/FoliageRenderer.cs:97
MEITOU_GPU_GRASS boolean 0: grass drawn by the CPU path. Default: on, and also off when MEITOU_GPU_CULL=0. Selects the GPU or CPU grass path at start. src/Meitou.Rendering/FoliageRenderer.Grass.cs:29
MEITOU_GRASS_MOTION boolean 0: swaying grass left out of the upscalers' motion vectors. Default: on. Grass motion vectors on or off. src/Meitou.Rendering/WorldFrame.cs:899
MEITOU_IMPOSTOR_FARMIP boolean 0: each atlas keeps the mip levels its transition distance needs (no refine, no coarsen). Default: on. Far-mip planning for impostor atlases on or off. src/Meitou.Rendering/FoliageRenderer.Impostors.cs:51
MEITOU_IMPOSTOR_CASTERS boolean 0: shadow cascades keep the meshes (no impostor shadow casters). Default: on. Impostors as shadow casters on or off. src/Meitou.Rendering/FoliageRenderer.Impostors.cs:66
MEITOU_IMPOSTOR_SMALL boolean 0: the small impostor class is off (small meshes stay meshes). Default: on. Small-class impostors on or off. src/Meitou.Rendering/Impostors/ImpostorLayout.cs:107
MEITOU_IMPOSTOR_ROCKS boolean 0: TERRAIN-mode rocks stay meshes (no rock atlases). Default: on. Rock impostors on or off. src/Meitou.Rendering/FoliageRenderer.Impostors.cs:171
MEITOU_IMPOSTOR_ROCK_TINT boolean 0: a rock impostor does not take the colour map's tint at its position. Default: on. Rock impostor tint on or off. src/Meitou.Rendering/FoliageRenderer.Impostors.cs:180
MEITOU_RIVERS boolean 0: no river map derived from the heights. Default: on. Meitou water rivers on or off. src/Meitou.Rendering/WaterRenderer.cs:841
MEITOU_UNCOMPRESSED_TEXTURES boolean 1: every texture decoded to RGBA8 on the CPU and uploaded (4 to 8 times the GPU memory). Default: off (BC1 to BC5 uploaded as stored). Texture upload format. src/Meitou.Rendering/WorldTextureCache.cs:421
MEITOU_RECORD_THREADS number (0, 1, 2) 0: every segment recorded inline, single-threaded. 1: secondaries recorded one after another on the render thread. Other values or unset: 2, default, secondaries recorded on job threads. How a native host's guests are recorded. src/Meitou.Rendering/Gpu/Recording.cs:48
MEITOU_VRAM_GUARD boolean 0: the video-memory pressure guard (VramGuard) is not created. Default: on. Memory-pressure guard on or off. src/Meitou.Rendering/WorldFrame.cs:752
MEITOU_FORCE_INTEGRATED boolean 1: IsIntegrated reported true on any GPU (to test integrated-GPU budgets). Default: off. Makes the device look integrated. src/Meitou.Rendering/Gpu/Core/VulkanDevice.cs:134
MEITOU_VK_VALIDATION string 0, off or false: off. sync: validation plus synchronisation validation. gpu: validation plus GPU-assisted validation. 1 or any other non-empty value: validation on (the _ arm of the switch). Unset or empty: caller default (on when the layer is installed). Vulkan validation layer mode. src/Meitou.Rendering/Gpu/Core/VulkanDeviceOptions.cs:23
MEITOU_FFX_DEBUG boolean 1: FSR debug checking flag on and its message callback set. Default: off. FSR (FFX) debug mode. src/Meitou.Rendering/Upscalers/FsrUpscaler.cs:70
MEITOU_FFX_DEBUGVIEW boolean 1: FSR's debug-view flag set in the dispatch. Default: off. FSR debug view on or off. src/Meitou.Rendering/Upscalers/FsrUpscaler.cs:197
MEITOU_DLSS_PRESET number Streamline DLSS preset number used for every mode: 0 default, 1 to 15 = presets A to O (e.g. 5 = E, CNN). Non-numeric: 0. DLSS model preset. src/Meitou.Rendering/Upscalers/DlssUpscaler.cs:80

Budgets and ranges

Variable Type Values Effect Source file
MEITOU_IMPOSTOR_BUDGET_MB number (MB) Any number above 0 replaces the default rule. Default: unset, the default rule (8% of the card's budget, 5% on an integrated GPU, floor 48 MB, cap 1024 MB, or 256 MB integrated; 192 MB when the budget is unknown). Video memory the resident impostor atlases may use. src/Meitou.Rendering/ImpostorBudget.cs:48
MEITOU_IMPOSTOR_CACHE_MB number (MB) Disk cap for the atlas cache. 0 or less: no cap. Unparseable or unset: 512 MB. Size cap of the impostor disk cache. src/Meitou.Rendering/Impostors/ImpostorCache.cs:44
MEITOU_IMPOSTOR_BAKE_MSAMPLES number (millions) Shaded samples per frame allowed for impostor bakes. Must be above 0. Default: 40. Limits how much of a bake is recorded per frame. src/Meitou.Rendering/FoliageRenderer.Impostors.cs:115
MEITOU_IMPOSTOR_MIP_MARGIN number (levels) Levels of safety on an atlas's needed mip. Must be 0 or more. Default: 1. Mip margin used in the impostor plan. src/Meitou.Rendering/FoliageRenderer.Impostors.cs:53
MEITOU_IMPOSTOR_ROCK_MIN_SURFACE number (share) Triangles' share of a rock's bounding sphere surface below which it gets no impostor. Any parseable float (no range check). Default: 0.06. Smallest TERRAIN rock that gets an impostor. src/Meitou.Rendering/FoliageRenderer.Impostors.cs:173
MEITOU_IMPOSTOR_ROCK_MAX_FRAME number (pixels) Largest frame of a rock atlas. Minimum 64 (lower values fall back to the default). Default: 256. Atlas frame size for TERRAIN rocks. src/Meitou.Rendering/Impostors/ImpostorLayout.cs:158
MEITOU_IMPOSTOR_SMALL_MIN_RADIUS number (units) Smallest instance radius for the small class. Minimum 0. Default: 2. Lower radius bound of small impostors. src/Meitou.Rendering/Impostors/ImpostorLayout.cs:108
MEITOU_IMPOSTOR_SMALL_MIN_TRIANGLES number Fewest triangles a mesh needs to be a small impostor. Minimum 0. Default: 100. Triangle bound of the small class. src/Meitou.Rendering/Impostors/ImpostorLayout.cs:109
MEITOU_IMPOSTOR_SMALL_FRAME number (pixels) Frame size of small-class atlases. Minimum 8. Default: 32. Atlas frame size of the small class. src/Meitou.Rendering/Impostors/ImpostorLayout.cs:110
MEITOU_IMPOSTOR_SMALL_GRID number Frames per atlas side for the small class. Minimum 2. Default: 12. Atlas grid of the small class. src/Meitou.Rendering/Impostors/ImpostorLayout.cs:111
MEITOU_IMPOSTOR_GRID number Frames per atlas side for all classes. Minimum 2. Default: 12. Part of the cache key. Atlas grid size (experiments). src/Meitou.Rendering/Impostors/ImpostorLayout.cs:136
MEITOU_IMPOSTOR_MAGNIFY number How much larger than its frame an instance may look at the reference distance. Minimum 0.5. Default: 1.4. Magnification allowed for impostor frames. src/Meitou.Rendering/Impostors/ImpostorLayout.cs:138
MEITOU_IMPOSTOR_BIAS number Scale of the bake's LOD bias. Minimum 0. 0 turns the bias off. Default: 1. LOD bias of impostor bakes. src/Meitou.Rendering/Impostors/ImpostorLayout.cs:140
MEITOU_FOLIAGE_RANGE number Start value of the foliage range setting (the game's foliage range is 1). Default: 4. Unparseable: 4. Initial foliage draw range. src/Meitou.Rendering/FoliageRenderer.cs:104
MEITOU_GRASS_RANGE number Start value of the grass range setting (the game's grass range is 1). Default: 4. Initial grass draw range. src/Meitou.Rendering/FoliageRenderer.cs:105
MEITOU_GRASS_DENSITY number Start value of the grass density setting (the game's is 1). Clamped to MaxGrassDensity when used. Default: 1. Initial grass density. src/Meitou.Rendering/FoliageRenderer.cs:106
MEITOU_GRASS_ARENA_MB number (MB) Size of the grass blade arena. Default: 160. GPU memory for grass blades. src/Meitou.Rendering/FoliageRenderer.Grass.cs:34
MEITOU_GRASS_SLOTS number Slots in the grass cull table. Default: 32768. Capacity of the grass cull table. src/Meitou.Rendering/FoliageRenderer.Grass.cs:35
MEITOU_MIP_MARGIN number (levels) Levels held back against the mip bound. Parseable float; default 2. Safety margin of mip streaming. src/Meitou.Rendering/MipStreaming.cs:21
MEITOU_MIP_TOP number (share) Share of a mesh part's world area (0.005 = 0.5%) whose texel-scale value is taken. Default: 0.005. How a part's texel scale is picked for mip choice. src/Meitou.Rendering/MeshTexelScale.cs:18
MEITOU_UNLOAD_IDLE number (seconds) Seconds a mesh or texture outside every draw range stays resident. A huge value turns unloading off. Default: 60. Idle unload delay. src/Meitou.Rendering/BackgroundWork.cs:91
MEITOU_OBJECT_PART_RANGE number (units) Objects view range that small building parts stop at. Must be above 0. Default: 3000. Distance for small object parts (benchmarks). src/Meitou.Rendering/WorldObjectRenderer.cs:125
MEITOU_RECORD_MIN_DRAWS number In mode 2, passes with fewer draws than this are recorded on the render thread. 0: always threads. Default: 32. Threshold for threaded command recording. src/Meitou.Rendering/Gpu/Recording.cs:62
MEITOU_REFL_OBJECTS number (units) Objects (buildings, features) further than this from the eye are left out of the water reflection. Default: 3000. Object cut-off distance of the reflection pass. src/Meitou.Rendering/ReflectionPass.cs:52
MEITOU_REFL_FOLIAGE number (units) Foliage distance cut-off of the reflection pass. Default: 3000. Foliage cut-off distance of the reflection pass. src/Meitou.Rendering/ReflectionPass.cs:53
MEITOU_REFL_LOD number Object LOD bias of the reflection pass (ObjectLodBias). Default: 3. LOD bias of objects in reflections. src/Meitou.Rendering/ReflectionPass.cs:54
MEITOU_REFL_AGE number (frames) MaxAge: the last reflection image is reused while its age, the frames since it was drawn (age++ on each reused frame, age = 0 on each drawn frame), is below this. Default: 3. Reuse limit of the last reflection image. src/Meitou.Rendering/ReflectionPass.cs:55 (age: lines 173-174, 263)
MEITOU_REFL_TLOD number TerrainLodScale of the reflection pass. Default: 0.5. Terrain LOD scale in reflections. src/Meitou.Rendering/ReflectionPass.cs:56
MEITOU_VRAM_BUDGET_MB number (MB) Integer above 0 caps what VideoMemory reports. Unset: the card's own budget. Pretends the card has less video memory (testing). src/Meitou.Rendering/Gpu/Core/VulkanDevice.cs:161
MEITOU_VRAM_KILL number (fraction) Limit as a fraction of the budget for headless runs (--screenshot, --fly-benchmark). Exceeding it ends the process with exit code 9. 0: off. Default: 0.95. Tools only. Stops a headless run before the driver resets. tools/Meitou.ModelViewer/VramWatch.cs:58

Diagnostics, logging and timing

Variable Type Values Effect Source file
MEITOU_STREAM_LOG boolean 1: prints each terrain streaming step over 3 ms (TerrainStreamer), each foliage update over 8 ms (FoliageRenderer.cs:490), and each slow frame over 15 ms (model viewer). Also switches on the streaming logs in the foliage, object and texture code (what those print: Unknown, not read in detail). Default: off. Logs slow streaming work. src/Meitou.Rendering/TerrainStreamer.cs:17 (also FoliageRenderer.cs:930, WorldObjectRenderer.cs:205, WorldTextureCache.cs:105, FoliageRenderer.cs:490, tools/Meitou.ModelViewer/WorldApp.cs:143)
MEITOU_IMPOSTOR_LOG boolean 1: a line for each atlas loaded, baked, refused for the budget, or unloaded. Default: off. Impostor atlas lifecycle log. src/Meitou.Rendering/FoliageRenderer.Impostors.cs:64
MEITOU_MIP_LOG boolean 1: a line for each image loaded with more levels dropped than the quality setting, and each swap. Default: off. Texture mip log. src/Meitou.Rendering/WorldTextureCache.cs:107
MEITOU_TERRAIN_LOD_LOG boolean 1: prints level ranges when they change and drawn nodes per level now and then. Default: off. Terrain LOD log. src/Meitou.Rendering/TerrainRenderer.cs:77
MEITOU_LANDMARK_LOG boolean 1: one line per resolved landmark, nearest first. Default: off. Landmark log. src/Meitou.Rendering/WorldObjectRenderer.cs:188
MEITOU_CHARACTER_LOG boolean 1: a line per part of every character appearance built. Default: off. Character build log. src/Meitou.Rendering/Characters/CharacterSwitches.cs:12
MEITOU_COVERAGE_LOG boolean 1: prints a coverage line (draw count and mask) per particle draw. Default: off. Particle coverage log. src/Meitou.Rendering/ParticleRenderer.cs:446
MEITOU_DRAW_LOG file Path of the draw log written for one frame. Unset or empty: no log. Writes every native draw of one frame to a file. src/Meitou.Rendering/Gpu/DrawLog.cs:102
MEITOU_DRAW_LOG_FRAME number Frame number (long) whose draws are logged. Default: 3. Frame that MEITOU_DRAW_LOG records. src/Meitou.Rendering/Gpu/DrawLog.cs:104
MEITOU_JOB_STATS boolean 1: per-call-site statistics of background jobs (allocations, time, count), reported with --fly-benchmark. Default: off. Background-job statistics. src/Meitou.Rendering/BackgroundWork.cs:63
MEITOU_TEX_STATS boolean 1: prints texture residency statistics (sizes, duplicates, histogram) when the texture cache is disposed. Default: off. Texture cache statistics. src/Meitou.Rendering/WorldTextureCache.cs:623
MEITOU_STREAMLINE_LOG boolean 1: Streamline info messages printed (warnings and errors always are). Default: off. Streamline log level. src/Meitou.Rendering/Upscalers/Streamline.cs:115
MEITOU_WATER_DEBUG number 1: shows the shore fields (shader test > 0.5). 2: shows the river weight and flow direction (test > 1.5). 5 is accepted and maps to 5, which passes the > 1.5 test, so it renders the same as 2. Other or unset: 0, off. Water debug views. src/Meitou.Rendering/WaterRenderer.cs:1001
MEITOU_LOD_DEBUG number 1: colours solid surfaces by LOD level. 2: wireframe only, coloured by level. Non-numeric: 0, off. Default: 0. Object LOD debug view. src/Meitou.Rendering/WorldObjectRenderer.cs:43
MEITOU_FOLIAGE_DEBUG string nograss: grass left out. nomeshes: foliage meshes left out. Other or unset: nothing left out. Measures foliage parts separately. src/Meitou.Rendering/FoliageRenderer.cs:60
MEITOU_FOLIAGE_TRIS boolean 1: tallies the indirect draws (triangles and instances) per view kind, and the meshes that drew most. Default: off. Foliage draw statistics. src/Meitou.Rendering/FoliageGpuCull.cs:248
MEITOU_FOLIAGE_TIMING boolean 1: CPU time of the foliage draw steps summed over the run, by kind (colour or depth). Default: off. Foliage CPU timing. src/Meitou.Rendering/FoliageRenderer.cs:1209
MEITOU_FOLIAGE_TIMING_SKIP number Number of initial calls left out of the foliage timing. Default: 160. Warm-up calls skipped by foliage timing. src/Meitou.Rendering/FoliageRenderer.cs:1213
MEITOU_OBJECT_TIMING boolean 1: CPU time of the object draw steps summed over the run, by kind. Default: off. Object CPU timing. src/Meitou.Rendering/WorldObjectRenderer.cs:650
MEITOU_OBJECT_TIMING_SKIP number Number of initial calls left out of the object timing. Default: 160. Warm-up calls skipped by object timing. src/Meitou.Rendering/WorldObjectRenderer.cs:651
MEITOU_MESH_TIMING number 0: off. 1: CPU time of the mesh draws, printed at dispose. 2: also records each call a second time and reports it as warm. Non-numeric: 0. Default: 0. Mesh draw CPU timing. src/Meitou.Rendering/TerrainRenderer.cs:728
MEITOU_TERRAIN_TIMING boolean 1: CPU time of terrain patches, terrain meshes, and the blocker map, per step. Default: off. Terrain CPU timing. src/Meitou.Rendering/TerrainRenderer.cs:1165
MEITOU_GPU_CULL_VERIFY boolean 1: with the GPU cull, every view is also culled on the CPU, and the GPU lists are compared a frame later. The summary prints at dispose. Default: off. Verifies the GPU foliage cull. src/Meitou.Rendering/FoliageRenderer.cs:100
MEITOU_PASS_STATS boolean 1: frame cost breakdown per stage (pass meter) and pre-frame GPU time. Default: off. Read by the engine and by tools. Per-pass GPU and CPU cost. src/Meitou.Rendering/Gpu/FrameLoop.cs:25 (and tools/Meitou.ModelViewer/PassMeter.cs:82)
MEITOU_CROWD_ANIMATE boolean 1: the --crowd harness animates in real time even for stills. Default: off (stills hold --crowd-time). Crowd harness animation. src/Meitou.Rendering/Characters/CharacterSwitches.cs:24

Benchmarks and tools

All rows in this group are tools only (tools/Meitou.ModelViewer) unless noted.

Variable Type Values Effect Source file
MEITOU_BENCH_SHADOW_RANGE number (units) Shadow distance set beyond --shadow-range's game limit (VRAM measurements). Unset: unchanged. Tools only. Overrides the shadow range in the fly benchmark. tools/Meitou.ModelViewer/WorldApp.Benchmark.cs:22
MEITOU_BENCH_SKIP number Frames left out of the percentiles and worst list. Minimum 1. Default: 1. Tools only. Warm-up frames skipped by the fly benchmark. tools/Meitou.ModelViewer/WorldApp.Benchmark.cs:102
MEITOU_FLY_SHOT string Comma-separated frame numbers. Each is saved as <name>-fly<frame>.png with --screenshot. Unset: none. Tools only. Pictures of chosen frames of the fly benchmark. tools/Meitou.ModelViewer/WorldApp.Benchmark.cs:194
MEITOU_SKY_BENCH boolean 1: after the picture is saved, times the sky pass and the sky-view table rebuild. Default: off. Tools only. Sky cost report. tools/Meitou.ModelViewer/WorldApp.cs:219
MEITOU_PARTICLE_LIST boolean 1: lists the particle systems in view with --screenshot. Default: off. Tools only. Particle listing. tools/Meitou.ModelViewer/WorldApp.cs:203
MEITOU_IMPOSTOR_SURVEY boolean 1: prints each mesh skipped as too small for an impostor class. Default: off. Tools only. Impostor size survey (--impostor-bake-all). tools/Meitou.ModelViewer/ImpostorApp.cs:173
MEITOU_LANDMARK_SURVEY boolean 1: prints the whole world's placements by world bounding radius and exits. Default: off. Tools only. Landmark threshold survey. tools/Meitou.ModelViewer/WorldApp.cs:48
MEITOU_VK_MICRO boolean 1: after a pass meter run, prints the cost of one vkCmd* call (from 100 000 recorded). Default: off. Tools only. Vulkan call micro-benchmark. tools/Meitou.ModelViewer/WorldApp.Benchmark.cs:181
MEITOU_PASS_STATS_SKIP number Frames skipped before the pass meter records. Default: 60. Tools only. Warm-up frames of the pass meter. tools/Meitou.ModelViewer/PassMeter.cs:75
MEITOU_PASS_TAG string Tag printed with the pass meter report. Default: run. Tools only. Label of a pass meter run. tools/Meitou.ModelViewer/PassMeter.cs:76

Paths

Variable Type Values Effect Source file
MEITOU_IMPOSTOR_CACHE path Directory for the impostor atlas cache. Unset: %LOCALAPPDATA%\Meitou\impostors. Location of the impostor disk cache. src/Meitou.Rendering/Impostors/ImpostorCache.cs:33
MEITOU_PIPELINE_CACHE path 0: no pipeline cache. Other non-empty: the file path. Unset: %LOCALAPPDATA%\Meitou\pipeline-cache.bin. Vulkan pipeline cache file. src/Meitou.Rendering.Display/VulkanDisplay.cs:102
MEITOU_FFX_PATH path Folder or DLL file of the FSR library. Unset: the library next to the executable. Where FSR is loaded from. src/Meitou.Rendering/Upscalers/FsrUpscaler.cs:92
MEITOU_STREAMLINE_PATH path Folder or path of the Streamline DLLs, tried first. Unset: the executable's folder only. Where Streamline is loaded from. src/Meitou.Rendering/Upscalers/Streamline.cs:121

Other

Variable Type Values Effect Source file
MEITOU_FRAGMENT (not an environment variable) Shader macro MEITOU_FRAGMENT=1 set by the compiler for fragment stages. Makes derivatives available in shared shader code. src/Meitou.Rendering/Gpu/Shaders/GlslProgramCompiler.cs:158

Note: MEITOU_FRAGMENT is listed here only so it is not mistaken for a setting. It is not read from the environment.

Command-line flags

Flags are matched as exact strings. Unknown flags are an error (unknown option) in the game and the viewer, and an error in the tools. Values follow each flag: number is parsed with the invariant culture, number pair is one argument x,z (two numbers, comma-separated), two numbers is two separate arguments (--move-to, --days), and file is a path.

The flags are grouped by the program that parses them. The game (meitou) takes its own flags first and passes the rest to the world options, so every world flag also works on the game. The world options also work on meitou-viewer --world. The model viewer's impostor flags belong to meitou-viewer --impostor-preview or --impostor-bake-all only.

Game (meitou), src/Meitou.Game/GameOptions.cs

Flag Takes value Values Effect Source file
--fps-limit number Frame limit when vsync is off. 0: unlimited. Unset: value from meitou.user.json (--help says 240). Caps the frame rate. src/Meitou.Game/GameOptions.cs:71
--tick-rate number Control ticks per second. Unset: 30 (per --help). Input and camera tick rate. src/Meitou.Game/GameOptions.cs:72
--sim-threads number Simulation worker threads. Unset: half the cores, clamped 1 to 8 (per --help). Thread count of the simulation. src/Meitou.Game/GameOptions.cs:73
--seed number World seed (unsigned). Default: 0. Seed of the world. src/Meitou.Game/GameOptions.cs:74
--vsync none Present: vsync on (bool? set to true). Unset: from meitou.user.json (--help: off). Turns vsync on. src/Meitou.Game/GameOptions.cs:75
--no-vsync none Present: vsync off (bool? set to false). Unset: from meitou.user.json (--help: off). Turns vsync off. src/Meitou.Game/GameOptions.cs:76
--ticks number With --screenshot: runs n control ticks before the picture. Default: 0. Pre-picture simulation ticks. src/Meitou.Game/GameOptions.cs:77
--free-camera none Present: starts in the free camera. Default: off. Start camera mode. src/Meitou.Game/GameOptions.cs:78
--no-population none Present: no town residents or movement. Default: off. Empty world. src/Meitou.Game/GameOptions.cs:79
--no-navmesh none Present: paths on open ground. Default: off (navmesh used). Disables navmesh pathing. src/Meitou.Game/GameOptions.cs:80
--body-time-scale number Multiplies body-part and blood rates. Default: 1. Speed of injury and healing rates. src/Meitou.Game/GameOptions.cs:81
--new-game optional string Takes the next argument as the start name unless it starts with -. Absent: no new game. Default start: Wanderer (per --help). Starts a new game with the player squad. src/Meitou.Game/GameOptions.cs:82
--list-starts none Present: prints the starts and exits with 0. Lists new-game starts. src/Meitou.Game/GameOptions.cs:86
--sandbox optional number Animation sandbox with 1 character, or 2 with 2 (clamped 1 to 2). Present without a number: 1. Absent: off. Runs the sandbox instead of a world. src/Meitou.Game/GameOptions.cs:87
--sandbox-character string CHARACTER record name or id to spawn. Unset: first squad member of the default start. Sandbox character. src/Meitou.Game/GameOptions.cs:91
--sandbox-mode string walk, run or free. Other values are an error. Unset: no mode set. Sandbox hero's speed mode. src/Meitou.Game/GameOptions.cs:92
--sandbox-speed number Fixed speed in units per second. 0: off. Default: 0. Sandbox fixed speed. src/Meitou.Game/GameOptions.cs:93
--sandbox-patrol none Present: patrols a 400-unit line. Default: off. Sandbox patrol. src/Meitou.Game/GameOptions.cs:94
--select-player none Present: selects the squad. Default: off. Selects the player squad (pictures). src/Meitou.Game/GameOptions.cs:95
--attack-nearest none Present: squad attacks the nearest other character once loaded; also sets --select-player. Default: off. Fight for pictures. src/Meitou.Game/GameOptions.cs:96
--move-to two numbers Two separate arguments, x then z, both required. Default: unset. Orders the squad to walk to a point. src/Meitou.Game/GameOptions.cs:97
--quit-after number Seconds before the window closes and the frame rate is printed. Default: no limit. Also read by the model viewer (stripped before parsing). Unattended smoke test. src/Meitou.Game/GameOptions.cs:98

World viewer options (meitou-viewer --world, and the game), src/Meitou.Rendering/WorldFrame.cs

Field defaults are from WorldOptions (WorldFrame.cs:15 to :125). Where a default comes only from the --help text, it says so.

Flag Takes value Values Effect Source file
--world none No-op in the parser. Presence selects the world viewer in meitou-viewer. Selects world mode. src/Meitou.Rendering/WorldFrame.cs:237
--at number pair x,z world position. Default: unset (world centre, per --help). Start point. src/Meitou.Rendering/WorldFrame.cs:238
--zone number pair i,j zone integers; centre of that zone. Default: unset. Start zone. src/Meitou.Rendering/WorldFrame.cs:239
--town string Name fragment of a FCS TOWN record. Default: unset. (The game uses "The Hub" if no --at, --zone or --town.) Start town. src/Meitou.Rendering/WorldFrame.cs:240
--radius number Half-size of the loaded square in zones. Must be above 0. Default: 1.5. Loaded area. src/Meitou.Rendering/WorldFrame.cs:241
--step number Heightmap sample step (integer). Default: unset (smallest power of two keeping 2048 or fewer cells per side, per --help). Terrain sample step. src/Meitou.Rendering/WorldFrame.cs:242
--yaw number Heading in degrees. Default: 30 (per --help). Start camera heading. src/Meitou.Rendering/WorldFrame.cs:243
--pitch number Pitch above the horizon in degrees. Default: 35 (per --help). Start camera pitch. src/Meitou.Rendering/WorldFrame.cs:244
--distance number Camera boom in units. Default: the radius (per --help). The game's sandbox sets 70. Start camera distance. src/Meitou.Rendering/WorldFrame.cs:245
--screenshot file Output PNG; renders offscreen and exits. Default: unset (interactive). Offscreen picture. src/Meitou.Rendering/WorldFrame.cs:246
--size string WxH, e.g. 1280x960. Default: 1280x960. Render size. src/Meitou.Rendering/WorldFrame.cs:247
--monitor number Monitor to open the window on, 1-based. Default: unset. Window monitor. src/Meitou.Rendering/WorldFrame.cs:324
--no-textures none Present: height-tinted terrain, no biome textures. Default: off. Faster start. src/Meitou.Rendering/WorldFrame.cs:252
--no-objects none Present: no buildings or map features. Default: off. Leaves out objects. src/Meitou.Rendering/WorldFrame.cs:253
--no-foliage none Present: no trees, bushes, rocks or grass. Default: off. Leaves out foliage. src/Meitou.Rendering/WorldFrame.cs:254
--range-large number Foliage draw range for large meshes, in units. Default: 50000 (per --help). Range of large foliage. src/Meitou.Rendering/WorldFrame.cs:255
--range-medium number Foliage draw range for medium meshes. Default: 12000 (per --help). Range of medium foliage. src/Meitou.Rendering/WorldFrame.cs:260
--range-small number Foliage draw range for small meshes. Default: 3500 (per --help). Range of small foliage. src/Meitou.Rendering/WorldFrame.cs:261
--impostor-distance number Distance where medium foliage becomes impostors. Default: 4000 (per --help). Impostor transition distance. src/Meitou.Rendering/WorldFrame.cs:256
--large-impostor-distance number Same for the large class. Default: 12000 (per --help). Impostor transition distance (large). src/Meitou.Rendering/WorldFrame.cs:257
--impostor-budget number (MB) Fixed video memory for resident impostor atlases. Default: the card-based rule (8%, 5% integrated; 48 to 1024 MB). Impostor memory budget. src/Meitou.Rendering/WorldFrame.cs:258
--impostor-cache-mb number (MB) Cap of the impostor disk cache. 0: no cap. Default: 512. Impostor disk cache cap. src/Meitou.Rendering/WorldFrame.cs:259
--object-distance number Full-detail distance for placed objects. Default: 20000 in Meitou, 12000 in Faithful (reach switch). Object draw distance. src/Meitou.Rendering/WorldFrame.cs:262
--landmark-distance number Distance for huge placed objects (Meitou only). 0: none. Default: 150000 in Meitou; none in Faithful. Landmark draw distance. src/Meitou.Rendering/WorldFrame.cs:263
--distant-range number Zones of distant towns. Default: 10. Distant town range. src/Meitou.Rendering/WorldFrame.cs:264
--no-distant none Present: no distant towns. Default: off. Drops distant towns. src/Meitou.Rendering/WorldFrame.cs:265
--layer-size number Terrain layer texture size, a power of two up to 2048. Default: 2048. Terrain layer resolution. src/Meitou.Rendering/WorldFrame.cs:266
--debug number 1: blend-map slot weights. 2: layer weights (R cliff, G slope, B grass). Default: 0 (off). Terrain debug view. src/Meitou.Rendering/WorldFrame.cs:267
--wireframe none Present: wireframe view. Default: off. Wireframe. src/Meitou.Rendering/WorldFrame.cs:268
--info none Present: loads the world, prints information and exits 0. Default: off. Load check. src/Meitou.Rendering/WorldFrame.cs:269
--time number Time of day in hours. Default: 13. Sun time. src/Meitou.Rendering/WorldFrame.cs:270
--no-water none Present: no water. Default: off. Leaves out water. src/Meitou.Rendering/WorldFrame.cs:271
--water-seconds number Start of the Meitou water clock, in game seconds. Default: 0. Water wave phase (pictures). src/Meitou.Rendering/WorldFrame.cs:272
--water-grid number Water grid segments round the eye, clamped 64 to 1024. Default: 256. Water mesh resolution. src/Meitou.Rendering/WorldFrame.cs:273
--no-water-refraction none Present: water blends over the scene instead of refracting. Default: refraction on. Water refraction off. src/Meitou.Rendering/WorldFrame.cs:274
--water-ocean number FFT size per cascade: 64, 128 or 256 (values rounded up to these). Default: 256. Ocean FFT size. src/Meitou.Rendering/WorldFrame.cs:275
--no-reflections none Present: water reflects the sky colour only. Same as --water-reflection 0. Default: off. Water reflection off. src/Meitou.Rendering/WorldFrame.cs:276
--water-reflection number (0 to 4) Clamped 0 to 4. Default in code: 4. The --help text says 2; code value used. What the water mirrors. src/Meitou.Rendering/WorldFrame.cs:277
--reflection-range number Mirrored scene drawn out to haze distance times this. Default in code: 3. The --help text says 0.6; code value used. Reflection distance. src/Meitou.Rendering/WorldFrame.cs:278
--texture-quality number (0 to 4) Clamped to 0 to 4 (0 Maximum, 1 High, 2 Medium, 3 Low, 4 Fugly). Default in code: 0. The --help text says 1; code value used. Texture mip dropping. src/Meitou.Rendering/WorldFrame.cs:279
--no-shadows none Present: no sun shadow map. Default: off. Shadows off. src/Meitou.Rendering/WorldFrame.cs:280
--shadow-quality number Map size index: 0 is 1024, 1 is 2048, 2 is 4096. Default: 1. Shadow map size. src/Meitou.Rendering/WorldFrame.cs:281
--shadow-filter number (0 to 2) Meitou shadow filter; clamped 0 to 2. Default: 2. Shadow filter quality. src/Meitou.Rendering/WorldFrame.cs:282
--shadow-range number Shadow distance, clamped to 1000 to 9000 (Faithful) or 1000 to 15000 (Meitou). Default: 5000 Faithful, 10000 Meitou. Shadow distance. src/Meitou.Rendering/WorldFrame.cs:283
--debug-shadows number 1: the four cascade maps. 2: shadow term by cascade. 3: term over the picture. Default: 0. Shadow debug view. src/Meitou.Rendering/WorldFrame.cs:284
--simple-sky none Present: old colour-model sky and squared-distance fog. Default: off. Sky model. src/Meitou.Rendering/WorldFrame.cs:285
--haze string kenshi or physical. Other values are an error. Default: kenshi. Aerial perspective model. src/Meitou.Rendering/WorldFrame.cs:286
--haze-distance number Game's far distance D for haze. Default: 50000 (per --help). Haze distance. src/Meitou.Rendering/WorldFrame.cs:287
--haze-strength number Haze blend strength. Default: 0.93 (Meitou haze). 1 is the game's. Haze strength. src/Meitou.Rendering/WorldFrame.cs:288
--meitou string Comma-separated feature ids, or all. Ids: ao, dither, haze, aa, shadows, range, impostors, reach, water. Default: all Meitou. The --help text lists dust, which is not an id and is rejected. Turns those features to Meitou. src/Meitou.Rendering/WorldFrame.cs:289
--faithful string Same ids as --meitou. Turns those features to the game's look. Default: all Meitou. Turns those features to Faithful. src/Meitou.Rendering/WorldFrame.cs:290
--weather string A WEATHER record name, or auto. Default: auto (scheduler). Forces a weather. src/Meitou.Rendering/WorldFrame.cs:291
--wetness number (0 to 1) Overrides wetness. Default: the forced weather's value. Wet surfaces (testing). src/Meitou.Rendering/WorldFrame.cs:292
--rain number (0 to 100) Overrides rain. Default: the forced weather's value. Rain (testing). src/Meitou.Rendering/WorldFrame.cs:293
--dust number list x or x,inside,slope. Default: the forced weather's values. Dust on objects (testing). src/Meitou.Rendering/WorldFrame.cs:294
--day number Game day the weather schedule starts at. Default: 0 (viewer). Start day. src/Meitou.Rendering/WorldFrame.cs:302
--weather-seed number Scheduler random seed. Default: 1. Weather random seed. src/Meitou.Rendering/WorldFrame.cs:303
--no-particles none Present: no weather particles. Default: off. Particles off. src/Meitou.Rendering/WorldFrame.cs:304
--no-fog-volumes none Present: placed fog volumes not drawn. Default: off. Fog volumes off. src/Meitou.Rendering/WorldFrame.cs:305
--no-fog-cull none Present: draws what fog hides (comparison). Default: off. Fog culling off. src/Meitou.Rendering/WorldFrame.cs:306
--particle-prewarm number Seconds simulated before the first picture; 0 starts empty. Default: longest particle life. Particle warm-up. src/Meitou.Rendering/WorldFrame.cs:307
--particle-area number Radius in units of the disc where weather effects are placed (test). Minimum 1. Default: weather region. Particle placement area. src/Meitou.Rendering/WorldFrame.cs:308
--particle-seed number Seed for particle random choices. Default: 1. Particle seed. src/Meitou.Rendering/WorldFrame.cs:309
--particle-only string list Comma-separated name fragments; keeps only matching weather effects (test). Default: all. Particle filter. src/Meitou.Rendering/WorldFrame.cs:310
--clouds number (0 to 1) Cloud density (test override). Default: scheduler. Cloud density. src/Meitou.Rendering/WorldFrame.cs:311
--cloud-wind number pair Drift velocity in units per second (test). Default: 0,0. Cloud drift. src/Meitou.Rendering/WorldFrame.cs:312
--no-stream none Present: terrain detail kept at the start point, not following the camera. Default: off. Streaming follow off. src/Meitou.Rendering/WorldFrame.cs:313
--show-keys none Present: key list overlay open at start. Default: off. Overlay at start. src/Meitou.Rendering/WorldFrame.cs:314
--camera-at number pair Starts the camera here (as if flown there). Default: loaded point. Camera start. src/Meitou.Rendering/WorldFrame.cs:316
--fly-to number pair With --screenshot: flies there first, then takes the picture. Default: unset. Streaming test. src/Meitou.Rendering/WorldFrame.cs:317
--fly-benchmark number Offscreen circular flight of n frames, with frame-time percentiles. Default: 0 (off). Fly benchmark. src/Meitou.Rendering/WorldFrame.cs:318
--fly-radius number Radius of the benchmark circle in units. Default: 12000. Benchmark circle size. src/Meitou.Rendering/WorldFrame.cs:320
--fly-speed number Benchmark speed in units per frame. Default: 150. Benchmark speed. src/Meitou.Rendering/WorldFrame.cs:321
--fly-pipelined none Present: no GPU wait or pacing; two frames in flight. Default: off. Benchmark mode. src/Meitou.Rendering/WorldFrame.cs:322
--orbit-step number Degrees the camera orbits per frame with --screenshot. Default: 0. Upscaler motion test. src/Meitou.Rendering/WorldFrame.cs:323
--sway-step number Seconds the grass sway advances per frame with --screenshot. Default: 0. Grass motion test. src/Meitou.Rendering/WorldFrame.cs:325
--sway-start number Grass sway time at the start, in seconds. Default: 0. Grass sway start. src/Meitou.Rendering/WorldFrame.cs:326
--crowd number Number of generated characters round the start point. Default: 0 (off). Character crowd harness. src/Meitou.Rendering/WorldFrame.cs:327
--crowd-seed number Seed of the crowd. Default: 1. Crowd seed. src/Meitou.Rendering/WorldFrame.cs:328
--crowd-time number Pose time of stills, in seconds. Default: 0.35 (per --help). Crowd pose. src/Meitou.Rendering/WorldFrame.cs:329
--renderer string vulkan accepted; anything else prints that OpenGL was removed. Ignored either way. Default: n/a. Compatibility only. src/Meitou.Rendering/WorldFrame.cs:319
--view-distance number Furthest terrain drawn. Default: 450000. Terrain view distance. src/Meitou.Rendering/WorldFrame.cs:330
--fog number Distance where the haze is complete. Default: 250000. Fog distance. src/Meitou.Rendering/WorldFrame.cs:331
--material-distance number Beyond it, terrain shows the biome ground colour. Default: 30000. Terrain material distance. src/Meitou.Rendering/WorldFrame.cs:332
--terrain-error number (pixels) Terrain LOD error near the eye. Default: 16 in Meitou, 10 in Faithful. Terrain LOD error. src/Meitou.Rendering/WorldFrame.cs:333
--terrain-far-error number (pixels) Far terrain LOD error. Default: the near error (no ramp). Terrain far error. src/Meitou.Rendering/WorldFrame.cs:334
--terrain-ramp number Distance where the error starts to grow to the far error. Default: 7500. Terrain error ramp. src/Meitou.Rendering/WorldFrame.cs:335
-h, --help none Prints the usage. The game prints it and exits 2. Help. src/Meitou.Rendering/WorldFrame.cs:336

Post-processing options (also world options), src/Meitou.Rendering/PostProcessOptions.cs

These are parsed inside WorldOptions.Parse through PostOptions.TryParse (WorldFrame.cs:315). Order matters: --post replaces the earlier post options.

Flag Takes value Values Effect Source file
--post string meitou (default), kenshi (the game's chain), off. Other values are an error. Post-processing preset. src/Meitou.Rendering/PostProcessOptions.cs:72
--ssao none Present: ambient occlusion on. Default: on (off in kenshi, off). SSAO on. src/Meitou.Rendering/PostProcessOptions.cs:73
--no-ssao none Present: ambient occlusion off. SSAO off. src/Meitou.Rendering/PostProcessOptions.cs:74
--dither none Present: dithering on. Default: on. Dithering on. src/Meitou.Rendering/PostProcessOptions.cs:75
--no-dither none Present: dithering off. Dithering off. src/Meitou.Rendering/PostProcessOptions.cs:76
--fxaa none Present: the game's FXAA when no upscaler runs. Default: on. FXAA on. src/Meitou.Rendering/PostProcessOptions.cs:77
--no-fxaa none Present: FXAA off. FXAA off. src/Meitou.Rendering/PostProcessOptions.cs:78
--heat-haze number Turns heat haze on; the value (clamped to 0 or more) replaces the weather's heat haze field. Default: on, weather's value. Heat haze strength (testing). src/Meitou.Rendering/PostProcessOptions.cs:79
--no-heat-haze none Present: heat haze off. Heat haze off. src/Meitou.Rendering/PostProcessOptions.cs:80
--heat-haze-view-distance number The game's view distance setting for the haze's depth falloff; minimum 1. Default: 12000. Haze depth falloff. src/Meitou.Rendering/PostProcessOptions.cs:81
--post-debug string ao shows the occlusion (1). Other values: 0. Default: 0. Post debug view. src/Meitou.Rendering/PostProcessOptions.cs:82
--upscaler string off, taa, fsr or dlss (case-insensitive). FSR and DLSS need their libraries, else TAA (per --help). Default: taa. Temporal upscaler. src/Meitou.Rendering/PostProcessOptions.cs:83
--render-scale number or name native, quality, balanced, performance, ultra (1, 1/1.5, 1/1.7, 0.5, 1/3), or a number from 0.25 to 1. Default: 1. Render size per axis under an upscaler. src/Meitou.Rendering/PostProcessOptions.cs:88
--sharpness number (0 to 1) Sharpening of FSR and DLSS (TAA ignores it). Default: 0.3. Upscaler sharpening. src/Meitou.Rendering/PostProcessOptions.cs:89
--exposure number Linear scale of the scene. Default: 1. Exposure. src/Meitou.Rendering/PostProcessOptions.cs:90
--ssao-radius number Occluder distance in world units. Default: 12. SSAO radius. src/Meitou.Rendering/PostProcessOptions.cs:91
--ssao-strength number SSAO strength. Default: 4. SSAO strength. src/Meitou.Rendering/PostProcessOptions.cs:92
--ssao-character-strength number (0 to 1) Occlusion kept on characters' own pixels; clamped 0 to 1. Default: 0.25. Character occlusion. src/Meitou.Rendering/PostProcessOptions.cs:93

Model viewer (tools/Meitou.ModelViewer, impostor preview and bake)

Routed by tools/Meitou.ModelViewer/Program.cs:12 when --impostor-preview or --impostor-bake-all is present. Model viewer only.

Flag Takes value Values Effect Source file
--impostor-preview string Mesh name to preview. Default: unset. Preview one mesh's impostor. tools/Meitou.ModelViewer/ImpostorApp.cs:59
--impostor-bake-all none Present: bakes every mesh's atlas. Default: off. Bakes all impostor atlases. tools/Meitou.ModelViewer/ImpostorApp.cs:60
--out file Output directory. Default: C:\Temp\meitou-impostors. Where the output goes. tools/Meitou.ModelViewer/ImpostorApp.cs:61
--size string WxH. Default: 1600x900. Picture size. tools/Meitou.ModelViewer/ImpostorApp.cs:62
--rebake none Present: ignores the cached atlas and bakes again. Default: off. Forces a re-bake. tools/Meitou.ModelViewer/ImpostorApp.cs:67
--blend none Present: the preview's Blend flag is on. Default: off. Preview blend mode (what it blends: Unknown, not read). tools/Meitou.ModelViewer/ImpostorApp.cs:68
--debug number Passed to the preview's Debug value. Default: 0. Preview debug view (the numbers are Unknown, not read). tools/Meitou.ModelViewer/ImpostorApp.cs:69
--class string medium, large or small (switch at ImpostorApp.cs:216). Any other value, or unset: the class by the mesh's radius and triangles, medium if none fits. Chooses the impostor class. tools/Meitou.ModelViewer/ImpostorApp.cs:70
--renderer string vulkan accepted; ignored. Compatibility only. tools/Meitou.ModelViewer/ImpostorApp.cs:71
-h, --help none Prints usage and exits 2. Help. tools/Meitou.ModelViewer/ImpostorApp.cs:72

Model viewer entry point (tools/Meitou.ModelViewer/Program.cs)

Flag Takes value Values Effect Source file
--quit-after number Seconds before the window closes, then prints frames and fps. Stripped before the other parsers run. Default: no limit. Unattended smoke test. tools/Meitou.ModelViewer/Program.cs:32

With no arguments the model viewer runs --world --town "The Hub" (tools/Meitou.ModelViewer/Program.cs:10).

Tools (meitou-tools)

Subcommands such as formats, navmesh, weather and draw-log-diff are positional and are not listed. image-diff and world-map take positional arguments only.

navmesh (tools/Meitou.Tools/NavmeshTool.cs:33 to :54):

Flag Takes value Values Effect Source file
--zone number pair x,z zone integers. Default: unset. Zone to build. tools/Meitou.Tools/NavmeshTool.cs:33
--town string Town name. Default: unset. Town to build. tools/Meitou.Tools/NavmeshTool.cs:34
--obj file Output .obj path. Default: unset. Writes the mesh as an OBJ file. tools/Meitou.Tools/NavmeshTool.cs:35
--png file Output top-down .png path. Default: unset. Writes a top-down picture. tools/Meitou.Tools/NavmeshTool.cs:36
--scale number Units per pixel of the picture. Default: 4. Picture scale. tools/Meitou.Tools/NavmeshTool.cs:37
--geometry none Present: stops after the zone's geometry (writes the geometry picture). Default: off. Skips the navmesh build. tools/Meitou.Tools/NavmeshTool.cs:38
--cell number Navmesh cell size. Default: 2 (NavBuildSettings.CellSize). Cell size. tools/Meitou.Tools/NavmeshTool.cs:39
--tile number Tile size in cells. Default: 48 (NavBuildSettings.TileCells). Tile size. tools/Meitou.Tools/NavmeshTool.cs:40
--near number list x,z,radius. Lists the buildings near the point with their collision parts. Default: unset. Nearby buildings report. tools/Meitou.Tools/NavmeshTool.cs:41
--no-interiors none Present: building interiors left out of the build. Default: off. Interiors off. tools/Meitou.Tools/NavmeshTool.cs:42
--to-y number Overrides the height of the path's end point. Default: unset. Path end height. tools/Meitou.Tools/NavmeshTool.cs:43
--from-y number Overrides the height of the path's start point. Default: unset. Path start height. tools/Meitou.Tools/NavmeshTool.cs:44
--hide-pruned none Present: the picture hides pruned geometry. Default: off. Picture option. tools/Meitou.Tools/NavmeshTool.cs:45
--no-neighbour-seeds none Present: neighbouring zones do not add seeds. Default: off. Build option. tools/Meitou.Tools/NavmeshTool.cs:46
--closed none Present: doors are closed for the path query (DoorsClosed). Default: off. Door state for paths. tools/Meitou.Tools/NavmeshTool.cs:47
--watershed none Present: NavBuildSettings.Watershed on. Default: off. Build option. tools/Meitou.Tools/NavmeshTool.cs:48
--threads number Build threads (NavBuildSettings.Threads). Default: 0 (the property's initial value; what 0 means is not read). Build threads. tools/Meitou.Tools/NavmeshTool.cs:49
--around number Builds the zone and the ring of n zones around it. Default: 0. Extra zones built. tools/Meitou.Tools/NavmeshTool.cs:50
--path number list x0,z0,x1,z1: path query between the two points. Default: unset. Path query. tools/Meitou.Tools/NavmeshTool.cs:51
--repeat number Repeats the build of the centre zone (timing). Default: 1. Repeat count. tools/Meitou.Tools/NavmeshTool.cs:52
--fingerprint none Present: prints a SHA-256 of the cache files of The Hub (or --zone). Default: off. Cache fingerprint. tools/Meitou.Tools/NavmeshTool.cs:53
--box number list x0,z0,x1,z1: area of the picture. Default: the zone's bounds. Picture area. tools/Meitou.Tools/NavmeshTool.cs:54

weather (tools/Meitou.Tools/WeatherTool.cs:23 to :32):

Flag Takes value Values Effect Source file
--region string Region name. Default: unset. Region to print. tools/Meitou.Tools/WeatherTool.cs:23
--at number pair x,z world position, finds the region. Default: unset. Region by position. tools/Meitou.Tools/WeatherTool.cs:24
--days two numbers Two separate integer arguments d0 d1. Default: 0 to 100. Day range. tools/Meitou.Tools/WeatherTool.cs:28
--seed number Scheduler seed. Default: 1. Random seed. tools/Meitou.Tools/WeatherTool.cs:29
--list none Present: lists regions and calendars. Default: off. Region list. tools/Meitou.Tools/WeatherTool.cs:30
--extents none Present: region extents. Default: off. Extents report. tools/Meitou.Tools/WeatherTool.cs:31
--cells none Present: cell list. Default: off. Cells report. tools/Meitou.Tools/WeatherTool.cs:32

draw-log-diff (tools/Meitou.Tools/Program.cs:24):

Flag Takes value Values Effect Source file
--keep-handles none Present: Vulkan handles are not renamed by first use when comparing two draw logs. Default: off. Comparison option. tools/Meitou.Tools/Program.cs:24

Notes

  • --equip and --shape appear only in error text in src/Meitou.Data/Characters/CharacterAppearance.cs and CharacterShape.cs. No parser for them exists at this commit, so they are not listed as flags.
  • --crowd, --crowd-seed, --crowd-time are parsed by WorldFrame.cs. The --help text gives the crowd-time default as 0.35, and the code field is null, so the default is taken from --help.
  • Defaults that differ between the code and the --help text: --water-reflection (code 4, help 2), --reflection-range (code 3, help 0.6), --texture-quality (code 0, help 1). The code values are listed.
  • Unknown cells (not read in code, or not traced to an effect):
    • MEITOU_PASS_TAG: exactly where the tag is printed.
    • MEITOU_STREAM_LOG: what the foliage, object and texture streaming logs print.
    • meitou-tools navmesh --threads: what the value 0 means (NavBuildSettings.Threads).
    • meitou-viewer --impostor-preview --blend and --debug: what the preview's Blend and Debug values show (ImpostorPreview not read).