Panel/modules/billing/README.md

6 KiB

GameServers.World - Billing Module

Overview

The billing module is a complete standalone website for selling game servers. It can be deployed on the same machine as the GSP panel or on a completely separate external web host.

Documentation System

Visual TODO System

As of December 19, 2024, all game documentation includes completion tracking:

  • Complete Documentation: Displays with normal name (e.g., "Minecraft Server")
  • Incomplete Documentation: Displays with "TODO: " prefix (e.g., "TODO: Arma 3")

Current Status

  • Complete: 1 game (Minecraft - comprehensive template)
  • Incomplete: 146 games (marked with TODO prefix)

Documentation Template Standard

All complete documentation should match the Minecraft template:

  • Comprehensive ports table (ALL ports with purposes)
  • Firewall configurations (UFW, FirewallD, Windows, iptables)
  • Startup parameters with detailed explanations
  • Troubleshooting sections with specific solutions
  • Performance optimization tips
  • Security best practices
  • Resource links with citations

Viewing Documentation

  • Browse to docs.php to see all game documentation
  • Games with "TODO: " prefix need comprehensive research and writing
  • Click any game to view its documentation page

Marking Documentation Complete

When game documentation is finished:

  1. Edit docs/{game}/metadata.json
  2. Change "complete": false to "complete": true
  3. The TODO prefix will automatically disappear

Recent Updates

December 19, 2024 - Visual TODO System

  • Implemented completion tracking for all 148 game folders
  • Created PowerShell automation script (update_metadata_complete.ps1)
  • Updated docs.php with automatic TODO prefix display
  • Minecraft documentation completed as template example

November 10, 2025 - Critical Fixes

  • Fixed PayPal payment capture session issue
  • Removed cart debug logging code
  • Fixed cart page header/footer consistency
  • Implemented AJAX invoice removal with Font Awesome icons

Key Files

Documentation System

  • docs.php - Documentation browser with TODO system
  • docs/*/index.php - Individual game documentation pages
  • docs/*/metadata.json - Game metadata with completion status
  • update_metadata_complete.ps1 - Batch metadata update script

Reference Documents

  • PHASE1_COMPLETE_SUMMARY.md - Phase 1 implementation summary
  • GAME_DOCS_TODO_REFERENCE.md - Complete reference for documentation system
  • RECENT_FIXES_SUMMARY.md - All recent fixes and enhancements

Payment Integration

  • api/capture_order.php - PayPal payment capture (fixed session handling)
  • payment_success.php - Payment success redirect
  • payment_cancel.php - Payment cancellation handler

Shopping Cart

  • cart.php - Shopping cart UI with PayPal integration (cleaned up)
  • add_to_cart.php - Add items to cart
  • remove_from_cart.php - AJAX removal endpoint

Development Guidelines

Adding New Game Documentation

  1. Create folder: docs/{game-slug}/
  2. Create metadata.json:
    {
      "name": "Game Name",
      "description": "Brief description",
      "category": "game",
      "order": 100,
      "complete": false
    }
    
  3. Create index.php following Minecraft template
  4. Add optional icon.png or icon.jpg
  5. When complete, set "complete": true in metadata

Research Sources for Game Documentation

  • Official game wikis and documentation
  • LGSM (LinuxGSM) scripts and configuration files
  • Steam Community Guides (highly-rated)
  • Reddit communities (r/gameservers, game-specific)
  • GitHub repositories with server configurations
  • Official game forums
  • User-contributed solutions and fixes

Documentation Quality Standards

  • Comprehensive Ports: List ALL ports with purposes (TCP/UDP)
  • Startup Parameters: Full parameter explanations with examples
  • Troubleshooting: Specific common issues with tested solutions
  • Firewall Configs: Multiple platform examples (Linux + Windows)
  • Citations: Link to all sources used in research
  • Testing: Verify all commands and configurations are accurate

Next Priorities

Phase 2: ARMA Family + DayZ (HIGH PRIORITY)

  1. Arma 3
  2. Arma 2: Operation Arrowhead
  3. Arma 2: Combined Operations
  4. DayZ Standalone
  5. DayZ Mod
  • Counter-Strike family (1.6, Source, CS2, CS:GO)
  • Survival/Building (Rust, Terraria, Valheim, ARK)
  • Co-op Shooters (L4D series, Killing Floor series, TF2)
  • Tactical Shooters (Insurgency series, Squad)

Phase 4: Remaining Games

  • All other 50+ game folders in alphabetical order

Testing Checklist

PayPal Integration

  • User can add servers to cart
  • PayPal checkout button works
  • Payment completes successfully
  • Success page displays correctly
  • No NO_USER_SESSION errors in logs

Documentation System

  • docs.php displays all games correctly
  • TODO prefix shows for incomplete docs
  • Complete docs show without TODO prefix
  • Individual game pages load correctly
  • Navigation links work within documentation

Cart Functionality

  • Cart displays all items correctly
  • Remove button deletes items (AJAX)
  • Header and footer display consistently
  • Fonts match other billing pages

Technical Notes

Session Management

  • CRITICAL: Always use session_name("opengamepanel_web") before session_start()
  • Sessions are separate from panel sessions
  • User authentication stored in $_SESSION['website_user_id']

Database Connection

  • Uses mysqli with credentials from includes/config.inc.php
  • All database operations use native mysqli functions
  • Never use panel-specific functions

Standalone Design

  • Module must work on external hosting
  • No dependencies on panel files
  • All paths use __DIR__ relative references
  • MySQL connection direct (not through panel)

Support & Resources

  • Main project: GameServerPanel/GSP
  • Branch: Panel-unstable
  • Documentation: Browse docs.php for game-specific guides
  • Issues: Check logs in modules/billing/logs/

Last Updated: December 19, 2024
Version: 2.0 (with Visual TODO System)