Developers Guide

Introduction

This site is for people who develop content or code for rFactor 2. It contains information on the various aspects of the simulation and how to extend it. It is a living document that we will keep updating and extending. We've structured the information based on the different types of extensions you can work on. For each we try to list prerequisites, both in terms of tools and knowledge, and guides that help you with the actual creation process. If you're an end user of rFactor 2, looking for more information about the simulation, please go to the Users Guide.

rFactor 2 provides developers with a platform to make all kinds of extensions. You can add your own cars that include not just new 3D models, but also completely customisable physics and sounds. The simulation can handle anything from the tiniest radio controlled cars up to big trucks and everything in between. Tracks can be added with different layouts for different types of racing, including for example karting. These tracks can support dynamic weather with special rain effects as well as day to night transitions and lighting. There are also various ways to make them come alive, with animated elements and local ambient sounds. Software developers can also extend the simulation through a plugin API that provides telemetry information, scoring as well as ways to interact with the simulation. Such plugins can be used to analyse data, control motion platforms, hook up external controllers and other peripherals and many other things.


Recently Updated

Release Notes

Here we outline the effects of each release on modders.

Build 1123 - Upcoming Release (Initially Released 18/1 however reverted on 20/1)

  • Enabled Auto Exposure in Cockpit Cameras and refactored Auto Exposure settings in general
  • Improved Clouds in game
  • Added an option in ModDev to set amount of cloud cover
  • Added new line smoothing option to AIW Editor which tries to smooth the line consistently based on corner radius before and after selection
  • Added soft selection to manual adjustments in AIW Editor
  • Set default Web Port (for Material Editor) to 5396 in Scene Viewer. It is configureable in Setup2_DX11.ini
  • Added support for upto 128 scenes in Scene Viewer, and fixed an issue where it would crash after exceeding the limit
  • Fixed issues with displaying upgrade changes in showroom
  • Fixed issues with Maps Converter when using absolute paths

Build 1122 - 22nd December 2020

  • Fixed bugs with texture animations on IBL shaders
  • Fixed issues with Wildcard Textures working with IBL shaders

Build 1122 - 18th November 2020

  • Re-enabled & Improved Sun God Rays / Light Flare settings (requires PostFX enabled, mostly only visible when the sun is occluded slightly)
  • Tweaks to Air Pollution colour blending and params
  • Corrected Moon Brightness
  • Reviewed various lighting parameters
  • Moved "Atmospherics" section for Track Weather file (.WET) to Track Game Database file (.GDB)
  • Added option for static mappers to disable omni lights
  • Fixed auto static mapper assignment, so Static01 mapper is auto assigned only. (prevent mappers for specific situations being auto assigned to assets)
  • Fixes for issues with No Rain Zones including when falling back to bounding box, and sorting issues with the currently rendered no rain zones.
  • Fixed an issue where reflections would stop updating after rejoining track
  • Fix for track side cameras not always showing the correct number of objects
  • Updated PBR track shaders to make use of new sampler methods to allow for more textures to be used.
  • Fixed an issue where DXT1 and DXT5 textures would not sample sRGB when they should when using new sampler method (This was an issue on the Road Shader only previously)
  • Fixed a rare issue causing texture animations to stop working
  • IBL Road and IBL Curb:
    • Added ability to use a second normal map (overlay on road, switch on curbs)
    • Tweaked Groove Blending logic (You may need to reduce where you have added dust in the Road Details Map)
    • Updated default settings for Groove & Dust IBL Standard
    • Fixed some issues with the Detail Map
  • IBL Standard & Blend
    • Added option to use detail map as an alpha masked decal IBL Standard Blend
    • Added the option to use a detail map with the same logic as IBL Standard
    • Removed Multiply Square albedo blending mode, since this can be achieved by saving the texture in the correct format.
  • IBL Terrain:
    • Added the ability to set per Albedo strengths for Pattern map
    • Added an optional splatter overlay map, which applies alpha to specular mask
    • Added Albedo Tinting to Specular on Terrain Shaders
  • IBL Vegetation
    • Added a new Vegetation Specific shader, which contains only appropriate logic from IBL Standard
    • Added Specular Tinting with a static colour in the Vegetation Shader.

Full Documentation to be updated in the coming days.

Build 1122 - 21st October 2020

  • Adjusted auto exposure settings.
  • Small tweaks to Air Pollution effect on clear day, allowing for more bluer sky in less polluted areas. Very polluted areas are quite weak now though, so we intend to improve this further.
  • Added Decal feature to PBR Road Shader. (Relevant pages will be updated in the next few days)
  • Changed the way samplers work on PBR Shaders to allow for many more textures in shaders. sRGB textures must now be explicitly saved as such. This has only been applied to the Road shader so far but will most likely be ported over to other shaders too. To ensure your maps are converted correctly we recommend that you use the Maps Converter pipeline, as this will make your life easier.
  • 3ds Max Plugins 2021: Fixed a crash when setting animation data.

Build 1121 - 4th September 2020

This build release focuses on the release of new modding documentation and tools to allow the use of the new PBR pipeline. 

  • Large update to modding documentation, will full documentation on PBR material system, dedicated Development Tools section and more.
  • First official release of 3ds Max 2021 Plugins
  • First official release of Material Editor
  • First official release of Maps Converter Tool
  • Added Loch Drummond (PBR Track) to ModDev
  • Added ability to disable auto albedo correction on pre PBR shaders
  • Added ability to choose cube fresnel default settings on pre PBR car body shader
  • Corrected Deformable Tire shader naming in Max Plugins
  • Exposed Amtospherics section in Wet file to configure Haze and other settings.
  • Updated ModDev to use main game HUD
  • Small refactor of glare settings in PostFX
  • Added ability to save preset positions in the Scene Viewer
  • Many other minor tweaks to various shaders and settings.

Build 1119 - 4th June 2020

A few weeks ago we released a rather large update to our game which adjusted the lighting calculations in various places on all content. We have now released a small update which focuses on improving the compatibility of those updates with old content, although some content will just need to be updated due to settings used.

  • We have corrected the light intensities in the showroom, so all cars should now render correctly there, previously older cars were rendering quite dark.
    • Authors of custom showroom may need to adjust their diffuse maps to be brighter though if they find the showroom is rendering dark.
    • This will only be the case when using the shader "T1 No Shadows" or "L2DiffuseNoShadowT0".
  • We had several reports of a degrade in the visual quality of older cars. So we investigated this and took a look into the settings being employed on these cars. We found a couple of issues.
    • Firstly the Cube Fresnel settings on many cars had been set really low.
    • Secondly many cars are employing Diffuse and Ambient scalars, meaning our corrected balance was being adjusted incorrectly.
    • As a result on the CarPaint shader used by these cars only, we have hard set the Cube Fresnel settings to reasonable defaults, for a lot of content this wont make a difference since they were setup correctly already.
    • For the material settings, I'm afraid we require the modder to fix these values at this time.
      • In general we recommend not to use any diffuse or ambient material scalars.
      • With the specular mask it is generally not recommended except for any special materials which genuinely do colour the reflection.

  • We took a look at was wet road reflection progression on non PBR materials.
    • Here we have adapted the changes made to PBR tracks to improve the reflections a little.
    • However the major issue with wet road is that a lot of content does not have a puddle map setup.
    • At present when no puddle map is authored everything becomes a puddle and results in excessive mirror reflections, so please try to author a map even if it is very basic. 
    • There are also further updates to wet reflections in development.
  • We have added a Headlight Configurator to ModDev. This comes up as an option when you go in game where the AIW/Camera editor etc are.
    • This allows you to modify your cars headlights in real time. Useful for fine tuning them.
    • You have to manually save your changes into the gen file.

Build 1118 - 21st May 2020

This build saw a large update to the graphics engine, with various changes. Beneath is an outline of those changes and possible action that maybe required by modders.

  • Lighting balance on all pre-PBR shaders was drastically changed. Resulting in a large increase in ambient lighting.
  • Mod Tracks should pay close attention to the positioning of Ambient Probes.
    • In our tests we found that mod tracks with poorly setup ambient probes resulted in bad lighting. Examples of this include them being in areas of strong colour cast (such as over a lot of very green grass), or underneath the terrain (resulting in the bottom of the ambient probe being brighter than the sky), or really high up in the sky (so the ambient probe receives much more sky contribution than you would expect, making it very blue in general).
    • On content that had good ambient probes, we found that there was minimal difference, other than a slightly blue shift, due to the increased ambient lighting.
  • Custom Showrooms may require some updating. Especially if the background is looking darker than you would expect.
  • PostFX was extensively reviewed and many settings changed and tweaked.
  • AutoExposure was enabled on all but cockpit cameras.
    • If you have a camera inside the car you should assign mPostProcessPresetIndex=(1) for it to adapt correctly to being inside. External cameras should have mPostProcessPresetIndex=(4).
    • Trackside cameras can use either mPostProcessPresetIndex=(2) or mPostProcessPresetIndex=(3). These come with a different range of auto exposure.
  • Glare settings have been adapted for daytime, to allow for the full range of specular to be used, especially on PBR materials.
  • Sky and Atmospherics have all been reviewed. As a result customization of Fog or Haze has been disabled at this time. It will be enabled in a new format soon.

A full recap of the release can be found here: https://www.studio-397.com/2020/05/release-of-build-1118/