Roblox plugin for elizaOS - Python implementation for game communication
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file elizaos_plugin_roblox-2.0.0a5.tar.gz.
File metadata
- Download URL: elizaos_plugin_roblox-2.0.0a5.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ecc1f1c6f04ac28c26f697d234aab76ba3ca1c795ed19abdeb78951937f0570
|
|
| MD5 |
aecabe3535b4d7b963310552c6ac335f
|
|
| BLAKE2b-256 |
173c712d3d376dc3b2255482a1ece3fad6b6a53e3c8866c8092b6e589ed6d9dc
|
File details
Details for the file elizaos_plugin_roblox-2.0.0a5-py3-none-any.whl.
File metadata
- Download URL: elizaos_plugin_roblox-2.0.0a5-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b985d690f27da504fd3ae30ddc1cca4cdf82bc6e18ab4c9157286a0565dce072
|
|
| MD5 |
851f7d4fb4ea39d6fbe77131670e1973
|
|
| BLAKE2b-256 |
ab9b1e545bcb0dfa6c23b1a738262d3cc7400f2a63fefd29e50683e9fba31029
|