Job: Auction House System (AHS)
Specifications: Auction House System (AHS) for Garry's Mod with Factions and MySQL Backup
1. Context and Objectives
Context: In Garry's Mod, players can be divided into two distinct factions (e.g., Team 1 and Team 2). This project aims to develop an Auction House System (AHS) where players can buy and sell items within their own faction only. The data from each AHS must be centrally stored in a MySQL database to enable seamless use across multiple servers.
Main Objective: Create an AHS with separate markets for each faction, ensuring that trading remains internal to each faction. Additionally, the data should be shared across multiple servers via a centralized MySQL database to ensure transaction continuity and data synchronization.
2. AHS Features
2.1. Separation of Auction Houses
Distinct AHS: Each faction (Team 1 and Team 2) will have its own Auction House, with items specific to each faction.
Interaction Isolation: Players from Team 1 cannot view or purchase items listed by Team 2 players, and vice versa.
2.2. User Interface (UI)
Faction-Specific AHS: When opening the AHS interface, the player accesses only the items listed by members of their faction.
Search and Filters: Allow players to search for specific items in their faction’s AHS and filter by price, item type, rarity, etc.
Category Display: Items are categorized (weapons, accessories, resources, etc.) to facilitate navigation.
2.3. Listing Items for Sale
Item Selection: Players can select items from their inventory and list them for sale in their faction’s AHS.
Price Setting: Sellers set the price for their items.
Sale Duration: Players can set a duration for their listing (e.g., 24 hours, 48 hours, 7 days).
Faction Tax: A faction-specific sales tax is deducted from each transaction (e.g., 5% of the sale price). Collected taxes go into the faction’s federal economic system, contributing to its overall finances.
2.4. Purchasing Items
Restricted Access: Players can only purchase items available in their faction’s AHS.
Purchase Confirmation: A confirmation window appears before finalizing a purchase to avoid errors.
Notifications: Players receive an in-game notification or through the AHS interface when they make a purchase.
2.5. Sales Management
Sales Tracking: Sellers can track the status of their sales (ongoing, sold, expired) via a dedicated interface.
Item Withdrawal: Items listed for sale can be withdrawn before being sold, subject to defined conditions (e.g., minimum listing time elapsed).
Sale Notification: A notification is sent to sellers when an item is sold, and the funds are automatically added to their balance.
2.6. General Market for Civilians
Civilian Access: Players who have not chosen a faction (civilians) can access a general market distinct from the factional AHS.
Limited Items: Civilians are limited to selling food and resources only. They cannot sell weapons or other items.
No Faction Affiliation: This general market does not benefit from factional advantages or economic contributions and serves only as a basic platform for civilian trades.
3. Technical Requirements
3.1. Compatibility
Garry's Mod Server: The system must be compatible with the latest versions of Garry's Mod and existing mods.
MySQL Database: The system must use a MySQL database to store all information related to items, transactions, and players. This ensures data persistence between sessions and synchronization across multiple servers.
3.2. Multi-Server Management
Data Sharing: The centralized MySQL database will allow multiple servers to share the same AHS information, ensuring that players can access their items and transactions from any connected server.
Real-Time Synchronization: Data must be updated in real-time to ensure that changes made on one server (such as a sale or purchase) are immediately reflected on other servers.
3.3. Optimization
Performance: The system must be designed to handle a large number of transactions without slowing down the server, even under heavy usage.
Optimized MySQL Queries: Database queries should be optimized to minimize load on the MySQL server and reduce latency.
3.4. Security
Data Protection: Ensure the security of transactions and player data (items, currency) through encryption methods and secure MySQL connection management.
Access Restrictions: Ensure that only players from a given faction have access to their respective AHS. Additionally, administrators and moderators must have specific permissions to monitor and intervene when necessary.
4. User Interface Design
4.1. Ergonomics
Ease of Use: The AHS interface should be simple and intuitive for all types of players, with clearly identified features.
Responsiveness: The interface should be responsive and compatible with different screen resolutions.
4.2. Design
Factional Theme: The AHS interface should reflect the visual identity of each faction (colors, styles) to enhance immersion.
Visual Feedback: Actions (listing, purchasing) should be accompanied by clear visual feedback to guide the user.
5. Security Requirements
Transaction Control: Verify transactions to prevent fraud or abuse between factions.
Permissions: Fine-tune permissions for administrators and moderators to monitor AHS and intervene when necessary.
6. Deliverables
Source code for the factional AHS system with MySQL integration.
Technical documentation: Installation guide, administration guide, user manual.
Post-delivery support: Corrective maintenance for a defined period (e.g., 3 months after delivery).
7. Schedule and Deadlines
Phase 1: Design and validation of specifications (2 weeks).
Phase 2: Development of the first version (6 weeks).
Phase 3: Testing and debugging (3 weeks).
Phase 4: Production deployment and final corrections (2 weeks).
8. Budget and Resources
Development cost estimate: To be defined based on human resources (developers, designers, testers).
Required resources: Development team, test server, MySQL database.
9. Monitoring and Validation
Weekly meetings: To review project progress.
Validation: Each feature must be validated by the client or project manager before proceeding to the next.