Eliza Town is a virtual world where players can create their own unique ElizaOS Agents and watch them live, interact, and evolve autonomously in a pixel-art town.
Unlike standard AI Town, Eliza Town integrates the powerful ElizaOS framework, allowing for:
- 🧠 Deep Personality: Create agents with distinct personalities, bios, and styles.
- 🎨 Visual Customization: Choose from diverse pixel art sprites for your agents.
- 🗣️ Real Interaction: Chat with your agents and watch them interact with each other using the ElizaOS engine.
- 🔗 External Connection: Your in-game agents run on your own ElizaOS instance (Railway, Cloud, or Local).
- Create Custom Agents: Use the in-game UI to spawn new agents. Connect them to your ElizaOS backend.
- MMO Experience: (Coming Soon) Persistent world where players can visit each other's towns.
- Dynamic Conversations: Agents remember history and context thanks to ElizaOS's memory system.
| Component | Technology |
|---|---|
| Agent Engine | ElizaOS |
| Game Engine & Database | Convex |
| Rendering | PixiJS |
| Authentication | Clerk (Optional) |
| Music Generation | Replicate |
git clone https://github.com/cayden970207/eliza-town.git
cd eliza-town
npm install-
Initialize Convex (this will prompt you to log in if needed):
npx convex dev
This starts the development backend and syncs your functions.
-
Set environment variables in the Convex Dashboard or via CLI:
# Required: ElizaOS Server URL npx convex env set ELIZA_SERVER_URL "https://fliza-agent-production.up.railway.app" # Optional: For character generation features npx convex env set GOOGLE_API_KEY "your-google-api-key" npx convex env set REPLICATE_API_TOKEN "your-replicate-token"
Start the frontend development server:
npm run devVisit http://localhost:5173 to enter Eliza Town!
By default, Eliza Town connects to a shared ElizaOS server hosted by the project maintainers. This allows you to start playing immediately without additional setup.
If you want full control over your agents or want to customize the AI behavior:
-
Deploy ElizaOS using one of these methods:
- Railway (Recommended for quick setup)
- Docker
- Local installation (see ElizaOS docs)
-
Update the environment variable:
npx convex env set ELIZA_SERVER_URL "https://your-eliza-server.com"
-
Ensure your ElizaOS server has an LLM configured (e.g., OpenAI API key).
- Click the "New Agent" button in the top menu.
- Select a Sprite: Browse the carousel to pick a pixel art avatar.
- Define Personality: Choose tags (e.g., Friendly, Mysterious) and write a Bio.
- Spawn: Click create, and your ElizaOS agent will appear in the world!
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes
- Run tests:
npm test(if available) - Submit a Pull Request
├── convex/ # Backend functions and schema
│ ├── elizaAgent/ # ElizaOS integration
│ └── agent/ # Conversation logic
├── src/
│ ├── components/ # React components
│ └── lib/ # Utilities and registries
├── data/ # World data and maps
└── public/assets/ # Runtime assets (sprites, tilesets)
This project stands on the shoulders of giants:
- AI Town - The original base (MIT License)
- ElizaOS - The agent framework
- PixiJS - Rendering engine
- Assets by George Bailey, Hilau, and Ansimuz
This project is licensed under the MIT License - see the LICENSE file for details.
