Commands & Features
FFU Bot is a Discord bot built for the community, covering Hearts of Iron IV nation reservations, game balancing, player statistics, game history, signups, and a few utility/fun extras.
Help / Guide Command
| Command | Description | Permission |
|---|---|---|
/guide | Interactive, in-Discord guide to every command, grouped by category, with a dropdown to switch topics and step-by-step setup walkthroughs for the Nation Reservation and Signup systems. | Everyone |
Run /guide for an overview, or /guide topic:<category> to jump straight to a section (e.g. topic:Nation Reservations).
Nation Reservation System (Multi-Game)
The bot includes a nation reservation system designed for HOI4 (Hearts of Iron IV) multiplayer games. This system allows players to reserve countries for upcoming game sessions and supports managing multiple game sessions concurrently.
Slash Commands
| Command | Description | Permission |
|---|---|---|
/game setup | Sets up a new game session with a unique ID, specifying reserve/request channels, game name, date, role to ping, and optional 30-min pre-game reminder (DM, channel, or none). Optionally pass a template to use custom factions/countries instead of the default WW2 setup. | Administrator |
/game listgames | Lists all currently active game reservation sessions. | Everyone |
/game reserve | Reserves a nation for the user in a specific game session (game_id). Uses autocomplete for game ID and nation. | Everyone |
/game clear | Clears the reservation for a specific nation in a specific game session (game_id). Uses autocomplete. | Administrator |
/game update | Forces an update of the reservation message for a specific game session (game_id). Uses autocomplete. | Administrator |
/game setdate | Changes the date for a specific game session (game_id). Uses autocomplete. | Administrator |
/game deletegame | Deletes a specific game session (game_id) and its configuration. Its backup snapshot is always preserved. Uses autocomplete. | Administrator |
/game finish | Logs the winning winning_faction (or “Draw”) plus an optional text summary for a game session (game_id) to the game history. Uses autocomplete. | Administrator |
/game analyze | Analyzes team balance for a specific game session (game_id) based on current reservations and player stats. Uses autocomplete. | Administrator |
Custom Templates (Alt-History Games)
The /template command lets admins build a reusable, custom set of factions and countries — for alt-history or non-WW2 games — that can be picked from the optional template field of /game setup instead of the default WW2 nation structure.
| Command | Description | Permission |
|---|---|---|
/template create | Creates a new empty template with a unique name. | Administrator |
/template addfaction | Adds a faction/alliance (e.g. “Entente”) to a template. | Administrator |
/template removefaction | Removes a faction and all of its countries from a template. Uses autocomplete. | Administrator |
/template addcountry | Adds a custom country/nation to a faction (auto-created if new). Optional emoji, coop_slots, and multi_slot (allows multiple players to reserve it, like “Filler”). | Administrator |
/template removecountry | Removes a country from a faction, optionally cascading to its Co-op slots (remove_coop_slots). Uses autocomplete. | Administrator |
/template delete | Deletes a template entirely. Uses autocomplete. | Administrator |
/template list | Lists every template defined in the server with faction/country counts. | Everyone |
/template view | Shows the full faction/country breakdown of a template. Uses autocomplete. | Everyone |
How It Works
- Setup: An administrator sets up a new game session using
/game setup, providing a uniquegame_id, reserve channel, request channel, game name, date, and the role to mention. - Reserve List: The bot posts and maintains a message in the specified reserve channel showing available nations grouped by faction for that specific game session.
- Making Reservations: Players can reserve nations for a specific game session either via
/game reserveor by typing the country name/alias in the game’s designated request channel. - Automatic Updates: The reservation list message is updated automatically whenever reservations change for that game.
- Team Analysis: Administrators can use
/game analyzefor a specific game to get a detailed breakdown of team composition, average player ratings, and win probability estimates. - Finishing a Game: Once a game concludes,
/game finishrecords the winning faction and an optional summary to the game history.
Country Aliases
The system supports numerous aliases for countries (e.g., “usa”, “america” for United States). Players can type “unreserve” in the request channel to clear their reservation for that specific game.
Game Balancing System
The bot includes a sophisticated team balancing system for Hearts of Iron IV multiplayer games. This system analyzes player statistics and creates optimally balanced teams for competitive play.
| Command | Description | Permission |
|---|---|---|
/balance-game | Creates balanced teams using all available players from the stats database. | Everyone |
How the Balancing System Works
- Player Statistics: The system uses a comprehensive player database with skill ratings in various categories.
- Team Assignment: Players are distributed between teams using a snake draft algorithm to ensure balanced skill levels.
- Faction Optimization: The system analyzes player performance with different factions and optimizes team-faction assignments.
- Country Assignment: Countries are assigned to players based on their skill level and position within the team, with automatic co-op positions when there are more players than major countries.
Player Statistics System
| Command | Description | Permission |
|---|---|---|
/playerstats add | Adds a new player to the statistics database with ratings for various skill categories | Administrator |
/playerstats update | Updates an existing player’s statistics in one or more skill categories | Administrator |
/playerstats delete | Removes a player from the statistics database | Administrator |
/rating | Shows your player skill scores and overall rating from the stats database | Everyone |
The system tracks seven skill metrics per player (Micro, Macro, Gamesense, Comms, Coop, Variety, Mental), automatically calculating an average and a weighted overall rating. This data also powers the game balancing feature above.
Player Roasting System
| Command | Description | Permission |
|---|---|---|
/worst-player | Randomly selects a player and humorously critiques their weakest skill | Everyone |
Fun Commands
| Command | Description | Permission |
|---|---|---|
/ragebait | Posts a random rage-inducing GIF. | Everyone |
IC Graph System
The bot features an interactive Industrial Capacity (IC) graphing system for Hearts of Iron IV games, allowing users to visualize and compare military and naval production over time.
| Command | Description | Permission |
|---|---|---|
/graph view | Display interactive IC graphs with configurable options using data from uploaded files | Everyone |
/upload-file | Upload a .txt file to the IC graph data folder for use with the graphing system | Administrator |
/graph tool | Get the Hearts of Iron IV graph tool download link for personal use | Everyone |
Graphs support toggling between Military/Naval metrics, Daily/Cumulative views, aggregated factions vs. individual countries, and interactive country selection.
The standalone desktop tool used to generate these IC data files is available on GitHub: HOI4 Graph Tool Releases.
Game History System
| Command | Description | Permission |
|---|---|---|
/history log | Records a completed game result with winner (Allies/Axis/Draw), game name, and optional notes | Administrator |
/history list | Displays recent game results with per-faction win counts, optionally with a full roster breakdown (detailed:true) | Everyone |
Signup System
Allows administrators to manage sign-up sheets for upcoming games so players can register their interest.
| Command | Description | Permission |
|---|---|---|
/signup open | Creates a new, named signup session | Administrator |
/signup close | Closes an existing signup session | Administrator |
/signup join | Join an open signup session (autocomplete) | Everyone |
/signup leave | Leave a signup session you joined | Everyone |
/signup list | Show all sessions and their current participant lists | Everyone |
Blame System
A light-hearted accountability feature that lets players publicly blame each other for game losses while tracking a cumulative blame count per-player.
| Command | Description | Permission |
|---|---|---|
/blame | Blame a player with a required reason and optional game reference | Everyone |
Utility Commands
| Command | Description | Permission |
|---|---|---|
/wiki | Search the Hearts of Iron IV wiki — returns a direct link to the search results | Everyone |
/mod | Returns the Steam Workshop link for the community mod | Everyone |