Skip to content

Entities

Varion exposes server-authoritative players и world entities через SDK. Сервер создает и владеет network entities; client scripts получают streamed snapshots и могут выполнять local visual/native operations там, где это разрешено.

Server entity types

TypeServer creation/API
PlayerCreated by connection pipeline; exposed as IPlayer
Vehiclevarion.CreateVehicle, varion.CreateVehicleEntity
Pedvarion.CreatePed, varion.CreatePedEntity
Objectvarion.CreateObject, varion.CreateObjectEntity
Virtual entityvarion.CreateVirtualEntityGroup, varion.CreateVirtualEntity
Colshapevarion.CreateColShapeSphere, Box, Cylinder, Circle, Rectangle, Polygon
Checkpointvarion.CreateCheckpoint
Blipvarion.CreateBlip, CreateBlipRadius, CreateBlipArea
Markervarion.CreateMarker
Text labelvarion.CreateTextLabel
Voice channelvarion.CreateVoiceChannel

C# player surface

IPlayer включает connection data, lifecycle, health, armor, model, appearance, weapons, vehicle seat control, events, date/time, weather, streaming checks и data/meta storage.

csharp
player.Spawn(new Vector3(215.76f, -810.12f, 30.73f));
player.Kick("reason");
player.GiveWeapon(0x1B06D571, 100, true);
player.Emit("hud:show", true);
player.SetWeather(WeatherType.Clear);

Server world creation

csharp
var vehicle = varion.CreateVehicleEntity(
    "adder",
    new Vector3(220, -805, 30),
    new Vector3(0, 0, 0));

var label = varion.CreateTextLabel(
    "Garage",
    new Vector3(220, -805, 31),
    scale: 1.0f);

Server JS (JavaScript)

В серверном JS-ресурсе varion.createVehicle, varion.createPed и varion.createObject асинхронны и возвращают Promise: сетевой id выделяет сервер, поэтому дождитесь Promise, чтобы получить proxy сущности.

javascript
const car = await varion.createVehicle(varion.hash('adder'),
  { x: 220, y: -805, z: 30 });
car.setStreamSyncedMeta('plate', 'VARION');

Полный серверный JS API (сущности, world-визуалы, colshapes, voice, metadata, таймеры) — Server JavaScript API.

Virtual entities

Virtual entities — server-side objects без GTA handle. Они stream по group distance и могут иметь synced или stream-synced metadata.

csharp
var group = varion.CreateVirtualEntityGroup(400, 128);
var marker = varion.CreateVirtualEntity(new Vector3(100, 100, 30), group.Id);
marker.SetStreamSyncedMetaData("label", "pickup");

Client entity snapshots

javascript
const local = varion.Player.local;
const players = varion.Player.all;
const streamedVehicles = varion.Vehicle.streamedIn;
const entity = varion.Entity.getByScriptID(scriptId);

Client entity wrappers expose IDs, script IDs, model data, position/rotation snapshots, validity и local helper methods. Remote player transforms остаются server-authoritative.

Source backing

Страница основана на sdk/Varion.SDK/varion.cs, sdk/Varion.SDK/IPlayer.cs, sdk/Varion.SDK/Vehicle.cs, sdk/Varion.SDK/ServerEntity.cs, sdk/Varion.SDK/VirtualEntity.cs, sdk/server-js-host/varion-entities.cjs и sdk/client-js-runtime/injected/entities-bootstrap.js.

Varion Multiplayer Platform