Roblox Integration

Overview

A server-side Lua SDK for connecting a Roblox place to Vestrane Access. It lets your game ask "is this player allowed to open this access point right now?" and get a fast, centrally-managed answer, with every attempt recorded for the dashboard's event log.

Get the SDK

One file, drag it into ServerScriptService.

Download VESTRANE_FINAL.rbxm

The flow

Player uses reader (ProximityPrompt)
        |
        v
Server script calls VestraneClient.CheckAccess(accessPointId, player)
        |  HTTPS, Authorization: Bearer <location secret>
        v
Vestrane API resolves the location from the secret, evaluates the
access point's rules (direct user / group rank / access group / schedule),
records an AccessEvent, and updates the integration's "last seen" time
        |
        v
Server script receives { allowed, reason, eventId, accessPoint }
        |
        v
If allowed: door controller opens the configured Part for
accessPoint.unlockDurationSeconds, then re-locks

Every attempt - allowed or denied - is recorded server-side as an event, independent of whether your game code does anything with the result.

Files

FilePurpose
VestraneConfig.luaYour API base URL, location ID, and location secret.
VestraneClient.luaThe HTTP client. require() this from your own server scripts.
VestraneReaderKit.luaShared reader logic (finding parts, calling the API, granted/denied reactions). Every reader goes through this one file - update it once for a logic change, no reader model or per-reader script ever needs touching.
VestraneReaderConfig.server.luaAlready inside the reader model that comes with the download - set ACCESS_POINT_ID and duplicate per door. Building your own reader prop? Place a copy of this script inside it instead.
VestraneReaderAutoWire.server.luaAn alternative for a reader prop you build yourself: tag the model "VestraneReader" and set its AccessPointId/GroupIds Attributes in Studio instead of using a config script - no scripting per reader at all.
VestraneDoorRegistry.luaMaps an accessPointId to its reader's granted reaction, for remote unlock.
RemoteCommandPoller.server.luaPolls for pending remote-unlock commands and executes/acknowledges them.

Continue to Installation.