Skip to content
Greenmote

GreenmoteChangelog

Changelog

Every release of Greenmote, newest first. A release marked unreleased is declared in mod.toml and published when its tag is pushed.

Development build

rebuilt from the default branch

  1. 0.4.1-dev.0development2026-09-30

    Whatever is on the default branch right now. It may be ahead of the last release, and it may be broken.

    greenmote-Windows-X64.zip 4.88 MB · Windows
    Verify · sha256 8e0c5419f09e…83df24b4
    Release
    0.4.1-dev.0 (development)
    Size
    5120405 bytes
    SHA-256
    8e0c5419f09e82998bb606a03bef101f821358b0c10b6771d3c9eefc83df24b4
    Commit
    8bf8743953ec
    Sources
    1

    Check it yourself: sha256sum greenmote-Windows-X64.zip must print the digest above.

    greenmote-macOS-ARM64.zip 5.06 MB · macOS, Apple silicon
    Verify · sha256 f2c9d07301f1…e4d66d4a
    Release
    0.4.1-dev.0 (development)
    Size
    5301690 bytes
    SHA-256
    f2c9d07301f1234f10534b10a523c03b6518afae6b3093193c93f246e4d66d4a
    Commit
    8bf8743953ec
    Sources
    1

    Check it yourself: sha256sum greenmote-macOS-ARM64.zip must print the digest above.

    greenmote-macOS-X64.zip 5.43 MB · macOS, Intel
    Verify · sha256 1b40e182ef52…531155a5
    Release
    0.4.1-dev.0 (development)
    Size
    5692447 bytes
    SHA-256
    1b40e182ef5233c472d66d1b9900badd6fc16e76c549b66d39a82a3f531155a5
    Commit
    8bf8743953ec
    Sources
    1

    Check it yourself: sha256sum greenmote-macOS-X64.zip must print the digest above.

    greenmote-Linux-X64.zip 6.71 MB · Linux
    Verify · sha256 6b0912b4f560…b54c8308
    Release
    0.4.1-dev.0 (development)
    Size
    7033141 bytes
    SHA-256
    6b0912b4f560e56d250906f1abe5cfe06e61b0387ae5113bd15a17a7b54c8308
    Commit
    8bf8743953ec
    Sources
    1

    Check it yourself: sha256sum greenmote-Linux-X64.zip must print the digest above.

    greenmote-Android-ARM64.zip 2.28 MB · Android
    Verify · sha256 8455da164035…8c228460
    Release
    0.4.1-dev.0 (development)
    Size
    2393586 bytes
    SHA-256
    8455da164035a770ea95ab31eee555c4733744af8ebe3d050700ac098c228460
    Commit
    8bf8743953ec
    Sources
    1

    Check it yourself: sha256sum greenmote-Android-ARM64.zip must print the digest above.

    greenmote-Portmaster-ARM64.zip 2.27 MB · PortMaster
    Verify · sha256 8dde9e654a01…e6da9b9b
    Release
    0.4.1-dev.0 (development)
    Size
    2375625 bytes
    SHA-256
    8dde9e654a019104c8a0f40c924dfe212e61e9a18122d3956e6fa71de6da9b9b
    Commit
    8bf8743953ec
    Sources
    1

    Check it yourself: sha256sum greenmote-Portmaster-ARM64.zip must print the digest above.

Releases

4 declared

  1. 0.4.0 stable 2026-09-30

    Unclip leaves references alone across terrain seams and caps how far it tilts them, convert keeps the newest plugin’s references, and the GUI closes the console Windows opens for it.

    Breaking changes

    • Greenmote is licensed MIT OR Apache-2.0, at your option, instead of GPL-3.0-only. 0.2.0 and 0.3.0 stay GPL-3.0-only.

    Added

    • The GUI window has Greenmote’s crescent-moon icon.
    • --max-tilt (and max_tilt in greenmote.toml) caps how far orient tilts a reference, 45 degrees by default; a value outside 0 to 90 is a usage error.
    • The unclip report states max_tilt beside the other tolerances.

    Changed

    • Unclip keeps a reference unchanged where the terrain under its mesh is a seam between landmasses, judged on the tilted base and on the grounded origin.
    • Convert skips Verdant Bitter Coast fern trees by default.
    • Unclip refuses Greenmote’s own convert output as a target.

    Fixed

    • Convert writes one CELL record per grid, so the newest plugin’s references win in game instead of the oldest.
    • Context plugins load with their headers, so inherited references resolve to their owning plugin instead of being dropped.
    • --output-plugin writes the plugin even when unclip changes nothing.
    • An [unclip] table that only sets max_tilt or max_sink_fraction is kept.
    • Unclip no longer stops on a static whose mesh cannot be loaded, and water-delete is a water-plane crossing test again.
    • A failed command prints its error as a message, and --help describes water-delete and static-delete as they behave.
    • The Unclip tab’s Open log button opens greenmote-unclip.log.
    • Starting the GUI from Explorer or a shortcut closes the console window Windows opens for it.
    greenmote-Windows-X64.zip 4.88 MB · Windows
    Verify · sha256 87e736027bc6…b13d06e1
    Release
    0.4.0 (stable)
    Size
    5120319 bytes
    SHA-256
    87e736027bc67962c10ff4a948d9ba0c36e8b688b8a767fff5354933b13d06e1
    Commit
    b29ab0e16711
    Sources
    1

    Check it yourself: sha256sum greenmote-Windows-X64.zip must print the digest above.

    greenmote-macOS-ARM64.zip 5.06 MB · macOS, Apple silicon
    Verify · sha256 f68349ee5ed4…7ffeff45
    Release
    0.4.0 (stable)
    Size
    5301679 bytes
    SHA-256
    f68349ee5ed4b7a449511b728d7227e03047c2caf66664dd235dc8ba7ffeff45
    Commit
    b29ab0e16711
    Sources
    1

    Check it yourself: sha256sum greenmote-macOS-ARM64.zip must print the digest above.

    greenmote-macOS-X64.zip 5.43 MB · macOS, Intel
    Verify · sha256 8bf7113b2776…34f9cf8e
    Release
    0.4.0 (stable)
    Size
    5692281 bytes
    SHA-256
    8bf7113b2776a4b4f8531a273985ae7617dc09a3f325926bfad25e9734f9cf8e
    Commit
    b29ab0e16711
    Sources
    1

    Check it yourself: sha256sum greenmote-macOS-X64.zip must print the digest above.

    greenmote-Linux-X64.zip 6.71 MB · Linux
    Verify · sha256 3cfde9efea40…01656bc1
    Release
    0.4.0 (stable)
    Size
    7032974 bytes
    SHA-256
    3cfde9efea402f5cbda6e6957d7ca662498cd050d62ad6d51085dc6901656bc1
    Commit
    b29ab0e16711
    Sources
    1

    Check it yourself: sha256sum greenmote-Linux-X64.zip must print the digest above.

    greenmote-Android-ARM64.zip 2.28 MB · Android
    Verify · sha256 8e38a3127c29…a0029b0f
    Release
    0.4.0 (stable)
    Size
    2393490 bytes
    SHA-256
    8e38a3127c29b34121cd87053ee096b49af0a1afca11317d43d00c89a0029b0f
    Commit
    b29ab0e16711
    Sources
    1

    Check it yourself: sha256sum greenmote-Android-ARM64.zip must print the digest above.

    greenmote-Portmaster-ARM64.zip 2.27 MB · PortMaster
    Verify · sha256 b527e6b19ce7…c24ccf8a
    Release
    0.4.0 (stable)
    Size
    2375528 bytes
    SHA-256
    b527e6b19ce77ac20bdefbddbc66903e5347c3290e8368a2b0931a0fc24ccf8a
    Commit
    b29ab0e16711
    Sources
    1

    Check it yourself: sha256sum greenmote-Portmaster-ARM64.zip must print the digest above.

  2. 0.3.0 stable 2026-09-27

    Unclip measures every reference against the real terrain and collision triangles of your load order, and only writes when asked.

    Breaking changes

    • Unclip is a dry run by default again: --write rewrites the plugin in place, keeping <plugin>.greenmote-original and <plugin>.bak, and --output-plugin writes the rewritten plugin elsewhere. --dry-run, --instances, --meshgenerator-ini, --origin-epsilon and the all and none actions are gone; --write-actions is now --actions, and the old name still works.
    • float_tolerance, max_sink, max_sink_fraction and sink replace origin_epsilon.

    Added

    • Every reference is measured directly: its mesh’s base against OpenMW’s triangle-split terrain, the texture OpenMW draws under it, the water plane, and the collision triangles of the statics around it. A reference inside a closed rock is recognised by ray parity.
    • Burial is judged against plant height: the limit is the larger of max_sink units and max_sink_fraction of the mesh.
    • A plugin outside every data folder brings its mod’s meshes folder into the VFS, so a downloaded grass mod can be checked before it is enabled.
    • References placed outside their own cell are deleted: OpenMW draws them only from far away.
    • --verbose writes one line per reference to greenmote-unclip.log; --structured prints the report as JSON; GREENMOTE_PROFILE=1 prints phase timings.
    • The Unclip tab lists every groundcover= plugin in openmw.cfg with a checkbox and fixes the checked ones.

    Changed

    • Every write is reloaded and checked against the plan, and unclip run again on its own output plans nothing.
    • Context plugins and occluder meshes load in parallel, and every reference is decided in parallel.
    • openmw-config 2.0, vfstool_lib 0.10 and rapier3d 0.36.

    Fixed

    • Reference rotations compose as OpenMW composes them; references rotated about more than one axis were measured with the order reversed.
    • A static moved or deleted by a later plugin no longer leaves a copy behind to clip against.
    • Dependencies updated past a compile-time security advisory.

    Migration

    Unclip no longer writes unless you pass --write. Replace --dry-run with nothing, and --write-actions with --actions. In greenmote.toml, remove [unclip] keys the report warns about; the Settings tab drops them when it saves.

    greenmote-Windows-X64.zip 4.81 MB · Windows
    Verify · sha256 a9b33d1ba06c…c37daa9d
    Release
    0.3.0 (stable)
    Size
    5046919 bytes
    SHA-256
    a9b33d1ba06c53586a70ef6432bf3321c44371f7c5657900d2b57914c37daa9d
    Commit
    d11f51e56bce
    Sources
    1

    Check it yourself: sha256sum greenmote-Windows-X64.zip must print the digest above.

    greenmote-macOS-ARM64.zip 5.00 MB · macOS, Apple silicon
    Verify · sha256 a40518987c5b…1e7486b0
    Release
    0.3.0 (stable)
    Size
    5241822 bytes
    SHA-256
    a40518987c5b1070c1b9bf0de0cfabcc4eda32e7610a6e6b2d3c15381e7486b0
    Commit
    d11f51e56bce
    Sources
    1

    Check it yourself: sha256sum greenmote-macOS-ARM64.zip must print the digest above.

    greenmote-macOS-X64.zip 5.37 MB · macOS, Intel
    Verify · sha256 348600a9ae54…78882a86
    Release
    0.3.0 (stable)
    Size
    5629557 bytes
    SHA-256
    348600a9ae54e5c9d5af78d171a971951b485cfdfc4d4f225e89c8e178882a86
    Commit
    d11f51e56bce
    Sources
    1

    Check it yourself: sha256sum greenmote-macOS-X64.zip must print the digest above.

    greenmote-Linux-X64.zip 6.64 MB · Linux
    Verify · sha256 0bdcbab65c38…1827d710
    Release
    0.3.0 (stable)
    Size
    6958100 bytes
    SHA-256
    0bdcbab65c3803bff0b3baf5532843f436686817fab2610bbec90dd01827d710
    Commit
    d11f51e56bce
    Sources
    1

    Check it yourself: sha256sum greenmote-Linux-X64.zip must print the digest above.

    greenmote-Android-ARM64.zip 2.29 MB · Android
    Verify · sha256 c6d2a6bc603d…cccf8501
    Release
    0.3.0 (stable)
    Size
    2401004 bytes
    SHA-256
    c6d2a6bc603dfd4aae894630026420353906171a7073e2a2975b9859cccf8501
    Commit
    d11f51e56bce
    Sources
    1

    Check it yourself: sha256sum greenmote-Android-ARM64.zip must print the digest above.

    greenmote-Portmaster-ARM64.zip 2.29 MB · PortMaster
    Verify · sha256 d8ccafbacbeb…439f09fc
    Release
    0.3.0 (stable)
    Size
    2396545 bytes
    SHA-256
    d8ccafbacbeb71eaa32a74b31a52825453a441930880ef85c86a8e54439f09fc
    Commit
    d11f51e56bce
    Sources
    1

    Check it yourself: sha256sum greenmote-Portmaster-ARM64.zip must print the digest above.

  3. 0.2.0 stable 2026-06-03

    Unclip deletes grass on roads and grass that ends up under water, the GUI has tabs and runs several plugins in turn, and Greenmote is GPL-3.0-only.

    Added

    • The water-delete and road-delete unclip actions, with configurable road texture patterns.
    • Scriptless activators are converted like statics.
    • Convert, Unclip and Settings tabs in the GUI; the Unclip tab runs a list of plugins one after another, can be cancelled, and can write each to its own output plugin.

    Changed

    • Unclip writes by default; --dry-run inspects without writing.
    • Tree-like statics no longer count as occluders by default.
    • Unknown greenmote.toml keys are ignored instead of rejected, and run-time choices are no longer saved to it.
    • Greenmote is licensed GPL-3.0-only; 0.1.0 carried no license.

    Fixed

    • Static collision follows RootCollisionNode, including hidden ones.
    • Without a discoverable openmw.cfg, the default user config is used without asking.
    • Unclip is much faster on large plugins.
    greenmote-Windows-X64.zip 4.64 MB · Windows
    Verify · sha256 940c610f0f00…3ac65d31
    Release
    0.2.0 (stable)
    Size
    4868144 bytes
    SHA-256
    940c610f0f00a2c301d3386413876728600a1831c7063308e7d9c77f3ac65d31
    Commit
    aea7a6af38f9
    Sources
    1

    Check it yourself: sha256sum greenmote-Windows-X64.zip must print the digest above.

    greenmote-macOS-ARM64.zip 4.97 MB · macOS, Apple silicon
    Verify · sha256 cea0e6fb4197…47c55be5
    Release
    0.2.0 (stable)
    Size
    5214171 bytes
    SHA-256
    cea0e6fb41976e94d136c8a1629ee63323b827470ea2c7038791166847c55be5
    Commit
    aea7a6af38f9
    Sources
    1

    Check it yourself: sha256sum greenmote-macOS-ARM64.zip must print the digest above.

    greenmote-macOS-X64.zip 5.25 MB · macOS, Intel
    Verify · sha256 72eec0871591…ac39402b
    Release
    0.2.0 (stable)
    Size
    5505999 bytes
    SHA-256
    72eec08715918a937b5103465aa390ae8bec7f1ce9307c85624c133aac39402b
    Commit
    aea7a6af38f9
    Sources
    1

    Check it yourself: sha256sum greenmote-macOS-X64.zip must print the digest above.

    greenmote-Linux-X64.zip 6.55 MB · Linux
    Verify · sha256 6333cee729c2…4a6145e8
    Release
    0.2.0 (stable)
    Size
    6868416 bytes
    SHA-256
    6333cee729c26495f96a968c1372b422287b14ecc6ddc5ca7f90a2b94a6145e8
    Commit
    aea7a6af38f9
    Sources
    1

    Check it yourself: sha256sum greenmote-Linux-X64.zip must print the digest above.

    greenmote-Android-ARM64.zip 2.50 MB · Android
    Verify · sha256 4cc1f9c8a45c…0ed89850
    Release
    0.2.0 (stable)
    Size
    2616570 bytes
    SHA-256
    4cc1f9c8a45c378da8d9e50e96e49ddaed97ebf583f1f47e783798a30ed89850
    Commit
    aea7a6af38f9
    Sources
    1

    Check it yourself: sha256sum greenmote-Android-ARM64.zip must print the digest above.

    greenmote-Portmaster-ARM64.zip 2.47 MB · PortMaster
    Verify · sha256 e2ec62860afe…f567cb79
    Release
    0.2.0 (stable)
    Size
    2585994 bytes
    SHA-256
    e2ec62860afea43163a722345e19d8aff0c3435a8ecca1b5c0d74fdef567cb79
    Commit
    aea7a6af38f9
    Sources
    1

    Check it yourself: sha256sum greenmote-Portmaster-ARM64.zip must print the digest above.

  4. 0.1.0 stable 2026-05-30

    First release: convert placed grass statics into OpenMW groundcover, and inspect groundcover for clipping, from a GUI or the command line.

    Added

    • greenmote convert: matching exterior STAT references become groundcover.omwaddon, with deleted_groundcover.omwaddon hiding the originals and the meshes copied under Meshes/grass/.
    • greenmote unclip: a groundcover plugin checked against terrain and statics, with --write for the terrain-z, static-move, static-delete and orient fixes.
    • greenmote.toml settings, OpenMW config discovery, --auto-enable, and greenmote.log.
    • A desktop GUI in English, French, German, Russian, Spanish and Swedish.
    • Shell completions and a manual page.
    greenmote-Windows-X64.zip 3.92 MB · Windows
    Verify · sha256 439c697c7984…012cfd1c
    Release
    0.1.0 (stable)
    Size
    4110639 bytes
    SHA-256
    439c697c798492d84668438c97784d1ca57738413260d584cf34cbb5012cfd1c
    Commit
    bd395e25037b
    Sources
    1

    Check it yourself: sha256sum greenmote-Windows-X64.zip must print the digest above.

    greenmote-macOS-ARM64.zip 4.25 MB · macOS, Apple silicon
    Verify · sha256 4a60a10c3c82…405d1aae
    Release
    0.1.0 (stable)
    Size
    4457293 bytes
    SHA-256
    4a60a10c3c82a0561c65d46c10e3b0c8193e060c061a5b1b29da2b91405d1aae
    Commit
    bd395e25037b
    Sources
    1

    Check it yourself: sha256sum greenmote-macOS-ARM64.zip must print the digest above.

    greenmote-macOS-X64.zip 4.44 MB · macOS, Intel
    Verify · sha256 93873016fffa…8dd6c41a
    Release
    0.1.0 (stable)
    Size
    4654491 bytes
    SHA-256
    93873016fffa2eff48289afc7fdd83e00bf2465d1f85e37df745a0e48dd6c41a
    Commit
    bd395e25037b
    Sources
    1

    Check it yourself: sha256sum greenmote-macOS-X64.zip must print the digest above.

    greenmote-Linux-X64.zip 5.71 MB · Linux
    Verify · sha256 291ec7fe87cf…7670a4a9
    Release
    0.1.0 (stable)
    Size
    5985401 bytes
    SHA-256
    291ec7fe87cf1462920d7376c0eccaf5f768c3ce3d2ea1119d0b62627670a4a9
    Commit
    bd395e25037b
    Sources
    1

    Check it yourself: sha256sum greenmote-Linux-X64.zip must print the digest above.

    greenmote-Android-ARM64.zip 2.21 MB · Android
    Verify · sha256 c8e5409a3acc…aa3cbace
    Release
    0.1.0 (stable)
    Size
    2313368 bytes
    SHA-256
    c8e5409a3acc875e27b674574be09c7cdb437bc063a8ec6d05d0ae59aa3cbace
    Commit
    bd395e25037b
    Sources
    1

    Check it yourself: sha256sum greenmote-Android-ARM64.zip must print the digest above.

    greenmote-Portmaster-ARM64.zip 2.18 MB · PortMaster
    Verify · sha256 348e2292ff5b…4d0b6de5
    Release
    0.1.0 (stable)
    Size
    2282452 bytes
    SHA-256
    348e2292ff5b54f0e28f164e32b033d99018ac4409abed4145a9e0a04d0b6de5
    Commit
    bd395e25037b
    Sources
    1

    Check it yourself: sha256sum greenmote-Portmaster-ARM64.zip must print the digest above.