Repository navigation
Releases: Rethunk-Tech/mortar
Release list
v0.4.0
New
- Develop's Release uploads to Nexus Mods and CurseForge as well as Thunderstore
- Develop can adopt any folder as a project, and a project's content is a grid of tiles (suits, sounds, posters and more) that also picks its Thunderstore categories
- Build all builds every code project in the profile at once, each after the projects it depends on
- Game code: right-click a name for Go to definition, Find usages, or a HookGen, MonoMod or Harmony hook to copy for a method; Side by side links each C# line to its IL
- In the Console, the methods in an error's stack trace open Game code, with arrows to step through the trace (needs a code project in Develop)
- Config reads a plugin's settings from its DLL: defaults and new settings show right after a rebuild, and a mod that has never run has settings to edit
- A setting the host shares shows a crown when the host enforces it and a thumbs-up when the host only recommends it
- Config has the Mods page's Group by
- F5 on Browse refreshes its listings
- Alt+Right goes forward, beside Alt+Left back
- Gale sync links open in Mortar
Changed
- Settings merges Source health into Accounts, one block per service, and a setting a profile changed shows a dot and a reset button
- The tab header no longer repeats the profile name the title bar shows
- A mod that needs a newer SMAPI is listed as a problem, and a requirement whose version can't be compared shows as unknown instead of blocking Play
Fixed
- A switched-off mod's settings stay listed and editable in Config, and edits made while it is off are there when it comes back on
- Problems no longer blames Mortar's bridge for an error the game threw
- Game code's Side by side shows real C# instead of "Unknown result type" on every line
- Clicking a mod in an imported profile toggles it even while text is selected
- A Thunderstore search past its refresh waits for the new listing, and a prerelease ranks below its release
- Programs started from the AppImage (git, dotnet, the browser) get your system's libraries, not the AppImage's
- A Gale or r2modman local mod keeps the version and author its manager recorded
- A folder of content files with no DLL in an extra mods folder installs as a local package
- An error that runs only through Harmony patches is blamed on the mod whose patch threw
- Switching a mod off and on again keeps its newest settings
- Mod uploads from Develop never send a site's API key on to another host
- New profile's "Start from" field and the launch preview are named for screen readers
- Restoring a removed mods folder or old files only ever restores from Mortar's own trash
- Combining a mod's files into another entry keeps its settings
The Linux AppImage and portable program need glibc 2.35 or newer (Ubuntu 22.04, Linux Mint 21, Debian 12, Fedora 36 or later); older systems use the Flatpak.
Components v2 1793466979
Signed component manifest 1793466979
Components v2 1793465501
Signed component manifest 1793465501
Components v2 1793455357
Signed component manifest 1793455357
Components v2 1793323999
Signed component manifest 1793323999
v0.3.16
New
- Import from Mod Organizer 2 can use a folder you choose, like Vortex's, and reads the base, mod and profile folders MO2 is set to
- Mortar unpacks lz4 archives, and an archive packed with a compression dictionary too large to unpack safely says so
Changed
- The config editor says why it refused a value (out of range, not a number, a colour BepInEx cannot read) and when a setting is missing from the file
- FOMOD installers list steps, groups and options in the order the mod author set
- Versions are ordered as SMAPI and BepInEx order them, so update checks agree with the game's loader
- A time more than a minute ahead shows as a date
Fixed
- BepInEx configs (Lethal Company, Risk of Rain 2) keep each line's own ending and write decimals, large numbers and enum values the plugin can read back
- MelonLoader configs are never left in a state MelonPreferences.cfg cannot parse
- Content Patcher packs for Stardew Valley are read as the game reads them: leading or trailing decimal points, empty values and UTF-32 files load, and an unclosed comment or a stray control character is reported as an error on the right line
- The Proton version shows for a game in a second Steam library
- Game art and icons also come from Steam libraries added in Settings
- On Windows: disk usage counts hard-linked files once, a scan with no antivirus provider installed says there is no scanner instead of failing, a shared profile holding a file named like a device (CON, NUL) imports with that one file skipped, and a download still being written into a watched folder waits until it finishes
- In-game performance measurement picks up loader events reliably
- GitHub and Nexus rate limits wait only as long as the site asks, the GitHub rate in Settings stays current, and a Nexus collection that stops answering fails instead of hanging
- A denied Nexus sign-in no longer tells the browser tab it succeeded
- GitHub downloads accept more archive types, a queued .tar.gz keeps its full name, and a resumed download that restarts from the beginning is saved whole
- Shared profiles and backups skip file names Windows cannot use, and keep only one of two files whose names differ only by case
- Desktop shortcuts, the nxm handler and autostart work from a folder whose path has spaces, quotes or a backslash
- In the Flatpak, saves, other managers' profiles and GOG, Lutris and Bottles games are found under a custom XDG home, and a locked keyring is asked again instead of falling back to plain text
- A Thunderstore listing, or a GitHub or SMAPI answer, refreshes after the computer's clock was set back
- Keyboard shortcuts can use the plus key, and work while a checkbox, switch or button has focus
The Linux AppImage and portable program need glibc 2.35 or newer (Ubuntu 22.04, Linux Mint 21, Debian 12, Fedora 36 or later); older systems use the Flatpak.
v0.3.15
New
- Simplified Chinese is open for translation on Weblate, and joins the language picker once part of it is translated
- Update in all profiles downloads a version you have not downloaded yet, then updates every profile that had the old one, and says which profiles it could not update
- In the Flatpak, account keys go to your desktop's keyring when the Secret portal is missing, and Settings › Accounts warns when neither is there and keys are kept unencrypted
- Add game shows each loader's own icon
Changed
- Paired computers must both run 0.3.15 to keep syncing configs and local archives: a computer now proves it holds the pairing key before Mortar sends it anything
- The command line's backups trim, history trim, data cleanup and store remove need --yes; data cleanup --preview still lists without it
- The Problems badge counts only the problems you need to fix
- Startup timing for Risk of Rain 2 runs until the main menu is ready, and shows the loading after the title screen
- A download that loses its connection tries again on its own before it fails, and a failed one says which site it could not reach
- Replace with on a deprecated mod removes the old one once its replacement installs; one Undo brings both back
- Merge offers Undo, and counts version changes as updates
- On a narrow window, Home's buttons turn into icons
- clamd scans trust only a clamd socket that root or the clamav user owns
Fixed
- Importing a Gale or r2modman profile no longer marks mods as no longer available when they ask for an old BepInExPack, depend on each other, or name BepInEx's pack another way; a mod whose dependency is gone imports without it and the profile's notes say so
- Mortar sees Risk of Rain 2 running, so its in-game performance can be measured
- Stardew Valley's per-profile game settings apply: Mortar reads and writes the file the game uses, and the window mode keeps the fullscreen settings in step
- Test launch uses the launch options shown, and cancelling the dialog no longer saves them
- The config text editor picks up a file the game rewrote, and asks before dropping unsaved edits when you switch mods
- New badges on Nexus mods stay until you have looked at the mod
- Two local archives with the same name each have their own favourite star
- Endorse and Abstain show your choice when you reopen a mod
- The Steam folders you added are searched when Mortar looks for Proton
- A file over clamd's size limit is reported as too large instead of failing the scan
- The New mod form's own fields are translated
The Linux AppImage and portable program need glibc 2.35 or newer (Ubuntu 22.04, Linux Mint 21, Debian 12, Fedora 36 or later); older systems use the Flatpak.
v0.3.14
New
Develop
- A new Develop tab for making your own mods, with grid and list views and a filter
- New mod is a step by step wizard: pick the kind of mod, name it, say what it does, choose a license and its dependencies, and Mortar makes the project from the game's template and its own development profile
- New mod picks your GitHub account from the ones you are signed in to, checks the name is free, and warns when no installed .NET SDK fits the template
- Suit and sound mods need no SDK: their project adds your files instead of building
- New mod can start the development profile with the open profile's mods
- Add an existing project folder or clone one from GitHub; a project you did not make runs nothing until you trust it
- Each project card shows the mod's icon, version, build state, when it was last built, whether its files changed since, and its git branch and unpushed work
- Build, or Build on save to rebuild as you edit; build errors read plainly
- Test starts the game with your mod, one copy for client-only mods and two or more for multiplayer, laid out in a grid on screen, with the copies meeting in one game for Lethal Company
- Test copies keep their own saves, so a test never writes your real game's saves
- Start for debugging opens the game with its debugger listening
- Release drafts what changed since the last version, then tags and publishes it, through GitHub when the project has one
- Upload to Thunderstore packs and publishes a mod with your team's token, kept in the system keyring, and can upload the latest release again after an interrupted upload
- Pack warns while a mod still carries the template's icon
- Dependencies are required or optional, added from Browse or the wizard, and changed later in Edit details
- Game code searches the game's code, shows any type as C# or IL side by side, finds where a method is used, and copies a hook for it
- Open in editor opens a project in VS Code, VSCodium or Rider, whichever is installed
- A card shows your mod's start-up time and frame cost from its last measured run, and Show log opens its own log in the Console
- Remove from list can also move the project's folder to the trash, warning first about unpushed or uncommitted work
- Mods you develop group under In development in Mods, and updates are not offered for them
- The Updated column shows when a mod in development was last built
Mods
- Disable asks about the mods that need the one you switch off and the libraries only it needed; Undo switches them all back
- A switched off mod's config is set aside and comes back when you switch it on again; removing a mod deletes its config so a re-add starts fresh
- A mod's update badge opens Update review on that mod
- A mod's menu groups its version actions and its organising actions, with Update in all profiles beside Skip
- Update review and the patch-day sweep warn about mods on the game's known-broken list
- Extra mods folders install their mods into a profile you pick per folder, and again whenever the folder changes
Browse
- Mods known to be broken are marked in Browse and import previews, with the reason and a mod to use instead, and adding one asks first
- A known-broken mod's working replacement installs in its place and counts for mods that need the original
- Preferred source can turn a source off for a game, so Browse leaves it out
- Card stats are small icons, and a possible re-upload is a warning mark with its note in the tooltip
Play
- Play can start SteamVR or the ALVR dashboard before the game, per game or per profile
- The Sims 4's DirectX 9 build counts as the game running
Config
- The config editor marks settings the host enforces or recommends through ConfigSync, and shows the host's value while you are in a game
- Save host's values keeps the host's ConfigSync values as your own once the game closes
Console
- Right-click a line to copy it or hide messages like it, from one object or from every object
- Each game's known noisy messages are hidden by default, and you can show any of them again
- The levels a game's Console opens with are ticked one by one
- Copy takes the whole line with its method and object, and right-clicking a selection copies every selected message
- Hidden messages are listed by where they come from, in a section of their own
Settings
- A game's settings page switches between every profile's values and the open profile's own, showing each override beside the game's value
- A setting another one makes moot is disabled and says what to change first
Saves
- A save's missing mods line can be dismissed until the mods it wants change
- A backup's Keep forever is its own pin button
Tray
- Recent profiles sit under a Play submenu per game
Changed
- Built on Wails 3.0
- Edit profile has tabs; a profile's overrides, loader options and startup options are edited on the game's settings page instead
- Dialogs, menus and the sidebar are regrouped and tidied, and the sidebar fits a short window without scrolling
- The Play menu's copies section is gone: Develop's Test starts linked copies, and Instances in a game's Play settings still starts several
- Touch ripples are off unless you turn them on
- Removing or switching off a mod takes its files out of the game at once instead of at the next launch
- Many screens, menus and dialogs redraw far less, and History and notifications load older entries as you ask for them
- What is new for a Mortar update shows formatted text
- In-game performance measuring shows one clear state and live results
- Notifications show the latest changes with All changes for the rest, and History draws the newest entries first
- Config sits above Mods in the sidebar, every badge on the rail wears the accent colour, and a profile's notes render as Markdown
- Load order items read Load earlier and Load later
Fixed
- A catalog fetched after Mortar starts reaches saves, Problems, the tray and the game list
- Every Browse page shows each mod once and fills the screen
- A custom download folder is safe: Mortar clears only its own finished downloads there, never your other files
- Switching games or profiles quickly no longer shows the previous one's runs, reports, versions or profiles
- Moving a folder to the trash works across drives
- A failed catalog check never falls back to a cached catalog older than the one Mortar ships with
- Nested mods sit beneath the mod that needs them even when it is in another group
- Several copies of a game each keep their own log, so their errors count
- On Linux a Steam game started directly, for several copies or a debug start, runs through Proton in Steam's prefix
- Merging profiles carries Thunderstore packages, and a merge that fails takes back what it added
- Cleanup never offers to remove a mod you develop, built or published, and no longer counts toward the Problems badge
- Profiles added, renamed or deleted from the command line, a share or sync show in the window and the tray at once
- A missing Thunderstore requirement links to its page and can be added in one click
- Duplicates found after a run open the same chooser as Problems, and each copy names where it came from
- Moving the data folder keeps profiles you moved to another folder
- The backup before Play or an update holds the profile's own saves, never another profile's
- Removing a mod keeps its settings for Undo, and a mod named BepInEx never takes the loader's own settings with it
- A damaged Nexus cache file no longer stops Mortar from starting
- FOMOD installers packed in a subfolder or naming files in another letter case install
- Heroic's GOG games are found, and so are games and Steam libraries behind a symlink
- Find the cause no longer blames a framework when one of its content packs crashes the game
- All sources sorted by downloads or by updated no longer skips mods or shows empty pages
- Play from a Steam shortcut no longer waits forever when the graphics question is due
- Bug reports and diagnostics files write your home folder as ~
- Command palette actions work from Settings and the other full pages
- The Flatpak finds r2modman and Gale profiles in their usual folders
- Find the cause asks before it starts relaunching a crashed game
- Removing a custom game, unpairing a computer and restoring over saves ask first
- A retried LAN transfer updates the profile you chose, and a sender that goes silent is retried
- Edit profile keeps what you typed when a save is refused
- Config cleanup spares a config an enabled mod still uses
- Backups reuse the newest one while your saves have not changed
- A SMAPI installer runs only when it matches the hash GitHub publishes
- Imported settings, packs and shared profiles can no longer set programs, folders, launch prefixes or turn protection off, and shared changes carry text and data files only
- Signed catalogs and lists cannot be rolled back to older ones, even after clearing the cache
- Nearby sharing checks and limits what other computers send, and your Nexus key stays out of logs
The Linux AppImage and portable program need glibc 2.35 or newer (Ubuntu 22.04, Linux Mint 21, Debian 12, Fedora 36 or later); older systems use the Flatpak.
Components v2 1793226963
Signed component manifest 1793226963
Components v2 1793184524
Signed component manifest 1793184524