You are on page 1of 10

Basic Tutorial

RFACTOR MODDING for putting cars


in game

This is a simple way to do it but may not be the correct way. This is just the way I taught
myself how to do it in the beginning. I have since figured a lot more out but thought this
may be helpful to some.

I’ve been asked a few times about this and since it seems no one can find tutorial on it I
figured I would show you how I did it. For this tutorial I am going to show how to
accomplish this using 3d max and 3dsimmed. We will also be going through the steps to
create your own series for your car.

You will need a few things in order to be successful.

• 3DS MAX
• 3DSIMED
• RFACTOR PUBLIC TOOLS

The first thing is 3ds Max. This 3D MODELING program can be used solely by itself to
put cars into the game.

3dsimed makes it much easier to get cars in game but it needs to be used together with
3ds Max.

RFACTOR PUBLIC TOOLS (for 3DS MAX 5,6 though it works with 7 & 8 too), are the
tools provided by the developer to convert and bundle the content you create in the
format used by the SIM.

RFACTOR Public Tools requires that certain 3D Model parts be named certain
ways...We are going to go review this requirement real quick.

• Your car body material (assigned in 3DS MAX or 3Dsimed) has to be


wccarbody if you wish have multiple skins for the car

• Your wheels need to be named leftfront rightfront leftrear and rightrear.


Step 1 Create the RFM file for your mod.

We are first going to make a RFM file for your mod. This is the file that tells the game
what series to load.

SAMPLE FRM:

// Game/Season Info:
Mod Name = test
Track Filter = *
Vehicle Filter = test
SafetyCar = Hammer_PC.veh

Matchmaker = match.rfactor.net

Max Opponents = 30 // maximum opponents in practice/quick race/grand


prix/championship
Min Championship Opponents = 3 // minimum opponents in championship
only

ConfigOverrides
{
// Remove the comment marks "//" and set the appropriate dir if you
wish to override where
// this rFm looks for that data.
// At this time, I do not see a reasonable case for changing GameDir,
SaveDir or LogDir
// Because of this new capability, I would no longer make changes to
the Config.ini file
// except for debug reasons.

//SoundDir=GAMEDATA\SOUNDS\V8Factor
//VehicleSound=GAMEDATA\SOUNDS\
//OptionsAnim=UIDATA\MOVIES\
//OptionsFlags=GAMEDATA\NATIONS\
//OptionsSounds=UIDATA\UISOUNDS\
//OSCFile=UI.OSC
//OptionsDir=UIDATA\
//ReplayDir=REPLAYFRIDGE\REPLAYS\
//ReplayPluginsDir=REPLAYFRIDGE\PLUGINS\
//PluginsDir=PLUGINS\
//MovieDir=MOVIEFILES\V8FACTOR
//TracksDir=GAMEDATA\LOCATIONS\
//PitsDir=GAMEDATA\SCRIPTS\
//VehiclesDir=GAMEDATA\VEHICLES\V8FACTOR\
//DriversDir=GAMEDATA\TALENT\V8FACTOR\
//HelmetsDir=GAMEDATA\HELMETS\
//GamesDir=RFM\
//LogDir=USERDATA\LOG\
//SaveDir=USERDATA\
//MusicDir=MUSIC\BriSCA\
//ShadersDir=GAMEDATA\SHARED\
//ControllerDir=USERDATA\CONTROLLER\
//ScreenShotsDir=USERDATA\SCREENSHOTS\
//SupportDir=SUPPORT\
//LanguagesDir=SUPPORT\LANGUAGES\
//LanguagesFile=GAME.DIC

VERSION 1.1 2
UPDATED: FEB 25,2004
}

// Seasons:

Season = test
{
FullSeasonName = test Fig 8
Vehicle Filter = test
Min Championship Opponents = 5

SceneOrder
{
Adelaide
Pukekohe
Wanneroo
Winton
Queensland
OranGP
Sandown
Bathurst_2006
SurfersParadise
SymmonsPlains
Bahrain
EasternCreek
}
}

Season = test
{
FullSeasonName = test Fig 8
Vehicle Filter = test
Min Championship Opponents = 5

SceneOrder
{
NAS_International
Barcelona_GP
Mills_Long
Nuer_EuropeanGP
TOBAN_LONG
Bathurst_2006
NAS_BritishGP
Montreal_GP
Orchard_Lake_RC
ESSINGTON_LONG
}
}

DefaultScoring
{
RacePitKPH = 200
NormalPitKPH = 200

Practice1Day = Friday
Practice1Start = 11:00
Practice1Duration = 15
Practice2Day = Saturday
Practice2Start = 11:00
Practice2Duration = 10
QualifyDay = Saturday
VERSION 1.1 3
UPDATED: FEB 25,2004
QualifyStart = 11:30
QualifyDuration = 10
QualifyLaps = 3
WarmupDay = Sunday
WarmupStart = 9:30
WarmupDuration = 5
RaceDay = Sunday
RaceStart = 13:30
RaceLaps = 25
RaceTime = 120
}

// Money and experience accumulation (mostly multipliers for hard-coded


values
// which have various factors taken into account like number of
competitors)
StartingMoney = 2000000 // you might need a little spendin'
cash
StartingExperience = 0 // start with no experience
StartingVehicle = SBR_01,HRT_02,TBE_888,SAR_51 // randomly chooses
one free vehicle from this list
DriveAnyUnlocked = false // whether player can drive any unlocked
vehicle, or if player has to own it
BaseCreditMult = 1.0 // base which is multiplied by all the
other multipliers
LapMoneyMult = 1.0 // laps completed (based roughly on
expected lap times)
LapExpMult = 1.0
FineMoneyMult = 1.0 // fines
FineExpMult = 0.0
PoleSingleMoneyMult = 1.0 // pole positions in single player
PoleSingleExpMult = 1.0
PoleCareerMoneyMult = 1.0 // pole positions in career mode
PoleCareerExpMult = 1.0
PoleMultiMoneyMult = 1.0 // pole positions in multiplayer
PoleMultiExpMult = 1.0
WinSingleMoneyMult = 1.0 // wins in single player
WinSingleExpMult = 1.0
WinCareerMoneyMult = 1.0 // wins in career mode
WinCareerExpMult = 1.0
WinMultiMoneyMult = 1.0 // wins in multiplayer
WinMultiExpMult = 1.0
PointsSingleMoneyMult = 1.0 // points in single player
PointsSingleExpMult = 1.0
PointsCareerMoneyMult = 1.0 // points in career mode
PointsCareerExpMult = 1.0
PointsMultiMoneyMult = 1.0 // points in multiplayer
PointsMultiExpMult = 1.0

// Season scoring info


SeasonScoringInfo
{
FirstPlace = 25
SecondPlace = 20
ThirdPlace = 18
FourthPlace = 16
FifthPlace = 14
SixthPlace = 12
SeventhPlace = 10
EighthPlace = 8
VERSION 1.1 4
UPDATED: FEB 25,2004
NinthPlace = 6
TenthPlace = 4
EleventhPlace = 0
TwelthPlace = 0
ThirteenPlace = 0
FourteenthPlace = 0
FifteenthPlace = 0
SixteenthPlace = 0
SeventeenthPlace = 0
EighteenthPlace = 0
NinteenthPlace = 0
TwentiethPlace = 0
TwentyFirstPlace = 0
TwentySecondPlace = 0
TwentyThirdPlace = 0
TwentyFourthPlace = 0
TwentyFifthPlace = 0
TwentySixthPlace = 0
TwentySeventhPlace = 0
TwentyEighthPlace = 0
TwentyNinthPlace = 0
ThirtiethPlace = 0
ThirtyFirstPlace = 0
}

SceneOrder
{
Adelaide
Pukekohe
Wanneroo
Winton
Queensland
OranGP
Sandown
Bathurst_2006
SurfersParadise
SimmonsPlains
Bahrain
EasternCreek
}

// Pitstop locations in order from front to back, with the number


// of vehicles sharing each pit ... if the order needs to be
// reversed on an individual track, set "ReversePitOrder=1" in
// the track-specific GDB file.
// These are now "pit group" names, not necessarily team names.
// In the VEH file, the pit group defaults to the team name but
// can be overridden by defining "PitGroup=<name>".
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
VERSION 1.1 5
UPDATED: FEB 25,2004
PitGroup = 2, Group10
PitGroup = 2, Group11
PitGroup = 2, Group12
PitGroup = 2, Group13
PitGroup = 2, Group14
PitGroup = 1, Group15
PitGroup = 1, Group16
PitGroup = 1, Group17

Now for our example we are just doing the bare minimum to get car into game. Now that
you have the file named test.rfm, right click and open it with notepad using the sample
provided as a skeleton. NOTE: The TEST file is already edited but we will review what to
change for customizations.

Highlight the first "test" word you see now click the edit button at top and choose replace.
A new box opens and in the open spot type in test. Choose replace all...close and save.

You now have the new series file saved and ready. Put this file in the C:\Program
Files\rFactor\rFm directory. With this step we have made our mod selectable so we
now need to add a car to it.

Step 2 Prepare to Add a CAR

Ok now onto adding cars. This is not simple and doesn’t always work. I will give you the
basics of what to do.

1) Make a folder on desktop for your objects.


2) We need a model to start with, just the car model minus the wheels for right now.
The easy way to do it is to make sure it’s a .3ds file ext. You will open 3d max and
make sure you have the car on the 0,0,0 plane. Once you have done that export the
.3ds and save it...
3) Open 3dsimed up and import as object. Now you need to have the car textured. So
proceed with texturing your car making sure to use .dds format files.
4) Once your car is textured the way you wish, go to edit option and at the bottom of the
pull down list select explode all objects.
5) Save it as an RFACTOR model data file, Name it “body”.
6) Now you should have a body.gmt file in your folder. You need to select File
àExport textures and make them go to same folder as the body.gmt file.
7) With the body and its textures saved proceed to processing the wheels. You will need
4 separate wheels models named as explained above.
8) Close and reopen 3dsimed. From the menu select FileàImport as object and
import your body file.
9) Select primitive à add object, and choose a wheel.texture.
10) Take this wheel and fit it to where it goes on the car then continue doing this until you
have all four wheels placed.
11) Save as RFACTOR object then save the textures to the working folder.
12) Now you should have many items in your working folder. Select output.scn and
then open it with 3DSIMED. It should open your whole car, wheels and all.

If it works we are ready to put in the game spinner.


VERSION 1.1 6
UPDATED: FEB 25,2004
Step 3 Edit text files
Now we are going to have to edit some files. I have made a template vehicles folder for
you already. You can download it from http://www.dragsim.com/tut/temp.rar

You will still need to figure out physics on your own. The values provided are just for
testing purposes.

In this folder structure you will find 2 files we will modify. One is named
test_Spinner.gen and the other is test_upgrades.gen

The remaining files are for physics and for camera views. Iif you make a second mod
you would just rename all the test files to match your mods name.

So, with the first file named test_spinner.gen, which is used is for the spinner model
when you load game to choose vehicle, we will open the file and make the following
changes.

Find this line:

SearchPath=<VEHDIR>
MASFile=test\test.mas
MASFile=cmaps.mas

What it means:

SearchPath=<VEHDIR>
MASFile=test(vehicle foldername)\test.mas(mas file name)
MASFile=cmaps.mas

So this section tells the program where to load your car files from. For this example ours
is already correct.

Find the following line:

Instance=SLOT<ID>
{
Moveable=True
MeshFile=body.gmt CollTarget=true HATTarget=False LODIn=(0.0)
LODOut=(155.0) Reflect=True

These are going to be the lines the game uses for each diff model part you made (wheels
get called later so don’t include them)

We saved our car body in 3DSIMED as body.gmt and as you can see here the game is
calling it that as well. Just copy and paste the meshfile line if you have extra parts (like
wing or hood scoop, blower etc) and change the body.gmt to the name of your custom
GMT file

The wheels are defined later in the file but there is no need to change it if you used the
supplied sample file. Save the file since we are done with it.

VERSION 1.1 7
UPDATED: FEB 25,2004
The second file: test_upgrades.gen is the definition for the vehicle that the program
loads when you race..

Open the test_upgrades.gen file with your text editor and find this section:

SearchPath=<VEHDIR>
MASFile=test\test.mas
MASFile=cmaps.mas

Make sure these paths go to your vehicle's folder and to the MAS name like in
example...

We need to define the GMT files for the game so you can use the car in a race so we
have to do it four times, one for each resolution.

Instance=SLOT<ID>
{
Moveable=True
MeshLODPosByInstance=True
//------------------------------------MAX CAR SETTINGS----------------------------------
-----------
<max>MeshFile=body.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(155.0)
Reflect=True

//------------------------------------HIGH CAR SETTINGS---------------------------------


-----------
<high>MeshFile=body.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(155.0)
Reflect=True

//------------------------------------MED CAR SETTINGS----------------------------------


-----------
<med>MeshFile=body.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(155.0)
Reflect=True

//------------------------------------LOW CAR SETTINGS----------------------------------


-----------
<low>MeshFile=body.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(155.0)
Reflect=True

//------------------------------------SHADOW AND COLLISION OBJECTS----------------------


-----------
//MeshFile=SHADOwchvy.GMT CollTarget=False HATTarget=False ShadowObject=(True, Solid,
512, 512) LODIn=(0.0) LODOut=(100.0)
//MeshFile=col_chvy.gmt Render=False CollTarget=True HATTarget=False LODIn=(0.0)
LODOut=(200.0)
---------------------------------------------------------------------------------

I have the shadow and collision objects commented out since I don’t know much about
them. As with the spinner file if you have extra parts just make a new line for them in
here like we did in spinner...

Now here we have the cockpit files

Instance=COCKPIT
{
Moveable=True
MeshFile=body.gmt CollTarget=False HATTarget=False LODIn=(0.0)
LODOut=(155.0) Reflect=True

VERSION 1.1 8
UPDATED: FEB 25,2004
The cockpit can be from a totally different model, just make sure to call your GMT files in
this section for the cockpit used.

With this step done we should be ready to save the file and proceed.

Step 4 MAS files

Now that working folder you made on the desktop with all the model parts in it is not in a
format the program wants. We need to create a single MAS file from these files so you
will need to use the RFACTOR PUBLIC TOOLS for this.

In the RFACTOR tools directory, open the mas.exe and select FILEàMAKE NEW MAS
file. Drag all the files from your working model folder on the desktop into the MAS
program. Now select Save and name it test.

You should now have a test.mas file so grab this file and copy-paste it into the folder
with the spinner and upgrades files. It will ask you if you want to overwrite existing files
so confirm with a YES (if it doesn’t ask you to confirm then you probably selected the
wrong folder). Now that you have the test vehicle folder completed we need to put that
folder in game.

Where does it go? It goes here:

C:\Program Files\rFactor\GameData\Vehicles

Step 5 Skins

We have to set up skins folder. This very important and if it’s not done right you’ve
messed up so bad you wont see anything in-game.

In the vehicle folder located in the game directory, find your folder named test and open
it. Now find the folder named cars. In this folder each skin has there own .veh file and
skin file. We have to edit the vehicle file for your car to show in game.

Once you get the car in game you will see on the select screen what most the stuff does
in here.

Open the .veh file with a text editor edit any lines that need to match what you are
working on, like DefaultLivery, etc.

DefaultLivery="car1.BMP" // Carskin to use


HDVehicle=test.hdv thats // HDV to use
Graphics=test_upgrades.gen // Graphics Mods File
Spinner=test_Spinner.gen // Spinner File
Cameras=test_cam.cam // Defaults to cams.cfg in UserData directory
Sounds=test.sfx // sound file to use

VERSION 1.1 9
UPDATED: FEB 25,2004
Upgrades= //telling game what upgrades you have
HeadPhysics=headphysics.ini // Affects driver viewpoint only
Cockpit=test_cockpitinfo.ini //cockpit info for that vehicle like
steering wheel placement and ****
AIUpgradeClass=test //not sure just name it like your mods name

Number=521 car number


Team="test" //team for car
PitGroup=
Driver=""
Description="red"
Engine="v8"
Manufacturer="ww"
Classes="test" //has to be set to your mod class are car wont show
up

FullTeamName="test" Team Name


TeamFounded=2006
TeamHeadquarters=""
TeamStarts=0
TeamPoles=0
TeamWins=0
TeamWorldChampionships=0
Category="test" //what catagory its in in the dropdown vehcile
select screen

After you put that folder in there you should be able to start up game and go to your mod
and see your car....

I know i haven’t covered a tenth of the things you can do but hopefully this will help
anyone who wants to put a model in the game...

You may have to adjust your model after its in game. What I do is make it look good in
spinner and look to see if tires are on the ground in game. If they aren’t I edit the .tbc
file (tire file). I usually edit the radius of the wheels in there till it looks right in game...

VERSION 1.1 10
UPDATED: FEB 25,2004

You might also like