r3eckon / BNG-BeamLegalRacing

Hardcore career mod for BeamNG
65 stars 3 forks source link

Beam Legal Racing 1.17

BeamLR is a persistent career BeamNG mod inspired by SLRR aiming to bring hardcore game mechanics to BeamNG such as external and mechanical damage persistence, money, paying for repairs, player health and injuries with fatal crashes resetting your save file, etc. The mod adds interaction to the sandbox with gas stations, repair shops, in world vehicle store system, dynamic race events, enabled traffic and more to achieve a sandbox career experience.

Perform missions, races and challenges to earn money to buy vehicles and parts. Drive carefully as repairs can be quite costly and a hard enough crash could mean game over!

Quick Links

More Info | Forum thread

Career Maps | Utah | East Coast | Italy | West Coast

Track Event Maps | Hirochi Raceway | Automation Test Track | Johnson Valley | Nordschleife

Addons | Nordschleife | Part Images

Enjoying the mod and looking to support the project? Donate here!

Having issues with the mod? Please follow this troubleshooting guide.

Install Instructions (Video)

BeamLR cannot be installed like a normal mod due to data persistence issues when zipped.

Carefully follow the instructions to ensure all features are working properly:

  1. Download the latest release.
  2. Extract zip file contents directly to your BeamNG userfolder.
  3. Tell your operating system to replace existing files if asked.

After installing check the Read Before Playing section of this readme for important information and a quick overview of major update features.

Installing BeamLR may overwrite custom changes made to levels. Modders should back up the userfolder before installing.

Update Instructions (Video)

BEFORE UPDATING: Back up the userfolder/beamLR folder to archive your career

IMPORTANT NOTE: Version 1.16 and above are not compatible with previous version backups

  1. Download the latest release.
  2. Extract updated mod zip contents to the BeamNG userfolder.
  3. Tell OS to replace existing files when asked. This will apply the update.
  4. Use the BeamLR options menu to restore your backup.

Remember to update your addons if you have any installed!

If the backup system fails to work properly you can manually replace the files/folders using your backed up beamLR folder. Ask on the forum if you need help knowing which files to paste over.

After updating check the Read Before Playing section of this readme for important information and a quick overview of major update features

If you are experiencing issues after updating the mod, try a clean userfolder install and copy over your backup.

BeamNG Major Updates

The mod will most likely not be compatible with a new major version of BeamNG.

Do not create issues telling me to update the mod during major version updates.

With major updates to BeamNG a new userfolder is created. Not all BeamLR files are automatically migrated. It is recommended to do a fresh install of BeamLR in the new userfolder before moving your career files:

  1. Start BeamNG after updating to complete the userfolder migration process
  2. Do a fresh install of BeamLR into the new userfolder (once a compatible version has been released)
  3. Copy the contents of beamLR/backup from the old userfolder into beamLR/backup in the new userfolder
  4. Use the options menu to restore your backup

The game will give you a chance to view the contents of your old userfolder containing career files on first launch after updating so don't worry about steam update deleting your save. The BeamLR folder will not be migrated to the new userfolder so your career files will be kept in the old userfolder.

Read Before Playing

IMPORTANT: Do not change the settings shown below while playing BeamLR. The settings should be automatically restored to your previous values when you abandon the scenario. Keep in mind game crashes and other forceful exit from the scenario may prevent your old setting from being restored.

settings

IMPORTANT: You must abandon the scenario to properly save your progress. Do not exit the game from main menu until you have abandonned the scenario and are back in freeroam. ALT-F4 or other forceful exit from the game are likely to cause lost progress and/or corrupted save files. Copy the userfolder/beamLR folder somewhere if you want to manually backup your career files.

IMPORTANT: Do not pause the game when interacting with mod menus. Doing so will cause issues.

First time players: The imgui unit detection feature may fail to properly register your unit setting causing a mismatch in displayed units. Switching between metric and imperial fixes this issue. The UI will then show correct units.

The "BeamLR" layout will be loaded on scenario start. Any changes made to this UI layout will be reflected when playing BeamLR in case the default layout doesn't fit on your screen.

Major Feature Update Overview

Version 1.6 adds N2O tank persistence. Garage files from previous versions are missing this value and will default to empty N2O tanks. Nitrous tanks can be refilled at the repair shop.

Version 1.8 adds difficulty settings and different start vehicles (randomly picked using seed), the default difficulty is medium ($1000 start money).

Version 1.9.1 temporarily disables beamstate loading (visual damage) due to issue with advanced couplers. It can be turned back on from the options menu. If you decide to use beamstates, advanced couplers can be fixed from the options menu. This is not a guaranteed fix and it may crash the game.

Version 1.10 adds race track events to the mod which can be joined from career mode. Track events work using a different lightweight loader mission and work differently than regular career. This version also adds a bunch of QoL improvements to the UI, saving/loading configs for your vehicles. Backups are now saved automatically when you stop the mission to ensure all files are updated before a backup is saved.

Version 1.11 adds new trailer deliveries, RNG based pink slips and various new restrictions relating to time of day. Car shops are now closed at night while new "high stakes" race clubs are only available at night. This version also adds a new death screen UI allowing you to immediately reload your last backup.

Version 1.12 adds Italy map content, Soliad Lansdale in shops, traffic and opponents, various improvements relating to ease of modding as well as the first addon to the mod which adds support for track events on the Nürburgring Nordschleife mod map.

Version 1.13 adds advanced vehicle building, advanced repair cost calculation, a GPS system and gooseneck trailer deliveries. Make sure you read the Advanced Vehicle Building section of this readme before playing after installing this update.

Version 1.14 adds West Coast USA map content, part specific repairs, improved UX for the options menu and layout options for IMGUI menus as well as options to force enable/disable traffic in races, groundmarkers and floating markers. Make sure you read the Part Specific Repairs section of this readme to get a grasp on this new feature.

Version 1.14.1 adds smooth refueling, instant traffic toggling and dynamic gas station displays linked with randomly generated gas price. Instant traffic toggling removes lag caused by spawning traffic after races and challenges that disable it but will reduce traffic diversity by keeping the same vehicle pool and may reduce expected performance with disabled traffic on systems with low RAM as it prevents freeing up memory while traffic is disabled.

Version 1.14.2 adds improved fuel system (fuel tiers, diesel) and a safe mode option for part edits used to prevent damage when removing certain parts. Read the Improved Fuel System and Part Edit Safe Mode section of this readme for more information on these new features. As always make sure to manually back up your current beamLR folder in case the fuel system changes cause issues with your old career files.

Version 1.14.3 adds part images (see addon) and a rep & reward scaling option.

Version 1.15 adds walk mode integration, consumable item inventory system, oil value persistence, slow oil leaks for high odometer vehicles, ability to tow to specific locations and "The Race of Heroes" endgame track event. See improved oil system and consumable item inventory for more information.

Version 1.15.4 adds dynamic weather controlled from options menu (cloud cover, wind speed & fog density slowly change) and restored the injury system that was disabled in a previous update. Injury is disabled by default and must be enabled through the options menu. BeamNG G force sensors are still buggy, use the injury system at your own risk!

Version 1.16 completely revamps the part inventory system allowing each individual part to have specific odometer and integrity values. It also adds the ability to buy used parts (reduced cost for higher odometer) and implements dynamic mirror offsets saved to vehicle configs. This new version is not compatible career files from previous versions and will require starting from scratch. See advanced part inventory for more information.

Version 1.16.1 adds part integrity decrease at high odometer which means more idle play and less performance on high odometer engines.

Version 1.16.4 adds performance class restrictions for race club leagues and the ability to skip leagues up to gold league. Bronze league requires a vehicle below C class, silver league requires a vehicle below S class. Night only race clubs don't have this restriction. This feature can be turned off in options.

Version 1.16.7 improves mod compatibility for car shops with additive list files. See the updated tutorial to learn more.

Version 1.17 adds new interactive areas (car meets & properties), daily seeded race clubs and a new part inventory menu. Daily seeded race clubs prevent reroll abuse and is the intended way to play (can be turned off in options).

Getting started

BeamLR is loaded as a freeroam mission. Use the following spawn point depending on map choice:

Drive into the BeamLR Career mission marker and use the UI to start the mission.

mission marker

The scenario will load your last used vehicle and spawn traffic.

Be patient while the scenario is loading especially if using lots of traffic.

Once in the scenario floating markers indicate interactive areas for the player garage, repair shop, gas stations, race clubs, part shops, etc.

part shop marker

Chosen difficulty will affect the amount of money and garage slots you get at the start of your career:

Purchased or won vehicles are sent to your player garage. You can also scrap vehicles for some money using the player garage menu.

Depending on your chosen difficulty setting (default is medium) you may need to perform delivery missions from part shops before you have enough money to wager in races or challenges.

Version 1.11 updated delivery mission system works using a set of items and destinations. Each destination has a base reward that is scaled to give up to 100% bonus depending on item fragility. Experiencing more Gs than the item can endure will fail the mission. If your vehicle has a tow hitch you can accept trailer delivery missions.

The main gameplay for this mod is available at various race clubs where you can wager money in races.

race clubs

Race club opponents are sorted into performance leagues of Bronze, Silver, Gold and Hero. You must complete every race in a league to progress to the next league. Opponent vehicle performance and wager values will increase as you progress through leagues.

The Hero league has no progression and can be used for endless races against max performance opponents.

Some races have pink slips instead of monetary wagers. Some races have enabled traffic while others don't. Make sure to check race parameters before accepting to know what you're getting into.

Since version 1.8 you can use the options menu to set a wager target for races. If your bet is outside of opponent range the final race wager will be capped to the opponent min/max.

Since version 1.11 races have chance based pink slips opponents. All races have a low chance of having a pink slips bet. The chance of getting a pink slips race decreases with increasing leagues. High stakes night only race clubs have the highest chance of pink slips being offered.

You can spend money on part upgrades or new vehicles by visiting the various shops. Vehicles can also be sold at vehicle shops, sale price will depend on vehicle condition, added parts and player reputation.

Since version 1.8 part shops offer different price scale percentages that changes daily. This percentage is indicated in the title for the part buying menu. Buying parts outside part shops (player & repair garages) is considered a remote purchase and has a 150% price scale applied, also indicated in the title. Different part shops can offer different ranges of price scales.

To repair your vehicle you must visit a repair garage or call a mechanic to your garage (+100% cost).

The towing button will teleport your vehicle to the player garage for a cost.

Use the top menu to access part shop, part edit, painting and tuning interface.

You can back up, restore and reset your career at any time using the options menu.

BeamLR relies on seeded RNG for various aspects of the mod such as selected start vehicle, available shop vehicles and price fluctuations. Since version 1.8 by default when your career is reset the seed value will be incremented by 1 to get a different career every time you reset. Current career seed is indicated in the options menu. If you want to replay the same seed you can turn off auto increment. Setting a custom or random seed also disables the increment feature.

Keep an eye out for you health value! There is a slow passive health regeneration but you can also restore your health by using the "Sleep / Heal" button. This fast forward function can also be used to skip ahead to next day which will get vehicle shops to spawn new vehicles, prices for gas stations and part shops will also change.

When the in game day changes since version 1.8 a small amount of reputation (25 points) is lost. Rep can be gained with races and challenges so this feature acts as a small daily cost to prevent skipping ahead a lot of days without racing.

Track Events

Once you have earned enough reputation and money you may enter race track events which are multi round, multi opponent races.

Keep in mind this is the first iteration of this system, some features may change and more events will be added in future versions.

Race events work using a lightweight event loader flowgraph project. They work a bit differently than regular career:

Event inspection requirements can involve performance class, powertrain layout, induction type, vehicle brand and model.

Track events can be started from their respective level (see maps for mission loader location).

Once a round is started it cannot be restarted. Giving up a round comes with a heavy time penalty. If you crash, some tracks have a pit lane allowing for repair and refuel to tuning fuel load.

Time penalties will be added for shortcuts and pit lane overspeed. Penalty time is added to total time at round end.

Race leaderboard is sorted by smallest total time at the end of each event.

Events usually reward 1st, 2nd and 3rd position money and rep. More special rewards can go to 1st position.

Opponent names are randomly selected from the beamLR/opnames file which can be edited with custom names.

Track events use randomized parameters for replayability, such as opponent config choice and count, time of day, lap and round count as well as rewards.

Each event has a unique seed which changes daily and after event completion. Sleep to next day to refresh event parameters.

Track event modding is possible using a similar process to regular race clubs. Event files can be added and modified to have different parameters.

This system will be used in a future version to create a final boss type race like SLRR.

As of version 1.12 mod levels are now supported for track events. Events for maps you do not have installed will not be offered in the browser. You must also install the addon for a specific map otherwise events will not work properly.

The Race of Heroes

Version 1.15 adds a SLRR "Race of Champions" inspired endgame track event called "The Race of Heroes". This event takes place on the Johnson Valley map and requires the player to have completed every other race club in the game (completion means "Hero" league has been reached). The race is point based unlike time based events and is against the same opponent using a different vehicle each round. Winning this event basically means the player has beat the mod and rewards a large sum of money, rep as well as a supercar.

Advanced Vehicle Building

NOTE: As of version 1.14 advanced vehicle building is enabled by default.

Added in version 1.13, advanced vehicle building (AVB) allows for a more realistic or SLRR-like vehicle building experience. Jbeam loading scripts have been modified to remove all slot defaults, which for instance makes it so wheels spawn without tires, pickup bed spawns without tailgate, taillights or bed accessory. Sub-parts must therefore be purchased and added manually.

When AVB is enabled, removing a part will add all attached sub-parts to your inventory. It will also be possible to sell parts at a scaled down value compared to purchase cost. Part selling is disabled when playing without AVB due to the fact that slot defaults could be used as infinite money exploit.

This feature is not recommended for casual players as it can make part edits more complex and confusing. For example, engine swaps can be frustrating because a single missing part can prevent your vehicle from moving. If this happens, make sure you added all drivetrain related parts (transmission, driveshaft, halfshafts, etc) some of which may not be located under the 'Engine' category of the part edit menu.

BeamNG is not built to fully handle this type of feature. Engines will still be running even when missing important parts like the oil pan, intake, exhaust manifold, long block or ECU. If you experience issues with vehicles missing parts in freeroam after force exiting from BeamLR, restarting the game should fix it.

Advanced Repair Cost Calculation

NOTE: As of version 1.14 Advanced repair cost calculation is enabled by default.

Added in version 1.13, advanced repair cost calculation makes use of broken/deformed beams specific to each part on the vehicle to detect 'ruined' parts and add their actual cost to the repair value of the vehicle. This results in a more realistic and accurate representation of vehicle damage.

Since repair cost becomes related to vehicle part value, repair costs will be higher especially for high end vehicles like the scintilla or vehicles using costly parts. Race wagers have been increased to help balance this change.

Part Specific Repairs

Added in version 1.14 part specific repairs adds a menu allowing players to choose which parts to repair. Damaged parts that aren't repaired will be removed from the vehicle config and will not be added to inventory. Some parts must be repaired such as mechanical damage and the vehicle 'main' part and cannot be deselected. To repair a sub-part, damaged parent parts must be repaired and will be force selected if an attached sub-part is selected for repair. Undamaged sub-parts removed by a damaged parent part will be added to the part inventory. When repairing your vehicle from the player garage an on-site mechanic fee is added to the repair cost.

GPS System

Added in version 1.13 is a new GPS system that allows you to find specific destinations or nearest destinations of certain types like gas stations, vehicle shops, repair garages, part shops, etc. By default, the GPS UI will only show when using a vehicle that has a GPS (BeamNavigator) installed. It is also possible to force enable or disable the GPS UI through the options menu. Regardless of chosen setting, the GPS UI will be disabled in some situations where groundmarkers are required, such as during delivery missions and daredevil challenges.

Improved Fuel System

Added in version 1.14.2 the improved fuel system now features diesel fuel and gasoline tiers which give slight performance boost to vehicles. Diesel fuel must now be used with diesel engines. Using the incorrect fuel type will disable the engine until the tank is drained. Draining the tank will allow you to add the correct fuel and start the engine again. Gasoline quality is calculated based on ratio of each fuel tier in the tank, higher quality will slightly increase the vehicle output torque. The maximum increase for each tier (for a fuel tank containing only this tier) is as follows:

For example, if a fuel tank contains a 50/50 mix of premium and mid-grade the increase is 15%. For a mix of regular and mid-grade, the increase is 5%. If a fuel tank contains only premium grade, the increase is 20%. While not realistic, BeamNG does not have fuel octane ratings for engines and side effects of incorrect fuel being used, so this is a compromise to give a purpose to higher fuel tiers that makes sense for a racing game. If BeamNG eventually adds this feature the fuel system will be changed to implement fuel tiers in a more realistic way.

Part Edit Safe Mode

Added in version 1.14.2 part edit safe mode is a new advanced option used to help prevent damage during part edits. Certain parts may cause damage when removed, for instance wheels, which cause the vehicle to fall and damage the bumper. This option will temporarily increase beam strength to help prevent taking damage. While in safe mode, the vehicle will be frozen in place. To unfreeze the vehicle you must exit safe mode, at which point the game will reload the normal beam strength values. This option can be kept off for the vast majority of part edits but should help with certain edits that tend to cause damage.

Walk Mode Integration

Walk mode is now integrated with certain mod features as of version 1.15 allowing you to exit your own vehicle, to interact with the controls of gooseneck trailers, to interact with shop vehicles (which will properly reflect currently entered vehicle details in UI) and to access a new consumable item shop at gas stations.

Consumable Item Inventory

Added in version 1.15 is a new inventory system for "consumable" type items. The first iteration of this system comes with two consumable items: fuel canisters and oil bottles. Both can be used to refill your vehicle in an emergency. Items can be purchased by walking at a gas station ("convenience store" menu). Gas canisters can contain gasoline or diesel and like regular gas station refuelling using the incorrect fuel type will disable the engine.

Improved Oil System

Added in version 1.15 is an improved oil system that now saves oil value for your vehicles. Breaking the oil pan will now require refilling the oil as the emptied out value is restored even after repairing. Refill bottles can be purchased at gas stations with the walk mode menu.

As of version 1.16 the oil leak mechanic is tied to the advanced inventory system explained below. Oil now leaks from the engine and oil pan parts separately, meaning if you replace an old oil pan with a new one it will drastically reduce the oil leak rate. Some vehicles in BeamNG have no separate oil pan part so in this situation 100% of the leak rate comes from the engine. For most other vehicles, 70% of the leak rate comes from the oil pan and 30% comes from the engine.

The relation between leak rate and part odometer is still the same as in previous versions, however it is now calculated separately for each part. The base leak rate is designed to leak out all the oil in 2 hours at 100,000km, 1 hour at 200,000 km and down to 30 minutes at 400,000 km which is the worst possible leak rate.

Removing the oil pan from your vehicle will quickly leak out all the oil. Remember to refill the oil after re-installing a new oil pan to avoid engine damage!

Advanced Part Inventory

Added in version 1.16, the advanced part inventory system completely revamps the part inventory. While the previous inventory system was only keeping a count of each part owned by the player, this new system essentially makes each part a unique element that can have specific odometer and integrity values.

The vehicle part condition system is now tied to part specific odometer values meaning changing old parts for brand new parts will, in some situations, improve your vehicle's performance. This depends on whether or not BeamNG simulates performance degradation for that part based on the odometer value, which I've confirmed to be the case for the engine (more friction so less performance & more idle play) and brakes (wears quicker at high odometer). This will likely influence other parts as BeamNG's part condition system is updated.

To go along with this new system used parts can now be bought from part shops. Each shop will offer one used part of each type per day. Odometer values are randomly generated and used part stocks are refreshed daily. Buy price is linked to odometer value, meaning you can get replacement parts for your old or less performance oriented cars for cheaper. Part sell price and the vehicles full sell price are also tied to part specific odometer values.

Keep in mind this feature is still early days and may be prone to bugs due to the fact that it replaced almost all of the existing part inventory related code. The need to link inventory parts with vehicle configs, two different files that need to be in sync, means that game crashes and other forceful exit from the game can easily result in corruption of your part inventory or vehicle configs. This new feature is also incompatible with save files from previous versions. You will need to start from scratch for this version.

As of version 1.16.1 high odometer parts now have decreased integrity values when attached to your car. The decrease is linear, begins at 100,000km (5% decrease) and maxes out at 300,000km (15% decrease). This results in lower performance for certain parts such as the engine which will have more idle play and friction.

Car Meets

Added in 1.17, car meets are a new type of interactive area where the player vehicle is compared to a randomly picked selection of vehicles and rated for "coolness". An above average coolness score will increase your rep while a below average score will decrease it. Having the best/worst score of the meet will double the rep change. Coolness score is calculated using raw performance value but also parts such as underglow, spoilers, carbon fiber parts, paint designs and more. Basically, having a riced out car will increase coolness rating.

Garage Slots and Properties

Since 1.17 the amount of free slots for vehicles in your garage is now limited. The starting amount of slots is determined by the difficulty setting. Having no free slot in your garage will prevent you from buying cars, participating in pink slips races or joining track events that have a vehicle reward. Joining such an event will also reserve a free slot in your garage for the duration of the event, essentially filling that slot temporarily. Note that while this feature can be turned off in options, limited garage slots are the intended way to play.

To purchase more garage slots, various properties are now available to purchase. The more expensive the property, the more slots it will add to your garage. Some levels have more properties than others. Properties are not shown on GPS or maps and thus must be found by exploring each level.

Part Inventory Menu

Added in 1.17, this new menu will show all unused parts in your inventory, including parts for vehicles you no longer own. This menu is used to sell parts that don't show up in the part edit menu, such as subparts of an engine that has been removed from your vehicle. This menu improves the part-out process for vehicles.

This menu requires the game to cache jbeam file data upon first start. This process takes about a minute for a vanilla install and could take longer depending on how many vehicle and part mods you have installed. This process will be started automatically when you start the scenario if the game detects new mods. If you are a mod developer making your own jbeam parts you can start this process manually from the options menu to cache any new jbeam file that isn't stored in a mod zip.

WIP Notice

This mod is a work in progress. At this stage it is a decent vertical slice of the gameplay the project is trying to achieve with some bugs and quirks remaining that should get better as BeamNG and the mod are updated. That being said a lot of content is missing and reward values may be unbalanced relative to part prices.

Due to the nature of BeamNG some features available to players may break the experience when playing BeamLR, such as the circular menu, world editor and other UI apps. If playing seriously (not actively trying to break stuff) try avoiding features that aren't directly offered in UI menus from the mod. While I still appreciate bug reports related to said features, some of them simply can't be disabled and related issues won't be prioritized.

Beamstate is a very experimental BeamNG feature being used by this project for damage saving. If a vehicle suddenly breaks after being stored in good condition, the beamstate file got corrupted. Flowgraph has been added to detect and fix this, however it may not always work properly. You can fix this two ways: move your vehicle using the F11 world editor (will force a vehicle reset) or delete the vehicle beamstate file before launching the scenario to force a fresh vehicle beamstate. Beamstate also breaks Covet "advanced hinges" and may cause game crashes with the Scintilla.

Final Word

Feedback and bug reports are appreciated!

Thank you for playing BeamLR!

Special thanks to donors!

Known Issues

Changelog

1.0

1.1

1.2

1.3

1.4

1.5

1.5.1 (BeamNG Update 0.27 Hotfix)

1.6

1.7

1.8

1.9

1.9.1 (BeamNG Update 0.28 Hotfix)

1.10

1.10.1

1.11

1.12

1.12.1

1.12.2

1.13

1.14

1.14.1

1.14.2

1.14.3

1.15

1.15.1

1.15.2

1.15.3

1.15.4

1.16

1.16.1

1.16.2

1.16.3

1.16.4

1.16.5

1.16.6

1.16.7

1.16.8

1.17