Level Properties

This feature has been introduced in version 17.1124a.

Level properties are similar to parameters.txt for cars. They allow you to customize certain aspects of your tracks:

  • Materials
    • Grip, roughness, hardness
    • Bump profile (corrugation)
    • Sounds
  • Particle effects
    • Particles used by weapons
    • Dust (appears when driving on some materials)
    • Particle trails
  • Gravity
  • Wind
  • Pickups

RVGL looks for a properties.txt file when loading a level. If such a file exists, the original materials and effects will be replaced with the ones in the file.

This can be used to tweak existing materials so they fit your track better or even to create entirely new materials like snow.

Sample Properties File

properties_default.txt

This file contains all stock properties. You can use this to base your custom properties on.

Materials

A material structure provides information about the surface cars drive on. Each material has a unique ID. In total, 27 different materials can be used.

Default Materials

IDMaterialIDMaterial
0Default14Pebbles
1Marble15Gravel
2Stone16Conveyor 1
3Wood17Conveyor 2
4Sand18Dirt 1
5Plastic19Dirt 2
6Carpet Tile20Dirt 3
7Carpet Shag21Ice 2
8Boundary22Ice 3
9Glass23Wood 2
10Ice 124Conveyor Market 1
11Metal25Conveyor Market 2
12Grass26Paving
13Bump Metal

To override a material, add the following to your properties.txt file:

MATERIAL {
  ID               10               ; ID of the material to replace [0 - 26]
  Name             "Ice 1 Snow"     ; Display name

  Spark            true             ; Material emits particles
  Skid             true             ; Skid marks appear on material
  OutOfBounds      false            ; Not implemented
  Corrugated       true             ; Material is bumpy
  Moves            false            ; Moves cars like museum conveyors
  Dusty            true             ; Material emits dust

  Roughness        0.4              ; Roughness of the material
  Grip             0.4              ; Grip of the material
  Hardness         0.2              ; Hardness of the material

  DefaultSound     87               ; Sound when driving normally
  SkidSound        87               ; Sound when skidding [6:Normal, 7:Rough]
  ScrapeSound      5                ; Car body scrape [5:Normal]

  SkidColor        207 215 220      ; Color of the skid marks
  CorrugationType  2                ; Type of bumpiness [0 - 7]
  DustType         2                ; Type of dust
  Velocity         0.0 0.0 0.0      ; Speed and direction cars are moved in
}

In this case, we're overriding the ICE1 material (ID 10).

If you're looking for materials to safely override: DIRT1, DIRT2 and DIRT3 share the same values, there is no difference between them at all. CARPETSHAG and CARPETTILE also have the same values.

Material Properties

PropertyDescriptionRecommended Defaults
IDUnique ID number of the material you want to override.It's advised to override materials that aren't used in-game or have the same properties as others (DIRT2, DIRT3, CARPETTILE, PAVEMENT, etc.).
NameDisplay name, not used by the game.-
SparkThe material emits particles that are defined by the assigned dust.true or false.
SkidIf true, cars leave skid marks on the ground.true for most materials.
OutOfBoundsNot used in the game (yet).false.
CorrugatedMakes the surface bumpy.true or false.
MovesMaterial moves the cars like the museum conveyors.true or false.
DustyMaterial generates dust when cars drive on it.true or false.
RoughnessRoughness of the material.Between 0.1 and 1.0.
GripGrip of the material.Between 0.1 and 1.0.
HardnessHardness of the material.Between 0.1 and 1.0.
DefaultSoundPersistent sound when cars are driving on the material.-1 (disabled) or any sound ID.
SkidSoundSound when cars skid on the material (when the wheels lose traction or drift).6 (normal) or 7 (rough)
ScrapeSoundSound when cars scrape on the material (when the body touches the ground).5 (normal)
SkidColorColor of the wheel's skid marks.50 50 50
CorrugationTypeID of the corrugation to use for this material. Corrugated needs to be true.0
DustTypeID of the dust type to use for this material. Dusty needs to be true.0
VelocityVelocity with which the cars are pushed around with if Moves is true.Multiples of 100.0 should be used.

Sound IDs

Use these IDs for the SkidSound and ScrapeSound properties.

To use more than IDs 6 and 7 for normal and rough skid sounds, stock track sounds can be replaced. For example, rattler.wav from Ghost Town could be replaced with a custom skid sound. To do so, place a file named rattler.wav in your track's custom folder and use ID 89 in your properties.txt file.

IDSound pathIDSound path
0moto.wav53hood/birds3.wav
1petrol.wav54hood/dogbark.wav
2clockwrk.wav55hood/kids.wav
3ufo.wav56hood/sprink.wav
4honkgood.wav57hood/tv.wav
5scrape.wav58hood/lawnmower.wav
6skid_normal.wav59hood/digger.wav
7skid_rough.wav60hood/stream.wav
8pickup.wav61hood/cityamb2.wav
9pickgen.wav62hood/roadcone.wav
10shock.wav63garden/tropics2.wav
11shockfire.wav64garden/tropics3.wav
12electro.wav65garden/tropics4.wav
13electrozap.wav66garden/stream.wav
14firefire.wav67garden/animal1.wav
15firebang.wav68garden/animal2.wav
16balldrop.wav69garden/animal3.wav
17ball.wav70garden/animal4.wav
18hit2.wav71muse/museumam.wav
19wbomb.wav72muse/laserhum.wav
20wbombfire.wav73muse/alarm2.wav
21wbombhit.wav74muse/escalate.wav
22wbombbounce.wav75muse/rotating.wav
23puttbang.wav76muse/largdoor.wav
24fuse.wav77market/aircond1.wav
25oildrop.wav78market/cabnhum2.wav
26countdown.wav79market/carpark.wav
27turbo.wav80market/freezer1.wav
28servo.wav81market/iceyarea.wav
29menunext.wav82market/sdrsopen.wav
30menuprev.wav83market/sdrsclos.wav
31menuupdown.wav84market/carton.wav
32menuleftright.wav85ghost/coyote1.wav
33lightflk.wav86ghost/bats.wav
34boxslide.wav87ghost/eagle1.wav
35starfire.wav88ghost/minedrip.wav
36tvstatic.wav89ghost/rattler.wav
37splash.wav90ghost/townbell.wav
38honka.wav91ghost/tumbweed.wav
39beachball.wav92ship/intamb1.wav
40bottle.wav93ship/seagulls.wav
41toy/piano.wav94ship/shiphorn.wav
42toy/plane.wav95ship/strmrain.wav
43toy/copter.wav96ship/thunder1.wav
44toy/dragon.wav97ship/wash.wav
45toy/creak.wav98roof/traffic_mush.wav
46toy/train.wav99roof/helicopter_loop.wav
47toy/whistle.wav100roof/siren_loop.wav
48toy/arcade.wav101roof/wind_loop.wav
49toy/toybrick.wav102roof/steamhiss_loop.wav
50hood/basketball.wav103roof/electric_hum.wav
51hood/birds1.wav104roof/telemetry.wav
52hood/birds2.wav105roof/air_con.wav

Corrugation

Corrugation structures define the bumpiness of the surface. There are 8 types available.

Default Corrugation

IDCorrugationIDCorrugation
0NONE4CONVEYOR
1PEBBLES5DIRT1
2GRAVEL6DIRT2
3STEEL7DIRT3

To override a corrugation, paste the following snipped into your properties.txt:

CORRUGATION {
  ID              1                             ; Corrugation to replace [0-7]
  Name            "Name"                        ; Display name

  Amplitude       0.000000                      ; Amplitude of bumps (strength)
  Wavelength      0.000000 0.000000             ; Frequency of bumps
}

Corrugation Properties

PropertyDescriptionRecommended Defaults
IDID of the corrugation type to override.0 - 7
NameName of the corrugation. Not used in-game.-
AmplitudeStrength of the corrugation (height of the bumps)0.0 - 5.0
WavelengthFrequency of the bumps0.0 - 100.0

Dust

Dust structures are a set of two particles with a probability and variance. Materials emit dust when cars drive on them.

Default Dust

IDDust
0NONE
1GRAVEL
2SAND
3GRASS
4DIRT
5ROAD

To override a dust type, copy the following snippet into your properties.txt:

DUST {
  ID              1                             ; Dust to replace [0 - 5]
  Name            "GRAVEL"                      ; Display name

  SparkType       4                             ; Particle to emit [0 - 30]
  ParticleChance  0.600000                      ; Probability of a particle
  ParticleRandom  0.600000                      ; Probability variance

  SmokeType       29                            ; Smoke particle to emit [0-30]
  SmokeChance     0.300000                      ; Probability of a smoke part.
  SmokeRandom     0.600000                      ; Probability variance
}

Dust Properties

PropertyDescriptionRecommended Defaults
IDID of the dust type to override.0 - 5
NameDisplay name of the dust type, not used in-game.-
SparkTypeID of the particle to emit.0 - 30
ParticleChanceThe probability of a particle to be emitted.0.0 - 1.0
ParticleRandomVariance of the probability.0.0 - 1.0
SmokeTypeID of the smoke particle to emit.0 - 30
SmokeChanceThe probability of smoke to be emitted.0.0 - 1.0
SmokeRandomVariance if the probability.0.0 - 1.0

Particles

Particles (also called sparks) can be emitted by materials, weapons, cars and other objects.

Default Particles

IDParticleIDParticle
0SPARK16SMALLRED
1SPARK217EXPLOSION1
2SNOW18EXPLOSION2
3POPCORN19STAR
4GRAVEL20PROBE_SMOKE
5SAND21SPRINKLER
6GRASS22SPRINKLER_BIG
7ELECTRIC23DOLPHIN
8WATER24DOLPHIN_BIG
9DIRT25SPARK3
10SMOKE126ROADDUST
11SMOKE227GRASSDUST
12SMOKE328SOILDUST
13BLUE29GRAVELDUST
14BIGBLUE30SANDDUST
15SMALLORANGE

To override a particle, copy the following snippet into your properties.txt:

SPARK {
  ID              0                             ; Particle to replace [0 - 30]
  Name            "SPARK"                       ; Display name

  CollideWorld    true                          ; Collision with the world
  CollideObject   true                          ; Collision with objects
  CollideCam      true                          ; Collision with camera
  HasTrail        false                         ; Particle has a trail
  FieldAffect     true                          ; Is affected by force fields
  Spins           false                         ; Particle spins
  Grows           false                         ; Particle grows
  Additive        true                          ; Draw particle additively
  Horizontal      false                         ; Draw particle flat

  Size            1.000000 1.000000             ; Size of the particle
  UV              0.937500 0.000000             ; Top left UV coordinates
  UVSize          0.062500 0.062500             ; Width and height of UV
  TexturePage     47                            ; Texture page
  Color           255 255 255                   ; Color of the particle

  Mass            0.100000                      ; Mass of the particle
  Resistance      0.020000                      ; Air resistance
  Friction        0.100000                      ; Sliding friction
  Restitution     0.500000                      ; Bounciness

  LifeTime        0.500000                      ; Maximum life time
  LifeTimeVar     0.050000                      ; Life time variance

  SpinRate        0.000000                      ; Avg. spin rate (radians/sec)
  SpinRateVar     0.000000                      ; Variation of the spin rate

  SizeVar         0.000000                      ; Size variation
  GrowRate        0.000000                      ; How quickly it grows
  GrowRateVar     0.000000                      ; Grow variation

  TrailType       1                             ; ID of the trail to use
}

Particle Properties

PropertyDescriptionRecommended Defaults
IDID of the particle to replace.0 - 30
NameDisplay name of the particle, not used in-game.-
CollideWorldThe particle collides with the world (geometry from the .w file).true or false
CollideObjectThe particle collides with objects (cars and other level objects).true or false
CollideCamThe particle collides with the camera (currently not implemented).false
HasTrailThe particle has a trail.true or false
Field AffectThe particle is affected by force fields.true or false
SpinsThe particle rotates.true or false
GrowsThe particle grows bigger.true or false
AdditiveThe particle is rendered additively: Black becomes transparent and bright colors are added to the underlying things.true or false
HorizontalInstead of facing the camera, the particle is flat.true or false
SizeSize of the particle.1.0 1.0
UVTop left UV-coordinate of the mapping. 0.0 0.0 is top left and 1.0 1.0 is bottom right.-
UVSizeWidth and height of the UV mapping (bottom right corner).-
TexturePageTexture the particle will be mapped to.47-49 are fxpage[1-3], 0-46 are track textures.
ColorRGB Color of the particle.255 255 255
MassMass of the particle.
ResistanceAir resistance of the particle (how slowly it travels through the ari).
FrictionFriction when touching collideable objects.
RestitutionBounciness of the particle.
LifeTimeHow long the particle lives.If this is too high, the creation of other particles might be prevented.
LifeTimeVarVariance of the life time.
SpinRateThe spin rate in radians per second.
SpinRateVarVariation of the spin rate.
SizeVarInitial size variation.
GrowRateHow quickly the particle grows.
GrowRateVarVariation of the grow rate.
TrailTypeID of the trail if enabled.0 - 2

Trails

Trails are similar to particles. They follow particles. They're used for fireworks and some sparks.

Default Trails

IDTrail
0FIREWORK
1SPARK
2SMOKE

To override a spark type, copy the following snippet into your properties.txt:

TRAIL {
  ID              1                             ; Trail to replace [0 - 2]
  Name            "SPARK"                       ; Display name

  Fades           true                          ; Trail fades out
  Shrinks         true                          ; Trail shrinks
  Expands         false                         ; Trail expands
  UV              0.960938 0.000000             ; UV coord for trail segments
  UVEnd           0.960938 0.000000             ; UV coord for last segment
  UVSize          0.007812 0.062500             ; Width and height of both UV
  Color           255 255 255 255               ; Alpha, Red, Green, Blue
  LifeTime        0.030000                      ; Maximum life time
  Width           1.000000                      ; Width of segments
  Length          2                             ; Number of segments
}

Trail Properties

PropertyDescriptionRecommended Defaults
IDID of the trail to override.0 - 2
NameDisplay name of the trail, not used in-game.-
FadesThe trail fades out.true or false
ShrinksThe trail segments get smaller.true or false
ExpandsThe trail segments get bigger.true or false
UVTop left UV-coordinate of the mapping of the first trail segments. 0.0 0.0 is top left and 1.0 1.0 is bottom right.-
UVEndTop left UV-coordinate of the mapping of the last trail segment. 0.0 0.0 is top left and 1.0 1.0 is bottom right.
UVSizeWidth and height of the UV mapping (bottom right corner).-
ColorAlpha, Red, Green, Blue color of the trail.255 255 255 255
LifeTimeHow long the trail segments live.
WidthWidth of the trail segments.
LengthNumber of trail segments.1 - 12

Gravity

This section allows you to modify the behavior of the global gravitational field for your track. To customize the level's gravity, copy the following snippet into your properties.txt:

As of version 19.1230a, the ROCK and ROCKTYPE level *.inf keys are deprecated. New tracks should set these properties in the properties.txt GRAVITY section instead.

GRAVITY {
  Magnitude       2200.0                        ; Magnitude of gravity
  Direction       0.000000 1.000000 0.000000    ; Direction of gravity
  Dampening       0.000000                      ; Dampening effect
  Rockiness       0.000000 0.000000             ; Rocky effect parameters
                  0.000000 0.000000
  RockyType       0                             ; Type of rocky effect [0 - 1]
}

Gravity Properties

PropertyDescriptionRecommended Defaults
MagnitudeStrength of the gravity field.250.0 - 5000.0
DirectionDirection of action of the gravity field.0.0 1.0 0.0
DampeningDampening effect of gravity.0.0 - 100.0
RockinessParameters for the rocky ship effect: four values for the X and Z magnitude and X and Z time scale.If magnitudes are non-zero, time must be non-zero.
RockyTypeType of rocky effect: 0 for ship, 1 for water surface.0 - 1

Wind

This section allows you to modify the behavior of the Wind force field types in your track. To customize the level's wind properties, copy the following snippet into your properties.txt:

WIND {
  Priority        2                             ; Field priority [0 - 2]
  TimeMin         5                             ; Min update rate
  TimeMax         30                            ; Max update rate
  Expands         true                          ; Size expands
}

Wind Properties

PropertyDescriptionRecommended Defaults
PriorityWind field priority. 1 affects both objects and cars; 2 affects objects only.0 - 2
TimeMinMinimum time before wind changes direction.5.0
TimeMaxMaximum time before wind changes direction.30.0
ExpandsWhether the field expands to cover the entire world.If true, the field is always Box shaped.

Pickups

This section allows you to modify the behavior of pickups in the level, including spawn count. To customize pickups, copy the following snippet into your properties.txt:

PICKUPS {
  SpawnCount      5 2                           ; Initial and per-player count
  EnvColor        255 255 128                   ; Color of shininess (RGB)
  LightColor      128 96 0                      ; Color of light (RGB)
}

Pickup Properties

PropertyDescriptionRecommended Defaults
SpawnCountNumber of pickups to spawn: two values for the initial count and per-player count.5 2
EnvColorColor of shininess effect on the pickup.255 255 128
LightColorColor of the light under the pickup.128 96 0