Quickstart
A registered, capturable adapter in one file. Read this first.
The question this answers
I have an addon with objects Blueprints does not currently understand. How do I make Blueprints manage them safely?You describe your domain as plain data, declare which operations you can honour for every object you produce, and implement those. Blueprints composes its workflows out of what you declared.
What an adapter is responsible for
1
Registering
From one hook, once, after the map loads. Load order between your addon and Blueprints
does not matter. See Registry.
2
Describing your domain
Collect returns every object in your domain, on this map, as plain data. All of them or
none. See Records.3
Giving each object a stable identity
The single most consequential decision you will make. See Identity.
4
Declaring capabilities truthfully
Each capability is a promise about every record you emit, not about most of them. See
Capabilities.
5
Implementing the world operations you declared
Move, rebuild, conform, destroy. Each has a phase that answers and a phase that writes.
What Blueprints is responsible for
- Planning. Migration, restore and deployment are workflows composed from your primitives. You never declare “restore”.
- Persistence, diffing, grouping, previewing, verification and rollback.
- Refusing to act where your declarations do not support it, and saying so in a sentence.
- Never dropping your historical records, even on a server where your adapter is not installed.
The adapter lifecycle
The five capabilities
create, update, delete, migrate or restore. Those words describe
operations that are either unbounded or composed, and the SDK deliberately does not offer
them.
Realm
Entities, the world and your addon’s data live on the server, and a captured record is server state. Nothing in the adapter contract runs on a client, and no part of your adapter’s logic is ever sent to one, including previews, which cross the wire as declarative data rather than as code.Official adapters get no privileges
Adapters shipped by Vetra are markedofficial in the product’s Adapters screen. That
records who maintains it and nothing else: official adapters register through the same hook,
use the same functions, and have no privilege you do not have. The built-in props adapter
registers through exactly the hook your addon uses, on purpose, so the built-in contract
cannot quietly diverge from the public one.
Where to go next
Quickstart
Registration through capture, minimal.
Adapter anatomy
Every field and function, required, optional or capability-dependent.
Identity
Read this before you choose how to generate ids.
Compatibility checklist
Read this before you ship.