Introduction
What Actorvia is, what it is not, and the one property everything else is built on.
What this is
Actorvia is a server-authoritative runtime for embodied agents inside Roblox experiences. You attach it to a model you already own — a character rig, a vehicle chassis, a boat hull, a conveyor, a flock controller — declare what that model can perceive and attempt, and give it goals. The runtime plans, validates, settles resources, executes and commits.
The same kernel drives a market trader and a container crane. What differs between them is an adapter — a small module describing that class of embodiment — and a role that says what it is permitted to do.
The central property
Everything in this documentation follows from one decision: the server is the only writer. Planning, validation, resource settlement and commit all run server-side. A client can submit a goal request, and that request is validated exactly like anything else, but no client message can produce a world-state change on its own.
This is why the runtime is not a behaviour library you drop into a LocalScript. Moving the decision to the client would remove the property that makes the rest of the design work.
What you write
Three artefacts, in this order:
- An adapter — what one class of model can be observed to be, and what it can be asked to do.
- A domain pack — reusable roles, capabilities, constraints, resources and goal definitions for a problem area.
- Attachment and goals — binding a model to an adapter and a role, then submitting goals from your own systems.
local ServerScriptService = game:GetService("ServerScriptService")
local Runtime = require(ServerScriptService.BDGAgent)
-- A gantry crane and a courier attach the same way. Only the adapter differs.
local crane = Runtime.attach(workspace.Port.CraneA, {
adapter = "machine/gantry",
role = "port.crane_operator",
goals = { "port.clear_inbound_queue" },
})
local courier = Runtime.attach(workspace.NPCs.Courier07, {
adapter = "humanoid/biped",
role = "logistics.courier",
goals = { "logistics.deliver_manifest" },
})What this is not
- Not a dialogue system. Conversation is one capability among many. Most actors the runtime drives never speak.
- Not dependent on an external model. The local planner is deterministic and authoritative. External evaluation is optional and advisory.
- Not a replacement for your gameplay rules. The runtime decides what an actor attempts and enforces whether it is permitted. What success means for your economy or progression is still yours.
Where to go next
- Concepts — the five nouns and how they relate.
- Actors and adapters — the adapter contract in full.
- Deterministic execution — why behaviour is reproducible and what breaks it.