Skip to content

Repository files navigation

RNT Launcher (Doom Mod Manager)

Go Version Wails Framework React TypeScript Tailwind CSS SQLite Buy Me A Coffee Discord

Beautifully simple. Designed from the very start to be as visually minimal and space efficient as possible. No cluttered interface. Fast and lightweight opens practically instantly, and switching is just as quick, all while having low memory and CPU usage. Fully-featured minimalism doesn't have to be a compromise. Configurable features a myriad of configurable preferences to ensure the best experience for as many people as possible. Supports all common formats.

RNT Launcher is a modern, fast, local-first cross-platform desktop application for organizing, configuring, validating, and launching Doom games and modifications.

Built with an interface-agnostic Go application core, embedded SQLite metadata database, and a high-density industrial dark desktop GUI using Wails and React.


Design Philosophy & Core Pillars

Pillar Principle Implementation in RNT Launcher
🎯 Beautifully Simple Zero clutter & spatial efficiency Minimized chrome, progressive disclosure, clean typography, and zero extraneous ads or distracting widgets.
⚑ Fast & Lightweight Instant responsiveness Opens practically instantly, switches views seamlessly, and maintains low CPU and RAM consumption ($<60\text{ MB}$).
πŸ›‘οΈ Fully-Featured Minimalism Power without compromise Multi-engine management, lump inspection, pre-flight launch validation, YAML v1 presets, and telemetry tracking.
πŸŽ›οΈ Deeply Configurable Tailored to your workflow Granular UI density (Compact vs Comfortable), mod format visibility toggles, path disclosure settings, and custom launch limits.
πŸ“¦ Universal Compatibility All common Doom formats First-class parsing, inspection, and execution support for .wad, .pk3, .pk7, .ipk3, .zip, .deh, and .bex.

Supported Formats Matrix

RNT Launcher provides complete scanning, lump inspection, duplicate detection, and launch ordering across all standard Doom package formats:

Format Extension Category Description & Capabilities
WAD / PWAD .wad Binary Lump Archive Classic Doom binary package; auto-detects IWAD vs PWAD magic, lump count, and map markers (MAP01–MAP99, E1M1–E4M9).
PK3 Archive .pk3 ZIP Mod Archive ZIP-based directory structure; inspects ZSCRIPT, DECORATE, MAPINFO, SNDINFO, TEXTURES, and GLDEFS.
PK7 / 7Z .pk7 7-Zip Archive 7-Zip compressed modern mod container with high compression ratios.
IPK3 Game .ipk3 Standalone Game Package Standalone game or total conversion package for modern source ports.
ZIP Archive .zip Compressed Package Standard ZIP archive containing binary lumps or structured mod packages.
DEH Patch .deh DeHackEd Modification Text-based engine behavior, weapon frame, sound, and text patch.
BEX Patch .bex Extended Boom DeHackEd Extended Boom-compatible DeHackEd modification patch.

Key Features

1-Click Launch Cockpit & Dashboard

  • Launch your favorite and recent profiles instantly with one click.
  • Live system status overview displaying active source ports, base IWADs, and mod counts.
  • Recent launch feed showing duration, completion status, and timestamps (configurable row limits or complete hiding).
  • Quick scan trigger with a live progressive scan banner.

Mod Library & Drag-and-Drop

  • Recursive background directory scanner for all supported formats (.wad, .pk3, .pk7, .ipk3, .zip, .deh, .bex).
  • Instant search across mod names, filenames, and absolute paths (<100ms response time).
  • Categorization and filtering by format and mod type (Gameplay, Maps, Megawads, Weapons, Monsters, Textures, Audio, UI, Utility).
  • Customizable format visibility filters to tailor library views to specific file types.
  • Seamless Drag-and-Drop ingestion directly into the library without moving or altering user files on disk.

Deep Mod Inspector

  • Binary WAD Header Inspection: Extracts lump counts, identifies map markers (MAP01–MAP99, E1M1–E4M9), and validates IWAD/PWAD magic.
  • Archive Marker Detection: Traverses PK3/ZIP archives to detect structural landmarks (ZSCRIPT, DECORATE, MAPINFO, SNDINFO, TEXTURES, GLDEFS).
  • Streaming SHA-256 Hasher: Computes cryptographic checksums in the background for duplicate identification.
  • One-click actions to open containing folders, view file details, toggle favorites, and add mods directly to profiles.

Profiles & Draggable Load Ordering

  • Configure independent launch configurations combining an engine executable, base IWAD, ordered mod list, custom launch arguments, and working directories.
  • Visual Load Order Manager: Drag-and-Drop reordering, keyboard navigation (↑/↓), move to top/bottom, and individual mod enable/disable toggling.
  • Profile Management: Clone, duplicate, edit, search, favorite, and delete profiles.

Pre-Launch Validation Engine

Never fail at launch time. The pre-flight validator executes 5 core verification rules before process creation:

  1. Engine Rule: Checks if the source port executable exists and is accessible.
  2. IWAD Rule: Verifies base game IWAD presence and readability.
  3. Mod File Rule: Validates disk presence for all enabled and disabled mods.
  4. Duplicate Rule: Flags duplicate mods in the load order.
  5. Working Directory Rule: Validates custom working directory paths.
  • Computes aggregate launch statuses: READY, READY WITH WARNINGS, or CANNOT LAUNCH with an expandable breakdown.

Multi-Engine & IWAD Managers

  • Source Port Manager: Register multiple versions of any engine (GZDoom, Zandronum, DSDA-Doom, Woof!, Crispy Doom, Chocolate Doom, PrBoom+, etc.).
  • Automatic Version Detection: Executes --version / -version probes with execution timeouts to identify engine versions and families.
  • IWAD Manager: Auto-identifies base games (Doom, Doom II, TNT, Plutonia, Heretic, Hexen, Strife, FreeDoom).

Portable Profile Specification (YAML v1)

  • Export complete profile definitions into human-readable YAML specification version 1.
  • Import profiles with automated dependency resolution matching local engines, IWADs, and mods by ID, name, or filename, generating warning diagnostics for missing content.

Launch Telemetry & History

  • Direct process execution with exec.Command using structured arguments (-iwad, -file, custom parameters) with no shell interpolation.
  • Asynchronous process monitoring capturing exit codes, runtime duration, and timestamps.
  • Aggregated gameplay statistics: total launches, total playtime, and last played sessions.

Desktop Ergonomics & Shortcuts

  • Ctrl+K: Global spotlight search across all profiles, mods, engines, and IWADs.
  • Ctrl+Enter: 1-click launch of the active or favorite profile.
  • Ctrl+S: Save active profile.
  • Ctrl+Shift+S: Export profile to YAML.
  • Esc: Close open modals and drawers.
  • UI Density Toggle: Quick-switch between Compact (maximum data density) and Comfortable (roomy padding) layouts.

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 Desktop GUI (React 18 + TS)                 β”‚
β”‚    Dashboard β€’ Library β€’ Profiles β€’ Engines β€’ IWADs β€’ Stats β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               β”‚ Wails v2 RPC & Events
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Application Core (Go)                    β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚   β”‚ Mod Service   β”‚ β”‚Engine Service β”‚ β”‚ Profile Service  β”‚  β”‚
β”‚   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚
β”‚   β”‚ IWAD Service  β”‚ β”‚Validator Svc  β”‚ β”‚ Launcher Service β”‚  β”‚
β”‚   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚
β”‚   β”‚ Scanner Svc   β”‚ β”‚History Serviceβ”‚ β”‚ Settings Service β”‚  β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                              β”‚                              β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚          Filesystem Inspection & Hasher             β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                              β”‚                              β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚       SQLite Persistence (modernc.org/sqlite)       β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Technology Stack

Layer Technology Description
Backend Go 1.23+ Clean, interface-agnostic application core
Desktop Bridge Wails v2 Lightweight native OS webview bridge
Database modernc.org/sqlite Pure-Go CGo-free SQLite with WAL mode
Profile Schema gopkg.in/yaml.v3 YAML Profile Specification Version 1
Frontend React 18 & TypeScript Type-safe single-page desktop GUI
State Management TanStack Query Query caching, invalidation, and async state
Styling Tailwind CSS Dark Doom-industrial design system with density modes
Icons Lucide React Crisp modern interface iconography

Getting Started

Prerequisites

  • Go: 1.23 or higher
  • Node.js: 18 or higher (Node 20+ recommended) & npm
  • Wails v2 CLI: go install github.com/wailsapp/wails/v2/cmd/wails@latest

Installation & Build

  1. Clone the repository:

    git clone https://github.com/zendevve/rnt-launcher.git
    cd rnt-launcher
  2. Install frontend dependencies:

    cd frontend
    npm install
    cd ..
  3. Run in development mode:

    wails dev
  4. Run backend tests:

    go test -v ./...
  5. Build standalone production binary:

    # Using Wails CLI:
    wails build
    
    # Or standard Go compilation:
    cd frontend && npm run build && cd ..
    go build -o rnt-launcher.exe .

Community & Feedback

Join Artano on Discord to discuss RNT Launcher, report issues, and try out early test builds:

Join Discord

Invite link: https://discord.gg/Y4rDyTScPe


Support & Donations

If you find RNT Launcher helpful for organizing and launching your Doom setup, consider buying me a coffee to support continued development:

Buy Me A Coffee

Link: https://buymeacoffee.com/zendevve


License

Copyright (c) 2026 Zendevve. All rights reserved.

See the LICENSE file for the full Copyright Notice and Limited Personal Use Terms.

About

Rip n' Tear is a modern, cross-platform Doom mod manager that makes complex loadouts easy to build, inspect, validate, share, and launch.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages