Dedicated Server - Conditions Carried Over

Hi -

* Wondering if we can have the condition of the car carry over from practice to qualy to race (damage, engine wear, and TIRE WEAR).
* Is there a way to stop the user from getting fresh tires? What we'd like to do, is for example, your tires are Soft 1, Soft 2, Medium 1, and Medium 2. If you flat spot your first set of softs that flat spot carries over to the next session, you don't have unlimited tire sets.
* We'd also like to export the condition of the car after the race to create an element of season strategy in terms of swapping out your engine. I don't know how this is recorded in rF2, but for example after race 1 the engine wear might be 8%, so you start practice for race 2 with 8% engine wear. Is this possible?
 
Most things No.

Some yes, but to complicated to explain. :whistling:

Some rules are in the player.json
Some are with a plugin (knock-out and stockcar plugin)
Some rules are in .rfm file
Some rules are in the .gdb file

Some contradict with eachother, So double and triple check everything. :)
 
You seem pretty savvy with this stuff - do know of a website that would have all these kinds of details? I've searched for things like "rfactor 2 advanced dedicated server settings" and come up with junk. But, essentially I'd like to find a manual or tutorial of all the different options / settings I can use. Thanks!
 
This is the .rfm rule set.

You can choose a customised rfm file when you create a server mod or RaceEvent.

Code:
Mod Name = Default
Mod Version = 1.0
Track Filter   = TMOD
Vehicle Filter = OR: Driving_School
SafetyCar = CorvettePC.veh
Size =   0-MB
Tracks = 0
Layouts = 0
Cars = 0
Skins = 0
Rating = 5.0
Loading Bar Color = 16750848
RaceCast Location = racecast.rfactor.net
Max Opponents = 44
Min Championship Opponents = 2
RecommendedAIAggression = 0.3
SafetyCarAvailable = 1

DefaultScoring
{
  RacePitKPH = 100
  NormalPitKPH = 100
  Practice1Day = Friday
  Practice1Start = 11:00
  Practice1Duration = 60
  Practice2Day = Friday
  Practice2Start = 13:00
  Practice2Duration = 60
  Practice3Day = Saturday
  Practice3Start = 9:00
  Practice3Duration = 45
  Practice4Day = Saturday
  Practice4Start = 10:15
  Practice4Duration = 45
  QualifyDay = Saturday
  QualifyStart = 13:00
  QualifyDuration = 60
  QualifyLaps = 12
  WarmupDay = Sunday
  WarmupStart = 9:30
  WarmupDuration = 30
  RaceDay = Sunday
  RaceStart = 14:00
  RaceLaps = 50
  RaceTime = 120

  RearFlapWetThreshold=0.5  // maximum track wetness allowed for rear flaps to be used (any session)
  RearFlapZoneSessions=16   // allowed sessions, added together (1=test, 2=practice, 4=qualifying, 8=warmup, 16=race)

  PitExitClosedRacePenalty = 1 // Whether to apply a penalty for exiting the pits when closed during the race session
  FormationAndStart=1       // 0=standing start, 1=formation lap & standing start, 2=lap behind safety car & rolling start, 3=use track default, 4=fast rolling start
  NumberOfFormationLaps = 1
  HeadlightsRequired = false  // whether headlights are required at night

  SafetyCarRoadMult=1.00 // Safety car threshold multipliers, in other words an adjustment for the sensitivity of the game to calling full-course cautions.
  SafetyCarOvalMult=0.60 // Lower numbers result in more full-course cautions; default=1.0, possible values are 0.01 (very sensitive) and up.
  SpinRoadSeverity=0.00  // Whether full-course cautions may be called for a spin more than 90 degrees where the driver keeps going.
  SpinOvalSeverity=0.10  // Higher values will result in more full-course cautions due to these temporary spins; default=0.0, possible values are 0.0-2.0.

  PitSpeedingAllowance = 0.2 // General tolerance for very momentary speeding (this value has no particular units); default=4.0

  LuckyDog = 3  // Whether leading car one lap down can re-gain his lap during a full-course caution.  Possible values are 0=off, 1=used at ovals only, 2=used at road courses only, 3=used everywhere.
  LuckyDogLapsLeft = 0  // How many laps must be left for lucky dog to take effect; default = 10, possible values are 0 (meaning it is always applicable) and up.

  MinimumYellowLaps = 2  // Minimum laps during a full-course yellow; default = 2, possible values are 1 (?) and up ... remember that it might be useful to override this one in some track GDBs.
  RandomYellowLaps = 1   // Additional random yellow laps; default = 1, possible values are 0 and up.
  ClosePits = 0       // Whether pits are closed during the first part of the full-course yellow; default=0, possible values 0 or 1.
  PitsClosedLaps = 1  // How many laps the pits remain closed during the first part of the full-course yellow; default=1, possible/ values are 1 and up (probably needs to be less than MinimumYellowLaps, though)
  LeadYellowLaps = 2  // This is the threshold for the number of yellow flag laps to determine whether the lead-lappers get to pit before everyone else.  Only valid if ClosePits is enabled; default=2, possible values are 0 (never let leaders pit first) and up.
  ClosedPitPenalty = 0  // Penalty given for getting served on a closed pitlane (meaning that the vehicle entered AFTER the pit was closed); default=2, possible values are 0=stop/go 1=drivethru 2=longest line.

  LocalYellowsRoad = 1  // Whether local yellows are available, which can be different for road vs. oval courses; default=1, possible values 0 or 1.
  LocalYellowsOval = 1

  BlueFlags = 1 // 0=no blue flags, 1=show but never penalize, 2=show and penalize if necessary for vehicles within 0.3 seconds, 3=0.5 seconds, 4=0.7 seconds, 5=0.9 seconds, 6=1.1 seconds

  PrivateQualifying = 0  // Private qualifying, which means that everyone is qualifying simultaneously but alone on track; default=0, possible values 0 or 1.

  AdditivePenalties = 0  // Whether penalties add to each other, essentially meaning they can all be served at once; default=0, possible values 0 or 1.

  LapsToServePenalty = 5  // Number of laps to serve the penalty before being disqualified; default=3, possible values 1 and up.

  PassingBeforeLineOval=0  // Whether passing is allowed on starts and restarts before the start/finish line; default=0, possible values are 1=passing on right is legal, 2=passing on left is legal, and 3=passing anywhere is legal.
  PassingBeforeLineRoad=0

  FreezeOrder = 1  // Whether order of vehicles is frozen when the full-course yellow is first shown.  If necessary, server will correct the order as people cross the start/finish line; default=0, possible values 0 or 1.

  // Behavior if full-course yellow is active at the end of a race; default=0, possible values are 0=race finishes normally, 1=finish will be delayed one time only and will allow one lap after the green flag,
  // 2=finish will be delayed one time only and will allow two laps after the green flag,  3=finish can be delayed multiple times, with only one lap allowed after the green flag (not sure this option  works as expected),
  // 4=finish can be delayed multiple times, with two laps needed after the green flag.  Note that a full-course yellow called on the very last lap will NOT currently delay the finish.  Also note that this feature does
  // not work for timed races.
  FinishUnderCaution = 0

  CountCautionLaps = 0  // Whether caution laps are counted towards the total number of laps; default=0, possible values 0 or 1.

  DoubleFileRestarts=0  // Whether restarts are double-file and how many laps left are required to do so; default=0, possible values are 0=off, 1+=laps left required to convert to double file.

  ParcFerme = 0  // Control over what changes can be made between qualifying and race; default=0, possible values are 0=no restrictions, 1=restrictions apply, 2=restrictions apply as long as it doesn't rain in qualifying or afterwards
  // Whether fuel level remains the same (only if parc ferme is applicable).  In general, this value specifies what fraction of the qualifying session is reached before fuel usage becomes "free"; default=0.0, possible
  // values are 0.0-1.0, where 0.0 indicates fuel level is always free, 0.5 would mean fuel level at the halfway point of qualifying will be used to start the race, and 1.0 means fuel level at the end of qualifying will
  // be used to start the race (and no refueling allowed during qualifying).
  ParcFermeFuel = 0.0
  ParcFermeTires = 10  // How many of the top qualifiers have to keep their used tires on for the race (only if parc ferme is applicable); default=0, possible values are 0 and up (300 recommended if everybody has to keep their used tires).
  ParcFermeSetup = 1   // Whether setup used during qualifying must be used during the race (only if parc ferme is applicable), except for the RFM/season/GDB or PLR file "FreeSettings"; default=1, possible values 0 or 1.

  // Settings that are free to be changed regardless of parc ferme.  You must add the values of each setting that drivers are free to change:
  //     1 = steering lock, 2 = brake pressure, 4 = starting fuel, 8 = fuel strategy, 16 = tire compound, 32 = brake bias, 64 = front wing, 128 = engine settings (rev limit, boost, and engine braking)
  // Possible values are -1 (use default value) up to 255 (which equals 1+2+4+8+16+32+64+128).
  FreeSettings = 244

  // Method to end timed races.  The default behavior is to wait until the leader crosses the start/finish line before waving the checkered flag.
  // However, in the case that the leader has crashed out but is multiple laps ahead of the second-place vehicle, there needs to be a fail-safe case.
  // This value defines how many laps non-leaders can complete after time runs out before being given the checkered flag; default=2 (which means that, in most normal circumstances, the checkered flag will be given
  // when the leader crosses the s/f line), possible values are 1 (which would be the original rFactor behavior) or any positive integer.
  TimedRaceNonLeaderLaps = 2
}

StartingMoney = 5000000
StartingVehicle = tundra22
DriveAnyUnlocked = 1
BaseCreditMult = 1.0
LapMoneyMult = 1.0
LapExpMult = 1.0
FineMoneyMult = 1.0
FineExpMult = 0.0
PoleSingleMoneyMult = 1.0
PoleSingleExpMult = 1.0
PoleCareerMoneyMult = 1.0
PoleCareerExpMult = 1.0
PoleMultiMoneyMult = 1.0
PoleMultiExpMult = 1.0
WinSingleMoneyMult = 1.0
WinSingleExpMult = 1.0
WinCareerMoneyMult = 1.0
WinCareerExpMult = 1.0
WinMultiMoneyMult = 1.0
WinMultiExpMult = 1.0
PointsSingleMoneyMult = 1.0
PointsSingleExpMult = 1.0
PointsCareerMoneyMult = 1.0
PointsCareerExpMult = 1.0
PointsMultiMoneyMult = 1.0
PointsMultiExpMult = 1.0
SeasonScoringInfo
{
  FirstPlace = 8
  SecondPlace = 5
  ThirdPlace = 3
  FourthPlace = 2
  FifthPlace = 1
  SixthPlace = 0
  SeventhPlace = 0
  EighthPlace = 0
}
PitOrderByQualifying = false
PitGroupOrder
{
  // format is: PitGroup = <# of vehicles sharing pit>, <groupname>
  PitGroup = 2, Group1
  PitGroup = 2, Group2
  PitGroup = 2, Group3
  PitGroup = 2, Group4
  PitGroup = 2, Group5
  PitGroup = 2, Group6
  PitGroup = 2, Group7
  PitGroup = 2, Group8
  PitGroup = 2, Group9
  PitGroup = 2, Group10
  PitGroup = 2, Group11
  PitGroup = 2, Group12
  PitGroup = 2, Group13
  PitGroup = 2, Group14
  PitGroup = 2, Group15
  PitGroup = 2, Group16
  PitGroup = 2, Group17
}

In the Player.json
MULTI = for server settings
GPRIX = Single player mode
CHAMP = championships (not in use)

Code:
    "GPRIX AI Driver Strength":100,
    "GPRIX AI Driver Strength#":"100 should approximate real life",
    "GPRIX Allowed Vehicles":"RDLMS_Prototype",
    "GPRIX CrashRecovery":3,
    "GPRIX CrashRecovery#":"0=none, 1=artificially keep cars on track, 2=flip cars upright, 3=both",
    "GPRIX Damage Multiplier":100,
    "GPRIX Damage Multiplier#":"100 should approximate real life",
    "GPRIX FreeSettings":-1,
    "GPRIX FreeSettings#":"-1=use RFM\/season\/GDB default, or add to allow minor changes with fixed\/parc ferme setups: 1=steering lock, 2=brake pressure, 4=starting fuel, 8=fuel strategy 16=tire compound, 32=brake bias, 64=front wing, 128=engine settings",
    "GPRIX Fuel Consumption Multiplier":1,
    "GPRIX Opponents":0,
    "GPRIX Race Finish Criteria":1,
    "GPRIX Race Finish Criteria#":"-2=%laps, -1=%time, 0=%laps&time, 1=laps, 2=time, 3=laps&time",
    "GPRIX Race Laps":30,
    "GPRIX Race Length":0.5,
    "GPRIX Race Time":120,
    "GPRIX Race Time#":"minutes",
    "GPRIX Speed Compensation":0,
    "GPRIX Speed Compensation#":"0 (none) - 10 (max)",
    "GPRIX Tire Wear Multiplier":1,
    "GPRIX BlueFlags":7,
    "GPRIX BlueFlags#":"0=none, 1=show but never penalize, 2=show and penalize if following within 0.3 seconds, 3=0.5s, 4=0.7s, 5=0.9s, 6=1.1s, 7=use RFM value \"BlueFlags=<0-6>\" (default is 3)",
    "GPRIX Flag Rules":2,
    "GPRIX Flag Rules#":"Level of rule enforcement, 0=none, 1=penalties only, 2=penalties & full-course yellows, 3=everything except DQs",
    "GPRIX Formation Lap":0,
    "GPRIX Formation Lap#":"0=standing start, 1=formation lap & standing start, 2=lap behind safety car & rolling start, 3=use track default, 4=fast rolling start",
    "GPRIX Grid Walkthrough":1,
    "GPRIX Grid Walkthrough#":"Cinematic walkthrough of vehicles before race",
    "GPRIX Num Qual Sessions":1,
    "GPRIX Num Qual Sessions#":"range: 0-4",
    "GPRIX Num Race Sessions":1,
    "GPRIX Num Race Sessions#":"range: 1-4",
    "GPRIX ParcFerme":3,
    "GPRIX ParcFerme#":"0=off, 1=no setup changes allowed between qual and race except for 'Free Settings'), 2=same unless rain, 3=use RFM default 'ParcFerme=<0-2>'",
    "GPRIX PrivatePractice":1,
    "GPRIX PrivatePractice#":"(note: used to be Private Test Day) 0=all cars practice visibly on track together, 1=only one car is visible at a time",
    "GPRIX PrivateQualifying":2,
    "GPRIX PrivateQualifying#":"0=all cars qualify visibly on track together, 1=only one car is visible at a time, 2=use default from RFM, season, or track entry PrivateQualifying=<0 or 1>",
    "GPRIX RaceStartingTime":-1,
    "GPRIX RaceStartingTime#":"-3=random, -2=random daytime, -1=default RFM, 0-1439=minutes after midnight to start race",
    "GPRIX RaceTimeScale":10,
    "GPRIX RaceTimeScale#":"-1 = use race distance percentage, 0 - 60 = multiply time by given factor",
    "GPRIX Reconnaissance":0,
    "GPRIX Reconnaissance#":"Reconnaissance laps",
    "GPRIX Safety Car Collidable":false,
    "GPRIX Safety Car Collidable#":"Whether safety car is collidable",
    "GPRIX Safety Car Thresh":1,
    "GPRIX Safety Car Thresh#":"Threshold for bringing out safety car (lower numbers -> more full-course yellows), please note that there are now RFM multipliers for this value",
    "GPRIX TimeScaledWeather":true,
    "GPRIX TimeScaledWeather#":"Whether weather time is scaled with session length",
    "GPRIX Unsportsmanlike Sensitivity":1.5,
    "GPRIX Unsportsmanlike Sensitivity#":"0.1 - 10.0: Higher number = less sensitive checking for unsportsmanlike driving",
    "GPRIX Weather":4,
    "GPRIX Weather#":"0=sun, 1=clouds, 2=rain, 3=default, 4=random, 5=scripted",
    "Race Timer":3600,
    "Race Timer#":"Seconds between displaying time remaining in race other than 1\/5\/10\/30 minutes (zero disables)",
    "RealRoadTimeScalePractice":10,
    "RealRoadTimeScalePractice#":"Applies to testday\/practice\/warmup: -1=scaled with session length, 0=static, 0.1-0.9=slow, 1=normal, 2=2x, etc.",
    "RealRoadTimeScaleQualifying":5,
    "RealRoadTimeScaleQualifying#":"Applies to any qualifying session: -1=scaled with session length, 0=static, 0.1-0.9=slow, 1=normal, 2=2x, etc.",
    "RealRoadTimeScaleRace":13,
    "RealRoadTimeScaleRace#":"Applies to any race session: -1=scaled with session length, 0=static, 0.1-0.9=slow, 1=normal, 2=2x, etc.",
    "Recon Pit Closed":120,
    "Recon Pit Closed#":"Time that pits are closed before formation lap (real-life is 900 seconds)",
    "Recon Pit Open":180,
    "Recon Pit Open#":"Time that pits remain open for recon laps (real-life is 900 seconds)",
    "Recon Timer":true,
    "Recon Timer#":"Whether timer is displayed in message box",
    "Run Practice1":true,
    "Run Practice2":false,
    "Run Practice3":false,
    "Run Practice4":false,
    "Run Warmup":false,
    "WarmupStartingTime":-1,
    "WarmupStartingTime#":"-3=random, -2=random daytime, -1=default RFM, 0-1439=minutes after midnight"


Most things are explained in the file itself.

for example: Parc ferme (locked after Quali)
"GPRIX FreeSettings":-1,
"GPRIX FreeSettings#":"-1=use RFM\/season\/GDB default, or add to allow minor changes with fixed\/parc ferme setups: 1=steering lock, 2=brake pressure, 4=starting fuel, 8=fuel strategy 16=tire compound, 32=brake bias, 64=front wing, 128=engine settings",


It's at -1 ==> it listens to the rfm file settings or if there are track GDB file overwrite settings it listens to those.

Change this to 1=steering lock ==> Only steering lock is adjustable
Change this to 3 = (1+2) ==> Only steering lock and brake pressure is adjustable
Change this to 35 = (1+2+32) ==> Only steering lock, brake pressure is adjustable and brake bias is adjustable


..........................

I hope you understand this is very advanced stuff with tons of possible combinations of rules. :cool:
Keep in mind that not all options and combinations are full featured or fully tested.

TIP1: 1 little typo and your file is broken (keep a backup ;))
TIP2: Don't worry about all this stuff to much. Just go racing. :D
 
Thanks dude this is perfect.

Quite clever of them to use this "settings via addition" method (35 = options 1 + 2 + 32).

I'll play around with it, and with the code I can get better google results because I'll be searching for specific things.

Thanks again!
 

Latest News

What's needed for simracing in 2024?

  • More games, period

  • Better graphics/visuals

  • Advanced physics and handling

  • More cars and tracks

  • AI improvements

  • AI engineering

  • Cross-platform play

  • New game Modes

  • Other, post your idea


Results are only viewable after voting.
Back
Top