A comprehensive pilot logbook and squadron management plugin for DCSServerBot. Provides military-style record keeping for virtual squadrons including flight statistics, qualifications, awards, and flight plans.
- Pilot Information: Unified pilot view showing service, rank, squadrons, hours, qualifications, and awards
- Pilot Management: Track pilot service branch (RN, RAF, AAC) and rank separately from squadron assignments
- Squadron Management: Create squadrons with service affiliation, CO/XO hierarchy, and member assignments
- Multi-Squadron Support: Pilots can be assigned to multiple squadrons across different services
- Qualifications: Define qualifications with optional expiration, auto-grant based on requirements
- Awards: Create awards with custom ribbon colors, generate ribbon rack images
- Flight Plans: File, track, and manage flight plans with status workflow
- Historical Hours: Import and preserve flight hours from legacy systems
- userstats plugin must be enabled (provides the
statisticstable used for pilot stats) - greenieboard plugin (optional) - enables carrier landing counts for auto-grant qualifications
-
Add
logbooktoopt_pluginsin yourconfig/main.yaml:opt_plugins: - logbook
-
Restart DCSServerBot - the database tables will be created automatically
-
(Optional) Configure the plugin in
config/plugins/logbook.yaml
# config/plugins/logbook.yaml
DEFAULT:
auto_qualifications: true # Enable auto-grant qualifications on requirements met| Command | Description | Role |
|---|---|---|
/logbook stats [user] |
Show pilot flight statistics | DCS |
/logbook pilot [user] |
Show unified pilot info (service, rank, squadrons, qualifications, awards, ribbon rack) | DCS |
/logbook setpilot <user> <service> <rank> |
Set or update pilot service and rank | DCS Admin |
| Command | Description | Role |
|---|---|---|
/logbook squadron list |
List all squadrons | DCS |
/logbook squadron info <squadron> |
Show squadron details | DCS |
/logbook squadron roster <squadron> |
Show squadron roster with stats | DCS |
/logbook squadron create <name> <service> [abbreviation] [description] |
Create a new squadron | DCS Admin |
/logbook squadron edit <squadron> [name] [abbreviation] [service] [description] [logo_url] |
Edit squadron details | DCS Admin |
/logbook squadron delete <squadron> |
Delete a squadron | DCS Admin |
/logbook squadron assign <squadron> <user> [position] |
Assign pilot to squadron | DCS Admin |
/logbook squadron remove <squadron> <member> |
Remove pilot from squadron | DCS Admin |
/logbook squadron setco <squadron> <member> |
Set Commanding Officer | DCS Admin |
/logbook squadron setxo <squadron> <member> |
Set Executive Officer | DCS Admin |
Note: Pilots can be assigned to multiple squadrons. Service and rank are properties of the pilot (set via
/logbook setpilot), not the squadron assignment.
| Command | Description | Role |
|---|---|---|
/qualification list [user] |
List qualifications or pilot's qualifications | DCS |
/qualification info <qualification> |
Show qualification details | DCS |
/qualification create <name> [description] [aircraft_type] [valid_days] |
Create qualification | DCS Admin |
/qualification delete <qualification> |
Delete qualification | DCS Admin |
/qualification grant <user> <qualification> |
Grant qualification to pilot | DCS Admin |
/qualification revoke <user> <qualification> |
Revoke qualification from pilot | DCS Admin |
/qualification refresh <user> <qualification> |
Refresh expiration date | DCS Admin |
/qualification expiring [days] |
List qualifications expiring soon | DCS Admin |
| Command | Description | Role |
|---|---|---|
/award list [user] |
List awards or pilot's awards | DCS |
/award info <award> |
Show award details | DCS |
/award ribbon [user] |
Generate ribbon rack image | DCS |
/award create <name> [description] [ribbon_colors] [image_url] |
Create award | DCS Admin |
/award delete <award> |
Delete award | DCS Admin |
/award grant <user> <award> [citation] |
Grant award to pilot | DCS Admin |
/award revoke <user> <award> |
Revoke award from pilot | DCS Admin |
Note: Flight plan commands have been moved to the separate
flightplanplugin with enhanced IFR-style features, F10 map visualization, and OpenAIP integration. Stores/logistics commands are in thelogisticsplugin.
Qualifications can be automatically granted when pilots meet specified requirements. Define requirements as JSON when creating a qualification:
/qualification create name:"Carrier Qualified" valid_days:90
Then set requirements in the database logbook_qualifications.requirements column:
{"flight_hours": 50, "carrier_landings": 10}Supported requirement keys:
flight_hours- Total flight hourstotal_kills- Total killsdeaths- Total deaths (usedeaths_maxfor maximum)takeoffs- Total takeoffslandings- Total landingscarrier_landings- Carrier landings (requires greenieboard plugin)
Awards can have custom ribbon colors defined as a JSON array of hex colors:
/award create name:"Distinguished Flying Cross" ribbon_colors:'["#0000FF", "#FFFFFF", "#FF0000"]'
Use /award ribbon to generate a ribbon rack image showing all of a pilot's awards.
Note: Ribbon generation requires PIL (Pillow), numpy, and matplotlib libraries.
A migration script is included for importing data from the Joint Strike Wing's dcs_server_logbook:
python plugins/logbook/scripts/migrate_from_dcs_server_logbook.py \
--sqlite-path /path/to/mayfly.db \
--slmod-path /path/to/SlmodStats.lua \
--postgres-url "postgres://user:pass@host:5432/db"Options:
--dry-run- Preview migration without making changes--verbose- Show detailed progress
The migration preserves all historical flight hours using a GREATEST() function in the stats view, ensuring pilots never see fewer hours after migration.
The plugin creates the following tables:
logbook_pilots- Pilot service branch and ranklogbook_squadrons- Squadron definitions with service affiliationlogbook_squadron_members- Pilot-squadron assignments (many-to-many)logbook_qualifications- Qualification definitionslogbook_pilot_qualifications- Granted qualificationslogbook_awards- Award definitions with ribbon imageslogbook_pilot_awards- Granted awardslogbook_stores_requests- Squadron stores/equipment requestslogbook_historical_hours- Imported historical flight time
And one view:
pilot_logbook_stats- Aggregated pilot statistics
Note: Flight plans are managed by the separate
flightplanplugin. See the flightplan plugin README for details.
Player (from DCSServerBot core)
└── logbook_pilots (1:1) - service, rank
└── logbook_squadron_members (1:many) - squadron assignments
└── logbook_pilot_qualifications (1:many)
└── logbook_pilot_awards (1:many)
└── logbook_historical_hours (1:many)
Squadron
└── service (RN, RAF, AAC, etc.)
└── members (many pilots)
└── CO/XO references