8.1 Console Logging Levels log.info("Player joined"); log.warn("Low fuel"); log.error("Vehicle desync"); 8.2 Visual Debug Overlay enableDebugOverlay(true); watchVariable("playerCash", playerCash); watchVehicleStat(vehicle, "speed", "damage"); 8.3 Command Line REPL While server is running, type:

onVehicleEnter(player, vehicle) if (vehicle.isStolen) startPoliceChase(player);

foreach (v in nearbyVehicles) if (v.isStolen) policeAlert(v);

job "Taxi Driver" hourlyPay = 250; onShiftStart(player) enableWaypoints(player, "taxi_stand");

6.1 Store & Retrieve Data dataStore playerStats save(player, "cash", getPlayerCash(player)); save(player, "garage", listOwnedVehicles(player)); load(player) setPlayerCash(player, fetch(player, "cash", 10000));

-new- Greenville Script -

8.1 Console Logging Levels log.info("Player joined"); log.warn("Low fuel"); log.error("Vehicle desync"); 8.2 Visual Debug Overlay enableDebugOverlay(true); watchVariable("playerCash", playerCash); watchVehicleStat(vehicle, "speed", "damage"); 8.3 Command Line REPL While server is running, type:

onVehicleEnter(player, vehicle) if (vehicle.isStolen) startPoliceChase(player); -NEW- Greenville Script

foreach (v in nearbyVehicles) if (v.isStolen) policeAlert(v); 8.1 Console Logging Levels log.info("Player joined")

job "Taxi Driver" hourlyPay = 250; onShiftStart(player) enableWaypoints(player, "taxi_stand"); 8.2 Visual Debug Overlay enableDebugOverlay(true)

6.1 Store & Retrieve Data dataStore playerStats save(player, "cash", getPlayerCash(player)); save(player, "garage", listOwnedVehicles(player)); load(player) setPlayerCash(player, fetch(player, "cash", 10000));