Scripting overview
Varion resources могут запускать server logic на C#, JavaScript и Go. Client-side JavaScript resources описаны в Client API.
Server runtimes
| Runtime | resource.toml | Loader |
|---|---|---|
| C# | type = "csharp" | .NET host через Varion.SDK.RuntimeHost |
| JavaScript | type = "js" | Node host; запускается автоматически для type = "js" с заданным main |
| Go | type = "go" | c-shared DLL host |
| Native C++ | modules/ | Native module loader with include/varion_module_sdk.h |
Полный справочник серверного JS API — Server JavaScript API.
Resource lifecycle
- Сервер читает enabled resource names.
- Dependencies сортируются.
- Runtime loaders сканируют resources своего
type. - Loaded resources получают start/stop/tick и gameplay events через script event bus.
Common concepts
| Concept | Server API surface |
|---|---|
| Players | IPlayer, JS varion.Player, Go host player IDs |
| Entities | Vehicles, peds, objects, virtual entities |
| Events | Local events, client events и typed runtime events |
| RPC | Client-to-server handlers и server-to-client responses |
| Metadata | Local data, synced metadata и stream-synced metadata |
| World visuals | Blips, markers, text labels, checkpoints и colshapes |
| Voice | Voice channels и external voice host settings |
Minimal JS resource
toml
enabled = true
type = "js"
main = "server/main.js"
client-type = "none"javascript
varion.log('server resource loaded');
// Первый аргумент onClient — proxy Player, а не числовой id.
varion.onClient('chat:message', (player, message) => {
varion.emitAllClients('chat:addMessage', player.name, String(message));
});Minimal C# resource
csharp
using Varion;
public sealed class Main : Resource
{
public override void OnStart()
{
varion.Log("resource started");
varion.OnPlayerConnect += player => varion.Log($"connect {player.Name}");
}
}Source backing
Страница основана на src/core/CServer.cpp, src/scripting/CScriptRuntime.h, src/scripting/CJsScriptRuntime.h, src/scripting/CGoScriptRuntime.h, sdk/Varion.SDK/varion.cs и sdk/server-js-host/varion-server-shim.cjs.