The automated messaging system for players in the game "World of Tanks".
This document describes the mod part of the project (game client). The web part is considered separately.
1. General goal of the mod part
The mod should provide fully automated operation of the game client for sending personal messages to players, receiving commands and data from the web application (or local service), without user involvement.
Key tasks:
Automatic login to the game
Skipping all startup and notification windows
Receiving a list of players and message texts
Sending personal messages
Changing accounts after completing tasks
2. Compatibility and limitations
Game: World of Tanks (WG / Lesta)
Client version: current at the time of project launch (the mod should be easily adaptable to updates)
Mod type: client mod (Python + Scaleform / BigWorld)
Operation in windowed and fullscreen modes
3. Architecture of the mod part
The mod consists of the following logical components:
Initialization module
Interface management module
Message sending module
Communication module with the web part
Account switching module
Logging and status module
**At the discretion of the mod developer
4. Initialization and launch
4.1 Auto-start
The mod automatically loads when the client starts
Does not require manual activation
4.2 Player selection module by criteria using API keys (WG\Lesta)
1.In clan (yes/no)
1.1. Clan tag
1.2. Position
2. Statistics
2.1. Number of battles
2.2. Win percentage
2.3. WN8
2.4.Top players (tier 10)
2.5. Battles per day
2.6. Personal rating
3.Clan battles
3.1.Battles in the stronghold
3.2. Battles on the global map
3.3. UR Level 8
3.4. UR Level 10
4. Last battle (days)
5. Registration date
6. Available tanks (mandatory presence)
7. Missing tanks (exclude certain tanks from selection)
4.3 Skipping introductory screens
The mod should automatically:
Close welcome windows
Skip tutorial hints
Accept license agreements (if they appear)
Close pop-up promotions / news / events
Close achievement notifications
Priority — the fastest exit to the hangar.
5. Communication with the web part
5.1 Type of communication
One of the options (should be built into the architecture):
HTTP (local server)
or
WebSocket
Command queue
5.2 Received data
The mod should be able to receive:
List of player nicknames
Message text
Rate limits for sending messages
Commands:
start
pause
stop
switch_account
6. Message sending module
6.1 Player search
Opening the personal messages interface
Searching for a player by nickname
Checking that the player exists
6.2 Sending messages
Inserting message text
Sending the message
Handling delays between messages
6.3 Limitations
Configurable delay between messages
Ability to limit the number of messages per session
8. Error handling
The mod should correctly handle:
Player not found
Chat ban
Interface error
Connection loss
Critical client errors
In case of an error:
Log the reason
Move to the next player
Or send status to the web part
9. Account switching
9.1 Conditions for account switching
Message limit reached
Received switch_account command
Error/block
9.2 Switching process
The mod should:
Log out of the current account
Return to the authorization screen
Select the next account (based on data from the web part or config)
Log in
Repeat initialization (skip windows, graphics)
10. Logging and statuses
The mod should maintain logs:
Successful messages
Errors
Account switches
Status of the current task
Logs should be:
In a local file
Or transmitted to the web part
11. Configuration
The mod should have a configuration file:
Delays
Limits
Graphics settings
Connection parameters
Format: JSON / YAML
12. Stability requirements
Operation in long sessions (several hours)
Operation in multiple threads (game clients)
No memory leaks
Correct operation after client crashes
13. Security
No storage of passwords in plain text
14. Result
The result is a client mod that:
Automatically launches the game
Automatically reaches the hangar
Automatically sends personal messages
Automatically switches accounts
Is controlled externally (web part)
15. Additional (by agreement)
"No interface" mode
Auto-recovery after crashes