This article is about the video game. For the people who make it, see Team PetPal.
PetPal
From the PetPal Wiki, the pet-raising encyclopedia
PetPal is a homebrew virtual pet game for the Nintendo 3DS, developed by Team PetPal and first released in 2026. The player raises a single companion that grows not through time alone but by meeting other players: every console you “pass” becomes a friend who brings the pet experience, gifts, and progress toward its next evolution.[1]
Unlike most 3DS software, PetPal draws its creatures procedurally from shapes and two customizable colors rather than from fixed sprite art, so the whole game is playable without a single drawn frame.[2] It pairs the core raising loop with real-time adventures, an automatically written journal, a coin shop, redeemable codes, and a streamed soundtrack. PetPal is distributed free under the MIT license and runs on any modded 3DS or 2DS console.
Overview edit
PetPal takes the idea that made StreetPass special — you meet people, and they join your world — and rebuilds it over the internet (see Passing) as the entire point of the game. You raise one pet, and it cannot grow on its own — it grows by meeting people. Each encounter is folded into your world as a friend, usually with a gift and a little experience, and enough encounters push your pet toward its next evolution stage.
The game is built around a quick daily check-in as much as a long session: care for your pet, send it on an adventure, spend your coins in the shop, then read the journal to see who it met while you were away. Everything is presented across the 3DS’s two screens with an animated hub, slide transitions, and celebratory confetti.
Gameplay edit
Your pet
At the start you choose and name one companion from seven species. Each species has its own default palette and procedural look, and can be recolored across color slots with unlockable accessories and styles layered on top.[2] Every pet has Idle, Happy, and Sad animations and reacts to how you treat it.
| Species | Default color | Character |
|---|---|---|
| Fox | Warm orange | The mascot; bright and bouncy. |
| Cat | Slate grey | Cool and curious. |
| Bunny | Soft pink | Gentle and quick. |
| Dragon | Leaf green | Bold; built to evolve. |
| Slime | Sky blue | Wobbly and easygoing. |
| Robot | Steel | Precise and tidy. |
| Axolotl | Rose | Rare and friendly. |
Daily care
The Pet screen offers four everyday actions — Feed, Play, Pet, and Talk — that raise your companion’s mood and energy and earn a trickle of experience. Feeding draws on food you keep in the pantry or buy in the shop; a dress-up menu lets you change colors and equip unlocked accessories and styles. When your pet has met enough friends, an Evolve action becomes available.
Stats
A pet is described by a handful of stats that move as you play:[2]
- Level and XP — overall growth from care, adventures, and encounters.
- Happiness and Energy — short-term wellbeing you top up through daily care.
- Friendship — deepens with players you meet again, not just a raw friend count.
- Adventure rank — rises as your pet completes trips, unlocking farther destinations.
Evolution
PetPal has five evolution stages. Evolution is not driven by time or feeding but by how many friends your pet has met, crossing milestones at 50, 200, 500, and 1,000 encounters.[2] Each stage changes your pet’s appearance and marks real progress through the game.
| Stage | Friends met | Notes |
|---|---|---|
| Stage 1 | 0 | Your pet’s starting form. |
| Stage 2 | 50 | First evolution. |
| Stage 3 | 200 | Second evolution. |
| Stage 4 | 500 | Third evolution. |
| Stage 5 | 1,000 | Final form. |
Special evolution shards from the shop and from codes can help along the way.
Adventures
Between check-ins you can send your pet on a real-time adventure — short, medium, or long. Each destination has its own loot table, and the trip writes itself into a small generated story line that lands in the journal when your pet returns, often with items and coins in tow.[2]
Items and the shop
Adventures and rewards pay out coins, which you spend in the in-game Shop on foods, rare treats, and evolution shards. Items also arrive as gifts from the players you pass. A dedicated currency and inventory sit behind it all, so there is always something to save up for.
Journal and achievements
Your pet keeps an auto-written journal: a charming diary of who it met, what they gave it, and the milestones it reached. Alongside it, a set of achievements tracks long-term goals across everything you do — encounters, adventures, care, and evolution.
Passing edit
Passing is the mechanic that trades pets between players, and it is the heart of PetPal. Each time your console exchanges pets with someone, the other player’s pet arrives as a small, integrity-checked packet; the game folds it into your world as a friend, hands out any gift, grants experience, and updates friendship levels.[2] Meeting the same player twice recognises them rather than creating a duplicate.
Importantly, PetPal does not use the 3DS’s built-in StreetPass — it cannot. Instead it runs its own passing system over the internet, carried by PetPal’s own servers at teampetpal.com. The trade-off is a welcome one: passing works from anywhere with an internet connection and never needs a second console nearby.
Why real StreetPass isn’t possible
On the 3DS, StreetPass is run by a system service called CECD. Every game that uses StreetPass is given a message box that the system provisions for it, tied to that game’s official title as issued by Nintendo. When you pass someone in real life, the system quietly swaps the contents of those boxes in the background.
A homebrew game like PetPal has no such box, and the console will not let it create or register one: every attempt to open a StreetPass box for an unregistered title is refused by the system.[1] Because a game can only join the StreetPass exchange through a box the system hands it, PetPal has no way in. This is a confirmed limitation of 3DS homebrew — not a temporary bug, and not something a future PetPal update can simply switch on. That is why PetPal re-creates the passing experience on its own.
The PetPal relay (teampetpal.com)
In place of StreetPass, PetPal talks to a small relay server at teampetpal.com. Whenever the 3DS is online, a background task on the console does two things on a timer:
- Uploads a tiny packet describing your own pet, so that other players are able to meet it.
- Downloads a handful of packets that other players have recently left on the relay, and feeds each one into the same meeting pipeline — turning them into friends, gifts, and XP exactly as a physical pass would.
The relay itself is deliberately simple: a small serverless function (a Cloudflare Pages Function) backed by a key-value store that holds recent pet packets for a short while and hands back a random selection on request. It keeps no accounts and asks for no login or personal information. All of the real work stays on the console — PetPal validates every packet it receives, checking a magic number, a version, and a CRC and ignoring its own pet, so a corrupt or tampered packet is discarded rather than trusted. Anything sensitive stays on the server and never ships inside the app.[1]
PetPal’s relay is entirely its own and is independent of NetPass — a separate community project that reroutes genuine StreetPass traffic over the internet. PetPal does not use or require NetPass, and needs no second console to pass.[3]
Codes edit
Main article: Active codes
PetPal supports redeemable codes. In Settings → Enter code (with the console online), typing a valid code claims a reward that is verified server-side and logged in the journal. Rewards range from bundles of items and unlockable accessories to a temporary transformation.
| Code | Reward | Type |
|---|---|---|
Bonzi | Turns your pet into the purple ape for 24 hours | Temporary |
Apple4Life | 1,000 apples for the pantry | One-time |
Belzer | Unlocks the floppy-eared dog hat | Permanent |
The current list is maintained on the Codes page.
Audio and presentation edit
PetPal ships with real audio: a streamed, seamlessly looping background track plus a mix of recorded and procedurally-synthesized “chip-blip” sound effects, all with live music and SFX volume sliders in Settings. On top of that it layers slide transitions between screens, celebration confetti, and an animated hub, aiming for the feel of a polished handheld title rather than a tech demo.
Technical details edit
PetPal is written in C++17 and built with the devkitPro toolchain, using libctru for system access and citro2d/citro3d for graphics, with ndsp for audio and 3ds-curl (libcurl + mbedTLS) for HTTPS.[4] Gameplay logic is deliberately decoupled from the console, so the model is testable on a PC.
- Rendering — pets and UI are drawn procedurally at a 60 FPS target across both screens; graphics assets are mounted from
romfs. - Saves — versioned and CRC-validated with atomic writes, a rotating backup, and portable exports, stored at
sdmc:/3ds/PetPal/. - Distribution — a
.3dsxfor the Homebrew Launcher and an installable.ciafor the HOME Menu. - Requirements — a modded 3DS/2DS running custom firmware (e.g. Luma3DS); an internet connection for passing and codes.
The source code is released under the MIT license and hosted on GitHub.
Version history edit
| Version | Date | Notes |
|---|---|---|
| 0.1.0 | 2026 | First public release: procedural pets, coin shop, audio, screen transitions, code redemption, and internet-relay passing. |
Planned for later versions: a food-picker when feeding, a dedicated evolution cutscene, rendering the remaining accessories and styles, and additional navigation sounds.[1]
See also edit
- Features — the full feature list
- Download — how to install and play
- Active codes — current redeemable codes
- NetPass — worldwide passing for the 3DS
References edit
- “PetPal” project README, PetPal Team, GitHub. Retrieved 2026.
- “Features”, Team PetPal.
- NetPass, community StreetPass relay for the Nintendo 3DS.
- devkitPro — toolchain and libraries (libctru, citro2d, citro3d).
External links edit
- Official website — teampetpal.com
- Source code and releases on GitHub
- 3ds.hacks.guide — how to mod a 3DS