Formato dei file

Un file per veicolo in vehicles/<tipo>/, in HJSON (o JSON). Il nome del file non conta: vale il campo id.

HJSON e stringhe senza virgolette

In HJSON una stringa senza virgolette arriva fino a fine riga. Per scrivere più campi su una riga usa il JSON con le virgolette (come fa l'editor): { "type": "skin", "xoffset": 0 }.

Campi principali

CampoTipoObbl.Descrizione
idtestosìIdentificatore univoco. Compare nei permessi (ev.spawn.<id>) e nei comandi.
displayNametestonoNome mostrato nei menu. Se manca vale l'id.
typeIdtestosìTipo: cars, trucks, bikes, bicycles, boats, hovercrafts, helicopters, planes o tanks. Decide la fisica. Le bicycles (biciclette) non hanno mai carburante.
enabledbooleanonoCon false il modello non viene caricato (predefinito vero).
categorytestonoPASSENGER, CARGO, EMERGENCY o SPECIAL. Se manca vale vehicles-registry.yml o PASSENGER.
pricenumeronoPrezzo finale pagato dal cliente. Con 0 il veicolo non compare nel negozio.
trunkSizeinteronoSlot del bagagliaio (multipli di 9, massimo 54; 0 = senza bagagliaio).
healthnumeronoSalute del veicolo (predefinito 100).
drivingModetestonoWASD o HORSE: come si guida questo modello. Se manca vale driving.mode del config.yml.
availableColorslistanoColori scelti nel negozio: oggetti { red, green, blue } da 0 a 255.
partslistasìLe parti del veicolo, vedi sotto.
hitboxoggettosìlength (Z), width (X), height (Y) in blocchi.
fueloggettosìtypeId (GASOLINE, DIESEL, PETROL, KEROSENE o NONE per nessun serbatoio) e usage (consumo, vedi Carburante). Per le bicycles si può omettere insieme a fuelTank.

Caratteristiche potenziabili

Quattro blocchi con la stessa forma: maxSpeed (km/h), fuelTank (litri), turningRadius e acceleration. Tutti obbligatori.

CampoDescrizione
baseValore di partenza (obbligatorio).
upgradableSe la caratteristica si può potenziare.
maxValore massimo raggiungibile.
stepIncremento a ogni livello. Per il raggio di sterzo si può usare un valore negativo.
stepCostCosto di ogni livello, pagato dal giocatore con Vault.
unitUnità mostrata (testo libero).

I livelli sono (max - base) / step, arrotondati per difetto. Esempio: base 60, max 90, step 10 danno 3 livelli.

Le parti

Ogni elemento di parts ha type, xoffset, yoffset, zoffset e rotationOffset, più i campi del suo tipo (vedi Creare un veicolo). Un tipo sconosciuto viene ignorato con un avviso nel log.

Blocchi facoltativi

CampoDescrizione
physicssuspension (0-1, predefinito 0,6), steeringSmoothing (0-1, predefinito 0,5), liftoffSpeed (aerei; predefinito 55% della velocità massima).
heightLimitmin e max: quota minima e massima per elicotteri e aerei.
permissionssitWithoutRidePermission: i passeggeri si siedono senza il permesso ride.
animationswheels (spin, steer) e doors (lista di part, axis, openAngle, durationTicks). Una porta è una skin con un name: il centro di rotazione del modello deve stare sulla cerniera.
plateMostra la targa sul veicolo: enabled, xoffset, yoffset, zoffset, rotationOffset, scale.

Altri campi (exhaust, horn, sounds, realisticSteering, drift, exitWhileMoving, gearbox) sono accettati e ignorati dal motore attuale.

Esempio minimo

{
  "id": "offroad_black",
  "displayName": "OffRoad nera",
  "typeId": "cars",
  "price": 5000,
  "trunkSize": 9,
  "availableColors": [ { "red": 255, "green": 255, "blue": 255 } ],
  "parts": [
    { "type": "skin", "xoffset": 0, "yoffset": 0, "zoffset": 0, "rotationOffset": 0,
      "item": { "material": "PAPER", "custommodeldata": 2400153 } },
    { "type": "seat", "xoffset": 0.4, "yoffset": -1.25, "zoffset": 0.3, "rotationOffset": 0, "steer": true }
  ],
  "maxSpeed": { "base": 80, "upgradable": false, "max": 80, "step": 0, "stepCost": 0, "unit": "km/h" },
  "fuelTank": { "base": 40, "upgradable": false, "max": 40, "step": 0, "stepCost": 0, "unit": "L" },
  "turningRadius": { "base": 10, "upgradable": false, "max": 10, "step": 0, "stepCost": 0 },
  "acceleration": { "base": 30, "upgradable": false, "max": 30, "step": 0, "stepCost": 0 },
  "hitbox": { "length": 4.5, "width": 2, "height": 1.8 },
  "fuel": { "typeId": "GASOLINE", "usage": 7 }
}