{"id":42209556,"url":"https://github.com/dnouri/roblox-pi-template","last_synced_at":"2026-01-27T00:43:50.498Z","repository":{"id":330759054,"uuid":"1123862637","full_name":"dnouri/roblox-pi-template","owner":"dnouri","description":"AI-assisted Roblox development template. Describe what you want, get working code synced to Studio in real-time.","archived":false,"fork":false,"pushed_at":"2026-01-07T00:50:10.000Z","size":3666,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-07T05:05:13.031Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dnouri.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-12-27T19:40:02.000Z","updated_at":"2026-01-07T00:49:20.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dnouri/roblox-pi-template","commit_stats":null,"previous_names":["dnouri/roblox-pi-template"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dnouri/roblox-pi-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnouri%2Froblox-pi-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnouri%2Froblox-pi-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnouri%2Froblox-pi-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnouri%2Froblox-pi-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dnouri","download_url":"https://codeload.github.com/dnouri/roblox-pi-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnouri%2Froblox-pi-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28794012,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T21:49:50.245Z","status":"ssl_error","status_checked_at":"2026-01-26T21:48:29.455Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-27T00:43:49.873Z","updated_at":"2026-01-27T00:43:50.490Z","avatar_url":"https://github.com/dnouri.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎮 Roblox Pi-Coding-Agent Template\n\nBuild Roblox games by talking to an AI. Describe what you want, and [pi-coding-agent](https://shittycodingagent.ai/) writes the code. ✨\n\n## 🚀 See It in Action\n\nYou start with a simple world - just a baseplate and spawn point:\n\n![Starter world](docs/assets/01-starter-world.jpg)\n\nTell pi what you want:\n\n```\nAdd 8 lava parts in a circle around the spawn point\n```\n\nPi writes a script, it syncs to Studio, and lava appears:\n\n![Lava circle](docs/assets/02-lava-circle.jpg)\n\nWant more? Just ask:\n\n```\nMake the lava parts rotate around spawn, and make the circle grow and shrink\n```\n\nNow you have orbiting, pulsating lava:\n\n![Rotating lava](docs/assets/03-rotating-lava.gif)\n\nThe code is in your project, ready to customize.\n\n## 📦 Getting Started\n\n### 1. Prerequisites\n\n- [pi-coding-agent](https://shittycodingagent.ai/) - the AI coding assistant that writes your game code\n  ```bash\n  # Install with npm\n  npm install -g @mariozechner/pi-coding-agent\n  \n  # Or with mise\n  mise use -g npm:@mariozechner/pi-coding-agent\n  ```\n- **Roblox Studio** - where your game runs\n  - **Linux:** Install via [Vinegar](https://github.com/vinegarhq/vinegar): `flatpak install flathub org.vinegarhq.Vinegar`\n  - **Windows/Mac:** Download from [roblox.com/create](https://www.roblox.com/create)\n\n\u003e **Platform Note:** This template works on Linux, macOS, and Windows. The setup process auto-detects your OS and downloads the right binaries. macOS users need one extra configuration step (see Setup).\n\n### 2. Setup\n\nClone this template and install the tools:\n\n```bash\ngit clone https://github.com/dnouri/roblox-pi-template my-game\ncd my-game\nmake setup\n```\n\nThis downloads several tools:\n- [Rojo](https://rojo.space/) - syncs code from your editor to Studio in real-time\n- [Selene](https://kampfkarren.github.io/selene/) - checks your code for errors\n- [StyLua](https://github.com/JohnnyMorganz/StyLua) - formats your code consistently\n- [rbxcloud](https://github.com/Sleitnick/rbxcloud) - publishes your game to Roblox\n\nIt also installs the Rojo plugin into Studio so they can talk to each other.\n\n### 3. Start Building\n\nFirst, start the sync server. This watches your code files and pushes changes to Studio:\n\n```bash\nmake serve\n```\n\nNext, open Studio:\n\n```bash\n# Linux\nflatpak run org.vinegarhq.Vinegar studio\n\n# ⚠ Windows/Mac - just open Roblox Studio normally\n```\n\nConnect Studio to the sync server: go to **Plugins tab → Rojo → Connect**. You should see the baseplate and spawn point appear.\n\n**Verify everything works:** Run `make verify` to check that tools are installed and Studio is connected.\n\nNow start pi and tell it what to build!\n\n## ⚙️ How It Works\n\nYou describe what you want in plain English. Pi writes Luau scripts (Roblox's programming language) in the `src/` folder. Rojo syncs them to Studio automatically.\n\n```\nsrc/\n├── server/     → runs on Roblox servers (game logic, scoring)\n├── client/     → runs on player's device (UI, input)\n└── shared/     → shared code (used by both)\n```\n\nYour code is saved to files and tracked in git - real code you can edit by hand, share with others, and publish to Roblox.\n\n### Included Examples\n\nThe template comes with two working scripts:\n\n- **DeadlyLava** - Any part named \"Lava\" kills players on touch\n- **ScorePoints** - Leaderboard showing points per second alive\n\nPress F5 in Studio to play-test. You'll see the leaderboard counting up. Touch lava and you die (score resets).\n\n## 🔍 Live Debugging\n\nSometimes you want to inspect or experiment without writing files. Start the MCP server:\n\n```bash\nmake mcp-start\n```\n\nIn Studio, click the **MCP** button in the Plugins tab. Now you can ask pi things like:\n\n```\nWhat parts are in the workspace?\nWhat's the player's current position?\n```\n\nThese queries run directly in Studio. Useful for debugging, but changes don't save - for permanent code, pi writes to `src/`.\n\n## 🌐 Publishing Your Game\n\nSet up your credentials in `.env`:\n\n```bash\n# If you didn't already create .env during setup:\ncp .env.example .env\n\n# Add your Roblox API key and game IDs\n# Pi can help you find these values!\n```\n\nThen publish:\n\n```bash\nmake publish\n```\n\n### Uploading Assets\n\nTo upload images or sounds to Roblox, ask pi:\n\n```\nUpload the image assets/icon.png to Roblox\n```\n\nPi uses [rbxcloud](https://github.com/Sleitnick/rbxcloud) to upload assets and gives you the asset ID to use in your scripts.\n\n## 📋 Commands Reference\n\n| Command | Description |\n|---------|-------------|\n| `make setup` | Download tools + install plugins |\n| `make serve` | Start Rojo live sync |\n| `make build` | Build .rbxl file |\n| `make publish` | Publish to Roblox |\n| `make verify` | Check setup status |\n| `make lint` | Check code with Selene |\n| `make format` | Format code with StyLua |\n| `make mcp-start` | Start MCP server for live debugging |\n| `make mcp-stop` | Stop MCP server |\n| `make setup-docs` | Download Roblox API docs |\n| `make setup-hooks` | Install pre-commit linting |\n\n## 🛠️ Tools Included\n\n| Tool | Purpose |\n|------|---------|\n| [Rojo](https://rojo.space/) | Syncs code to Studio |\n| [Selene](https://kampfkarren.github.io/selene/) | Luau linter |\n| [StyLua](https://github.com/JohnnyMorganz/StyLua) | Luau formatter |\n| [rbxcloud](https://github.com/Sleitnick/rbxcloud) | Publishing + asset uploads |\n| [Lune](https://lune-org.github.io/docs) | Standalone Luau runtime |\n| [Wally](https://wally.run/) | Package manager |\n\n## ❓ Troubleshooting\n\n**\"Could not detect Roblox plugins directory\" error?** \n- The setup script auto-detects the plugins directory on all platforms\n- If you get this error, create a `.env` file and set `ROBLOX_PLUGINS_DIR` to your actual plugins location\n- Common locations: `~/Documents/Roblox/Plugins` (macOS), `%LOCALAPPDATA%\\Roblox\\Plugins` (Windows)\n\n**Sync not working?** Make sure `make serve` is running and shows \"listening on port 34872\".\n\n**MCP not responding?** Check Studio's Output window for \"MCP Studio plugin is ready\". The plugin button doesn't change appearance when toggled.\n\n**Publish fails with \"server busy\"?** Close Studio first, then run `make publish`.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnouri%2Froblox-pi-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdnouri%2Froblox-pi-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnouri%2Froblox-pi-template/lists"}