Pre-release
This release is a pre-release and may not be stable for production use.
elizaOS Roblox Plugin - Python Implementation
Python implementation of the Roblox plugin for elizaOS, enabling game communication via the Roblox Open Cloud API.
Features
- Messaging Service: Cross-server communication with Roblox games
- DataStore: Persistent data storage operations
- User Lookup: Get player information by ID or username
- Experience Info: Retrieve universe/experience metadata
- Dry Run Mode: Test without making actual API calls
- Fully Typed: Complete type annotations with Pydantic models
Installation
pip install elizaos-plugin-roblox
Or with development dependencies:
pip install elizaos-plugin-roblox[dev]
Usage
import asyncio
from uuid import uuid4
from elizaos_plugin_roblox import RobloxConfig, RobloxService
async def main():
# Create config from environment or manually
config = RobloxConfig.from_env()
# Or: RobloxConfig(api_key="your-key", universe_id="12345")
# Create and start service
async with RobloxService(config, uuid4(), "MyAgent") as service:
# Send a message to the game
await service.send_message("Hello from Eliza!")
# Execute a game action
await service.execute_action(
"spawn_item",
{"item": "sword", "rarity": "legendary"},
target_player_ids=[12345678],
)
asyncio.run(main())
Configuration
Environment Variables
| Variable | Required | Description |
|---|---|---|
ROBLOX_API_KEY |
Yes | Roblox Open Cloud API key |
ROBLOX_UNIVERSE_ID |
Yes | Universe ID of the experience |
ROBLOX_PLACE_ID |
No | Specific place ID |
ROBLOX_WEBHOOK_SECRET |
No | Secret for webhook validation |
ROBLOX_MESSAGING_TOPIC |
No | Messaging topic (default: "eliza-agent") |
ROBLOX_POLL_INTERVAL |
No | Poll interval in seconds (default: 30) |
ROBLOX_DRY_RUN |
No | Enable dry run mode (default: false) |
API Reference
RobloxClient
Low-level API client:
from elizaos_plugin_roblox import RobloxClient, RobloxConfig
async with RobloxClient(config) as client:
# Messaging
await client.publish_message("topic", data)
await client.send_agent_message(message)
# DataStore
entry = await client.get_datastore_entry("store", "key")
await client.set_datastore_entry("store", "key", value)
await client.delete_datastore_entry("store", "key")
# Users
user = await client.get_user_by_id(12345678)
user = await client.get_user_by_username("PlayerName")
avatar = await client.get_avatar_url(12345678)
# Experience
info = await client.get_experience_info()
RobloxService
High-level service for elizaOS integration:
from elizaos_plugin_roblox import RobloxService
async with RobloxService(config, agent_id, "AgentName") as service:
await service.send_message("Hello!")
await service.execute_action("action_name", params)
Development
Setup
pip install -e ".[dev]"
Testing
pytest
Type Checking
mypy elizaos_plugin_roblox
Linting
ruff check .
ruff format .
License
MIT
Metadata
Release files for elizaos-plugin-roblox 2.0.0a5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| elizaos_plugin_roblox-2.0.0a5.tar.gz | 12.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| elizaos_plugin_roblox-2.0.0a5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.7 kB
Release files / elizaos_plugin_roblox-2.0.0a5.tar.gz
| Download URL | elizaos_plugin_roblox-2.0.0a5.tar.gz |
|---|---|
| Size | 12.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3ecc1f1c6f04ac28c26f697d234aab76ba3ca1c795ed19abdeb78951937f0570
|
|
BLAKE2b-256 checksum How to use checksums |
173c712d3d376dc3b2255482a1ece3fad6b6a53e3c8866c8092b6e589ed6d9dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Release files / elizaos_plugin_roblox-2.0.0a5-py3-none-any.whl
| Download URL | elizaos_plugin_roblox-2.0.0a5-py3-none-any.whl |
|---|---|
| Size | 16.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b985d690f27da504fd3ae30ddc1cca4cdf82bc6e18ab4c9157286a0565dce072
|
|
BLAKE2b-256 checksum How to use checksums |
ab9b1e545bcb0dfa6c23b1a738262d3cc7400f2a63fefd29e50683e9fba31029
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|