Upgrades.ini

Pandamasque

Hi everyone.

I've been searching for some time but still can't find any tutorials on rF upgrade files. Any ideas/links are welcome.

What I'm actually interested at the moment is a way to change car class via upgrades. I tried copying the solution from another mod but it doesn't work if you have more than 2 upgrade classes to select from. Am I doing something wrong?

With the following in the upgrade.ini any class higher than the default (GT-E) is displayed in the race as the last one in the list (GT-E +80TC). Apart from that it seems that the attributes work properly though.
The goal is to make multiple weights and have the selection displayed, so that the judges on the server would see the amount of success ballast used.
Maybe there is some other way to display the upgrades used on the server?

Code:
UpgradeClass="GT-E"
{
  	AIList
  	{
    Traction Control and Ballast=0
      }
}

UpgradeClass="GT-E TC"
{
  	AIList
  	{
    Traction Control and Ballast=1
      }
}

UpgradeClass="GT-E +20"
{
  	AIList
  	{
    Traction Control and Ballast=2
    	}
}

UpgradeClass="GT-E +20TC"
{
  	AIList
  	{
    Traction Control and Ballast=3
    	}
}

UpgradeClass="GT-E +40"
{
  	AIList
  	{
    Traction Control and Ballast=4
    	}
}

UpgradeClass="GT-E +40TC"
{
  	AIList
  	{
    Traction Control and Ballast=5
    	}
}

UpgradeClass="GT-E +60"
{
  	AIList
  	{
    Traction Control and Ballast=6
    	}
}

UpgradeClass="GT-E +60TC"
{
  	AIList
  	{
    Traction Control and Ballast=7
    	}
}

UpgradeClass="GT-E +80"
{
  	AIList
  	{
    Traction Control and Ballast=8
    	}
}

UpgradeClass="GT-E +80TC"
{
  	AIList
  	{
    Traction Control and Ballast=9
    	}
}

UpgradeType="Traction Control and Ballast"
{
  UpgradeLevel="No TC"
  { 
    Description="No Traction Control."
    HDV=[GENERAL]
    HDV=Mass=1240.0
    HDV=
    HDV=[CONTROLS]
    HDV=TractionControlGrip=(0.0, 0.00)
    HDV=TractionControlLevel=(0.00, 0.00)
  }
  UpgradeLevel="Traction Control System +30kg"
  {
    Description="Equipped with traction control the car will carry extra 30kg of ballast."
    HDV=[GENERAL]
    HDV=Mass=1270.0
  }
  UpgradeLevel="No TC +20 kg SB"
  { 
    Description="+20kg success ballast. No Traction Control."
    HDV=[GENERAL]
    HDV=Mass=1260.0
    HDV=
    HDV=[CONTROLS]
    HDV=TractionControlGrip=(0.0, 0.00)
    HDV=TractionControlLevel=(0.00, 0.00)
  }
  UpgradeLevel="+30 kg TC +20 kg SB"
  {
    Description="+20kg success ballast. +30kg TC ballast."
    HDV=[GENERAL]
    HDV=Mass=1290.0
  }
  UpgradeLevel="No TC +40 kg SB"
  { 
    Description="+40kg success ballast. No Traction Control."
    HDV=[GENERAL]
    HDV=Mass=1280.0
    HDV=
    HDV=[CONTROLS]
    HDV=TractionControlGrip=(0.0, 0.00)
    HDV=TractionControlLevel=(0.00, 0.00)
  }
  UpgradeLevel="+30 kg TC +40 kg SB"
  {
    Description="+40kg success ballast. +30kg TC ballast."
    HDV=[GENERAL]
    HDV=Mass=1310.0
  }
  UpgradeLevel="No TC +60 kg SB"
  { 
    Description="+60kg success ballast. No Traction Control."
    HDV=[GENERAL]
    HDV=Mass=1300.0
    HDV=
    HDV=[CONTROLS]
    HDV=TractionControlGrip=(0.0, 0.00)
    HDV=TractionControlLevel=(0.00, 0.00)
  }
  UpgradeLevel="+30 kg TC +60 kg SB"
  {
    Description="+60kg success ballast. +30kg TC ballast."
    HDV=[GENERAL]
    HDV=Mass=1330.0
  }
  UpgradeLevel="No TC +80 kg SB"
  { 
    Description="+60kg success ballast. No Traction Control."
    HDV=[GENERAL]
    HDV=Mass=1320.0
    HDV=
    HDV=[CONTROLS]
    HDV=TractionControlGrip=(0.0, 0.00)
    HDV=TractionControlLevel=(0.00, 0.00)
  }
  UpgradeLevel="+30 kg TC +80 kg SB"
  {
    Description="+80kg success ballast. +30kg TC ballast."
    HDV=[GENERAL]
    HDV=Mass=1350.0
  }
}

UpgradeType="SCEC Class"
{
  UpgradeLevel="GT-E"
  { 
    Description="SCEC pitstop rules"
    HDV=[PITMENU]
    HDV=Preparation=(120.0,25.0,0.5,4.5)
    HDV=FuelTime=(2.85,0.5,1.0,0.5,0.0)
    HDV=TireTime=(12.0,28.0,0.25,0.0)
  }
}
 
Check out NAGT. It uses both changeable, visible weight and car class changes for the upgrades.

Cheers!
 
Is there a mod with more than 2 class packages on the car working properly?
Maybe there's a way of altering vehicle description or team name via upgrades? I guess anything that would show up on the server will do.

The windshield sticker thing of NAGT is absolutely ace, I must say. But with no 3D experience it's hardly a good solution to try and do that for 14 different GT and LMP cars just for a league patch :)
 
I think u cant have more than 4 class upgrades (1 default + 3 extra), there seems to be a limitation for class upgrades it starts to loop after 4th or smth like that, the 5th class starts to show 1st one again... maybe its a bug dunno :confused:

u can check ISI Panoz it has 3-4 upgrades...
 
It's not a bug, it's a limitation I guess. Replay file must remember what upgrades you had, and it doesn't have much room for this information (strictly limited space). Perhaps that would change in rFactor2, perhaps not.
 
Ok, this is getting ridiculous.

I installed the Panoz. The street car has 4 upgrade classes and they work properly. Mine don't.

I narrowed it down to just 3 upgrade classes and kept things as bold and simple as possible for testing purposes. But I'm still missing something. All the classes are displayed as GT-E_B.

Here's the whole file:

Code:
UpgradeClass="GT-E"
{
  	AIList
  	{
    SuccessBallast=0
      }
}

UpgradeClass="GT-E_A"
{
  	AIList
  	{
    SuccessBallast=1
      }
}

UpgradeClass="GT-E_B"
{
  	AIList
  	{
    SuccessBallast=2
    	}
}

UpgradeType="SuccessBallast"
{
  UpgradeLevel="1000kg"
  { 
    Description="1000kg"
    HDV=[GENERAL]
    HDV=Mass=1000.0
  }
  UpgradeLevel="1500kg"
  {
    Description="1500kg"
    HDV=[GENERAL]
    HDV=Mass=1500.0
  }
  UpgradeLevel="2200kg"
  { 
    Description="2200kg"
    HDV=[GENERAL]
    HDV=Mass=2200.0
  }
}
Where's Waldo? :confused:
 
The problem is that each class has to be a different purchase cost. If you do not want to charge the user for the class make each one a negitive cost -1,-2,-3 and so on. I spent many many many hours figuring out this problem.
 
Thank you so much! At first I tried adding prices to the upgrade classes wich didn't work at all. But then I added them to the actual upgrades listed in classes it worked perfectly fine!

Despite what was stated above more than 4 classes are possible. I managed to get 6 already.

Code:
UpgradeClass="GT-E"
{
  	AIList
  	{
    Success Ballast=0
      }
}

UpgradeClass="GT-E A"
{
  	AIList
  	{
    Success Ballast=1
      }
}

UpgradeClass="GT-E B"
{
  	AIList
  	{
    Success Ballast=2
    	}
}

UpgradeClass="GT-E C"
{
  	AIList
  	{
    Success Ballast=3
    	}
}

UpgradeType="Success Ballast"
{
  UpgradeLevel="1000kg"
  { 
    Description="1000kg"
  	Price=-4
    HDV=[GENERAL]
    HDV=Mass=1000.0
  }
  UpgradeLevel="1500kg"
  {
    Description="1500kg"
  	Price=-3
    HDV=[GENERAL]
    HDV=Mass=1500.0
  }
  UpgradeLevel="2200kg"
  { 
    Description="2200kg"
  	Price=-2
    HDV=[GENERAL]
    HDV=Mass=2200.0
  }
  UpgradeLevel="3000kg"
  {
    Description="3000kg"
  	Price=-1
    HDV=[GENERAL]
    HDV=Mass=3000.0
  }
}
 
Last edited:
Sorry for hijacking this thread but I wanted to know if I understood this correctly. With the upgrades.ini you can only change things in text files (gen, hdv...)? Does this mean that when I want an upgrade to change just a texture I would have to create a new gmt that has the texture changed in its material?
 
Thanks. That's sad though because it's a waste. I wanted to have 3 different colour options of my rim. Considering that a car has 4 wheels and you need 4 LOD levels for each, I would have to create 3*4*4=48 gmt-s :D
 
No, you don't have to do that :)
Just rename the rim's material with wildcard name (like extra0, extra1 etc.) and thanks to that, you can have different colour options as skins (which you can select from rF menu).

But... if you really want to have it as an upgrade then you have to do like Pandamasque said - separate gmt for different textures.
 
While on this topic of upgrades, I'm working on something where the car's bodies are upgradeable through 3 different styles as well as the usual wings, bumpers, etc. Would this be done by having a <BODY> reference in the .gen, which would then be complemented by the appropriate "UpgradeType="BODY" entry in the.ini?

Apologies for not providing more detailed examples, but I'm writing this for work and they won't let me play with my WIP stuff here!
 
While on this topic of upgrades, I'm working on something where the car's bodies are upgradeable through 3 different styles as well as the usual wings, bumpers, etc. Would this be done by having a <BODY> reference in the .gen, which would then be complemented by the appropriate "UpgradeType="BODY" entry in the.ini?

Apologies for not providing more detailed examples, but I'm writing this for work and they won't let me play with my WIP stuff here!

It is possible, assuming we are on the same wavelength, but you will get an issue with the body not changing in the spinner selecting a body upgrade, have a look at ctdp 2006 mod gen files, where I had a work around for this for the spinner.
 
It is possible, assuming we are on the same wavelength, but you will get an issue with the body not changing in the spinner selecting a body upgrade, have a look at ctdp 2006 mod gen files, where I had a work around for this for the spinner.
Is that because its the main body and not in the <startupgrades> section? Because all you should need for that is <UPNUMBER> in the spinner instance. Couldn't you just make the main body a simple thing like the floor pan and have the actual body in the upgrades section of the gen files?
I'm downloading your mod, I'll check it out when its done. :)

<STARTUPGRADES>
Instance=RWING<UPNUMBER>
{

[ED] I saw your setup and yeah, that's similar to how how you did it, :)
 
Last edited:
Is that because its the main body and not in the <startupgrades> section? Because all you should need for that is <UPNUMBER> in the spinner instance. Couldn't you just make the main body a simple thing like the floor pan and have the actual body in the upgrades section of the gen files?
I'm downloading your mod, I'll check it out when its done. :)

<STARTUPGRADES>
Instance=RWING<UPNUMBER>
{

[ED] I saw your setup and yeah, that's similar to how how you did it, :)

You can do that both ways, make the body object just say the floor, the rest a debris or other instance. i don't recall the exact details now, but in fact the gmt is the whole body in the gen in the ctdp 2006 mod. Several ways you skin that cat :)

Saying that, you need to be careful in that case with the collision mesh, just having the floor in there, it is simplest to keep most of the body mesh in the slotID so the collision mesh is a match for most of that, so collisions will work more easily.

Putting the start stop upgrades, I think it has to be like that and after the slotID and body stuff, it cannot be before and include the body, though this is from memory, not 100% certain on that restriction. Easy enough to try it out.
 
Last edited:
With collision do you mean vertex deforming? where if the body is not in the slotID it wont get any damage? Cause now I think of it, I don't think I have seen a debris object get damaged, they usually just fall off.
 
With collision do you mean vertex deforming? where if the body is not in the slotID it wont get any damage? Cause now I think of it, I don't think I have seen a debris object get damaged, they usually just fall off.

You can declare an object as deformable on export if you want. In any case if you have declared that instance with the same name in the gen in the damage file also, it will allow vertex deformation. You need to tune that in the damage file with things like the probabilty it may fall off, the impact force needed to do so, and the amount of vertex displacement allowed, it is all defined in there.

I just meant that he colliison mesh defines the simple boundaries of a solid object for the car body when it collides.
 
Hi!
I've some trouble. I've done some engines to my league's modification, but it doesn't work.
Here is the upgrade file's content below. I would like someone, who explain me what the problen is with my upgrade.

the upgrade.ini:

BaseVehiclePrice=0

UpgradeType="Engines"
{

UpgradeLevel="Engine 1 - Wear: 100%, Power: 100%"
{
Description=""
Price=0

HDV=[ENGINE]
HDV=normal=engine1-d2
HDV=RestrictorPlate=engine1-d2
}

UpgradeLevel="Engine 2 - Wear: 100%, Power: 100%"
{
Description=""
Price=0

HDV=[ENGINE]
HDV=Normal=engine2-d2
HDV=RestrictorPlate=engine2-d2
}
}

Thanks for the help: Laller.
 
How can I use "Fixed Upgrades" on server?

what values does any upgrade have for chaning value in
Fixed Upgrades="0" // whether multiplayer vehicles use the closest standard upgrade class package
 
Hi.
When you create a dedicated server you have the option "Fixed upgrades" right below "Fixed Setups".
In .PLR Fixed Upgrades="1" means option is enabled....everybody with fixed upgrades.
 

Back
Top