ggwalk is a cozy, interactive Discord RPG bot centered around walking, collecting, and customizing virtual pixel-art companions. Its primary functions include:
- Exploration (
/walk): Users can embark on walks across 6 distinct sanctuary biomes (from Cozy Yard to The Cosmos) to find stars, cosmetic blueprints, and adopt stray dogs. - Collection (
/dogs,/barkdex): A dynamic database of 30 distinct dog breeds, each with their own generated fantasy biographies, coat colors, and rarities. - Customization (
/yard): Players can interact with their active dog, pet them to gain XP, level up, and dynamically equip unlocked wallpapers and accessories. The bot uses a dynamic image-compositing engine to stitch together custom ID photos and wallpapers on the fly! - Economy & Trading (
/shop,/trade): Buy items using Sanctuary Stars and securely blind-trade items/dogs with other users to complete your Barkdex.
- Components V2 Yard Interface:
- Completely migrated the
/yardUI from standard Discord embeds to the new premium Components V2 system, grouping the layout inside a native Container (Type 17) component with biome-themed accent colors. - Added a Section (Type 9) header with an inline reload button (🔄) accessory.
- Re-routed the companion portrait using an inline File (Type 13) component to display the pixel art directly inside the card frame.
- Formatted the stats and RPG progress inside a TextDisplay (Type 10) component.
- Completely migrated the
- Improved Logging & Interaction Tracking:
- Implemented detailed dev logging in
src/index.jsto print all incoming interactions (commands, buttons, select menus) directly to standard output.
- Implemented detailed dev logging in
- Fixed Button Refresh Target Bugs:
- Fixed a state error where clicking the refresh button on another player's yard would refresh to the user's own yard; the yard command now carries and respects the target user ID across sessions.
- Active Star Indicator Restore:
- Restored the star emoji (
⭐) prefix to the active companion indicator (⭐ [ACTIVE]) in/dogs listas requested by the user, ensuring clean yet prominent companion visibility.
- Restored the star emoji (
- Permanent Database Size Emoji Migration:
- Wrote and executed a database migration script that permanently stripped size emojis (
🍼,🎒,🐕,🍞,🦁,📐) from pre-existing entries insidedata/db.json. - Cleaned up the codebase by removing dynamic string sanitization code across all interaction logic, allowing the bot to natively read and print clean size values directly.
- Wrote and executed a database migration script that permanently stripped size emojis (
- Dog List Cleanups & Retroactive Size Sanitization:
- Removed parenthesized breed name suffixes (e.g.
(Sausage)) from the/dogs listembed. - Stripped the branch character
└from the traits row prefix in/dogs listfor a cleaner vertical grid layout. - Added robust dynamic string sanitization across
/dogs list,/yard,/walk, and/pixeldevto strip legacy size emojis (like🎒or🍼) from pre-existing database entries.
- Removed parenthesized breed name suffixes (e.g.
- Embed Styling & Emoji Polishing:
- Removed the
✨prefix from walk item collection descriptions (e.g. "Found a Flower Crown 🌸 in Cozy Yard 🏡!"). - Removed the
⚡emoji from player rank footers in walk commands and rank labels in/yard. - Removed unnecessary italic wrappers from non-sentence structures like dog lists and partial statuses to prevent backticks/inline-code formatting glitches on Discord.
- Removed the
- Emoji Reduction Overhaul: Significantly reduced emoji clutter across key gameplay interfaces per direct user request:
- Removed all size-related emojis (
🍼,🎒,🐕,🍞,🦁,📐) from standard dog descriptions and statistics fields. - Stripped decorative emojis from the
/dogs list,/dogs active, and/dogs renamecommand embeds (e.g. shelter icons, active stars, footer emojis) for a cleaner, modern look. - Cleaned up the
/shopinterface, removing coin/star emblems, decorative category emojis, and option symbols within the interactive buying dropdown.
- Removed all size-related emojis (
- Yard Button Relabeling: Relabeled the yard command's shortcut button from "Dogs 🐕" to "Dog List 🐕" by direct user request for clearer navigation.
- Dev Command Star Calculation Fix: Fixed a double-addition math bug in the
/pixeldev starscommand response. Since the database update modifies the in-memory user reference in-place, the subsequent template description string was adding the quantity twice, causing incorrect and confusing balance readouts in Discord embeds.
- Switch Companions inside Yard: Added a "Dogs 🐕" button directly to the
/yardresponse UI. Clicking this button immediately displays the player's personal shelter list, allowing for a fast and frictionless experience when switching active dogs. - Robust Subcommand Routing: Updated
/dogscommand parser to safely handle button interactions by dynamically defaulting its execution flow to'list'whenever options parameters are absent.
- Status Indicator for Web Manual: Designed and integrated a zero-database, serverless live status indicator on the Vercel-hosted player manual page. The bot periodically pings a transient CORS-enabled bucket (
kvdb.io), and the frontend reads this signature to dynamically render live/offline connectivity states with beautiful custom CSS styling. - Privacy Partitioning on Dog Encounters: Split the
/walkdog adoptions into two messages—a public server announcement ("@User met a dog in cozy yard!") to celebrate discoveries without channel clutter, and a detailed private ephemeral follow-up containing stats, traits, biography, and interactive action buttons. - Fix Share Command Await Crash: Resolved a critical async event-loop crash when generating dog images in
src/index.jsfor/shareby adding the correctawaitstatement before compilation.
- Nano Banana AI Integration: Stripped out procedural generation and generic static sprites in favor of dynamically loaded, breed-specific AI generated ID photos (created via Nano Banana tool).
- Dynamic Fantasy Biographies: Re-wrote the breed engine to generate and persist unique, realm-specific fantasy bios for each adopted dog.
- Quick Action UI: Added Discord UI buttons to the bottom of the
/walkcommand (WalkandYard) to allow for rapid, frictionless gameplay without needing to re-type slash commands. - Web Manual Updated: Embedded the new classic JRPG 16-bit dog sprite directly into the documentation's hero section.
- Image Generation Overhaul: Replaced the legacy 16x16 grid template strings with a fully procedural vector math rasterizer!
- Dynamic Shapes & Geometry: The new engine composites basic geometric shapes (ellipses, triangles, rectangles) to build distinct dog shapes procedurally.
- Breeds now fall into three body archetypes:
floppy(e.g., Beagle, Golden),pointed(e.g., Husky, Shiba), andsquished(e.g., Pug). - Accessories and wallpapers are rendered dynamically on top of the generated body.
- Breeds now fall into three body archetypes:
- Resolution & Scaling: Transitioned from a 128x128 high-fidelity grid down to a 64x64 retro grid at 1:1 scale by user request to better mimic classic low-resolution pixel art vibes.
- Yard Enhancements: Modified the
/yardcommand to properly attribute the yard title to the Discord user (e.g., "User's Yard") rather than the dog's nickname, for clarity. - Nano Banana AI Assets: Utilized experimental "Nano Banana" image generation models internally to establish a new creative baseline for the Beagle puppy pixel art style, integrating its nature palette (sage, charcoal, sand) and flat 3/4 isometric perspective into the project's art direction!
- Condensation of interaction text to make Discord embeds punchier, cuter, and less verbose.
- Implemented comprehensive RPG leveling system.
- Initial release featuring database integration.
- Standard pet commands (
/walk,/dogs,/yard).