A multiplayer farming and fishing game on Roblox, vibe coded entirely with pi-coding-agent; an AI coding assistant.
Infarmous is a cozy (perhaps too cozy?) multiplayer farm game where you grow crops, catch fish, upgrade your barn, and sell your harvest. It's created using the roblox-pi-template base template and was developed entirely using AI-assisted programming (see AGENTS.md).
- 🌱 Farming — Plant 6 crop types from quick Potatoes to overnight Pumpkins. Crops grow while you're offline! Tomatoes regrow 3 times
- 🎣 Fishing — Cast your line at the pond. Quick reflexes catch rarer fish
- 🏠 Barn upgrades — Expand your farm with upgradeable barns and extra plots
- 💰 Economy — Sell crops and fish to NPCs, buy seeds and upgrades
- 🏆 Achievements — Earn XP and unlock badges for farming milestones
- 🎸 Ambient guitar — Gentle chords play at dawn, dusk, rain, and special moments
- 🎁 Daily gifts — Come back every day for streak rewards
- 👥 Multiplayer — Farm alongside friends with separate plots
src/
├── server/ → Server scripts (game logic, data, world setup)
├── client/ → Client scripts (UI, input, visual effects)
└── shared/ → Shared modules (configs, utilities, data management)
scripts/ → Dev tooling (test runner, deploy helpers)
Game logic lives in src/shared/ as testable modules. Server scripts in src/server/ wire them together. Client scripts in src/client/ handle UI and visuals.
Key modules:
- PlayerDataManager — Persistence, economy, achievements, session tracking
- Remotes — Centralized client-server communication
- EconomyConfig / CropUtils / FishConfig — Game balance as pure data
- MCPBridge — Lets dev tools inspect live game state across VM boundaries
Tests run with Lune outside Roblox Studio.
- pi-coding-agent
- Roblox Studio (Linux via Vinegar · Windows/Mac)
git clone https://github.com/dnouri/infarmous
cd infarmous
make setupmake serve # Start Rojo live sync to Studio
make test # Run unit tests
make check # Lint + format check
make publish # Build and publish to RobloxEdit .luau files in src/ — Rojo syncs them to Studio in real-time. Press F5 in Studio to play-test.
| Command | Purpose |
|---|---|
make setup |
Download tools + install Studio plugins |
make serve |
Start Rojo live sync |
make test |
Run all tests (30s timeout) |
make check |
Lint + format check |
make fmt |
Auto-format code with StyLua |
make build |
Build .rbxl file |
make publish |
Publish to Roblox (requires .env) |
make mcp-start |
Start MCP server for live debugging |
make mcp-stop |
Stop MCP server |
make grant-asset-permissions |
Grant asset access to your experience |
make verify |
Check environment setup |
Start the MCP server (make mcp-start) and connect the Studio plugin. Then ask pi to inspect live game state:
What parts are in workspace?
How many coins does the player have?
See .pi/extensions/studio-mcp/README.md for details.
| Tool | Purpose |
|---|---|
| Rojo | Syncs code to Studio |
| Lune | Standalone Luau runtime (tests) |
| Selene | Luau linter |
| StyLua | Luau formatter |
| rbxcloud | Publishing + asset uploads |
This game was built from roblox-pi-template using AI-assisted development. The template provides the toolchain (Rojo, Lune, Selene, CI) and pi-coding-agent writes the game code.
MIT
