This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Documentation

Hi and welcome to the NOMM documentation hub!

Here you will find pages describing NOMM’s features, helping users who want to contribute to the project, and guiding users to mod specific games.

We hope you find this information useful and remember that we always welcome feedback and PRs either on both the documentation project and the main project

1 - About NOMM

A description of NOMM’s features

Information in this section is meant to help users better understand the different features that NOMM provides

1.1 - Flatpak Security

An explanation of what makes NOMM secure and privacy-first

A short explainer on Flatpaks

From the official Flatpak website:

Flatpak is a framework for distributing desktop applications across various Linux distributions. It was created by developers with a long history of working on the Linux desktop and is run as an independent open source project.

We also have a specific paragraph on the following:

…one of Flatpak’s main goals is to increase the security of desktop systems. This is achieved by isolating applications from one another and limiting their access to the host environment.

Basically Flatpaks are designed to be isolated. The user is the one who controls what the flatpak has access to, in detail. You can control whether the Flatpak can connect to the internet, whether it can see different types of hardware connected to your computer, and which files specifically on your computer it can read or write to.

How NOMM handles isolation

NOMM was thought to request the absolute minimum rights it needs to function.

You can see the current access it requires in the latest manifest file in the repo.

But it boils down to the following:

  • Internet access
  • A few very specific paths to get the locations of your libraries (basically paths to Steam / Heroic configuration files)

…And that’s it!

Once it has found your libraries, NOMM will simply and transparently ask you to execute a command that will give it access to them!

You, the user, will decide whether or not you want NOMM to have this access.

We understand if you don’t want to share all your libraries with NOMM, so we give you the opportunity to ignore this request at startup.

1.2 - Game Platform Support

A list of features supported for each game platform

Feature Descriptions

FeatureDescription
Library auto-detectionNOMM can automatically detect libraries and games for that platform
Support for out-of-game pathsNOMM can install mods in paths outside of the game’s standard install folder (i.e. in user data)
Change launch optionsNOMM can change the game’s launch options if a mod framework requires it

Support

FeatureSteamGOG*Epic Games*
Library auto-detection
Support for out-of-game paths
Change launch options

1.3 - Modding Platform Support

A list of features supported for each modding platform

Feature Descriptions

FeatureDescription
Mod DownloadsNOMM can intercept mod downloads from that website and store them in the user’s downloads folder for that game
Collection DownloadsNOMM can download “collections” of mods from websites that support this feature
Check for updatesNOMM can check for mod updates from the website
Metadata refreshNOMM can update mod information (metadata) when refreshing from the website

Support

FeatureNexus Mods
Mod Downloads
Collection Downloads
Check for updates
Metadata refresh

2 - Game Guides

Guides created by the community to help users mod games.

Information in this section is meant to help users mod games and inform them as to what NOMM can or cannot do for each one.

Support Ratings

Each game is given a “Support Rating” similar to protonDB’s, that represents how easy it is to mod with NOMM:

IconNameDescription
goldNOMM can handle most mods (>80%) but there may still be some that are not supported, or there are some minimal actions to do outside of NOMM to support mods.
silverNOMM can handle a majority of mods (>50%), but there are a significant amount that are not supported, or there are some non-insignificant actions to do outside of NOMM to support mods.
bronzeNOMM can handle some mods (<50%) but is mainly considered as a tool for niche mod flows, or simply handling nexus downloads.

Contributors

This section is maintained by NOMM community volunteers, who have spent time working to help bring you easy to understand guides.

Can’t find your game?

If you see your game is missing from the list, please don’t hesitate to add support for it by checking otu the intructions here

List of currently supported games

2.1 - Warhammer 40,000: Darktide

A guide on how to mod Warhammer 40,000: Darktide with NOMM

Frameworks / utilities supported

NameDescription
Darktide Mod Loader (Linux version)The Darktide Mod loader is installable via NOMM and fully working.

Manual actions required

The only manual action required is editing the load order added by DML. A button is available to open it in the user’s favourite text editor in the utilities tab.

Current configuration file

name: 'Warhammer 40,000: Darktide'
steam_id: 1361210
mods_path: mods/

load_order_path: mods/mod_load_order.txt

nexus_id: "warhammer40kdarktide"

essential-utilities:
  darktide-mod-loader:
    name: Darktide Mod Loader
    version: 1.5
    creator: Talon-d
    creator-link: https://github.com/talon-d
    source: "https://github.com/talon-d/darktideML-4linux/releases/download/1.5/darktideML-4linux1-5.zip"
    utility_path: ""
    enable_command: "chmod +x tools/dtkit-patch; sh handle_darktide_mods.sh --enable"

3 - Adding support for your game

A quick tutorial on how to create a yaml configuration for a game

One of the main ideas behind this project is that games are defined by easy to create config .yaml files. This means that anyone can create a simple yaml for their game and submit it to the project with little to no coding knowledge and the tool will automate the rest.

This yaml file will need to be placed in [nomm root folder]/default_game_configs

For instance, if you would want to add support for Stadew Valley, you would create a [nomm root folder]/default_game_configs/stardew_valley.yaml file.

Basic Information

FieldDescriptionYAML ExampleReq
nameThe full name of the game, with any symbols, spaces, and formatting kept intact.
name: "Metal Gear Solid Δ: Snake Eater"
steam_idThe Steam App ID. Can be found via SteamDB or in the game's store page URL.
steam_id: 2417610
steam_folder_nameThe exact folder name for the game inside your steamapps directory. Only required if it differs from the standard game name.
steam_folder_name: "MGSDelta"
nexus_idThe Nexus Mods game key used for downloads. Generally the game name with no symbols and all lowercase, but verify on the site first.
nexus_id: "metalgearsoliddeltasnakeeater"
gog_idThe GOG Store ID. This can be completely omitted if the game is not available on GOG.
gog_id: 1207666893
load_order_pathThe path for games with a text-editable load order. Specifying this enables a shortcut button in the app to edit the file directly.
load_order_path: mods/mod_load_order.txt

Deployment Paths

It is also required to define a mods_path to which mods should be deployed to. This can be defined in two ways:

Simple

This is the “legacy” configuration, a simple path where the mods need to be installed when they are enabled.

mods_path: "mods/"

Multiple

This is the more complex configuration, where you can add as many paths as you want. Each entry in the list is a dictionary that contains three fields:

  • the path the mods will be deployed to
  • the name that will be displayed to the user
  • the description that will help the user choose which path to select
mods_path:
- path: "{user_data_path}/drive_c/users/steamuser/AppData/Local/Larian Studios/Baldur's Gate 3/Mods"
  name: Default
  description: "Used for most mods, the in game mod manager included"
- path: "{game_path}/"
  name: Native
  description: "Used for native mods that require the Native mod loader, such as the 'Native Camera Tweaks' mod."

Essential utilities

Nomm lets you define some “essential utilities” that will be used to mod a game. Think libraries or modding tools that have their own needs in terms of installation complexity that don’t fit with other “standard” mods and generally require additional actions to get them set up.

essential-utilities: # this lets you define things such as mod loaders or essential utilities
  darktide-mod-loader: # you can have multiple ones, each one needs its own unique key
    name: Darktide Mod Loader # the name of the tool
    creator: Talon-d # the creator of the tool
    creator-link: https://github.com/talon-d # a link to the creator's page, portal, social, whatever
    whitelist: d8input.dll # a list of files that should ONLY be included (optional)
    blacklist: d7input.dll # a list of files that should NOT be included (optional)
    source: "https://github.com/talon-d/darktideML-4linux/releases/download/1.5/darktideML-4linux1-5.zip" #the actual thing we'll need to download
    utility_path: "" # where the utility needs to be extracted to
    enable_command: "sh handle_darktide_mods.sh --enable" # any command that needs to be run (from the root of the game folder) to enable the mod loader
    steam_launch_options: "babla" # any launch option that needs to be added to the game on Steam

Full example

Here is a functioning example for the game Warhammer 40,000: Darktide:

name: "Warhammer 40,000: Darktide"
steam_id: 1361210
mods_path: "mods/"

load_order_path: "mods/mod_load_order.txt"

nexus_id: "warhammer40kdarktide"

essential-utilities:
  darktide-mod-loader:
    name: "Darktide Mod Loader"
    version: 1.5
    creator: "Talon-d"
    creator-link: https://github.com/talon-d
    source: "https://github.com/talon-d/darktideML-4linux/releases/download/1.5/darktideML-4linux1-5.zip"
    utility_path: ""
    enable_command: "chmod +x tools/dtkit-patch; sh handle_darktide_mods.sh --enable"

You can find more examples directly in the repo here.