Discord Bot for iRacing Communities

Manage your iRacing league
directly from Discord

SimBot integrates with the iRacing API to handle driver registration, team management, race processing, standings, penalties, and more, all through Discord slash commands.

60+ Slash Commands
12 Feature Categories

What SimBot does

A complete league management platform built into your Discord server.

Driver & Team Management

Register drivers, form teams, handle car assignments, and track rosters across multiple series and seasons.

Live iRacing Data

Pull iRating, safety rating, and license data directly from the iRacing API. Cached in a queue-based system that respects rate limits.

Race Processing

Upload iRacing result files and have them processed automatically into per-driver and per-team standings with full lap data.

Championship Standings

Multi-category standings (Overall, Pro, Am) with configurable points systems (F1, NASCAR, or custom) and drop-race support.

Penalty System

Apply time or points penalties to drivers, with descriptions and reasons. Standings recalculate automatically on any change.

Visual Reports

Generate image-based reports for standings tables, driver lists, and lap charts, rendered as images and posted directly in Discord.

Voice Channel Sync

Automatically create and maintain team voice channels on Discord, organized by series and kept in sync with team rosters.

Hosted Server Tracking

Submit hosted session notifications and reimbursement requests with admin approval workflows and PayPal tracking.

Roster Auditing

Compare your Discord sign-ups against the iRacing league roster to find missing drivers, last-season returnees, or never-registered members.

Car Number Reservations

Reserve specific car numbers per series, prevent duplicates, and manage reservations across your entire league.

Practice Cup Events

Run standalone practice cup races with separate team and free agent registration, independent of the championship series.

Garage61 Lap Times

Query the Garage61 database for fastest lap times by track, car, team, or season. Filter and sort directly from Discord.

Command Reference

All commands use Discord slash command syntax. Commands labeled Admin Only require administrator permissions. Commands labeled Admin require elevated permissions.

Driver Management

7 commands
CommandDescriptionKey ParametersAccess
/driver_signup_ir Sign up as a driver for a racing series series_name, iracing_name, car_number, car_name Admin
/driver_update_ir Update your own driver information within a series series_name, iracing_name, car_number, car_name Admin
/driver_fetch_ir Retrieve information for a specific driver series_name, driver_name, season_number Admin
/driver_fetch_all_ir Retrieve all drivers registered in a series series_name, season_number Admin
/driver_fetch_iratings Retrieve drivers with iRating and safety rating data series_name, season_number, sort, show_discord_username Admin
/admin_driver_signup_ir Sign up a driver on behalf of another Discord user discord_user, series_name, iracing_name, car_number, car_name Admin Only
/admin_driver_update_ir Update any driver's information including car change allowance discord_user, series_name, iracing_name, car_number, car_changes, driver_category Admin Only

Team Management

10 commands
CommandDescriptionKey ParametersAccess
/team_create_ir Create a new team for a series series_name, team_name, second_driver Anyone
/team_update_ir Rename your team series_name, team_name, new_team_name Anyone
/team_add_driver_ir Add a driver to your team series_name, team_name, driver_to_add Anyone
/team_remove_driver_ir Remove a driver from your team series_name, team_name, driver_to_remove Anyone
/team_fetch_ir Get information about a specific team series_name, team_name, season_number Anyone
/team_fetch_all_ir Get all teams in a series series_name, season_number Anyone
/admin_team_create_ir Create a team and assign any driver series_name, team_name, driver_to_add Admin Only
/admin_team_update_ir Update any team's information series_name, team_name, new_team_name Admin Only
/admin_team_add_driver_ir Add any driver to any team series_name, team_name, driver_to_add Admin Only
/admin_team_remove_driver_ir Remove any driver from any team series_name, team_name, driver_to_remove Admin Only

Series Management

3 commands
CommandDescriptionKey ParametersAccess
/admin_series_create_ir Create a new racing series with full channel and role configuration series_name, car_class, sign_up_channel, team_channel, admin_channel, add_role, drop_races, num_team_members Admin Only
/admin_series_update_ir Update series configuration including season number and active status series_name, new_series_name, season_number, car_class, car_change_allowance, is_active, drop_races Admin Only
/admin_series_fetch_ir Get full configuration details for a specific series series_name Admin Only

Standings & Race Results

7 commands
CommandDescriptionKey ParametersAccess
/series_standings_fetch_drivers Get driver championship standings series_name, season_number, category (Overall/Pro/Am), sort_by (total/drops) Admin
/series_standings_fetch_teams Get team championship standings series_name, season_number, category (Overall/Pro/Am), sort_by Admin
/series_standings_fetch_all Get combined standings for drivers and teams across all categories series_name, season_number, sort_by Admin
/series_race_results_drivers Get driver results for a specific race series_name, season_number, race_name, category Admin
/series_race_results_teams Get team results for a specific race series_name, season_number, race_name, category Admin
/series_race_results_fetch_all Get all race results: drivers and teams across all categories series_name, season_number, race_name Admin
/series_race_results_lapchart Generate a visual lap chart showing driver positions throughout the race series_name, season_number, race_name, category Admin

Race Administration

7 commands
CommandDescriptionKey ParametersAccess
/admin_process_race Upload and process an iRacing JSON result file into standings series_name, result_file (attachment), practice_race Admin Only
/admin_set_points_system Configure the points system for a series (F1, NASCAR, or custom) series_name, system_type, custom_scoring Admin Only
/admin_apply_penalty Apply a time or points penalty to a driver for a specific race series_name, race_number, driver_name, description, time_penalty, points_penalty Admin Only
/admin_remove_penalty Remove a previously applied penalty series_name, race_number, penalty_id Admin Only
/admin_delete_race Permanently delete a race and all associated data series_name, season_number, race_name Admin Only
/admin_race_results_recalculate Recalculate standings for a specific race after changes or penalties series_name, season_number, race_name Admin Only
/admin_series_audit_race Identify car mismatches or drivers not signed up in a race result series_name, season_number, race_number Admin Only

Voice Channel Management

3 commands
CommandDescriptionKey ParametersAccess
/admin_series_voice_create Configure voice channel settings for team channels in a series series_name, category, admin_role Admin Only
/admin_series_voice_update Update the voice channel category or admin role series_name, category, admin_role Admin Only
/admin_series_voice_sync Create or update all team voice channels for a series series_name Admin Only

Car Number Reservations

3 commands
CommandDescriptionKey ParametersAccess
/admin_number_reserve Reserve a specific car number (1–999) for a driver in a series discord_user, series_name, car_number Admin Only
/admin_number_release Release a reserved car number by number or by driver series_name, car_number, discord_user Admin Only
/admin_number_list List all reserved car numbers in a series series_name Admin Only

Roster Audit & Role Management

6 commands
CommandDescriptionKey ParametersAccess
/admin_audit_iracing_roster Compare iRacing league roster against signed-up Discord drivers series_name, season_number Admin Only
/admin_drivers_last_season List drivers from the previous season who have not signed up for the current one series_name Admin Only
/admin_never_signed_up List iRacing roster members who have never signed up in the Discord guild series_name Admin Only
/admin_driver_fetch_all Get all users and customer IDs, optionally filtering for missing IDs series_name, missing_customer_id_only Admin Only
/admin_channel_sync_roles Restrict a channel to users who have all specified roles channel, role_1 through role_5 Admin Only
/admin_role_remove_notsignedup Remove a role from all signed-up drivers in the database role Admin Only

Hosted Server Tracking

4 commands
CommandDescriptionKey ParametersAccess
/admin_hostedserver_config Set up channels for hosted server notifications and reimbursements channel_id, reimbursement_channel_id Admin Only
/admin_hostedserver_config_update Update the hosted server channel configuration channel_id, reimbursement_channel_id Admin Only
/admin_hostedserver_update Update a hosted server reimbursement request request_id, new_date, new_cost, reimbursement_amount, is_reimbursed Admin Only
/hosted_server_submit Notify members of a hosted session and submit a reimbursement request when, cost, paypal_email Anyone

Practice Cup Events

7 commands
CommandDescriptionKey ParametersAccess
/pc_race_create Create a new practice cup event with channels and roles race_name, race_description, race_date, race_info_channel, team_owner_role, free_agent_role Admin Only
/pc_race_team_create Create a team for a PC race event race_id, team_name Admin Only
/pc_race_fetch_teams Get all teams registered for a PC race race_id Anyone
/pc_race_team_driver_add Add a Discord user to a PC race team team_id, driver Admin Only
/pc_race_team_driver_remove Remove a driver from a PC race team team_id, driver_to_remove Admin Only
/pc_race_free_agent_register Sign up as a free agent for a PC race event race_id Anyone
/pc_race_free_agents_fetch Get all free agents registered for a PC race race_id Anyone

Garage61 Lap Times

1 command
CommandDescriptionKey ParametersAccess
/laptimes_garage61 Query the Garage61 database for fastest lap times by track, car, team, or season. Results can be grouped by driver or driver and car. track_name_g61, car_name_g61, car_group_g61, team_g61, season_g61, group_laps_g61, num_drivers Admin

How It Works

SimBot follows a consistent lifecycle from league setup to race-day reporting.

01

Configure a Series

An admin creates a series with /admin_series_create_ir, specifying the car class, team size limits, car change allowances, drop race count, and the dedicated Discord channels for sign-ups, team updates, and admin notifications.

02

Drivers Sign Up

Drivers register with /driver_signup_ir, providing their iRacing name, car number, and car. The bot queues a background job to fetch their iRating and safety rating from the iRacing API, with automatic rate-limit handling.

03

Teams Form

Drivers create teams with /team_create_ir and invite teammates. Admins can override team composition at any time. Optionally, voice channels are auto-created per team via /admin_series_voice_sync.

04

Set the Points System

Admins configure scoring with /admin_set_points_system using built-in F1 or NASCAR distributions, or a fully custom scoring table. Drop-race rules are set at the series level.

05

Process Race Results

After each race, admins upload the iRacing JSON result file with /admin_process_race. The bot parses it, matches drivers to registrations, calculates points, handles penalties, and posts formatted results to the designated channels.

06

View Standings & Reports

At any time, admins can pull driver or team standings filtered by category (Overall, Pro, Am) and sorting preference. The bot generates image-based standings cards, race result tables, and lap position charts posted directly in Discord.

Add SimBot to your server

Get SimBot running in your Discord server in a few steps.

1

Invite the bot

Click the link below to open the Discord authorization page. You must have the Manage Server permission on the server you want to add SimBot to.

Add SimBot to Discord
2

Select your server

Choose the server you want to add SimBot to from the dropdown, then click Authorize. SimBot requires the following permissions to function correctly: Send Messages, Embed Links, Attach Files, Manage Channels, Manage Roles, and Read Message History.

3

Create your first series

Once the bot is in your server, use /admin_series_create_ir to create a racing series. You will be prompted to provide a series name, car class, team size, and the Discord channels to use for sign-ups, team changes, and admin notifications.

4

Register your drivers

Drivers can sign up using /driver_signup_ir with their iRacing name and car details. SimBot will automatically fetch their iRating and safety rating from iRacing in the background.