Skip to main content

Universal Gun Mod Manager - A plugin-based mod manager for games

Project description

UGMM - Universal Gun Mod Manager

A plugin-based mod manager that supports multiple games through a JSON configuration system.

Features

  • Plugin System: Load and execute plugins from the plugins/ directory
  • Game Management: JSON-based game support with automatic Steam detection
  • GUI Interface: Modern GUI built with CustomTkinter
  • Extensible: Easy to add new games and plugins

Installation

  1. Install Python dependencies:
pip install -r requirements.txt
  1. Run the application:
python main.py

How It Works

Game Management

  • Games are defined in supported_games.json
  • The system automatically detects installed Steam games
  • Only games listed in the JSON file will appear in the game selector
  • Plugins can add/remove games from the supported list

Plugin System

  • Plugins are Python files in the plugins/ directory
  • Each plugin must inherit from PluginBase
  • Plugins can access the game manager to modify the supported games list
  • Plugins receive the selected game's path for execution

File Structure

ugmm/
├── main.py                 # Main application
├── game_selector.py        # Game selection GUI
├── game_manager.py         # JSON game management
├── plugin_loader.py        # Plugin discovery and loading
├── plugin_base.py          # Base plugin class
├── supported_games.json    # Supported games configuration
├── requirements.txt        # Python dependencies
├── plugins/                # Plugin directory
│   ├── mod_manager_plugin.py
│   ├── nexus_mods_plugin.py
│   ├── json_writer_plugin.py
│   └── game_manager_plugin.py
└── README.md

Creating Plugins

Create a new Python file in the plugins/ directory:

from plugin_base import PluginBase

class Plugin(PluginBase):
    def __init__(self):
        super().__init__()
        self.name = "My Plugin"
        self.description = "Description of what this plugin does"
        self.version = "1.0.0"
        self.required_game_id = None  # Set to specific AppID if needed
        
    def execute(self, *args, **kwargs):
        # Your plugin logic here
        print(f"Running {self.name} for game at: {self.game_path}")
        return True
        
    def validate(self) -> bool:
        # Validate if plugin can run
        return True

Game Manager Plugin

The included game_manager_plugin.py provides a GUI for managing the supported games list. You can:

  • Add new games to the supported list
  • Remove games from the supported list
  • View all currently supported games

Adding Games

Games can be added in several ways:

  1. Manually edit supported_games.json:
{
  "name": "Game Name",
  "appid": 123456,
  "launcher": "steam",
  "vdf_number": 123456,
  "description": "Game description"
}
  1. Use the Game Manager Plugin: Run the "Game Manager Plugin" from the main application

  2. Programmatically via plugins: Use self.game_manager.add_game() in your plugins

Supported Game Properties

  • name: Display name of the game
  • appid: Steam AppID
  • launcher: Game launcher (currently supports "steam")
  • vdf_number: VDF file number (usually same as AppID)
  • description: Game description

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ugmm-1.0.0.tar.gz (3.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ugmm-1.0.0-py3-none-any.whl (3.0 kB view details)

Uploaded Python 3

File details

Details for the file ugmm-1.0.0.tar.gz.

File metadata

  • Download URL: ugmm-1.0.0.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ugmm-1.0.0.tar.gz
Algorithm Hash digest
SHA256 de224005c404c3bc1898e9f852afcde328e27970b88cdb940fe87992efb21ee3
MD5 ef6f3c550b90f961cba94581148849fc
BLAKE2b-256 0e0b3d75310997235139f04f2ef334c28c70ff2fdbfe25662d2b845e0a7595d0

See more details on using hashes here.

File details

Details for the file ugmm-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: ugmm-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 3.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ugmm-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ef03da873be2223c739658608cce34161ff1f0af9bb979a8e0d76f88f0a9408d
MD5 d59ff01b60bea0c4e17f8a59d7bd22aa
BLAKE2b-256 a72e0f6f781de4ea2a281e971f97c0157322a0106428c2d661e60304abe299bd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page