/rallymodemod

rally mode for BeamNG

Primary LanguageLuaGNU General Public License v3.0GPL-3.0

Rally mode - experimental

Download

No need to clone the repo, just download the latest release (a zipfile) from the menu on the right.

If you're interested in working on the code, then go ahead and clone the repo.

Install

Remove or deactivate any previous versions of the mod.

Put the zip file in your mods folder. You do no need to unpack if you just want to play and edit basic settings (the settings file, rallyconfig.ini will be created in beamng_local_dir/settings/ after you make your first edits from the pause menu).

Go Rallying

If you have a beamng_local_dir/settings/rallyconfig.ini from previous versions of the mod, remove it.

The rallies are under the Time Trials menu. You can only start a rally from the Time Trials menu.

You can see the length of a rally in the thumbnail. Shakedowns are short stages, usually sections of the larger stages. Special stages are traditional length stages (5 to 15 km, for now).

Most rallies are for vanilla maps, plus a few mod maps. If you want to rally on mod maps, you need the following mods

Start a rally from the Time Trial menu. After the countdown, you will be greeted by a welcome message. Read it and follow the instructions. You need to load the rally UI in order to see the pacenote symbols and the pause menu. Press 'SHIFT+CTRL+U', add apps, choose the Rally Mode UI app. Keep it nice and big and centered.

Restart once (press 'R') to disable the waypoint sounds. The custom waypoint module will be loaded, and the sounds won't play anymore.

Anytime after the countdown starts, you can pause physics ('J') to open the rally menu. The menu is self explanatory.

Don't forget to hit "save" to make the changes stick.

Co-driver volume

You will see an option to adjust the co-driver volume. I actually have no idea what the hell is the correlation between the number you put in there, and actual volume of the co-driver voice. I only know that 0 is mute, small numbers are low volume, and large numbers are high volume. Please let me know if you figure out a reasonable range.

Configuration

Advanced options

Open the copy of the rallyconfig file in your own local BeamNG directory, beamng_local_dir/setting/rallyconfig.ini (it is created after you use the "save" button in the pause menu for the first time) options in this file for fine-tuning your co-driver. Not every single option in this file can be changed from the pause menu.

More details about the options are in the original config file.

Change co-driver

Open beamng_local_dir/setting/rallyconfig.ini. In the codriverDir option you can use any of the co-drivers you have in the folder

mods/unpacked/art/codrivers

For the moment, we have

  • Stu - text to speech
  • Alex Gelsomino - sampled from real rally footage

Codriver customization

You can find a tutorial on how you can create and/or customize your co-driver in Alex Gelsomino's config files.

Edit pacenotes

When rallying, enter the pause menu ('J'), and check the pacenote-file name. You can create the pacenote file (filename.pnt) in the correct directory, and start editing the pacenotes.

you have to have these files (note smallIslandRally_forward.pnt)

small_island
    ├── quickrace
    │   ├── smallIslandRally_forward.pnt           < custom pacenote overrides
    │   ├── smallIslandRally_forward.prefab        < waypoints and default pacenote
    │   ├── smallIslandRally.jpg
    │   ├── smallIslandRally.json                  < race config
    │   └── smallIslandRally.prefab                < stage clutter
    └── smallIslandRally.lua                       < tells BeamNG to start the mod

Pausing Physics will show pacenote information. Use that to edit the pacenotes. Here's an example of a valid pacenote file

1 - L2M;
2 - LS;
4 - right 2 minus;
5 - L2M;
8 - right 2 minus;
14 - jump;

The pacenotes attached to waypoints 1, 2, 4, 5, 8 and 14 will be now overridden. The rest will stay default. Default pacenotes are stored as a field in the waypoints in levels/levelname/quickrace/rallyname_forward.prefab. Do not touch this file.

Corner codes:

For the co-driver Stu, these are the corner codes

(L/R)0M - acute LR
(L/R)0E - hairpin LR
(L/R)0P - open hairpin LR

(L/R)1M - 1 LR minus
(L/R)1E - 1 LR
(L/R)1P - 1 LR plus

(L/R)2M - 2 LR minus
(L/R)2E - 2 LR
(L/R)2P - 2 LR plus

(L/R)3M - 3 LR minus
(L/R)3E - 3 LR
(L/R)3P - 3 LR plus

(L/R)4M - 4 LR minus
(L/R)4E - 4 LR
(L/R)4P - 4 LR plus

(L/R)5M - 5 LR minus
(L/R)5E - 5 LR
(L/R)5P - 5 LR plus

(L/R)6M - 6 LR minus
(L/R)6E - 6 LR
(L/R)6P - flat LR

You don't have to use corner codes, but if you do, your pacenotes will work with any co-driver.

If you don't want to use them, your pacenotes will be co-driver dependent. In that case, you can just write (for example, if you're using Stu)

4 left minus, 5 left plus long, hairpin left over crest

Here's an example pacenote file

1 - caution left 3 minus;
3 - caution R4M long;
6 - jump;
8 - hairpin left;

More details about this topic here and here.

Pacenote options

There are additional options you can specify after the semicolon

  • nosuffix - do not automatically add a distance call after the pacenote

These I haven't used in ages, and I don't have time to test them properly now. They are supposed to manage how much of a pause the co-driver will take after uttering a pacenote. The pause length depends on the breathLength variable.

  • nopause
  • shortpause
  • verylongpause
  • longpause
  • pause

Always check the console for pacenote errors. For example, it will tell you if you use an inexistent samples.

Testing stuff

There are two test scenarios (gridmap and small island) for testing the mod. They are under the Scenario menu, not the Time Trial menu. In particular, the gridmapV2 test will utter every single corner, which is useful when making new co-driver.

Tutorials

Contribute

There is SO MUCH stuff that ANYONE could do, depending on your inclinations. Even with 0 coding experience.

  • Testing: just let me know if anything's off
  • Feature request - What should I do next?
  • YouTube videos (tutorials, showcase, plain ol' rallies)
  • Make some noise, tell your friends, like and subscribe, and all that
  • Graphic design stuff (logos, map thumbnails, pacenote icons, UI design
  • Do pacenotes for my reverse stages
  • Split up the stages and make shorter ones (maybe 3 to 5 km long shakedowns?)
  • Stitch them up and make them longer
  • Decorating the stages a bit more - I'd love to add some spectators, haybales and stuff
  • Implement recce mode
  • Implement online leaderboard
  • Help out with pacenote samples (do you want to record new sounds? contact me!)
  • Same as above, but in your own language

Contact

Please join this BeamNG forum thread for discussions.