This folder shows how to run an elizaOS agent that can talk to a Roblox experience and trigger in-game behaviors.
- Outbound to Roblox (works): publish messages/actions into Roblox via Roblox Open Cloud → MessagingService publish.
- Your Roblox servers subscribe to the topic and decide what to do with messages/actions.
- Lookups (works): fetch experience info and Roblox user info via Roblox APIs.
- DataStore (works): read/write Open Cloud DataStore entries (useful for configuration and low-rate state sync).
- Roblox → agent “subscribe”: Roblox Open Cloud does not provide an external “subscribe to MessagingService” API.
- That means the plugin cannot “listen to in-game chat” from outside Roblox by polling Open Cloud.
- The TypeScript implementation currently has a
poll()stub; there is no reliable Open Cloud endpoint to poll for player chat.
Use a small HTTP bridge that Roblox calls with HttpService:PostAsync(...).
- Roblox → Agent: HTTP POST (chat/events)
- Agent → Roblox: Open Cloud MessagingService publish (via
@elizaos/plugin-roblox)
- Within a place (yes, with a Roblox script): the agent can publish an
agent_actionlikemove_npcand your Roblox server script can move an NPC (Humanoid:MoveTo/ pathfinding) or teleport players. - Across places (limited): cross-place teleport requires Roblox game logic (TeleportService) and the agent can only request it via an action; Roblox enforces experience/game rules.
- “Agent walks around the world” is not something Open Cloud does directly — it’s game-side code reacting to actions.
Yes.
- Roblox → agent: forward player messages to the bridge endpoint.
- Agent → Roblox: publish agent replies to Roblox servers; Roblox decides how to display them (chat UI, billboards, NPC dialog, etc.).
Not directly via Open Cloud.
- The bridge can generate audio (e.g. via an external TTS provider), but Roblox playback requires your experience to handle audio delivery (assets or runtime audio constraints).
- In practice, most integrations start with text chat and add “voice-like” UI later (e.g. subtitles + local client TTS if your experience supports it).
- TypeScript:
examples/roblox/(canonical agent runtime +@elizaos/plugin-roblox) - Python:
examples/roblox/python/(canonical agent runtime + HTTP bridge) - Rust:
examples/roblox/rust/(canonical agent runtime + HTTP bridge)
See examples/roblox/roblox-studio/ for a minimal server-side script that:
- subscribes to the MessagingService topic
- forwards player chat to the agent bridge
- executes example actions like
teleportandmove_npc
Recommended defaults (already enabled in the script):
- Only forward chat that mentions the agent (e.g.
eliza,@eliza,/eliza) to avoid spamming your bridge. - Basic per-player throttling to reduce rate limits/cost.