satisfactorymodding / SatisfactoryModManager

A mod manager for easy installation of mods and modloader for Satisfactory

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Satisfactory Mod Manager

Mod manager for Satisfactory. Handles all the steps of installing mods for you.

Implemented in Wails.

Installation and Usage

Check the modding documentation for installation and usage instructions.

Features

  • One-click install of any mod
  • Automatically downloads the dependencies of any mod
  • Mod update notifications
  • Mod profiles and sharing of them
  • View the mod description in the app

Reporting issues

If you have any questions or run into issues, you can ask in the Satisfactory Modding discord for quicker responses than the GitHub issues. If there is any error message, please include it along with the generated debug info zip.

Troubleshooting

Check the modding documentation for common issues and their solutions.

  • Profile and installation records are located in %APPDATA%\ficsit\
  • Downloads are cached in %LOCALAPPDATA%\ficsit\downloadCache\
  • Logs are stored in %LOCALAPPDATA%\SatisfactoryModManager\logs

Development

Dependencies

  • Go 1.22
  • pnpm
  • nodejs
  • Wails (go install github.com/wailsapp/wails/v2/cmd/wails@latest)
  • IDE of Choice. Goland or VSCode suggested.

Configuration

If you want to point to the SMR staging API instead of production, edit:

  • main.go to set api-base to the staging api (https://api.ficsit.dev)
  • frontend\.graphqlrc to set schema to the staging api (https://api.ficsit.dev/v2/query)
  • frontend\codegen.yml to set schema to the staging api (https://api.ficsit.dev/v2/query)

Development Server

The development server will hot reload whenever you make changes to the Go or Typescript code.

wails dev

Upon successful launch of the development server, the application will open automatically. The command line output will also include a localhost URL you can visit in your browser if you wish to utilize browser developer tools for debugging.

Make sure you don't already have a copy of the application running or the command will silently fail.

Although wails dev should run these commands for you under normal circumstances, you may need to run pnpm graphql-codegen in the frontend directory to update the code generated from the SMR API, or run pnpm translations to update the translation data.

IDE Configuration

Make sure that your IDE is connecting with the frontend's installation of ESLint to get the best experience.

VSCode users, a preconfigured workspace is provided in .vscode/ that allows editing both Go and Svelte files while maintaining correct ESLint functionality.

Building

wails build

Linting

Install golangci-lint via the directions here, but make sure to install the version specified in .github/workflows/push.yaml instead of whatever it suggests.

Then, to run it, use:

golangci-lint run --fix

You may also need to manually run the frontend linter. First, navigate to the frontend directory, then run:

pnpm run format

Localization

If you'd like to help translate and localize SMM to different languages, join our discord server.

SMM handles localization through the Tolgee Svelte integration. This allows for in-context translation - simply alt-click on a translatable element to open the Tolgee interface.

In order to edit translations in-context, you will need to provide a tolgee API key with edit permissions. You can create an API key for yourself here once you're added to the project. To supply this API key at development time, create or edit /frontend/.env.local and supply the key in a similar format as .env.

The in-context translation screenshot feature requires installing the Tolgee Tools browser extension. After running wails dev, open http://localhost:34115/ in your browser of choice to access the application.

About

A mod manager for easy installation of mods and modloader for Satisfactory

License:GNU General Public License v3.0


Languages

Language:Svelte 41.5%Language:Go 40.9%Language:TypeScript 11.8%Language:NSIS 2.7%Language:JavaScript 1.1%Language:Objective-C 0.8%Language:CSS 0.8%Language:Shell 0.4%Language:HTML 0.1%