promotional bannermobile promotional banner

Arcadia Pets

Collect pets, level their skills, fuse them up, and duel other players. Summon them to walk beside you or ride on your shoulder !

File Details

arcadia-pets-1.2.10

  • R
  • Apr 30, 2026
  • 545.73 KB
  • 36
  • 1.21.1
  • NeoForge

File Name

arcadia-pets-1.2.10.jar

Supported Versions

  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:arcadia-pets-1493098:8014935"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

## [1.2.10] - 2026-04-30 (latest)

### Added

- **17 Mythic staff pets** — Implemented staff member pets as the MYTHIC tier with real Mojang player skins. Founder (Vyrriox), 3 Admins (JLPopeye, YoupaX, Skaizenn), 3 Developers (SiriusT, Not_Found, Netorse), 4 Moderators (The_Fricadelle, Tyvrax, Gaspich, FuFu8822), 1 Animator (Yoto0771), 2 Guides (NokhXyr, Beuzed), 3 Helpers (Sea6945, Rayser56, Nathinator_YTB). Each pet has a role-themed signature skill. Staff pet entities live in `arcadia-prestige` (≥ 1.2.11).
- **6 themed mythic-tier signature skills** — `Twerk` (Fricadelle, knockback aura on hit), `Chatterbox`/`Parle Beaucoup` (Beuzed, Slow + Weakness on attack), `Double Tap`/`Tac Tac` (Vyrriox, instant follow-up hit chance), `Investigate`/`Enquête` (Nathinator, ore-mining bonus drops), `Hotfix` (Netorse, dev-themed emergency heal at low HP), `FuFu Combo` (FuFu, Strength buff doubled when Fricadelle is in your collection).
- **2nd signature skill system + Nathinator's "Join the Discord"** — New `linkSecondary()` mapping in `PetSkills` lets specific species carry two deterministic skills at level 1. Nathinator now has both `Investigate` and `Join the Discord` (tilts the entire enemy team in duels: STUN + FATIGUE; passive overworld chat-tilt aura).
- **Skill XP bar in pet panel** — 3px progress strip below each skill row, slate-blue background visible at 0 XP, blue fill toward next level, gold at level 10 max.
- **Skill effect & XP details** — Expanded skill panel shows the current effect value (e.g. `Effect: 25%`) and XP progress (`XP: 25 / 100`).
- **Duel betting system** — `/arcadia_pets duel <player> <bet>` — wagers coins through `EconomyService`. Both stakes are deducted on accept and the winner gets 2× payout.
- **Duel sound design** — Contextual sounds: critical strikes, poison/burn, heals, dodges, reflects, stuns, KOs, turn changes, victory/defeat fanfares.
- **Effect counters in duel UI** — Pet cards show effect value + remaining turns (e.g. `đŸ”¥ Burn 4dmg 3t`).
- **/arcadia_pets elo command** — `/arcadia_pets elo` for self, `/arcadia_pets elo <player>` to inspect, `/arcadia_pets elo top` for the top-10 leaderboard in chat.
- **Duel commands moved under `/arcadia_pets duel`** — `/duel ...` is kept as a redirect alias for backward compatibility.

### Fixed

- **Mythic pets unlootable from bags** — `PetRarity.rollRarity()` had a hardcoded `&& r != MYTHIC` filter. Removed; MYTHIC weight set to 1 (extremely rare: ~0.01% common bag, ~1% legendary fusion bag).
- **Mythic staff pets missing from bestiary** — Hardcoded fallback list of all 17 staff IDs in `PetPoolConfig.getPool(MYTHIC)` so they always appear regardless of stale config files.
- **Server crash NPE in pet validator** — `PetManager.validateActivePetItems` iterated `ServerLevel.getAllEntities()` and dereferenced potentially-null entities. Added defensive null check.
- **Bestiary back button overlapped duel description** — Detail panel height increased from 256 to 290px; duel description Y position computed dynamically from the actual companion-line count.
- **Skill names not translated in English** — `Parle Beaucoup`/`Tac Tac`/`Enquête`/`Combo FuFu` were hardcoded French in `en_us.json`. Now properly translated to `Chatterbox`/`Double Tap`/`Investigate`/`FuFu Combo`.
- **Staff pet display name** — Pets showed as "Staff fricadelle" / "Staff nokhxyr" (auto-formatted ID). Now display the real Mojang pseudo via `com.arcadia.pets.util.StaffPetNames`. Applied in bestiary list, bestiary detail, pet panel, and duel UI.
- **Sniffer pet dupe (definitive fix)** — Two-layer protection: brain memory cleared every 10 ticks (was 600) and drop-cancel radius tightened from 1.5 → 0.6 blocks with no allowlist exception.
- **Ancient Sense skill arbitrary-block dupe** — Sniffer's signature skill called `block.asItem()` and dropped a copy. On modded/datapack servers this duped non-itemizable blocks (Monster Spawner, Command Block). Skill is now a no-op while remaining registered for the bestiary.
- **Duel decline bug** — Mouse click listener (`InputEvent.MouseButton.Pre`) now properly dismisses the invite overlay; challenger no longer stuck.
- **Duel invite overlay positioning** — Centered on screen (top third) with steampunk theme instead of hidden under the minimap.
- **HP text positioning** — `15/15` now renders centered inside the HP bar at 0.5 scale with shadow.
- **Text overflow in duel boxes** — Effect labels scaled to 0.65x with pixel-width truncation; pet names truncated by pixel width instead of fixed character count.
- **Drain skills heal caster** — Soul Drain and Wither Aura now properly heal the casting pet (life steal mechanic).
- **Carousel navigation** — Dashboard arrows now cycle through LootBox and Admin Panel via server actions.
- **Daily Streak translation** — Translated to French (`Série :`).
- **Hostile pets despawn in Peaceful difficulty** — Hooked `MobDespawnEvent` and DENYs any despawn for entities flagged with `arcadia_pet`. All hostile pets are now peaceful-friendly.

### Changed

- **Duel rewards — ELO only** — Removed Star Essence, coins, and participation XP. Only ELO updates remain (rating shown in victory/defeat messages).
- **Centered duel UI** — Team panels symmetrically centered around the screen midpoint.

### Performance

- **Pet follow tick — 700µs → ~5µs/pet** — Iterated through multiple optimization rounds before converging on the right approach:
  1. **`setNoAi(true)` on FOLLOW pets** — vanilla `Mob.serverAiStep()` is `final` (sensing, goalSelector, navigation, moveControl, lookControl, jumpControl) and costs 200-300µs/tick regardless of contents. Disabling AI skips the entire chain.
  2. **Manual movement via `zza` + `yRot` + `setSpeed`** — `LivingEntity.aiStep()` still runs `travel(new Vec3(xxa, yya, zza))` even with `noAi=true`. Setting `yRot` toward owner + `zza=1.0` + `setSpeed(MOVEMENT_SPEED)` makes vanilla `travel()` walk the entity naturally without any AI overhead.
  3. **Aggressive teleport at 24 blocks + stuck detection** — Long-distance pathfinding was the major remaining cost; teleport beats spending 5-10ms on a 30-block A* search that often fails. Stuck pets (no movement >0.4 blocks in 1s, accumulated >3s) teleport to owner.
  4. **Auto-jump via `setJumping(true)`** — Read directly by `LivingEntity.aiStep()` regardless of AI state, replaces vanilla jumpControl.
- **Final cost: ~5-10µs per following pet** in the custom tick handler, plus the ~30-50µs unavoidable cost of `Entity.tick()` and `LivingEntity.aiStep()` physics. Total: ~40-60µs/pet/tick (vs 700µs+ originally).

### Ajouts

- **17 pets staff Mythic** avec skins Mojang réels — Fondateur, 3 Admins, 3 Développeurs, 4 Modérateurs, 1 Animateur, 2 Guides, 3 Helpers. Chaque pet a une compétence signature thématique.
- **6 compétences signature mythic** — `Twerk`, `Parle Beaucoup`, `Tac Tac`, `Enquête`, `Hotfix`, `Combo FuFu`.
- **Système 2e compétence + "Rejoins le Discord"** pour Nathinator (tilt l'équipe adverse en duel : STUN + FATIGUE).
- **Barre XP de compétence** dans le panneau du pet (3px, fond bleu ardoise, dorée au niveau MAX).
- **Détails effet & XP** dans le panneau étendu (`Effet : ...`, `XP : 25 / 100`).
- **Système de mise pour duels** — `/arcadia_pets duel <joueur> <montant>` via `EconomyService`. Vainqueur reçoit 2×.
- **Sound design des duels** — sons contextuels.
- **Compteurs d'effets en duel** — valeur + tours restants.
- **Commande `/arcadia_pets elo`** — `/elo`, `/elo <joueur>`, `/elo top`.
- **Commandes de duel** déplacées sous `/arcadia_pets duel ...` (alias `/duel` conservé).

### Correctifs

- **Pets mythic non-lootables** — Filtre `&& r != MYTHIC` retiré ; poids abaissé à 1 (~0.01% sac commun, ~1% sac de fusion légendaire).
- **Pets staff absents du bestiary** — Fallback hardcodé des 17 IDs.
- **Crash serveur NPE dans le validator** — null-check défensif sur `getAllEntities()`.
- **Superposition du bouton Retour dans le bestiary** — hauteur du panneau augmentée + Y dynamique.
- **Noms de compétences non-traduits en EN** — Chatterbox/Double Tap/Investigate/FuFu Combo.
- **Affichage des pets staff** — Pseudo Mojang réel au lieu de "Staff fricadelle".
- **Dupe sniffer (correction définitive)** — Suppression du brain toutes les 10 ticks + rayon serré sans allowlist.
- **Dupe via Ancient Sense** — Compétence désactivée (no-op) — `block.asItem()` dupait des blocs non-récupérables (Monster Spawner).
- **Bug refus de duel** — Listener de clic + dismiss overlay.
- **Notification duel** — Centrée à l'écran.
- **Texte PV centré dans la barre.**
- **Texte qui dépasse en duel** — Effects 0.65x, troncature pixel.
- **Skills de drain** — Soul Drain + Wither Aura soignent le caster.
- **Navigation carrousel** — Inclut LootBox + Admin Panel.
- **Traduction Daily Streak** — `Série :`.
- **Pets hostiles en Peaceful** — `MobDespawnEvent` DENY pour `arcadia_pet`.

### Modifications

- **Récompenses de duel — ELO uniquement.**
- **UI duel centrée.**

### Performance (FR)

- **Tick de suivi des pets — 700µs → ~5µs/pet** — Plusieurs itérations avant la solution finale :
  1. **`setNoAi(true)`** — `Mob.serverAiStep()` est `final` et coûte 200-300µs même vide. Désactiver l'AI court-circuite toute la chaîne.
  2. **Mouvement manuel via `zza` + `yRot` + `setSpeed`** — `LivingEntity.aiStep()` continue d'appeler `travel()` même en `noAi=true`. On définit l'orientation + l'input forward + la vitesse, vanilla `travel()` fait le reste.
  3. **Téléport agressif à 24 blocs + détection de blocage** — Le pathfinding longue distance était le coût restant ; téléport plutôt que A* à 5-10ms qui échoue.
  4. **Auto-jump via `setJumping(true)`** — Lu directement par `LivingEntity.aiStep` quel que soit l'état AI.
- **Coût final : ~5-10µs par pet en suivi** dans le handler custom + ~30-50µs inévitables (physique vanilla). Total : ~40-60µs/pet/tick (depuis 700µs).