Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Your first profile

This walkthrough takes you from a fresh modde install to a deployed, playable Skyrim Special Edition profile with a couple of mods, all from the command line. The commands are identical on Linux, macOS, and Windows, and every one uses the skyrim-se game id. If you use Nix and prefer the declarative home-manager workflow, see the Quick Start; this page is the imperative tour for newcomers.

By the end you will have:

  • modde installed and a Nexus key configured
  • Skyrim SE detected
  • a profile named first-run
  • two mods installed (one plain Nexus mod, one with a FOMOD installer)
  • a conflict report you understand
  • the profile deployed into the game directory
  • the game launched and a save captured into the vault

0. Before you start

modde never installs the base game. Install Skyrim Special Edition through Steam or Heroic first and launch it once so the launcher writes its files. modde will detect that install in the next step.

You also need a Nexus Mods account. Downloading mod files over CDN links requires a Nexus Premium subscription.

1. Install modde

Install modde however suits your platform — a native package manager, a direct download, Cargo, or, if you use Nix, the flake. Every channel ships both the modde CLI and the modde-ui desktop app. A few examples:

# Arch Linux (AUR)
yay -S modde-bin

# Fedora / RHEL (COPR)
sudo dnf copr enable caniko/rs-modde && sudo dnf install modde modde-ui

# Debian / Ubuntu (apt) — see Installation for the keyring setup
sudo apt install modde modde-ui

# macOS (Homebrew)
brew tap caniko/modde https://codeberg.org/caniko/homebrew-modde
brew install modde

# Windows (winget)
winget install Caniko.Modde

# Any platform with Cargo (builds the CLI from source)
cargo install modde-cli

If you use Nix, modde is also a flake — nix run codeberg:caniko/rs-modde -- detect to try it without installing, or nix profile install codeberg:caniko/rs-modde to add both binaries to your profile. The home-manager module additionally lets you declare your profiles as code.

See Installation for the full channel list, the exact commands, the macOS Gatekeeper quarantine-clear step, the Windows Authenticode signature check, and release verification. From here on, the walkthrough assumes modde is on your PATH.

2. Configure Nexus authentication

Save your Nexus API key to the system keyring once:

modde nexus auth

This prompts for your key and stores it securely in your OS keyring (the secret-service on Linux, Keychain on macOS, the Credential Manager on Windows). Confirm it worked — and check whether you have Premium — with:

modde nexus status

If you manage secrets declaratively, set nexus.apiKeyFile in home-manager instead. The full credential precedence (OAuth token, key file, env var, keyring, …) is documented in the Nexus Mods guide.

3. Detect your game

modde detect

modde scans Steam and Heroic (GOG, Epic, Sideload) and prints every game it found with its id and install path. You should see a row for Skyrim Special Edition with the id skyrim-se. Copy that id; you will pass it as --game to nearly every command.

If Skyrim does not appear, make sure it is installed and has been launched once. You can still proceed by passing paths explicitly, or register a custom game with modde game add (see Supported games).

4. Create a profile

A profile is a named, per-game collection of mods with its own load order, save assignments, and deployment state. Create one:

modde profile create first-run --game skyrim-se

Confirm it exists and see which profile is active:

modde profile list --game skyrim-se
modde profile active --game skyrim-se

Profiles are cheap. Later you can fork first-run to experiment without risking your working setup — see Profile management.

5. Add your first mod (a plain Nexus mod)

Install a single mod straight from its Nexus page URL into the profile. modde fetches the file list, picks the latest main file, downloads it over CDN (Premium required), extracts it, and adds it to the profile:

modde install mod \
  https://www.nexusmods.com/skyrimspecialedition/mods/12345 \
  --profile first-run

Replace 12345 with the real mod id from the URL of the mod you want. A SkyUI- or USSEP-style utility mod is a good, low-risk first pick.

6. Add a second mod (one with a FOMOD installer)

Many larger Skyrim mods ship a FOMOD installer that asks questions (texture resolution, compatibility patches, optional features). modde detects fomod/ModuleConfig.xml automatically. For a reproducible, non-interactive install you can record your answers in a config file first.

Inspect what a mod offers without installing it:

modde fomod inspect /path/to/extracted-mod

Generate a choices template, edit it, then install with it applied:

modde fomod generate /path/to/extracted-mod --format toml > my-choices.toml
# edit my-choices.toml to pick the options you want

modde install mod \
  https://www.nexusmods.com/skyrimspecialedition/mods/67890 \
  --profile first-run \
  --fomod-config my-choices.toml

Your selections are saved to the profile and replayed on future deployments, so the result is deterministic. The FOMOD guide covers generating, inspecting, and applying configs in depth.

7. Analyze conflicts

Two mods that both ship the same file will collide; only one can win. modde resolves collisions by load order priority — the mod later in the list wins. Before deploying, see what overlaps:

modde collisions --profile first-run

The report groups conflicts by severity:

LevelMeaning
CriticalWill cause game issues
MajorLikely visible problems
CosmeticMinor visual differences

By default cosmetic conflicts are hidden; add --all to see them. To get ready-to-run commands that hide files which never win anyway:

modde collisions --profile first-run --all --suggest-hides

For a broader health check (missing masters, Form 43 plugins, and more), run:

modde diagnostics --game skyrim-se --profile first-run

For Bethesda games you can also sort plugin order with the LOOT masterlist (modde loot sort --game skyrim-se). Conflict resolution, per-file hiding, and plugin load order are all covered in the Conflicts & load order guide.

8. Deploy

Now build the symlink farm and link it into the game directory:

modde deploy --profile first-run --game skyrim-se

Deployment is non-destructive: it never edits your original game files, stages everything under ~/.local/share/modde/staging/first-run/, and keeps the previous deployment in staging.bak/ so you can modde rollback at any time. Check that deployed files match their sources with:

modde verify --profile first-run

What each phase does — Build, Materialize, Deploy — is detailed in the Deployment & VFS guide.

9. Play

Launch the modded game. modde play switches to the profile (swapping saves), deploys, launches through the detected launcher, and auto-captures saves when the game exits:

modde play first-run --game skyrim-se

A note on launchers:

  • Heroic / direct launch — modde waits for the game to exit, then captures saves automatically.
  • Steam launch — Steam returns immediately, so modde hands save capture to its launch wrapper. If a save is not captured, run capture manually (next step).

Skip steps with --no-switch, --no-deploy, or --no-capture. See Playing a game.

10. Capture a save

modde keeps a git-backed save vault per game, with one branch per profile and a mod fingerprint embedded in each snapshot. After modde play exits, your save should already be captured. To capture explicitly at any point:

modde save capture --game skyrim-se --profile first-run -m "first run, level 5"

If you launched through Steam and the wrapper has not captured yet:

modde save auto-capture --game skyrim-se

Browse the history and restore an earlier snapshot when you want:

modde save history --game skyrim-se --profile first-run
modde save restore <commit-id> --game skyrim-se --profile first-run

If you already had saves before setting up modde, adopt them once with modde save adopt --game skyrim-se --profile first-run so the first profile switch handles them cleanly. Fingerprinting, watching, and assignments are covered in Save management.

Where to go next

You now have a complete, reproducible modded profile. Branch out from here:

  • Profile management — fork first-run, lock load order, and use the experiment stack to try changes non-destructively
  • Wabbajack modlists — install a full .wabbajack list instead of hand-picking mods
  • Nexus Mods — Collections, the nxm:// handler, and update checks
  • Conflicts & load order — deeper conflict resolution and Bethesda plugin sorting
  • Tools & overlays — MangoHud, ReShade, OptiScaler, Proton settings, and running xEdit/BodySlide with overwrite capture
  • Save management — fingerprinting, watching, and restore

See also