-new- Greenville Script Online
1. Introduction NEW Greenville Script (GVS) is a lightweight, event-driven scripting language for vehicle economy & roleplay servers. It replaces legacy "Greenville Logic" with cleaner syntax, native async support, and built-in vehicle physics hooks.
onPurchase(player, vehicleModel) if (getPlayerCash(player) >= vehicleModel.price) giveVehicle(player, vehicleModel); playerCash -= vehicleModel.price; logTransaction(player, vehicleModel);
onPlayerDowned(player) respawnTimer = 120; // seconds notifyEMS(player.position); onEMSArrive(medic, downedPlayer) revivePlayer(downedPlayer, 50); // 50% health medic.addExperience(10);
4.1 Player Wallet let wallet = getPlayerWallet(player); wallet.addMoney(5000); wallet.deductMoney(1200); 4.2 Dealership Script Example dealership "Luxury Motors" location: (x: 245.3, y: 0, z: 189.2); inventory = [ model: "Tesla Model 3", price: 45000, stock: 3, model: "Ford Mustang", price: 32000, stock: 5 ]; -NEW- Greenville Script
7.1 Delayed Execution async function delayedReward(player) await sleep(5000); // 5 seconds giveMoney(player, 1000);
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));
job "Taxi Driver" hourlyPay = 250; onShiftStart(player) enableWaypoints(player, "taxi_stand"); vehicleModel) if (getPlayerCash(player) >
serverData totalVehiclesSold = 0; topPlayer = null; updateStats(player) totalVehiclesSold++; if (player.vehiclesOwned > topPlayer.vehiclesOwned) topPlayer = player;
onVehicleEnter(player, vehicle) if (vehicle.isStolen) startPoliceChase(player);
interval(1000) // every 1 second if (isEngineOn(vehicle)) let fuelDrop = 0.02 * getSpeed(vehicle); modifyFuel(vehicle, -fuelDrop); if (getFuel(vehicle) <= 0) stopEngine(vehicle); = vehicleModel.price) giveVehicle(player
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:
onInteract(player) let currentVehicle = getCurrentVehicle(player); if (!currentVehicle) notify(player, "You must be in a vehicle"); return; showMenu(player, upgrades, function(selectedUpgrade) if (getPlayerCash(player) >= selectedUpgrade.price) applyUpgrade(currentVehicle, selectedUpgrade); player.wallet.deductMoney(selectedUpgrade.price); log.info(player.name + " tuned " + currentVehicle.model); else notify(player, "Need $" + selectedUpgrade.price); );
5.1 Police System policeDepartment "GPD" onSpeeding(vehicle, speedOverLimit) let fine = speedOverLimit * 50; issueTicket(vehicle.owner, fine); addBounty(vehicle.owner, fine); command "/plate LOOKUP" let data = getVehicleByPlate(argument); showUI(player, data.owner, data.stolenStatus);