Download Latest Version utkeeper.tar (304.1 kB)
Email in envelope

Get an email when there's a new version of utkeeper99

Home
Name Modified Size InfoDownloads / Week
tar 2026-01-29
zip 2026-01-29
uzip.sh 2026-01-29 10.2 kB
validation.sh 2026-01-29 9.5 kB
distribution.sh 2026-01-29 16.4 kB
orphan.sh 2026-01-29 33.8 kB
server_config.sh 2026-01-29 15.3 kB
snafu_fix.sh 2026-01-29 21.1 kB
system.sh 2026-01-29 3.3 kB
ut.sh 2026-01-29 2.6 kB
extract.sh 2026-01-29 15.4 kB
maptools.sh 2026-01-29 8.2 kB
all_map_dependencies.txt 2026-01-29 39.9 kB
clean_logs.sh 2026-01-29 9.6 kB
clone.sh 2026-01-29 6.0 kB
dependency_whitelist.txt 2026-01-29 2.9 kB
backup.sh 2026-01-29 23.7 kB
check_logs.sh 2026-01-29 4.2 kB
ucc.txt 2026-01-29 2.1 kB
utkeeper.sh 2026-01-29 20.3 kB
utservices.txt 2026-01-29 1.2 kB
webservices.txt 2026-01-29 1.5 kB
README.md 2026-01-29 23.2 kB
README.txt 2026-01-29 13.8 kB
Totals: 24 Items   284.0 kB 1

UTKeeper99 (UTK)

 ____ ___ ___________ ____  __.                                      ________  ________  
|    |   \\__    ___/|    |/ _| ____   ____  ______    ____ _______ /   __   \/   __   \ 
|    |   /  |    |   |      < _/ __ \_/ __ \ \____ \ _/ __ \\_  __ \\____    /\____    / 
|    |  /   |    |   |    |  \\  ___/\  ___/ |  |_> >\  ___/ |  | \/   /    /    /    /  
|______/    |____|   |____|__ \\___  >\___  >|   __/  \___  >|__|     /____/    /____/   
                             \/    \/     \/ |__|         \/                             

Comprehensive Unreal Tournament 99 / Web Server Management Suite

By [KoD]Prom - Killers on Demand Clan (since 1999)


๐Ÿ“‹ Table of Contents


๐ŸŽฏ Overview

UTKeeper99 is a comprehensive server management suite for Unreal Tournament 99 (UT99) Linux servers. Born from a simple service start/stop script, it has evolved into a full-featured administration toolkit designed to make server management easier and safer.

Forged on Debian 12 Trixie

What Makes UTKeeper99 Special?

  • Smart Auto-Configuration - First-run setup with intelligent path detection
  • DryRun Mode - Test operations safely before executing
  • Modular Design - Easy to expand and customize
  • Comprehensive Backup - Integrated SmartBackup system
  • Advanced Orphan Detection - Find and remove unused packages safely

โœจ Features

Core Features

  • โœ… Auto-Configuration - Intelligent detection of UT server and web paths
  • โœ… Service Management - Start/Stop UT server and Apache/Nginx
  • โœ… Log Monitoring - Real-time system and UT log viewing
  • โœ… MapTools Suite - Complete map management toolkit
  • โœ… SmartBackup - Automated backup with disk space validation
  • โœ… Orphan Scanner - Advanced dependency-based cleanup
  • โœ… DryRun Mode - Safe testing before actual operations
  • โœ… SNAFU Fix - Emergency repair tool for permissions

MapTools Features

  • Recursive Archive Extraction (up to 10 levels deep)
  • Smart File Collection (gathers all UT files from subdirs)
  • UCC Compression (.uz format creation)
  • Automated Distribution (to UT server and web redirect)
  • Map Cloning (convert CTF/AS/DOM maps to DM format)
  • Case-Sensitive Fixes (Linux filename normalization)
  • Permission Management (chmod/chown automation)
  • Installation Verification (corrupt file detection)

Orphan Scanner Features

  • Dependency Extraction - UCC packagedump-based analysis
  • Whitelist Generation - 4-source protection system:
  • System packages (hardcoded)
  • Map dependencies (extracted)
  • ServerPackages (from INI)
  • Pattern-based (Skins, Fonts, FX, etc.)
  • Interactive Cleanup - Choose what to keep/delete
  • Web Redirect Cleanup - Remove orphaned .uz files
  • 50+ Warning System - Alerts for unusual orphan counts

๐Ÿ“ฆ Requirements

System Requirements

  • OS: Linux (tested on Debian 12 Trixie)
  • Shell: Bash 4.x or higher
  • Tools: sudo, coreutils, grep, sed, awk, find
  • Disk Space: Sufficient for backup operations

UT99 Server Requirements

  • 32-bit UT99 Server (locally installed)
  • UCC Binary (for compression and dependency extraction)
  • Web Redirect (optional, but recommended for full functionality)

Additional Packages

# Debian/Ubuntu
sudo apt install zip unzip p7zip-full p7zip-rar unrar bc

# For web server (choose one)
sudo apt install apache2  # or nginx

๐Ÿš€ Installation

# Extract to your desktop
cd ~/Desktop
unzip utkeeper99.zip
cd utkeeper

# Make executable
chmod +x utkeeper.sh
chmod +x libs/*.sh

# Run (will prompt for sudo when needed)
./utkeeper.sh

Method 2: System-Wide Installation

# Install to /opt
sudo mkdir -p /opt/utkeeper99
sudo unzip utkeeper99.zip -d /opt/utkeeper99
cd /opt/utkeeper99

# Set permissions
sudo chmod +x utkeeper.sh libs/*.sh
sudo chown -R root:root .

# Create symlink (optional)
sudo ln -s /opt/utkeeper99/utkeeper.sh /usr/local/bin/utkeeper

# Run
sudo utkeeper

Method 3: User-Local Installation

# Install to home directory
mkdir -p ~/.local/share/utkeeper99
unzip utkeeper99.zip -d ~/.local/share/utkeeper99
cd ~/.local/share/utkeeper99

chmod +x utkeeper.sh libs/*.sh

# Add to PATH (optional)
echo 'export PATH="$HOME/.local/share/utkeeper99:$PATH"' >> ~/.bashrc
source ~/.bashrc

โš™๏ธ First Run Setup

On first run, UTKeeper99 will guide you through automatic configuration:

Auto-Detection Features

  1. UT Server Path Detection
  2. Searches common paths: /opt/utserver, /opt/ut99, /home/utserver, etc.
  3. Validates installation (checks for System, Maps, Textures directories)

  4. Web Server Detection

  5. Auto-detects Apache or Nginx
  6. Finds DocumentRoot automatically
  7. Locates UT redirect directory (searches for .uz files)

  8. Service Detection

  9. Finds UT service: utserver.service, ut-server.service, ut.service
  10. Finds web service: apache2.service, httpd.service, nginx.service

  11. Ownership Detection

  12. Auto-detects file owners (user:group)
  13. Applies to both UT server and web server

Manual Configuration

If auto-detection fails or you want custom paths:

  1. Run: Option 8 - Configuration
  2. Follow prompts to set:
  3. UT Server path
  4. UT user/group
  5. Web server path
  6. Web redirect path
  7. Web user/group

Configuration File

Settings are saved to .config in project root:

# Example .config
UT_BASE_PATH="/opt/utserver"
UT_USER="utserver"
UT_GROUP="utserver"
WEB_ROOT="/var/www/html"
UT_REDIRECT="/var/www/html/ut"
WEB_USER="www-data"
WEB_GROUP="www-data"

โš ๏ธ Important: Do NOT edit .config manually - use Option 8!


๐Ÿ“– Main Menu

UTKEEPER99 v2.5 - MAIN MENU

1. Start Services       - Start UT server + web server
2. Stop Services        - Stop UT server + web server
3. System Logs          - Real-time system-wide logs
4. UT Server Log        - Real-time UT server log
5. Log Overview         - Complete system and UT log overview
6. Clean Logs           - Delete/truncate system and UT logs
7. MapTools            - Map management suite (see below)
8. Configuration        - Edit server paths and settings
9. Toggle DryRun        - Enable/disable safe testing mode
S. SmartBackup         - Backup management system
R. README              - Show this file

Q. Quit

๐Ÿ—บ๏ธ MapTools Features

Access via Main Menu โ†’ 7. MapTools

MapTools Menu

1. Extract Archives     - Decompress all files in /upload
2. Compress to .uz      - Create .uz files with UCC
3. Distribution         - Deploy to UT server and web
4. Cleanup Upload       - Clear /upload directory
5. SNAFU Fix           - Emergency permission repair
6. Verify Installation  - Check for corrupt files
7. Clone Maps          - Create DM variants from other gametypes
8. Orphan Scanner      - Advanced orphan detection (see below)

B. Back to Main Menu

Workflow Example

Installing New Maps:

  1. Drop files into /upload/ directory: upload/ โ”œโ”€โ”€ MyMaps.zip โ”œโ”€โ”€ CoolTextures.rar โ””โ”€โ”€ NewSounds.7z

  2. Option 1: Extract Archives

  3. Recursively extracts (up to 10 levels)
  4. Moves archives to /upload/installed/ for backup
  5. Collects all UT files to /upload/

  6. Option 2: Compress to .uz

  7. Creates .uz compressed versions
  8. Uses UCC compression

  9. Option 3: Distribution

  10. Maps (.unr) โ†’ UT /Maps + Web redirect
  11. Textures (.utx) โ†’ UT /Textures + Web redirect
  12. Sounds (.uax) โ†’ UT /Sounds + Web redirect
  13. Music (.umx) โ†’ UT /Music + Web redirect
  14. Code (.u) โ†’ UT /System
  15. Sets correct permissions (chmod/chown)

  16. Option 4: Cleanup

  17. Clears /upload/ (keeps /installed/ and /Backups/)

SNAFU Fix

Emergency repair tool for when things go wrong:

  • Fixes all chmod (755 for dirs, 644 for files)
  • Fixes all chown (UT and web ownership)
  • Makes UCC binaries executable
  • Normalizes map filenames (case-sensitive)
  • Supports map prefixes: DM-, CTF-, DOM-, AS-, MH-, MA-, RA-, BR-

When to use: - for Map extraction from compressed files and distribution - After manual file operations - When UT server can't read files - After web server permission issues - When in doubt!


๐Ÿ” Orphan Scanner

Access via MapTools โ†’ 8. Orphan Scanner

Advanced dependency-based orphan detection system.

How It Works

Step 1: Extract Map Dependencies - Scans all .unr files with UCC packagedump - Extracts Import Table package references - Takes 10-15 minutes for ~200 maps - Creates: libs/all_map_dependencies.txt

Step 2: Generate Whitelist

Builds protection list from 4 sources:

  1. System Packages (hardcoded) Core, Engine, Botpack, UnrealShare, UnrealI IpDrv, UWeb, UBrowser, Fire, UTMenu UWindowFonts, LadderFonts

  2. Map Dependencies (extracted)

  3. All packages referenced by maps
  4. Example: RainFX, Starship, GenFX, UTtech1

  5. ServerPackages (from ut.ini)

  6. Parses ServerPackages= lines
  7. Auto-detects: ut.ini, UnrealTournament.ini, unrealtournament.ini

  8. Pattern-Based (filesystem scan) *kin* - Skins (SoldierSkins, CommandoSkins, etc.) *Fem* - Female skins (GothFem, DacomaFem, SGirlSkins) *Male* - Male skins *ech* - Tech textures (SCTech1, UTtech1, UTtech2) *ont* - Fonts *fx* - Effects *enu* - Menu packages *oice* - Voice packs *nnounce* - Announcer packs

Creates: libs/dependency_whitelist.txt

Step 3: Detect & Delete Orphans

Scans /Textures/*.utx, /Sounds/*.uax, /Music/*.umx

Shows all orphaned files with interactive selection:

Found 28 orphaned packages (39.14 MB)

   1) [ ] chaostex.utx           19.53 MB
   2) [ ] chaossounds.uax         5.02 MB
   3) [ ] SCTech1.utx             4.10 MB
   ...

Options:
  a) Delete ALL orphans
  s) Select numbers to DELETE (comma-separated, e.g. 1,5,8)
  k) Select numbers to KEEP (comma-separated, everything else deleted)
  c) Cancel (back to menu)

Step 4: Web Redirect Cleanup

Scans web redirect for orphaned .uz files: - Checks if original file exists on UT server - Supports all extensions: .unr, .utx, .uax, .umx, .u, .int, .ini - Case-insensitive matching

Safety Features

  • โœ… 50+ Warning - Alerts if too many orphans (suggests reinstall)
  • โœ… Whitelist Protection - Multiple layers of protection
  • โœ… Interactive Selection - Choose exactly what to delete
  • โœ… Cancel Anytime - No changes until confirmed
  • โœ… Read-Only Scanning - Detection doesn't modify anything

Workflow Example

# First time setup (do once)
1. Extract Map Dependencies    # 10-15 min, creates dependency database
2. Generate Whitelist          # Few seconds, creates protection list

# Regular use (after adding/removing maps)
1. Extract Map Dependencies    # Re-scan if maps changed
2. Generate Whitelist          # Always regenerate after extraction
3. Detect & Delete Orphans     # Clean up unused packages

# Web cleanup (as needed)
4. Web Redirect Cleanup        # Remove orphaned .uz files

๐Ÿ’พ SmartBackup

Access via Main Menu โ†’ S. SmartBackup

Comprehensive backup system with safety checks.

Features

  • Disk Space Validation - Checks available space before backup
  • Size Estimation - Shows backup size before creation
  • Timestamp Format - YYMMDD-HHMM for easy sorting
  • Selective Backup - UT server, web redirect, or both
  • Backup Management - List, delete by age, restore
  • Script Backup - Includes UTKeeper itself + /upload/installed

SmartBackup Menu

1. Backup UT Server         - Backup entire UT installation
2. Backup Web Redirect      - Backup web redirect directory
3. Backup Both             - UT + Web in one operation
4. Backup This Script      - Backup UTKeeper + /upload/installed
5. List Backups            - Show all available backups
6. Delete Old Backups      - Remove backups by age
7. Show Disk Space         - Current usage statistics

B. Back to Main Menu

Backup Location

All backups saved to: ./Backups/

Backups/
โ”œโ”€โ”€ ut_backup_260127-1430.zip      # UT server backup
โ”œโ”€โ”€ web_backup_260127-1432.zip     # Web redirect backup
โ”œโ”€โ”€ both_backup_260127-1435.zip    # Combined backup
โ””โ”€โ”€ script_backup_260127-1440.zip  # UTKeeper backup

Backup Strategy

Recommended Schedule:

  • Before major changes - Always backup before running Distribution
  • Weekly - Regular UT server backups
  • After map installs - Backup after successful installations
  • Before orphan cleanup - Backup before deleting orphans

Retention:

  • Keep last 7 daily backups
  • Keep last 4 weekly backups
  • Keep monthly backups for 6 months

๐Ÿ”ง Configuration

Access via Main Menu โ†’ 8. Configuration

Interactive Configuration Wizard

Guides you through all settings with intelligent defaults:

[1/7] UT Server Installation Path
  Path [/opt/utserver]: _

[2/7] UT Server Owner (User)
  User [utserver]: _

[3/7] UT Server Owner (Group)
  Group [utserver]: _

[4/7] UT Server Log Directory
  Log Path [/opt/utserver/Logs]: _

[5/7] Web Server Document Root
  Path [/var/www/html]: _

[6/7] UT Redirect Directory (for .uz files)
  Path [/var/www/html/ut]: _

[7/7] Web Server Owner
  User [www-data]: _
  Group [www-data]: _

Validation Features

  • โœ… Path Existence - Warns if path doesn't exist
  • โœ… User/Group Check - Validates system users/groups
  • โœ… UT Installation - Verifies complete UT structure
  • โœ… Continue Anyway - Option to save invalid paths (for later creation)
  • โœ… Summary Review - Shows all settings before saving

Configuration Summary

Before saving, reviews all settings:

=========================================================================
                     CONFIGURATION SUMMARY
=========================================================================

UT SERVER:
  Installation:  /opt/utserver
  Owner:         utserver:utserver
  Logs:          /opt/utserver/Logs
  Service:       utserver.service (auto-detected)

WEB SERVER:
  Document Root: /var/www/html
  UT Redirect:   /var/www/html/ut
  Owner:         www-data:www-data
  Service:       apache2.service (auto-detected)

UTKEEPER:
  Project Root:  /home/user/Desktop/utkeeper
  Upload Dir:    /home/user/Desktop/utkeeper/upload
  Config File:   /home/user/Desktop/utkeeper/.config

=========================================================================

Save this configuration? (Y/n): _

๐Ÿ›ก๏ธ Safety Features

UTKeeper99 includes multiple layers of safety to prevent accidents:

DryRun Mode

Toggle via Main Menu โ†’ 9. Toggle DryRun

When enabled: - โœ… Shows what WOULD happen - โœ… No actual file operations - โœ… No deletions - โœ… No moves/copies - โŒ Does NOT execute changes

Always test in DryRun first!

Critical Path Protection

  • โŒ Rejects / as a path
  • โŒ Warns about system directories
  • โœ… Validates UT installation structure
  • โœ… Checks for write permissions

Backup Integration

  • โœ… SmartBackup before major operations
  • โœ… Archives moved to /installed instead of deleted
  • โœ… Disk space checks before operations
  • โœ… Permission validation

User Confirmations

  • โš ๏ธ Deletion operations require typing "DELETE" or "DELETE ALL"
  • โš ๏ธ Major operations show summary before execution
  • โš ๏ธ Interactive selection for orphan cleanup
  • โš ๏ธ Cancel options everywhere

SNAFU Fix

Emergency repair tool: - Fixes permissions when things go wrong - Normalizes filenames - Restores ownership - Safe to run multiple times


๐Ÿ“ Directory Structure

utkeeper/
โ”œโ”€โ”€ utkeeper.sh              # Main script
โ”œโ”€โ”€ .config                  # Configuration (auto-generated)
โ”œโ”€โ”€ README.txt              # This file (text version)
โ”œโ”€โ”€ README.md               # This file (markdown version)
โ”‚
โ”œโ”€โ”€ libs/                   # Core modules
โ”‚   โ”œโ”€โ”€ backup.sh           # Backup system
โ”‚   โ”œโ”€โ”€ check_logs.sh       # Log viewing
โ”‚   โ”œโ”€โ”€ clean_logs.sh       # Log cleanup
โ”‚   โ”œโ”€โ”€ clone.sh            # Map cloning
โ”‚   โ”œโ”€โ”€ distribution.sh     # File distribution
โ”‚   โ”œโ”€โ”€ extract.sh          # Archive extraction
โ”‚   โ”œโ”€โ”€ maptools.sh         # MapTools menu
โ”‚   โ”œโ”€โ”€ orphan.sh           # Orphan scanner
โ”‚   โ”œโ”€โ”€ server_config.sh    # Configuration wizard
โ”‚   โ”œโ”€โ”€ snafu_fix.sh        # Emergency repair
โ”‚   โ”œโ”€โ”€ system.sh           # System management
โ”‚   โ”œโ”€โ”€ ut.sh               # UT service control
โ”‚   โ”œโ”€โ”€ uzip.sh             # UCC compression
โ”‚   โ””โ”€โ”€ validation.sh       # Installation verification
โ”‚
โ”œโ”€โ”€ examples/               # Example configurations
โ”‚   โ”œโ”€โ”€ ucc.txt             # UCC binary info
โ”‚   โ”œโ”€โ”€ utservices.txt      # UT systemd service examples
โ”‚   โ””โ”€โ”€ webservices.txt     # Web server service examples
โ”‚
โ”œโ”€โ”€ upload/                 # Working directory (user files)
โ”‚   โ””โ”€โ”€ installed/          # Archive backup
โ”‚
โ””โ”€โ”€ Backups/                # Backup storage
    โ”œโ”€โ”€ ut_backup_*.zip
    โ”œโ”€โ”€ web_backup_*.zip
    โ””โ”€โ”€ script_backup_*.zip

๐Ÿ”จ UCC Binary Update

The UCC binary is used for compression (.uz creation) and dependency extraction.

Location: UT_BASE_PATH/System/ucc-bin

If your UCC is from a UT client (not server), it may not support compression.

Update UCC (if needed)

  1. Check examples/ucc.txt for UCC binary info
  2. Replace your UCC with a server-compatible version
  3. Make executable: chmod +x System/ucc-bin System64/ucc-bin

Note: SNAFU Fix automatically sets UCC permissions.


โšก Quick Start Guide

For New Users

# 1. Extract and setup
unzip utkeeper99.zip
cd utkeeper
chmod +x utkeeper.sh libs/*.sh

# 2. First run (auto-configure)
./utkeeper.sh
# Follow configuration wizard

# 3. Test in DryRun
# Main Menu โ†’ 9. Toggle DryRun

# 4. Test MapTools
# Drop a test file in upload/
# Main Menu โ†’ 7. MapTools
# Try each option (Extract, Compress, Distribution, Cleanup)

# 5. Create backup
# Main Menu โ†’ S. SmartBackup
# Option 1: Backup UT Server

# 6. Disable DryRun when ready
# Main Menu โ†’ 9. Toggle DryRun

For Experienced Users

# Quick install
sudo unzip utkeeper99.zip -d /opt/utkeeper99
cd /opt/utkeeper99
sudo chmod +x utkeeper.sh libs/*.sh

# Auto-configure
sudo ./utkeeper.sh
# Accept defaults or customize

# Map installation workflow
# 1. Drop files to /opt/utkeeper99/upload/
# 2. Main Menu โ†’ 7 โ†’ 1 (Extract)
# 3. Main Menu โ†’ 7 โ†’ 2 (Compress)
# 4. Main Menu โ†’ 7 โ†’ 3 (Distribution)
# 5. Main Menu โ†’ 7 โ†’ 4 (Cleanup)

# Orphan cleanup (first time)
# 1. Main Menu โ†’ 7 โ†’ 8 โ†’ 1 (Extract Dependencies) - takes time!
# 2. Main Menu โ†’ 7 โ†’ 8 โ†’ 2 (Generate Whitelist)
# 3. Main Menu โ†’ 7 โ†’ 8 โ†’ 3 (Detect & Delete)

๐Ÿ› Troubleshooting

Common Issues

"ERROR: PROJECT_ROOT not set!" - You called a lib script directly - Always run: ./utkeeper.sh

"Config file not found" - Run: Main Menu โ†’ 8. Configuration - Complete the setup wizard

"UCC binary not found" - Check: UT_BASE_PATH/System/ucc-bin - See examples/ucc.txt for replacement

"Permission denied" - Run with: sudo ./utkeeper.sh - Or fix ownership: sudo chown -R $USER:$USER .

"No orphans found" (but you know there are some) - Re-run: Extract Dependencies (Option 1) - Then: Generate Whitelist (Option 2) - The database may be outdated

"Too many orphans (50+)" - This indicates a problem - Consider clean UT reinstall - Or review whitelist patterns

Log Files

Check for errors:

# System logs
sudo journalctl -u utserver -n 50

# UT server log
tail -f /opt/utserver/System/UnrealTournament.log

# Apache/Nginx logs
sudo tail -f /var/log/apache2/error.log
sudo tail -f /var/log/nginx/error.log

Getting Help

  1. Read the README (you're here!)
  2. Check examples/ directory for service configs
  3. Test in DryRun mode first
  4. Create SmartBackup before risky operations
  5. Use SNAFU Fix if permissions break

๐Ÿ“œ Credits

Original Authors

UTKeeper99 - Author: [KoD]Prom - Clan: Killers on Demand (since 1999) - Year: 2026 - Website: http://killersondemand.ddns.net

uzip 1.0 - Author: [es]Rush - Copyright: 2005 - Contact: rush@u.one.pl, PM on unrealadmin.org

ASH (abfackeln's server utilities) 0.6 - Author: abfackeln@abfackeln.com - Copyright: 2001, 2002 - License: GNU GPL v2+

Special Thanks

Greetings to: - BBWG, THCO, ASN, UTClanDortmund - Baumkuschler, MercedesBenzClan - UnrealAdmin.org, OldUnreal.com - UnrealArchive.org, ut99.org - utzone.de, ut99maps.net - All MasterServer operators - The entire UT99 community

Code Review

AI-assisted code review and best practices: Claude. ai (01/2026)

In Memory

Dedicated to [KoD] clan members and all the LAN parties with "Blauer-Klaus" (blue menthol schnaps).

"You can't kill an idea. Ideas are bulletproof!"


๐Ÿ“„ License

GNU General Public License

UTKeeper99 is free software and comes with ABSOLUTELY NO WARRANTY!

  • โœ… Free to use
  • โœ… Free to modify
  • โœ… Keep original credits
  • โŒ NO commercial use
  • โŒ NO reselling

Run at your own risk!

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.


๐Ÿ”— Support & Community

Resources

Bug Reports & Feature Requests

Note: This may be the final version. I might not update or accept pull requests. Take it as is - it works for me! ๐Ÿ˜Š

Philosophy

This script started simple and grew organically. It's done "just for fun" and as proof of existence. If it helps someone else, that's a bonus!


๐ŸŽฎ Final Words

Stay healthy and smash some fascists!

>>> GL & HF! <<<

[KoD]Prom


Keep the archive intact. Thank you!

Version: 2.5 | Last Updated: January 2026

Source: README.md, updated 2026-01-29