Bike Life
POPULAR LINKS
- BUY IT! Purchase Bike Life from BigDaddyScripts.com
- ACE PERMS How to use ACE permissions with Big Daddy Scripts
{:links-list}
Bike Life creates NPC motorcycle rideouts; it does not provide a player stunt menu.
INSTALLATION
- Open the downloaded ZIP product file and drop the folder in it somewhere in your resources folder.
- Add your product key (get it here) to the
settings.inifile. - Add
ensure BigDaddy-BikeLifeto yourserver.cfg. Start any resources supplying custom bike or rider models before Bike Life.
DO NOT RENAME THE FOLDER.
If you change the name of the folder it will not function correctly so leave the name as it is.
{:is-danger}
CONFIGURATION
Configure settings.ini. The table lists the supplied values, which can differ from the code's fallback values when a setting is missing. Section and setting names are case-insensitive.
| SETTING | DEFAULT | DESCRIPTION |
|---|---|---|
| [licensing] | ||
| key1 | none | This is where you put your product key |
| [settings] | ||
| mc_common | various | Comma-separated list of common city motorcycle models |
| mc_normal | various | Comma-separated list of normal city motorcycle models |
| mc_rare | various | Comma-separated list of rare city motorcycle models |
| mc_rural | various | Comma-separated list of rural motorcycles, dirt bikes, ATVs, and off-road bikes |
| riders | various | Comma-separated list of standard rider ped models |
| riders_tough | various | Comma-separated list of tougher/street rider ped models |
| riders_women | various | Comma-separated list of female rider ped models |
| riders_rural | various | Comma-separated list of rural rider ped models |
| RideoutFrequency | 360000 | Interval between automatic spawn checks, in milliseconds (6 minutes). A check can skip spawning. |
| MinimumRiders | 20 | Inclusive lower bound for rider spawn attempts. Failed spawns can reduce the resulting group size. |
| MaximumRiders | 50 | Exclusive upper bound: the supplied range produces 20–49 spawn attempts. |
| MinimumStuntWait | 3000 | Inclusive minimum random wait before the next wheelie eligibility check, in milliseconds. |
| MaximumStuntWait | 8000 | Exclusive maximum random wait, in milliseconds. Wheelie duration adds to the time between attempts. |
| WheelieStuntChance | 88 | Percent chance of adding a random rider stunt animation during the wheelie's sustain phase; not the chance of attempting the wheelie itself. |
| SeparatedDeleteDelay | 30000 | Time in milliseconds before a separated rider/bike pair is cleaned up |
| RideoutStuckSeconds | 12 | Number of seconds a rider can appear stuck before recovery is attempted |
| RideoutMaxStuckRecoveries | 3 | Number of stuck recovery attempts before the rider and bike are deleted |
| RideoutStuckMinSpeed | 1.5 | Low-speed threshold for stuck detection, in metres per second. |
| RideoutStuckMinMoveDistance | 3.0 | Movement threshold for stuck detection, in metres. |
| RideoutStuckMinProgress | 2.0 | Route-progress threshold for stuck detection, in metres. |
| MinimumVehicleNodeDensity | auto | Minimum traffic node density used when selecting rideout roads. Defaults to 1 in city areas and 0 in rural areas |
| debug | false | Enable additional diagnostic logging. Some status and failure messages are printed regardless. |
| DesyncKey | supplied value | Internal synchronization setting. Keep the value supplied with the resource. |
RideoutControlLossTimeout |
10000 |
Milliseconds a client tries to regain network control before relinquishing management of a rider/bike pair. |
RideoutReassignmentInterval |
15000 |
Milliseconds between server watchdog reassignment offers for unfinished pairs. A controller change can trigger an earlier offer, subject to a five-second minimum interval. |
UseAcePermissions |
false |
Request a startup ACE check; see the enforcement limitation under Commands. |
AcePermission |
command |
ACE name checked when UseAcePermissions=true. |
NOTE
Model lists are comma-separated.
Every model name must exist in GTA V or be streamed by your server. Invalid models are ignored.
Keep every model pool used by your rideout areas populated. An empty selected pool fails that rider's spawn attempt; there is no automatic substitute pool. Spaces around individual model names are trimmed.
{:is-warning}
Example:
mc_common=bati,bati2,hakuchou,hakuchou2,akuma
riders=a_m_y_stbla_01,a_m_y_stwhi_01,a_m_y_skater_01
BIKE LIFE
Bike Life automatically creates NPC motorcycle rideouts near active player areas.
Each rideout:
- Finds the most concentrated group of players.
- Checks whether that area is inside a supported rideout zone.
- Selects a nearby road spawn location away from players.
- Spawns a configurable number of motorcycle riders.
- Sends the riders through the player area.
- Sends them toward an exit route.
- Releases them into wandering traffic after the rideout finishes.
Rideouts are designed to make the world feel more alive by adding groups of riders that move through city and rural areas without requiring manual staff control.
Automatic activity pauses when no players are present. A spawn check is also skipped while another group is spawning or while more than five living tracked riders from earlier rideouts still exist. Riders that have finished their route still count while they remain tracked. The player concentration search uses a 100-metre radius, so the selected location is not necessarily near the player who runs the manual command.
RIDEOUT AREAS
Bike Life only attempts automatic rideouts when the selected player concentration is inside a supported area.
These areas are polygons defined in the server source, not editable locations. The same area restriction applies to manual spawn attempts.
Supported areas include:
| AREA | DESCRIPTION |
|---|---|
| city | Los Santos and surrounding city roads |
| harmony | Harmony area |
| sandy | Sandy Shores area |
| grapeseed | Grapeseed area |
| paleto | Paleto Bay area |
| pass | Mountain/pass route areas |
| goh | Great Ocean Highway route area |
| route13 | Route 13 / eastern highway route area |
Rural model pools are used for:
sandypaletograpeseedharmonypass
Other areas use the city rider and motorcycle pools.
RIDERS AND MOTORCYCLES
Bike Life randomly builds each rideout rider from the configured model pools.
City rideouts use weighted motorcycle selection:
| POOL | DESCRIPTION |
|---|---|
| mc_normal | 65% of city motorcycle selections |
| mc_common | 25% of city motorcycle selections |
| mc_rare | 10% of city motorcycle selections |
City rider selection is independent of the bike selection: riders_tough has a 65% share, riders 25%, and riders_women 10%. These are per-selection probabilities, not guaranteed proportions in a group.
Rural rideouts use:
| POOL | DESCRIPTION |
|---|---|
| mc_rural | Rural motorcycles, dirt bikes, and off-road vehicles |
| riders_rural | Rural rider ped models |
Riders are also randomized after spawning:
- Random ped component variations
- Random motorcycle colors
- Random helmets
- Random rider model selection
- Random bike model selection
RIDEOUT BEHAVIOR
Once spawned, riders drive toward a road-snapped destination near the selected player area.
After reaching that destination, they continue toward a mirrored exit point. When they finish the route, they are released into normal wandering vehicle behavior.
Bike Life also attempts to keep rideouts reliable during normal gameplay:
- Riders and bikes are tracked as networked pairs
- Ownership can be reassigned to the nearest player
- Riders can remount their bike if separated
- Stuck riders attempt recovery
- Dead riders and orphaned bikes are cleaned up
- Broken or missing rider/bike pairs are deleted
STUNTS
Bike Life riders can randomly perform motorcycle stunts during a rideout.
Current stunt behavior includes:
- Wheelie attempts while moving
- Random wheelie animations
- Speed and steering checks before attempting a stunt
- Obstacle checks to avoid unsafe stunt attempts
- Smooth landing/tapering after wheelies
Wheelie timing and chance are controlled with:
MinimumStuntWaitMaximumStuntWaitWheelieStuntChance
Setting WheelieStuntChance=0 disables the random stunt animation choice during a wheelie; it does not disable wheelie attempts.
CLEANUP AND OWNERSHIP
Bike Life uses server-side tracking for spawned rider/bike pairs.
The server tracks:
- Rider network ID
- Bike network ID
- Start coordinates
- Destination coordinates
- Exit coordinates
- Current controlling player
- Separation timing
This allows Bike Life to:
- Delete pairs when one entity disappears
- Delete the bike if the rider dies
- Delete separated rider/bike pairs after
SeparatedDeleteDelay - Reassign control to a closer player
- Prevent abandoned rideout entities from sitting around permanently
A pair is considered separated when the rider is no longer driving its bike or the entities are more than 35 metres apart. Mounted pairs are also deleted when no player is found within 450 metres. Completed pairs remain eligible for cleanup but are not assigned another scripted route.
STUCK RECOVERY
If a rideout bike stops progressing, Bike Life attempts to recover it.
The stuck detection system checks:
- Bike speed
- Movement distance
- Route progress
If the rider appears stuck for RideoutStuckSeconds, Bike Life tries to recover the bike by clearing/reissuing tasks and nudging the vehicle.
If recovery fails more than RideoutMaxStuckRecoveries times, the rider and bike are deleted.
COMMANDS
| COMMAND | DESCRIPTION |
|---|---|
/bikelife |
Manually attempts to start a rideout near the most concentrated player area. In the server console, use bikelife without the slash. |
The command uses the same area, spawn, and rideout rules as the automatic timer.
CUSTOMIZING RIDEOUTS
To customize rideouts:
- Open
settings.ini. - Edit the motorcycle model lists.
- Edit the rider ped model lists.
- Adjust rider counts and timing settings.
- Restart
BigDaddy-BikeLifeor restart the server to reload the configuration.
Example motorcycle lists:
mc_common=bati,bati2,hakuchou,hakuchou2,akuma,double,ruffian,vader
mc_rare=daemon,daemon2,nightblade,innovation,wolfsbane,avarus,chimera
Example rider lists:
riders=a_m_y_stbla_01,a_m_y_stwhi_01,a_m_y_skater_01
riders_tough=g_m_y_lost_01,g_m_y_lost_02,g_m_y_lost_03
NOTE
If you add custom bikes or peds, make sure they are streamed correctly and that the model names match exactly.
{:is-warning}