{"id":49591479,"url":"https://github.com/mohamedserhan/sts2-mod-manager","last_synced_at":"2026-06-14T05:01:22.047Z","repository":{"id":355504064,"uuid":"1228331858","full_name":"MohamedSerhan/sts2-mod-manager","owner":"MohamedSerhan","description":"A free, open-source mod manager for Slay the Spire 2 — install mods, manage profiles, and share modpacks with one click.","archived":false,"fork":false,"pushed_at":"2026-06-13T06:14:06.000Z","size":21831,"stargazers_count":11,"open_issues_count":5,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-13T06:22:10.086Z","etag":null,"topics":["gaming","linux","macos","mod-loader","mod-manager","mods","react","rust","slay-the-spire","slay-the-spire-2","sts2","tauri","windows"],"latest_commit_sha":null,"homepage":"https://mohamedserhan.github.io/sts2-mod-manager/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MohamedSerhan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-03T22:25:57.000Z","updated_at":"2026-06-13T06:05:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/MohamedSerhan/sts2-mod-manager","commit_stats":null,"previous_names":["mohamedserhan/sts2-mod-manager"],"tags_count":80,"template":false,"template_full_name":null,"purl":"pkg:github/MohamedSerhan/sts2-mod-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MohamedSerhan%2Fsts2-mod-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MohamedSerhan%2Fsts2-mod-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MohamedSerhan%2Fsts2-mod-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MohamedSerhan%2Fsts2-mod-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MohamedSerhan","download_url":"https://codeload.github.com/MohamedSerhan/sts2-mod-manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MohamedSerhan%2Fsts2-mod-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34309655,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gaming","linux","macos","mod-loader","mod-manager","mods","react","rust","slay-the-spire","slay-the-spire-2","sts2","tauri","windows"],"created_at":"2026-05-04T01:04:58.908Z","updated_at":"2026-06-14T05:01:22.032Z","avatar_url":"https://github.com/MohamedSerhan.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"public/icon.png?v=2\" alt=\"STS2 Mod Manager\" width=\"128\" height=\"128\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eSTS2 Mod Manager\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  A cross-platform mod manager for \u003cstrong\u003eSlay the Spire 2\u003c/strong\u003e.\u003cbr/\u003e\n  Built around playing your friends' modpacks — share via code or one-click link.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Windows-0078D6?logo=windows\u0026logoColor=white\" alt=\"Windows\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/macOS-000000?logo=apple\u0026logoColor=white\" alt=\"macOS\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Linux-FCC624?logo=linux\u0026logoColor=black\" alt=\"Linux\" /\u003e\n  \u003cimg src=\"https://github.com/MohamedSerhan/sts2-mod-manager/actions/workflows/build.yml/badge.svg\" alt=\"Build\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/MohamedSerhan/sts2-mod-manager/releases/latest\"\u003e\u003cstrong\u003eDownload latest →\u003c/strong\u003e\u003c/a\u003e\n  ·\n  \u003ca href=\"https://mohamedserhan.github.io/sts2-mod-manager/\"\u003eWebsite\u003c/a\u003e\n  ·\n  \u003ca href=\"https://github.com/MohamedSerhan/sts2-mod-manager/issues\"\u003eReport a bug\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/screenshots/hero-home.png?v=1\" alt=\"STS2 Mod Manager Home view — active modpack hero with Launch and a share-code chip\" width=\"900\" /\u003e\n\u003c/p\u003e\n\n---\n\n## Why this one\n\nThis mod manager has a social focus — built around sharing modpacks and\nplaying the same builds as your friends. The bits that don't usually\nexist elsewhere:\n\n- **Share by code or one-click link.** Friend pastes you\n  `jess/AA5A-315D-61AE`, or clicks `sts2mm://import/jess/AA5A-315D-61AE`.\n  Either way the app installs the pack — bundled mods and GitHub releases\n  pull automatically; any Nexus-only mods the curator didn't bundle show\n  up as pending so you know what to grab from Nexus. Re-shares reuse the\n  same code so followers see \"update available\" instead of having to\n  follow a new one.\n- **Smart import.** Click a friend's link and the app figures out what to\n  do: brand-new pack → confirm + install; you already have it but it's\n  not active → \"Switch to *X*?\"; an update is pending → \"Apply update?\";\n  already on the latest → friendly \"you're already on this\" toast.\n- **Game-version aware Repair.** When a mod's latest release needs a\n  newer Slay the Spire 2 build than yours, Repair walks back through\n  the mod's release history and installs the newest version that's\n  *actually compatible* with your game. No more \"the manager says it's\n  installed but the game won't load it.\"\n- **Drift detection.** If your installed mods diverge from the active\n  profile (you toggled something, an update reshaped a mod), the app\n  flags it with a one-click Repair that re-applies the manifest.\n- **Pin locks both version and on/off state.** Most managers only pin\n  versions; a curator's modpack update can still toggle your pinned\n  mods. This one prevents that.\n- **No account, no telemetry.** Open source, MIT, ships standalone.\n  Network calls go to GitHub releases and (optionally) the Nexus API. The\n  only other outbound traffic is opt-in: if you hit **Report a bug**, a\n  redacted diagnostic report (tokens, file paths, and your username stripped)\n  is uploaded so it can be linked in a GitHub issue — nothing leaves the app\n  unless you choose to send it.\n\n---\n\n## Status\n\n**Feature-complete and usable for daily play.** Designed to keep working through\nthe Slay the Spire 2 1.0 launch and beyond without needing a manager update —\nthe game-version, mod-source, and share pipelines all read what the game and\nmods ship today rather than baking in current values. PRs welcome; the codebase\nis small enough that most additions are straightforward.\n\nIf you hit a bug, the **Home footer → Report a bug** button builds a redacted\nreport (recent logs, mod list, active modpack + load order, app and game\nversion) and opens a prefilled GitHub issue. On official release builds the\nfull report is uploaded and linked automatically — no token, nothing\ntruncated; otherwise the full report is copied to your clipboard to paste in.\n\n---\n\n## Features\n\n### Modpacks \u0026 sharing\n- **Import by code or link.** Paste a friend's `username/CODE` into the\n  **Modpacks** page, or click their `sts2mm://import/...` link. Bundled mods +\n  GitHub releases pull automatically; un-bundled Nexus mods surface as pending.\n- **Smart import.** A code or link routes to the right action — install a new\n  pack, switch to one you already have, apply a pending update, or just a\n  \"you're up to date\" toast.\n- **Same-code re-share.** Re-publishing a profile reuses the same share code —\n  followers see \"update available\" instead of having to follow a new code.\n- **Modpack switcher.** Top-bar modpack chip → popover with every pack;\n  one click to activate.\n- **Drift detection.** If your mods on disk diverge from the active profile's\n  manifest, you get a banner with a one-click Repair (re-applies the manifest).\n\n\u003e **Your `sts2mm-profiles` repo on GitHub stays public.** The manager\n\u003e creates it that way and your share codes only work for friends\n\u003e because the manifest is publicly fetchable. Don't flip it to private\n\u003e on GitHub — your friends will get \"Profile not found\" when they try\n\u003e to install your code.\n\n\u003e **If you never publish a pack, no repo is created.** The\n\u003e `sts2mm-profiles` repo only appears on your GitHub the first time\n\u003e you hit Share. Solo users who only consume friends' packs never\n\u003e have anything written to their account.\n\n### About modpack sharing\n\nShare / Re-share uploads your pack to a public `\u003cyour-username\u003e/sts2mm-profiles`\nrepo the manager creates on first share (via your GitHub OAuth login). It lives\non **your** account — nothing is hosted centrally, and no list of who's sharing\nwhat is kept anywhere.\n\n- **Remove a pack later:** delete its `.json` from your `sts2mm-profiles` repo,\n  or delete the whole repo on GitHub.\n- **Visibility:** the publish dialog offers Friends only (default — code-only)\n  or Public (also listed in Browse Modpacks); switch anytime.\n- **Sharing others' mods:** a glance at the mod's permissions page is good\n  practice — a few authors mark mods \"do not redistribute.\" The manager won't\n  check for you.\n- **Mod authors:** to request removal of a share, open an issue on the curator's\n  `https://github.com/\u003cowner\u003e/sts2mm-profiles` repo or use GitHub's\n  [DMCA process](https://github.com/contact/dmca) — the manager project can't\n  act on content in other users' repos.\n\n### Languages\n\n- **English**, **Simplified Chinese (简体中文)**, **Russian (Русский)** and\n  **Arabic (العربية)** are bundled — Arabic lays the UI out right-to-left.\n- The picker lives in **Settings → General → Language** and the onboarding\n  header. `Auto` follows your system locale (`zh-*` routes to Simplified\n  Chinese until a Traditional translation exists).\n- **The maintainer doesn't read most of these languages**, so accuracy depends\n  on community contributors; non-English users get a What's New notice pointing\n  at the translation tracker on each update. Spotted a mistake? Open an issue\n  with the [`translation` label](https://github.com/MohamedSerhan/sts2-mod-manager/issues/new?labels=translation)\n  or PR `src/i18n/locales/\u003ccode\u003e.json`. New languages welcome — see\n  [Translations](#translations).\n\n### Mods\n- **Toggle on/off** per-mod with instant effect.\n- **Auto-updates.** \"Update all\" pulls fresh GitHub releases; pinned mods\n  are skipped so a known-good version survives modpack updates.\n- **Pin** locks both the version *and* the on/off state — pinned mods don't\n  auto-update and modpack updates can't toggle them. Useful when a mod\n  works perfectly at v1 and you want it to stay that way regardless of what\n  the curator pushes.\n- **Source linking.** Link a mod to its GitHub repo or Nexus page. GitHub\n  links join the auto-update flow (\"Update all\"); Nexus links surface updates\n  in the audit so you know to re-download from Nexus. Auto-detect button\n  scans filenames against known sources.\n- **Drag and drop** any `.zip` onto the window to install a mod.\n- **Quick Add by URL** for one-off installs from a GitHub or Nexus URL.\n\n### Browse Mods\n- **GitHub search.** Full text search of GitHub repos with a Slay the Spire 2\n  topic.\n- **Nexus trending / latest.** Browse what's hot on Nexus directly inside the\n  app (requires a free Nexus API key — Settings → Accounts). Nexus's free API\n  doesn't expose general text search, so this surface is Trending and Latest\n  Added only.\n- **One-click install for GitHub cards.** Nexus cards open the mod's Files\n  page in your browser — see the Nexus note below.\n- **Browse Modpacks.** The **Browse** tab on the Modpacks page shows public\n  modpacks people have opted into listing. Each pack is one click to install\n  (same smart-import flow as paste-a-code). Your own packs default to\n  unlisted — when you Share or Re-share, the Publish dialog has a\n  Visibility option — Friends only (default) or Public. You can flip\n  it anytime from the Publish dialog.\n\n\u003e **Nexus integration is free-tier only.** Installing a Nexus mod (via Quick\n\u003e Add or Browse Mods) opens the mod's Files page in your browser — click\n\u003e Nexus's **Slow Download** / **Manual** button (the free one) and the app's\n\u003e downloads-folder watcher picks up the saved zip and installs it. The **Mod\n\u003e Manager Download** (`nxm://`) button isn't wired in, and Nexus Premium's\n\u003e instant-download API isn't either — so stick to Slow / Manual, and paid\n\u003e subscribers don't get faster downloads here.\n\n### Backups\n- **Auto-backup before every launch.** Keeps the last 5 by default.\n- **Backup-current-first on restore.** The restore confirm dialog ships\n  with a pre-checked \"save current as a new backup before restoring\" option,\n  so you can roll forward again if the restored state isn't what you wanted.\n\n### Audit\n- **Check for updates** scans each installed mod against its source and shows\n  up-to-date / has-update / no-compatible-release. Run it from **Mod Library**\n  for every mod, or from a modpack's detail page to check just that pack's\n  mods.\n- **Per-row pin toggle** to lock a mod at its current version even when the\n  source publishes updates.\n\n### App polish\n- **First-run onboarding** — a branched welcome asks whether you want to play\n  modpacks others made or make your own, then walks the matching path: detect\n  the game install, connect optional accounts, and pick a first modpack.\n- **Custom titlebar** with min / max / close controls.\n- **In-app log viewer** with filter chips (Info / Warn / Error / Debug),\n  free-text search, and \"Send to support\" that opens a GitHub issue prefilled\n  with the recent log tail.\n- **Keyboard shortcut.** `Ctrl/⌘ L` launches the active modpack from anywhere\n  in the app.\n- **Toasts** on every action with success / info / error severity.\n- **Confirm dialogs** for destructive actions, with optional checkbox\n  (\"backup first\") and typed-phrase confirmation for the really scary stuff.\n- **Vanilla launch** — top-bar Vanilla button starts the game with all mods\n  temporarily disabled (auto-backup runs first so the next launch puts\n  everything back).\n- **Launch mode (Steam vs Direct).** Defaults to Steam; Settings → General →\n  Launch can switch to **Direct**, which runs the game executable itself (and\n  drops a `steam_appid.txt` so Steamworks still inits). Useful for **Family\n  Sharing borrowers** and **offline mode** — Steam still has to be running.\n  On Linux, Direct needs a native binary; Proton-only installs get a clear\n  error pointing back at Steam launch mode.\n\n---\n\n## Download\n\nGrab the latest installer for your platform from the\n[Releases page](https://github.com/MohamedSerhan/sts2-mod-manager/releases/latest):\n\n- **Windows**: `.msi` (recommended) or `.exe`\n- **macOS**: `.dmg` (universal — Intel + Apple Silicon)\n- **Linux**: `.deb`, `.rpm`, or `.AppImage`\n\nOnce installed, the app auto-updates: it checks GitHub for new releases on\nlaunch (at most once per day) and prompts you to install when one is available.\n\n## macOS: First Launch Warning\n\nThe app isn't signed with an Apple Developer certificate, so on first launch\nGatekeeper shows *\"…cannot be opened because the developer cannot be verified.\"*\nTo open it anyway:\n\n1. Try opening the app once (it'll be blocked — that's expected).\n2. **System Settings → Privacy \u0026 Security** → scroll to **Security** → click\n   **Open Anyway** next to the STS2 Mod Manager notice, then confirm with your\n   password / Touch ID.\n\nYou only need this once; in-app auto-updates afterward won't re-trigger it. If\nit still won't open, strip the quarantine flag manually:\n\n```bash\nxattr -dr com.apple.quarantine \"/Applications/STS2 Mod Manager.app\"\n```\n\n## Windows: Antivirus False Positives\n\nSome antivirus engines, including Microsoft Defender, occasionally flag the\nWindows installer as a trojan or suspicious download. This can happen whether\nyou download from GitHub/Nexus or install through the in-app updater, because\nboth paths fetch the same release asset. **These are false positives when the\ndetections are generic heuristics.** The installer is built in public by\nGitHub Actions from this repository's source — every release links the exact\ncommit it was built from, and you can compare any release on\n[VirusTotal](https://www.virustotal.com) (typically 0–2 generic ML detections\nout of ~70 engines, no named malware family).\n\nWhy it happens: the app is not Authenticode-signed (certificates cost money\nthis free project doesn't have), and it legitimately does things heuristic\nscanners score as suspicious in *unsigned* binaries — it downloads and\nextracts mod archives, self-updates, registers the `sts2mm://` link handler,\nand checks whether the game process is running. Signed software does all of\nthe same things silently.\n\nWhat you can do:\n\n1. **Verify instead of trust**: upload the installer you downloaded to\n   [VirusTotal](https://www.virustotal.com) and check that the few engines\n   flagging it report only generic heuristics (\"ML\", \"Gen\", \"Heur\"), not a\n   named family.\n2. **Report the false positive** — this actually helps every other user:\n   for Microsoft Defender, open **Windows Security → Protection history**,\n   select the STS2 Mod Manager detection, and use Microsoft's false-positive\n   submission flow. Kaspersky accepts samples at\n   [opentip.kaspersky.com](https://opentip.kaspersky.com); most other vendors\n   have similar portals.\n3. **Allow-list the install folder** (`%LOCALAPPDATA%\\STS2 Mod Manager`)\n   if your AV keeps quarantining updates.\n\nIf a release is *widely* flagged with a named detection (not 1–2 generic\nhits), do not install it — report it on the\n[issue tracker](https://github.com/MohamedSerhan/sts2-mod-manager/issues)\nimmediately.\n\n## Linux Notes\n\nSome Arch-based distros (e.g. CachyOS) have a known FUSE issue with AppImages\nthat causes a blank window. If you hit this, install the **`.deb`** or\n**`.rpm`** package instead — they use the system's WebKitGTK directly and work\naround the issue.\n\n**`sts2mm://` deep links:** the `.deb`, `.rpm`, `.msi`, `.exe`, and `.dmg`\ninstallers all register the `sts2mm://` URL scheme automatically so clicking\na share link opens the app. The AppImage is a portable bundle with no install\nstep, so it tries to register the scheme at runtime on first launch. If that\nfails (sandboxed Flatpak, read-only mount, restrictive distro policy), the\nlink won't open the app — paste the code into Home instead.\n\n---\n\n## Quick start\n\n1. Install (see Download above).\n2. On first launch, the **onboarding** runs. It first asks whether you want to\n   play modpacks others made or make your own, then walks you through:\n   1. **Find Slay the Spire 2** — auto-detected from Steam, or pick the\n      install folder manually.\n   2. **Connect accounts (optional)** — paste a Nexus API key for Nexus\n      browsing; sign in to GitHub for higher API limits. You can skip both.\n   3. **Pick your first modpack** — start vanilla, follow a friend's code, or\n      import a JSON.\n3. Hit the **Launch STS2** button in the top bar. An auto-backup runs first.\n\nThat's it. Day-to-day from there:\n\n- **Got a friend's code or `sts2mm://` link?** Paste the code into the\n  **Modpacks** page, or just click the link — the app routes you to the right\n  action (install, switch, sync, or \"you're already on it\").\n- **Following a pack that updated?** Home shows a **Sync** button on the active\n  pack; the **Modpacks** sidebar badges any other followed pack with an update.\n- **Publishing your own?** Open it in **Modpacks** → **Share**; you get back a\n  code plus a paste-ready Discord message with the `sts2mm://` link.\n- **Something broke?** Settings → Backups → **Restore** the most recent.\n\n---\n\n## Building from Source\n\nRequires Rust (stable), Node.js 22+, and the\n[Tauri 2 prerequisites](https://v2.tauri.app/start/prerequisites/) for your\nplatform.\n\n```bash\ngit clone https://github.com/MohamedSerhan/sts2-mod-manager\ncd sts2-mod-manager\nnpm install\nnpm run tauri dev    # development with HMR\nnpm run tauri build  # production bundle in src-tauri/target/release/bundle\n```\n\nThe Rust backend lives in `src-tauri/`, the React frontend in `src/`. All\nTauri commands are registered in [src-tauri/src/lib.rs](src-tauri/src/lib.rs)\nand exposed to TS via [src/hooks/useTauri.ts](src/hooks/useTauri.ts).\n\n### Project layout\n\n```\nsrc/\n  App.tsx                 # chrome (titlebar, sidebar, top bar, banners)\n  views/                  # Home / Profiles (Modpacks) / Mods (Mod Library) /\n                          #   Browse / BrowseModpacks / Settings / Help\n  components/             # shared UI — dialogs, modals, tables, onboarding, …\n  contexts/               # ToastContext, AppContext\n  hooks/useTauri.ts       # all Tauri command bindings (one place)\n  i18n/                   # i18next init + locale routing;\n                          # locales/{en,zh-Hans,ru,ar}.json (parity-tested vs en)\n  styles.css              # all theme tokens + utility classes (gf-*)\nsrc-tauri/\n  src/                    # Rust backend (game.rs, mods/, sharing/, backup.rs,\n                          # download.rs, updater.rs, etc.)\n  tauri.conf.json         # window config, bundle settings, updater config\n.github/workflows/        # CI + release (ci.yml, build.yml)\n```\n\n---\n\n## Contributing\n\nForks and PRs welcome — the codebase is small, so most additions are\nstraightforward. The Rust backend lives in `src-tauri/`, the React frontend in\n`src/`. Wanted features (dependency auto-install + a dependency-tree view,\nconflict detection, per-mod update progress) are tracked in the\n[issues](https://github.com/MohamedSerhan/sts2-mod-manager/issues).\n\n### Adding or changing user-visible strings\n\nEvery user-facing string lives in `src/i18n/locales/*.json`, and all locales\nmust stay key-for-key in sync with `en.json`. Add the English value, reference\nit with `t('your.key')` / `\u003cTrans\u003e` (never hardcode prose in JSX, toasts,\n`title=`, `aria-label=`, or `placeholder=`), and flag the PR for a human\ntranslator if you can't translate it yourself. The i18n gate (`npm run qa:i18n`)\nfails on missing keys or copied-English prose and **blocks release** — even\nemergency ones. Full rules, including for AI-assisted contributions, are in\n[`AGENTS.md`](AGENTS.md).\n\n### Translations\n\nPRs against `src/i18n/locales/*.json` are the fastest path — the maintainer\ncan't review accuracy, so PRs from native speakers merge on trust + parity-test\npass. To add a language: copy `en.json` to `\u003ccode\u003e.json` (IETF tags like `fr`,\n`ja`, `zh-Hant`), register the code in `src/i18n/language.ts` and import it in\n`src/i18n/index.ts`. Family routing (e.g. `zh-Hant` → `zh-TW/HK/MO`) extends\n`resolveOneLocale` in `language.ts`.\n\n### Credits\n\n- **Simplified Chinese translation:** initial work by\n  [@xiatinfeng](https://github.com/xiatinfeng) in PR\n  [#45](https://github.com/MohamedSerhan/sts2-mod-manager/pull/45),\n  reworked onto current `main` and extended for new strings by the\n  maintainer.\n- **Russian localization, QA \u0026 feature ideas:**\n  [@Solomag](https://github.com/Solomag) — *Chief Bug-Hunter \u0026\n  Idea-Smith.* Relentless playtesting, a steady stream of ideas that\n  shaped the manager, and the full Russian translation.\n\n---\n\n## License\n\nMIT — see [LICENSE](LICENSE). Use it, fork it, ship your own version.\n\nBuilt by [Mohamed Serhan](https://github.com/MohamedSerhan) with Tauri 2 +\nReact + Rust.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohamedserhan%2Fsts2-mod-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohamedserhan%2Fsts2-mod-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohamedserhan%2Fsts2-mod-manager/lists"}