= VU-Racing
:toc:

== About

This is a https://veniceunleashed.net/[Venice Unleashed] mod for Battlefield 3.

Players compete for the fastest times on race tracks across several maps.

Regular combat has been disabled as players cannot leave their vehicles.

Source Code/Issue Tracker: https://github.com/Rylius/VU-Racing

== Requirements

The End Game expansion (`XP5`) is required for this mod.

== Server Configuration

.Startup.txt
....
# Spawning on squad members leads to all sorts of issues, so disable that
vu.SquadSize 1

# Recommended but not required
vars.roundStartPlayerCount 1
vars.roundRestartPlayerCount 1

# Not strictly necessary, but why not
vars.3pCam true
....

Recommended `MapList.txt` (feel free to change the order):

.MapList.txt
....
MP_007 TeamDeathMatch0 1
XP5_003 TeamDeathMatch0 1
XP3_Alborz TeamDeathMatch0 1
MP_017 TeamDeathMatch0 1
MP_018 TeamDeathMatch0 1
MP_011 TeamDeathMatch0 1
MP_013 TeamDeathMatch0 1
XP5_004 TeamDeathMatch0 1
....

TDM is strongly recommended.
Other game modes are likely to cause problems or even crash.

== Compatibility

This mod should be compatible with most other mods.
Keep in mind players will not be able to leave their vehicles and modifications of maps may interfere with tracks.

* Additional loaded bundles: `xp5chunks`, `levels/xp5_002/xp5_002`, `Levels/XP5_002/CQL`
* `CombatAreaTriggerEntityData` and `FriendZoneEntityData` will not spawn
* The locations of all `AlternateSpawnEntityData` instances will be changed
* TDM-specific `StaticModelGroups` will be prevented from loading
* Some `VehicleEntityData` properties on `Vehicles/XP5/KLR650/KLR650` will be changed

If you're trying to change the vehicle used in this mod, either modify `Vehicles/XP5/KLR650/KLR650` in another mod or pick another instance in `+ext/server/__init__.lua+` (`RacingServer:SpawnPlayerVehicle`).
Some vehicles may require additional bundles.

== Development

=== Lua

See `+__init__.lua+` in each module to get started.

Tracks are placed in `ext/shared/tracks` by map and registered in `+ext/shared/__init__.lua+`.

=== WebUI

. `npm install`
. `npm run build`

Entry points are `webui/index.html` and `webui/webui.ts`.
Uses https://vuejs.org/[Vue.js] and https://www.typescriptlang.org/[TypeScript].

https://parceljs.org/[Parcel] is used to bundle the sources.
