func Attack
crossing ActionAttack swings the caller's hero at the room's current monster. Killing it grants XP and gold and replaces it with a tougher one; otherwise the monster strikes back.
Package rpgroom is a tiny single-room on-chain RPG. There is exactly one monster in the room at a time. Spawn a hero,...
⚠️ Experimental — generated with no human supervision by the daily MCP pipeline to exercise gno tooling. Not audited. See r/moul/x/daily.
A tiny shared on-chain dungeon room: everyone fights the same resident monster. Spawn a hero, Attack to chip away at the monster (or get hit back), Rest to heal, Revive if you fall. Every kill replaces the monster with a tougher one and grants XP/gold/level-ups, so the room escalates as the community grinds through it together, with a live leaderboard ranking every hero.
Built for gno 0.9.
Part of moul/gno-contracts — moul's versioned gno.land contracts. See the repository for the full catalog, build/test tooling, and usage.
Dependency graph:

🧪 Highly experimental — potentially vibe-coded. Not audited; may break, change, or be removed at any time. Do not use with anything of value. Full disclaimer: DISCLAIMER.
Package rpgroom is a tiny single-room on-chain RPG. There is exactly one monster in the room at a time. Spawn a hero, take a swing, and see what happens: land the killing blow and the room's monster gets replaced by a tougher one while your hero gains XP, gold, and (eventually) a level; get hit hard enough and your hero falls until it's revived. A room-wide leaderboard tracks who has climbed the highest.
Attack swings the caller's hero at the room's current monster. Killing it grants XP and gold and replaces it with a tougher one; otherwise the monster strikes back.
Render shows the room overview and leaderboard at path "", or a single hero's detail page when path is a bech32 address.
Rest heals the caller's hero for a quarter of its max HP.
Revive brings a fallen hero back at half max HP.
Spawn creates the caller's hero in the room. Each address gets exactly one hero; call Revive (not Spawn again) if it dies.