rF2 Log Analyzer ver. 2.1.032

Made by Nibo. You can contact me at unhappyhardcore@gmail.com

Get updates and news in this thread rFactor2 Log Analyzer ver. 2 at https://forum.studio-397.com

Special thanks for support to wrxxy, Outlaws Racing, Scott, Tero Kokko, Knackko, Marcos Gil, Renátó Kádár, Michael B, AMSUnofficial.net, Jaileh, James S., Emanuele P., Jorge, Lajos P., Peter Russell, Tambe Zuri, M. Rhodes, Trevor Richens, Torsten S., Darren M., Richard S. and Chris M. from Downunder Series.

This application is free to use. But you can not sell it.


Auto refresh: True
Refresh period: 10 min
Last refresh: 02 Jun 2024, 15:46



  • Added session duration in laps or hours/minutes to session report title.
  • Improved track country flag image vertical alignment.


  • Fixed formatting for points sum in championship tables if floating point numbers used in points system.


  • LMU log files after patch #3 include lap top speed and virtual energy values. Added top speed data to multiple tables in reports. Added virtual energy to Stints tables. Only Hypercars have virtual energy data.
  • Improved Championship Create/Edit page layout. Added image hints for some options.
  • Stints fuel sum value now always includes fuel used during out lap (by adding average fuel used per lap).
  • Multiple other minor fixes.


  • Repackaged with Python 3.11.


  • Fix for an error when some driver has BestLapTime value but no Lap tag values.
  • Fixed an error when changing a flag for tracks with non-alphanumeric symbols.


  • Added position column color coding for endurance car classes from Le Mans Ultimate and rF2 (Hyper, LMP1, DPi, LMP2, LMP3, GTE, GT3, ES_LMP2, ES_GTE, ES_LMP3) in Results Viewer reports and Track Records tables. Custom championship classes will override this color coding in championship race reports.
  • Added automatic unique CSS class name to position badge element based on car class. For example: "uk-badge-class-Hyper". Optionally set css class colors in app.css file to customize car class color badges.


  • Fixed tire wear not showing for Le Mans Ultimate logs.


  • Added support for Le Mans Ultimate root folder path. Added LMU track names for default track flags assignment.


  • Added filter by track name or by server name to log selector pop-up when assigning log files to championship races.


  • Fixed an error with abnormal log files when there is best lap time present, but no per lap data for driver.
  • Added optional iframe to Live Timing page above timing table. Can be used to embed animated track maps from other live timing plugins, for example. Look for new options in live_timing_settings.json: "show_iframe" - set to 1 to turn iframe on, "iframe_src" - link to your page to appear in iframe, "iframe_style" - iframe style css options can be added to scale iframe content on page (for example, "height:300px; width:300px; transform: scale(0.75);"). If you have multiple servers on Live Timing page, iframe will be the same for all of them.
  • Fixed a problem in Dedi Competitions when track name has double spaces in its name.


  • Improved incident count in race reports for vehicle contacts. Vehicle contacts with self are ignored. Contacts between two cars count as one for each car instead of two for each car before.


  • Added championship option "Hide event columns in standings tables".


  • Added optional columns to Records tables: Car Type, Car Class, Team Name, Category, Fuel (in percent, at the end of the record lap, if available).
  • Added "Clone Competition" button for Dedi competitions.


  • Added position (numeration) column to records table on Track Records page.
  • Added options to hide Championship and Competition buttons in top menu for non-admin users.
  • Added "Show both driver vehicle and team name in driver standings" championship option.


  • r2la will now log only first 100 "contacts with immovable" for each driver per session, to avoid memory problems with logs with "junk" contact entries.


  • Added time gap for lapped cars that finished to Time/Retired column in Race Results table.


  • Fixed an error on "refresh" if driver has BestLapTime tag value, but no Lap tags.


  • Fixed a bug in car identifier selection for GT3 cars.
  • Added latest S397 track names to automatic country/flag id database.


  • Added an option to add Google site verification content string on Options page. It will be added to "meta" tag on every page.
  • Added a link to result report for competition results.


  • Added two data calls at http://your-r2la-address:port/report/get_latest_json" and http://your-r2la-address:port/report/get_latest_xml". Xml returns latest raw xml log file. Json returns latest r2la report data in JSON format.


  • Added .cellbg_top5, .cellbg_top10 css classes for cell backgrounds for top5, top10 finish positions and .cell_fin_pos class for finish position text span in cell top left corner in Championship Standings table.
  • Added team_standings and driver_standings css classes to standings tables.


  • Added option "Show AI driver percentage in session header and AI icons near driver names in session results".
  • Added warning message when log file contains multiple Driver tags with the same name.


  • Championship option "Team with this name will receive no points" is extended to: "or teams with names containing this substring". This is to enable no points option for multiple teams.


  • Added filter to Track Records pages. Filter records on page by car Category, CarType, CarClass, TeamName, session name, server name, date range.


  • Added "Show records only after date" option to Options page. Default off. If turned on, r2la will only find track records after set date.


  • Added "Team" column to tables on "Fuel/Tires" tab in session reports.


  • Tracks that are connected to other tracks are now hidden in selector on Records page.


  • Added "Team points through season" graph to Championship Stats page.


  • Fix for error in Competitions when some log file has empty TeamName tag.


  • More utf-8 fixes.


  • Fixed an error when championship option "Reverse race order display in standings tables" is on.


  • Ported application from Python 2.7 to Python 3.10. Latest web2py.
  • Added optional pagination to Results Viewer. Greatly increases Results Viewer page performace when number of log files is high. Default is off, 100 logs per page. You can turn it on and set number of logs per page on Options page or using drop-down menu on Results Viewer page.
  • Drivers with empty Name tag in xml now assigned "Noname Driver1", "Noname Driver2", etc, names inside r2la (not changing xml file itself).
  • r2la should now correctly display all utf-8 symbols found in xml (umlauts, etc).
  • Improved Help page.


  • Added automatic color badges to car class names and colors to position circles in LiveTiming table when number of car classes in session is more then 1 (and less then 9). Colors are hardcoded.


  • Fixed an error that could appear with some "abnormal" xml log files lately ("Driver" section without "BestLapTime" tag, but with lap times present in "Lap" tags).


  • Added jsonp call for dedi competition results. At http://your-r2la-address:port/dedi_comps/get_comp_jsonp. You should pass 'cid' (competition id) as request var for xml file name. Example:
        url: 'http://your-r2la-address:port/dedi_comps/get_comp_jsonp',
        type: 'GET',
        dataType: 'jsonp',
        crossDomain: true,
        data: {'cid': '1'},
        success: function (data, textStatus, xhr) {
        error: function (xhr, textStatus, errorThrown) {


  • Fixed "Auto refresh" to work correctly in all situations.
  • Added "Used in Competition" and "Not used in Competition" options to Results Viewer filter.


  • Added "Contains Track Record" and "Does Not Contain Track Record" options to Results Viewer filter.


  • Added session info to Track Records.
  • Tire data in Track Records is now visible or hidden per session type, depending on settings on Options page (default - visible for all sessions).
  • Fixed error on r2la_settings.json import, when importing track connections with track not currently present in log files. This connections will not be imported.
  • Fixed error when deleting track connections on Option page.


  • Added mass penalties to batch file editor.


  • Added automatic filtering of non-alphanumeric characters to manual Team and Class name creation widgets to prevent app errors. Non-alphanumeric characters are not allowed in Team or Class names in Manual mode.


  • Fixed error on Records page if there is no tire compound info in xml (rF1, Automobilista).


  • Fixed a bug where importing r2la_settings.json caused error if old results directory no longer exists.
  • Added two jsonp calls:
    • For track records. At http://your-r2la-address:port/tracks/get_records_jsonp. You should pass 'track_name' as request var for track name. Example:
          url: 'http://your-r2la-address:port/tracks/get_records_jsonp',
          type: 'GET',
          dataType: 'jsonp',
          crossDomain: true,
          data: {'track_name': '24 Heures du Mans 2018'},
          success: function (data, textStatus, xhr) {
          error: function (xhr, textStatus, errorThrown) {
    • For session reports. At http://your-r2la-address:port/report/get_report_jsonp. You should pass 'file_name' as request var for xml file name. Example:
          url: 'http://your-r2la-address:port/report/get_report_jsonp',
          type: 'GET',
          dataType: 'jsonp',
          crossDomain: true,
          data: {'file_name': '2020_06_27_08_16_10-54R1.xml'},
          success: function (data, textStatus, xhr) {
          error: function (xhr, textStatus, errorThrown) {


  • Added tire compound info to Track Records tables.
  • Added player's overall number of laps, distance and time to "About" page in non-DEDI mode.


  • Added "Server Name", "Assigned To Championship", "Not Assigned To Championship" and "Championship Name" filter options to Results Viewer filter.
  • Added "Select all" button to Results Viewer to quickly select checkboxes for all logs in Viewer. It will be visible when "Select multiple" is pressed.
  • Added "Remove logs not assigned to championships" button to "Utils" drop-down menu in Results Viewer.
  • Added "Rules" tab to Championship page with some championship parameters and points system visible for non-admin users.


  • Fixed "Subtract penalty points from driver points" championship option. Now it works for all (driver/team/class) standings tables.
  • Added LiveTiming option to show speed in mph by default. Default option is Off. To turn it On, change "show_mph" parameter from 0 to 1 in rF2 Log Analyzer ver. 2.058.33\web2py\applications\r2la\live_timing_settings.json file.


  • Added optional AI Fuel (in liters) and AI Tire Wear (in percent) columns to LiveTiming. Default option is Off. To turn it On, change "show_ai_fuel_data" and "show_ai_tire_wear" parameters from 0 to 1 in rF2 Log Analyzer ver. 2.058.31\web2py\applications\r2la\live_timing_settings.json file. Works only for AI cars.
  • Added optional Average Lap Speed column to LiveTiming. Default option is Off. To turn it On, change "show_avg_lap_speed" parameter from 0 to 1 in rF2 Log Analyzer ver. 2.058.31\web2py\applications\r2la\live_timing_settings.json file.
  • Fixed a bug with color of fastest lap time in LiveTiming in race mode.
  • Added "Live Timing troubleshooting" section to Help page.
  • Added "Reverse championship order" admin button to championship page (top left).
  • Fixed a problem when changing championship list type by admin was not visible for regular users.


  • Added "Finished" checkbox option to championships. Championships marked "finished" are moved to "Finished championships" list below "Active championships" list on Championship Manager page.
  • Added option to display "Active championships" as grid of panels (similar to "Dedi competitions" page). Admin can select list or grid option clicking on icon in top left corner on Championship Manager page.
  • Added "Image link" option to championships. This image will be displayed in championship "card" on Championship Manager page in "grid" mode. "Image link" must be a string link to image on this server (you can put images into rF2 Log Analyzer ver. x/web2py/applications/r2la/static/images/ folder) or some other server, example http://*this server IP*/r2la/static/images/my_image.png or http://i.imgur.com/xxxxxxx.jpg
  • Fixed championship tables even row transparent background when table overflows main div area.
  • Empty CarType tags in xml (because of bugs in some mods), now will be displayed as "EmptyCarType" in r2la.
  • You can customize race/qual/practice badge colors by finding and changing css classes .uk-badge-race .uk-badge-qual .uk-badge-practice in rF2 Log Analyzer ver. 2.058.31\web2py\applications\r2la\static\css\app.css file.


  • Added championship option "Show points gap to leader column in standings tables". Default "Off".
  • Added championship option "Show points gap to next driver column in standings tables". Default "Off".
  • Added "Toggle Race Navbar" button to championship page to hide race navbar/list from page (button with "Up"/"Down" chevron icon near "Check for new logs" button). Useful if your championship has very large amount of races.
  • Added championship option "Hide race navbar by default". Default "Off". If turned "On", race navbar/list on championship page will be hidden by default for all users. Users can still open it clicking on "Toggle Race Navbar" button.
  • Short race name in championship standings tables headers is now hyperlink to race report on championship page.
  • "Race results" title text on championship race report page is now hyperlink to that same report page. Can be copied and shared.
  • Added latest released track names for automatic flag assignment.


  • Added championship option "Show points sum column on the left side of standings tables". Default "Off".
  • Added championship option "Reverse race order display in standings tables". Default "Off".


  • Fixed Track Records refresh on car identifier change.
  • Added "Hide/Show AI times" button to "Track Records" pages (works when "Show AI record times" option is On).
  • Added unique (per championship) css classes for car class badges on championship race results page. You can change class badge color by adding values at the end of app.css file. It should look like this: .uk-badge-class0-championship_name {background-color: #your_color}. Where "championship_name" is the name of the championship for which you need to change class badge color, replace "spaces" in championship name with "_" (underscore) symbols. You can change class badge colors for all championships by changing values for classes .uk-badge-class0 (0 to 4) in app.css file.


  • Championship standings tables cell colors are now customizable through app.css classes. Open rF2 Log Analyzer ver. 2.058.27\web2py\applications\r2la\static\css\app.css file in text or code editor and change hex color codes for classes that start with "cellbg_" prefix ("cellbg_1st", "cellbg_2nd" and so on). Save changes. You might need to press CTRL+F5 on r2la page in your browser to pick up changes made to css file.
  • Added championship option "Only show driver position in driver standings (cell center)". Default - off.


  • Added "Points through season" graph to championship "Driver Stats" tab (for overall standings only). This graph will not be visible on exported championship standings html page.


  • Added "Drop worst results only after X races" option to championship. Default is 0, which means worst results will be dropped as soon as possible, as was in previous versions of r2la.


  • Added class name/position column to "Qual Results" table on championship race report page.
  • Added togglable CarType hints to championship Manage Classes widget.


  • Fixed error in championship manager when some driver was in Qual log, but not in Race log and "Team championship" option was set to "VehName".
  • Filenames of all xml files removed by r2la are now logged in web2py/r2la_removed_files.log file.


  • Added an option "Points per position gained over starting spot" to championship points system. Works for both Overall and Classes tables.
  • Comments added to points will now always be visible in pop-up area in standings tables. Previously comments were only visible if manual points override was on.


  • Added championship option to automatically subtract penalty points from driver points sum in standings table. Look for "Subtract penalty points from driver points sum" option on "Create/Edit Championship" page (default "Off"). Team standings are unaffected by this. If you need to subtract penalty points also from team standings, leave new option on Off and subtract points from driver results with manual correction.
  • Fixed error when exporting championship data to json (when r2la is hosted publicly).


  • Added filtering to Results Viewer. Press "Filter" button and choose your filtering options. You can filter by one or multiple options: session, track, your car class (leader car class for DEDI), logs older than date, logs newer than date. When filter is active, "Filter" button will be highlited in blue. Clicking on "Results Viewer" in top menu will always show logs without filtering. Filter is working for every client(request) individually through query string. You can save link with filter query and bookmark it or share it with others. In DEDI mode by default filter button is invisible for non-admin users, admin can turn it on for them at "Options" page. There will be no filtering in pop-up log selector when you assign race result in Championship.
  • You can now use SHIFT key to select multiple consecutive log files when clicking on log file row (not on selection checkbox) when "Select multiple" button is activated.
  • "Reload" button for finished DEDI Competitions should now work.
  • Fixed names column in place when scrolling horizontally on Manage Teams and Manage Classes championship pages.
  • Added option to export championship tables to json. Press "Export standings" on championship page, then "Export championship tables to json". Json will be opened in browser, you can save it with browser menu "Save as". You might use any json beautifier to make it more readable.
  • Added jsonp call at championships/export_standings_jsonp?cid=*championship id* to get Championship Standings and Stats tables data with cross-domain ajax request from your other server. cid should be defined as championship ID. You can find championship ID in a query string when you open championship page.


  • Added an option "Minimum classification position to receive bonus for fastest lap" to championship points system. It allows to implement F1 2019 rules (set it to 10). When set to 0 - option is "Off" (Default).
  • Fixed error with exported DEDI Competitions results with "#" symbol in competition name. "#" will be filtered from created xml file name now.


  • Added export of DEDI Competitions results to "fake" xml file. You can then assign this reports as results in your championships. Press "Export to XML" button for some competition, this will create "Practice" xml report with competition results in your default .../Results directory and import it in r2la. You will see it in Results Viewer with the same name as competition plus "_". Report will be dated by competition end date.
  • Allowed zero fuel and tire wear for DEDI competitions
  • Added "server_name" to get_server_data_jsonp output. Added "mServerName" to get_full_server_data_jsonp output, in "mScoringInfo" section.


  • Added all new words from top menu to internationalization. Read "Help" -> "Internationalization" for details.
  • Added possibility to clone championships. Press "Clone" button for some championship in the list on "Championships" page. You will have 2 options: "Clone with race results assignments preserved" and "Clone without results assignment". Cloned championship will have "cloned" added to its name, you can change name later with "Edit championship".
  • Allowed negative manual override points.
  • Fixed override comments not showing with 0 points.


  • Added ability to assign penalty points to drivers per race (like F1 driver penalty points for causing incidents) and add comments for manual override reason. Press "More..." button in race report table "Manual" column header to add/remove penalty points and comments.
    Penalty points are visible in driver standings table (lower right corner in a cell). Comments are visible in pop-up when you click on driver points cell.


  • Live Timing now shows server name in server selection buttons (for rF2 only).
  • Added started laps number to "Laps" column on Records page.
  • Sortable column headers are now marked with blue color on mouse hoover instead of arrow symbols.
  • Added sorting to "Driver stats", "All time stats" and "Car stats" tables.
  • Cell background for DNF in championship tables now is always purple, no matter if driver received points or not.


  • Added Championship options to hide driver/team/stats overall and class tables.
  • Added "Clone to edit"/"Edit" buttons to Championship Race page. They have the same function as in Results Viewer. They are in "Export/Utils" dropdown menu. You can automatically assign cloned file as race result when clicking "Clone to edit" at this page. Cloned files now have "Clone" badge in session results header, visible for admin only.
  • "No-qualification" race option on "assign race result" pop-up now correctly shows value that is set in race options.
  • Race country flag will not be overwritten when you assign race results if no flag is assigned to track before.
  • Fixed manual Championship Classes and Teams names being removed from Championship when "Save changes" is pressed on Edit Championship page (without changing Class or Team options).
  • Fixed an error in visibility filter for fuel/tire info.
  • Added "Help" drop-down button in top menu for logged admin in DEDI mode.


  • Added sorting options to Pit Stops Summary table (sort by position in table, driver name, lap or pit stop number).
  • Added some more flags.
  • Added another jsonp call at live/get_full_server_data_jsonp to get Live Timing server/driver data with cross-domain ajax request. This one outputs all data available to LiveTiming.


  • Added possibility to edit TeamName and CarClass in results editor.
  • Added championship option "Team with this name will receive no points".
  • Fixed error message on Track Records page if track has logs but there is no lap time in that logs.


  • Bonus points for completing some percent of leader distance now work correctly for classes.
  • Separated "DNS" from "All drivers (even DNF) receive no less then this points" option into checkbox, default value is "On" as before.
  • Added checkbox for "Driver must finish the race (not DNF) to receive bonus for completing percent of leaders distance", default is "Off".
  • Added checkbox for "Driver must finish the race (not DNF) to receive classification points", default is "Off" as before.
  • Driver list in Class Team Standings tables now shows only team drivers for this class (for cases when team has cars in multiple classes).


  • Added bonus points for starting the race and for completing some percent of leader distance.


  • Added an option to assign user created points presets by race. Go to "Edit race" and select points preset name for that race. You can create and save your custom points presets on "Edit champoinship" page.


  • Added an option to sort Track Records by Date. Press "Date" or "Time" column headers to switch between sorting options.
  • Added more track names for automatic flag assignment.


  • Fixed an error in calculation of manual override points when manual points are 0.


  • Optimized background refresh when editing results. Should be faster now.
  • Added kmh/mph switch button to Live Timing.
  • Added "show_tire_data" parameter to live_timing_settings.json. Set it to 0 to hide tire compound data in Live Timing. Default value is 1.
  • Added an option to show "Unofficial/Official" prefix for Race Results and Championship Standings. Check "Show "Unofficial/Official" prefix" championship option, then turn "Result is unofficial" checkbox on/off for every race on "Edit race" page as you need (default value for "Result is unofficial" is "On").
  • Added "View standings" words from "Hosted competitions" page to languages\default.py file for translations.
  • Added "Last race with result" and "Team standings" options for "Default page" in Championship.
  • Added "Copy" button to race columns at Championship "Manage Teams" page to copy teams from previous race with one click.
  • Added "Points for consistency" to Championships points system. Top N drivers from "Average deviation from drivers fastest lap" table will receive this bonus.
  • Added jsonp call at live/get_server_data_jsonp to get Live Timing server/driver data with cross-domain ajax request from your other server (may be used to create live servers/tracks/drivers widget). Data is updated once in 5 seconds, I do not recommend to request it more frequently. Example call:
        url: 'http://your-r2la-address:port/live/get_server_data_jsonp',
        type: 'GET',
        dataType: 'jsonp',
        crossDomain: true,
        data: {},
        success: function (data, textStatus, xhr) {
        error: function (xhr, textStatus, errorThrown) {
    Returned data object structure is:
    server_names_list: ['Server Name1', 'Server Name2', ...],
    server_data: {
        "Server Name1": {
            session: session code (0=testday 1-4=practice 5-8=qual 9=warmup 10-13=race),
            track_name: "Track Name",
            vehicles: [
                {best_lap_time: lap time in seconds,
                driver_name: "Driver Name1",
                vehicle_class: "Vehicle Class1",
                vehicle_name: "Vehicle Name1"},
                { ... },
        "Server Name2": { ... },


  • Added championship option to turn off "Ignore manual correction PTS when searching for worst result". Default was and is "On".
  • Added top speed column to Live Timing.
  • Added simple single player telemetry recording and viewer (works for rF2, rF1 and Automobilista).
    • You will need rFactor2SharedMemoryMapPlugin for rF2. Extract rFactor2SharedMemoryMapPlugin64.dll into your rFactor 2\Bin64\Plugins directory, start rF2, go into Options/Plugins and turn ON rFactor2SharedMemoryMapPlugin64.
    • For rFactor1 and Automobilista you will need rFactorSharedMemoryMap plugin 2.0 or modified version of it. Either one should work for telemetry.
    • r2la telemetry does not feature all data channels. If you need detailed rF2 telemetry analysis, use complete telemetry viewing systems, like DAMPlugin + "Motec i2".
    • To record telemetry data, start r2la by r2la_telemetry.bat. Then start rF2 and as soon as your car leaves the pit lane, data will be recorded. You don't need to start web browser to record telemetry. Telemetry data will be written to r2la database every time you return to pits.
    • You can view list of recorded telemetry laps by clicking "Live" -> "Telemetry" on top r2la nav panel. Click "Open" to open Telemetry Viewer for selected lap.
    • You can pan graphs by dragging them with LMB and zoom with mouse wheel. You can overlay other lap graphs on top of opened one or add another lap graphs to Telemetry Viewer page.
    • Recorded telemetry data will be visible at "Stints" tab in session xml report. Press "Show telemetry data" button there.
    • You can record telemetry for AI car (only for rF2). Set record_ai value to 1 in rF2 Log Analyzer ver. 2.058.5\web2py\applications\r2la\telemetry_settings.json. In-game add 1 AI car in options or on track. When AI car will leave the pit lane its data will be recorded. You have to wait for AI to return to pits for data to be recorded into database.
    • rF1 and Automobilista have some telemetry data channels at 0.
    • While recording r2la telemetry should not have effect on rF2 performance, I do not recommend using it when you are participating in important online events. Better use it for offline test sessions only.
    • Telemetry data is not transferred between r2la versions on updates.


  • Added options to hide tire/fuel data for Practice, Qualy or Race reports.
  • Added pace.js page load progress bar.
  • Added an option to include your custom js files in r2la pages. Use form at Options page to add your js files.


  • Added track positions widget to LiveTiming.
  • Fixed LiveTiming error with non-ascii symbols. But they will not be displayed correctly.
  • Added LiveTiming suport for rFactor1 and Automobilista. You need to use modified version of rFactorSharedMemoryMap plugin. Download it here. Put rFactorSharedMemoryMapDedi.dll into rFactor or Automobilista\Plugins directory. Remove rFactorSharedMemoryMap.dll if you had it there. rF1 mode limitation - human players will have AI status when standing in pits, no vehicle names, no tire compounds info.
  • Added optional support for global memory reading for LiveTiming with rFactor2. This is only needed in case when multiple rF2 servers are started from different windows user accounts and LiveTiming is not working.
    • Set read_global_memory value to 1 in rF2 Log Analyzer ver. 2.058.2\web2py\applications\r2la\live_timing_settings.json.
    • Set rFactor2SharedMemoryMapPlugin64.dll option DedicatedServerMapGlobally to 1 in all your your player/CustomPluginVariables.JSON files.
    • You need to start r2la_live_timing.bat from admin account or from non-admin account by pressing SHIFT+RMB and selecting "Run as different user" and entering windows admin account name and password.
    • You need to start rF2 servers from admin account or from non-admin accounts by pressing SHIFT+RMB and selecting "Run as different user" and entering windows admin account name and password.


  • Fixed LiveTiming Practice/Warmup time/laps values and Warmup standings table.


  • LiveTiming support for multiple rFactor2 server processes.
  • Fixed weather numbers output in LiveTiming.


  • Added LiveTiming. For server to output data - you need to download rF2 Shared Memory Tools for Developers, extract rFactor2SharedMemoryMapPlugin64.dll into your rFactor 2\Bin64\Plugins directory, start rF2, go into Options/Plugins and turn ON rFactor2SharedMemoryMapPlugin64. For LiveTiming to work you need to start r2la on server machine by r2la_live_timing.bat file. For LiveTiming to work properly always start r2la_live_timing.bat before you start rF2 session.
    Clients don`t need to do anything new, just go to server`s r2la Live page. LiveTiming also works if you use rF2 offline, just install Shared Memory plugin and start r2la by r2la_live_timing.bat.
    Special thanks to The Iron Wolf for Shared Memory plugin and to k3nny for helping me access shared memory data in Python.
  • Added an option to show Team Name instead of Car Name in Records table.
  • Added Ballast column to "Session results" table.


  • Added number of laps for driver-track to Records page. Only timed laps will be counted.


  • Removed Hotlaps and Offline Challenges. Becasue I need to stop using external server database. S397 introducing similar official competitions, please participate there. r2la DEDI competitions remain untouched.
  • Added possibility for your custom banner or logo to be displayed on every page below navbar. Go to Options Page to turn it on. Put your image (jpg, jpeg, gif or png) into applications\r2la\static\images\custom_site_banner folder, then turn "Show custom banner" ON (+press Submit). Widths more then 1130px will be resized to fit. Less then 1130px will be centered. Banner will act like a hyperlink if an optional Banner Link address is provided. If you need to change your Banner, put new file in folder (remove old one), then turn "Show custom banner" OFF (+press Submit), then turn it ON again (+press Submit). Lower banner heights are recommended to not take much space, for better page usability.


  • Added Batch File Editor for league admins. Select some log file then press Utils -> Batch File Editor.
  • Added internationalization for top menu, championship menu and some championship tables strings. Language selector is at the Options page. Language files are in
    directory. Only possible r2la strings for translation are in the languages\default.py file, at the end of the file. Insert r2la dictionary part from default.py to the end of your language file and substitute words after ":" to translations. For example, "Results viewer": "Resultats sessions", for French (fr.py file).


  • Fixed calculation of worst results for class championship tables.
  • Added tooltip with full tire compound name for Race Results tab.
  • Added missing autorefresh call to "Results" page.
  • Added option to include race reports in static html on "Export championship standings".
  • Added "Ignore worst results for team tables" championship option. If you need to turn off skipping worst results in team tables. "On" by default.
  • Fixed an error when using team championship and "Use class pts for overall team standings" option.


  • Aggregate championship stats are now exportable.
  • Added color highlighting to best results in Aggregate championship stats.
  • Compare Logs page now is not accessable if "Hide Results Viewer" option is On.
  • Fixed an error when using "Use overall pts for class standings".


  • Added "Notes" tab to championship page. Add notes with HTML/Markdown editor. Notes can be set as default championship page.
  • Added Nola track to Hotlaps.


  • Added assignment of country flags to track names on Records page. Click on Flag near track name at the Records page to set or change it. Most default tracks will have flags already assigned by r2la. If track has country flag assigned, this flag will be automatically assigned to championship race if race name will be equal to track name or when you assign race result with this track to this race. Your track-country assignments will be transferable with r2la_settings file between r2la versions.
  • Added "Use overall pts for class standings" championship option.
  • Added "Show driver position in driver standings" championship option.
  • Added an option to select default page for championship: Last race or Driver standings.
  • Added "Hide Results viewer for non-admins" option.
  • Fixed country flags in exported championship standings.


  • Added championship option to hide driver vehicle/team name in Driver Standings table.
  • Added results editor. You can change driver name, position, finish time/status, laps completed, disqualify driver, add time penalty. See "Editing results" on r2la Help page for more info.


  • Added notifications on number of new, removed or reloaded files after "refresh" to main page
  • Fixed error in class standings worst result calculation
  • Fixed error on html export if race has no Pole time
  • Fixes for some bugs when working with multiple directories
  • Fixes for track records reloading on xml removal
  • Fix for small names if name has trailing space in it


  • Major code refactoring. Updated to latest versions of web2py and UIkit.
  • r2la now has only one distribution archive. Users can select non-DEDI or DEDI modes at the first start.
  • Each session report tab is now loading on-click. Faster load times and less traffic if r2la is hosted.
  • If any previously imported xml file changes size or timestamp, it will be automatically reloaded on "refresh". Useful if you need to change some names or typos in xml logs.
  • Points system calculations improved. You can click on points in championship tables and will see detailed explanation for every driver/race cell. Searching for worst results now ignores "manual override points". Several bugs in points calculations fixed.
  • Static html export now renders the same pages as usual r2la.
  • Added Hotlaps for Nissan GT500. Fixed Longford track name for Hotlaps.
  • Added "Points for finish on the lead lap" to Points System
  • Added "fake" PTS to TOP10 column for all time stats tables (10-9-8-7-6-5-4-3-2-1 system). This allows for better driver ranking.
  • Fixed error when championship race report page didn`t show up if this race has "No qualification" flag ON
  • Fixed some errors if driver moves between classes in one championship
  • Many small fixes and improvements.


  • Added ability to select user defined set of championships to view aggregate stats. Use "Custom stats" link on Championships page. Note: For DEDI version stats tables are cached for 1 minute, so if championship results will change during 1 minute, stat tables might not update until 1 minute will pass.
  • Added percentage for started races to driver stats tables
  • Added Hotlaps for Endurance Series P2 and GTE classes, Caterham 7 Classic 1.4K, USF2000


  • Added "Show all vehicle contacts" button to Incidents/Chat tab. It will download and show all incidents between vehicles.
  • Old Hotlaps for EnduRacers Flat6 removed and will only be accepted from dates after release of Flat6 v2.0 (6 october 2016).
  • Fixed ISI Indycar Hotlaps


  • Added more info to "Race History" table (per lap positions, gaps to leader, front and back positions). Press "Show more data" button to see this info.
  • Matsusaka added to Hotlaps
  • Times from Palm Beach v2.02 will now be uploaded to Hotlaps (2.02 update changed track name string)


  • Added support for session names "Practice 2/3/4" and "Race 2/3" (Race will be displayed as "Race" in r2la, without 2 or 3)
  • Moved tire compound color-coding to css (file web2py\applications\r2la\static\css\app.css). Default colors will stay based on compound number, but can be changed or overriden based on name with "compound-Compound_Name" class name selectors.
    Class names for tire badges will be autimatically added in format "compound-Compound_Name". Default coding for ISI F1 tire compounds added based on 2016 season. You can change or add your own tire compound badge colors at the end of app.css file. If tire compound name contains white-spaces, you should replace spaces with underscore "_". For example, to select Super Soft tire badge, css class selector must be ".compound-Super_Soft"
  • Fixed error when using "Remove logs without lap times" and "Remove logs without drivers" options on refresh.


  • Reason for penalty now displayed (introduced in rF2 Build 1080)
  • Fixed error with saving r2la_settings.json with non ASCII characters in user defined team or class names
  • Fixed error when creating DEDI Hotlap competitions
  • Hotlaps added for Dissenter 1974


  • Introduced per race points multiplier. Useful for setting double, triple or other modified points races. Press "Edit Race" button to edit points multiplier.
  • "Edit Race" button now takes directly to Edit Race page without pop-up, to get rid of unnecessary click.
  • Renamed xml files now can be picked up when searching for Qualy logs for Race log
  • Error logs now have multiple select checkboxes
  • Added missing background save to r2la_settings on race options change
  • Fixed error when only one .xml file is in /Results directory
  • Fixed error with non ASCII characters when importing player name and nick from player.json
  • Fixed error if TeamName tag is empty
  • Hotlaps added for Renault Megane Trophy


  • Added dropdown to "Remove logs with no time set" button with options to remove all Race, Qualy, Warmup or Practice sessions
  • Hotlaps added for Formula ISI 2012 and Flat6 Series


  • r2la now supports multiple extra paths to read xml files from. Useful if you have multiple rFactor2 installs. Go to the "Options" page to add/remove extra paths.
  • Added miles near km at track records page and compare logs page
  • Sessions that belong to one weekend (same timestamp in xml RaceResults block) now marked. Top (parent) session is marked with "+", its child sessions are marked with "-" and have indent in "session type" column.
  • Added checkbox to select all logs for this weekend (when using "select multiple")
  • Optimized selection of multiple logs
  • Added "Use class pts for overall team standings" option for championships. Useful if you have same teams in different classes and want combined team standings.
  • Added "Show AI records" option to non-DEDI version. If turned "ON", AI record times will be visible at records page.


  • Added compare view to DEDI version, which allows to open single log results in a separate page. Links to logs added to Records page and to "Session results" title in Results Viewer.
  • Attempted fix for possible errors if driver list between Q1-Q3 is not consistent
  • Fixed error when trying to compare several logs with 0 user laps in them
  • Hotlaps added for Renault Clio 197, Chevrolet Camaro GT3 2013 and SCES LMP1 Acura ARX


  • Since build 1.014 rF2 includes tire wear in log files. Tire wear info added to reports.
  • Fixed wrong fuel consumption calculation in Race report if there were pit-stops with refueling.
  • Added export of track records to records.csv file. Export button is at the Options page.


  • Added options to automatically remove logs without drivers and/or without lap times on refresh, so that they never show in selector. Off by default. Go to the options page to turn them on.
  • Session penalties added to Incidents/Chat tab.
  • Incidents/Chat tab added to non-race session report.
  • Q1, Q2, Q3 lap times are now shown in Qualification results table in race report.
  • Fixed lap time selection for Hotlaps.
  • Workaround for false MostLapsCompleted 0 value found in server xml in some cases.
  • Non-race session results table now shows overall number of laps in this session for driver (was number of the fastest lap before).
  • Championships now have "start date". It is only used for ordering championships list at "Championship manager" page, if you need.
  • Small images for Dedi Hotlap competitions now will be centered.
  • Hotlaps added for Stock Cars and Nissan GT-R GT1. Bathurst added to GT cars Hotlaps.


  • Added an option to Dedi Hotlap Competitions to take lap times from current server logs automatically on refresh. Specific server name can be defined. Also added an option to accept only laps from this server logs (for client`s r2la`s such competitions will be invisible).
  • Added "helpers" for track name and car identifiers to DEDI Competition Create/Edit form. They are not mandatory to use, only if you want.
  • Server logs are now marked with * in log selector
  • Fixed error when trying to clean DEDI Hotlap competitions results
  • Fixed error in color coding of lap times in "Race laps per driver" for current rF2 user
  • Fixed removing all logs for selected mod in Track Records
  • Fixed error with displaying some Race reports that have drivers in Qual log, but not Race log
  • Hotlaps added for AMGT3 and ISI Chevrolet Corvette C6.R GT2


  • Since B998 rF2 logs include "Category" string for every driver. This allows for better car selection in case of mods like AMGT3, where Category allows to filter all cars independent of manufacturer.
    r2la now creates car IDs from 4 tags (3 before) - Category, CarType, CarClass and TeamName. For most known mods best combinations will be preselected by default.
    Car IDs are created for every Category+CarType combination.
    r2la usually uses first value of the Category list, but for some mods I select other values, selection is hard-coded. For example, Palatov D4 selects second value - "D4" as Category.
    Log files from old builds will have their Category=CarType.
  • Offline challenges now check for Start Type match. Since B998 rF2 includes "FormationAndStart" in log files.
  • Added "Private mode" for DEDI version. If activated it will require users to enter a password to see r2la DEDI pages. Qualy and Race Chat is visible only to admin in Private mode.
  • Added possibility to host Hotlap Competitions from r2la DEDI. Users can submit their times from thier r2la apps to different r2la DEDI servers.
    To transfer Competitions and their results when your upgrading r2la DEDI, go to Options page and Export hotlap competitions from old r2la DEDI instance to file r2la_competitions.json. Then copy this file to new r2la DEDI instance, go to Options page and Import it.
  • "How to update.txt" file with instructions now included in archive
  • Added "Auto refresh" mode for r2la DEDI. If turned on, it will attempt to refresh logs list on every call to Viewer or Records pages, but will only refresh if time passed after last refresh is more than "Auto refresh rate" (in minutes, configurable).
  • Added "All time stats" to Championships. It can be time-consuming to calculate them for many championships, so in DEDI version this page is cached for 10 minutes (will not be re-calculated if it recieves more requests in this period).
  • Added more race settings: long race name and race country. Press "Edit race" then "Edit more race settings" to set them. Long name is used for race select buttons if defined. Short race name will be used anywhere if long name is not defined, and only in tables if long name is defined. Country flag will be displayed in championship tables. You can add your flags if you need, their names are read only at the first start of clean r2la, put them in web2py\applications\r2la\static\images\flags folder before you start r2la for the first time. Flags are from gosquared. https://www.gosquared.com/resources/flag-icons/
  • Now you can add background image for championship page and/or for championship top panel. To do this, put .jpg files into web2py/applications/r2la/static/images/championships/ folder. File name must be championship name, following this rules: - if championship name contains spaces, in file name you should replace them with underscore _ - for page background image file add _bg to file name - for top panel image file add _top to file name Example: MY_GT3_bg.jpg MY_GT3_top.jpg
  • Driver swaps are now shown in "Session laps" table and swapped drivers names appear in "Session results" tables after main driver name.
  • Added loading icon for r2la DEDI session reports and championship tables
  • Added session filter for car-track combo log viewer page
  • Logs with 0 laps or 0 drivers now have "trash" icon in log selector
  • Logs with 0 drivers now don`t show an error
  • Improved detection of logs with no lap time
  • Fixed Compare Logs errors when searching through associated tracks
  • Fixed a bug when track records were staying in DB after .xml files were deleted from results folder "by hand"
  • r2la and r2la DEDI now have custom browser icons (blue one and red one). You might need to delete your browser cache and restart it to see them.
  • Various other small fixes


  • Added rFactor 1 support
  • Implemented "All drivers receive minimum points" option for Championships. All drivers with points less then minimum (even DNF, DNS, no points finish) will get this minimum points
  • Manually corrected points in Driver Standings now marked with red dot
  • Fixed a bug when championship assigned race reports become invisible after "Import championships" was used
  • Added support for Qualify2, Qualify3
  • Fixed errors in Race Stints view if driver had pitstops
  • In Race Stints view added "Start", "Pit out" and "Refueling" badges to "Fuel spent" column
  • Fixed calcultaion of added fuel for Race Pit Stops Summary if driver pits are before start/finish line
  • Session date added to report title, after track name
  • "Vehicle" column in Race/Session results table now shows car name according to identifier set at Track Records page, ignoring TeamName, because TeamName already displayed in next column. Basically, allowing you to choose to display CarType, CarClass or both
  • "Check for new logs" button added to Championship page


  • Fixed error when reading player.json with non UTF-8 characters
  • Fixed wrong driver name abbreviation in driver stats championship table
  • Fixed "Manage classes" button on "Championship mgr" index page
  • Your current challenge position and latest uploaded result for challenge now visible at the Offline Challenges page
  • Logs selected as results for championship races now labeled with championship name in log selector views. Hover mouse over label to see original file name.


  • Added "Gap to fastest lap" to stint tables
  • Fixed color coding for stint tables (was relative to overall best session time before, not best player`s session time)
  • Added "Times sum" column to stints (initially hidden) and "Show times sum" button. Useful to compare stints with different lap numbers in them.
  • Added Laps, Distance and Time stats to car-track combo view
  • Added possibility to save user points presets


  • Championship manager
    • manage your online or offline championships
    • support for teams and classes
    • teams can be automatically selected from CarType, CarClass, TeamName, VehName tags or created and assigned manually
    • classes can be automatically selected from CarType, CarClass, TeamName tags or created and assigned manually
    • support for drivers moving between teams and classes at different races during championship
    • customizable points system for 50 places, plus bonuses for pole position, fastest lap, one lap led and max laps led
    • points presets for all major racing series included
    • driver statistics for championship
    • car statistics selectable by CarType, CarClass, TeamName, VehName tags
    • customizable minimum distance for classification, number of team cars that awarded points, number of worst driver results in championship that won`t be counted
    • support for manual race points override, in case of penalties, disqualifications, custom bonuses, etc.
    • export of championship tables to html
    • transfer your championships between r2la versions by importing r2la_settings file
    • if racing with AI, you have to ensure by yourself consistent driver names and performances at every race during championship
    • do not delete .xml logs that you assigned as results for races in championship, they are accessed every time you browse championship
  • "Refresh" button added to "Compare logs" view
  • Moved "Options" button from "Track records" to Navbar
  • Log will now be provided for cases when r2la could not find rFactor2 at entered path
  • Hotlaps will now provide alert if user tries to submit times with older versions of r2la. To ensure everybody has the same Hotlaps track sets.
  • Times set before last version of DW12 (1.63) was released, will not be submitted for Hotlaps. Same for future mods re-released with new upgraded physics.
  • AtlantaMP added to Palatov D4 hotlaps


  • Introduced Hotlaps
  • Fixed error when opening archived challenge
  • Added start and finish positions to challenge results
  • Added support for cases when User Data was installed separately. Always enter your main rFactor2 path in r2la prompt. If your user data path is installed separately, it will be picked up automatically
  • "Race fastest laps (by lap)" table now shows best times for all laps, with race best times highlighted in purple
  • Added number of laps on which driver was fastest to "Race fastest laps (by driver)" table
  • Fixed bug in "Session history" view, not all laps were shown previously
  • Added stint average lap time, lap fuel consumption, stint average lap fuel consumption and estimated number of laps on full tank with this stint avg. lap fuel consumption to "Stints" view
  • "Stints" view now also available for Race sessions


  • Introduced track association import to transfer your track associations between r2la versions. Track associations now stored in r2la_settings.json file in rF2 Log Analyzer directory. You can copy this file from old r2la folder to new one and import from "Tracks options" page.
  • Fixed error when disconnecting track associations
  • "Possible time" added to Qual results, Race best laps and Session results tables


  • Offline challenges
  • Added track check when searching for Qual logs for selected Race session
  • Added best sector times and possible time to "Compare all logs for this car and track" view
  • Added best sector times and possible time view to "Results viewer" when selecting multiple logs


  • Fixed error when merging records from identical tracks, if .xml of a "child" track was created later then .xml of a "parent" track
  • More speed optimizations
  • Fixed error if .xml has empty CarNumber tag
  • Added "Please wait..." pop-ups where possible
  • Added number of found log files near "Refresh" button


  • Using fast lxml library for parsing now
  • Added "Select multiple" button, to show checkboxes, select multiple logs and then delete them
  • More fixes for faulty .xml files (empty "Lap" tags, invalid character`s, "junk" symbols at the end of the file)
  • Track overall laps, distance, time stats added to track page
  • User name at the "Best Sectors" pages now highlighted
  • Optimizations to speed-up loading "Results viewer" page


  • fix for FinishTime = -340282346638528860000000000000000000000.0000
  • error messages that redirected to new page now appear in lower panel


  • "Export report" button now works in Firefox
  • Error messages now will be shown to user where possible
  • Fixed errors in parser if chat had empty messages
  • Empty Results folder now don`t produce an error
  • Logs from other people`s sessions in which user did not participate now properly shown


  • added separate view to compare all logs for selected car/track
  • added PB (personal best) badge to indicate logs with record times
  • pressing on record date/time on track records page now opens corresponding log in viewer
  • pressing on track name in results viewer now opens records page for this track

Used software

This application is made with Python, web2py, psutil, UIkit, Flot.js, jQuery, marked, CodeMirror, Mithril, Moment.js, Moment Duration Format Plugin, Ocanvas, pace.js, tablesort, Background pattern from subtlepatterns.com. Flags from gosquared.

psutil license

psutil is distributed under BSD license reproduced below.

Copyright (c) 2009, Jay Loden, Dave Daeschler, Giampaolo Rodola'
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

 * Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.
 * Neither the name of the psutil authors nor the names of its contributors
   may be used to endorse or promote products derived from this software without
   specific prior written permission.