Mod
Project MMO: Pufferfish Skills Compat
No reviews yet
Adds a customizable compatibility bridge between Project MMO and Pufferfish Skills. Gaining levels in different Project MMO skills will give you Pufferfish skill points to any configured skill trees.
Includes quality of life improvements and small tweaks to enhance and customize gameplay.
Neoforge is a fork of the Minecraft Forge available for versions 1.20.1+ of Minecraft. Many Forge mods are compatible with Neoforge and vice versa.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
PMMO Pufferfish Compat turns Project MMO skill levels into spendable points in Pufferfish Skills trees. Mine some stone → level up Mining in PMMO → unlock nodes in whatever Mining tree your modpack ships. It's the cable between PMMO's progression loop and Pufferfish's skill-tree UI — a pure bridge, configured entirely through datapack JSON.
Features
Datapack-configurable skill mapping
Author one JSON file per PMMO skill in data/<your_pack>/pmmo_pufferfish_compat/skill_map/:
{
"pmmo_skill": "mining",
"awards": [
{
"skill_category": "your_pack:mining_tree",
"skill_points": 1,
"every_x_pmmo_levels": 1,
"starting_pmmo_level": 1,
"max_skill_points": 50,
"reconcile": "additive"
}
]
}
Each award targets one Pufferfish category. A single PMMO skill can feed many categories — point the awards array at as many trees as you want, each with its own rate, threshold, and cap. Multiple files for the same PMMO skill merge cleanly.
Tunable progression per award
| Field | Default | Meaning |
|---|---|---|
skill_points |
1 | Points awarded per milestone |
every_x_pmmo_levels |
1 | PMMO levels between milestones |
starting_pmmo_level |
1 | Don't grant anything below this level |
max_skill_points |
unbounded | Stop awarding after this total |
reconcile |
additive | What to do when expected and granted drift |
Worked example: every_x_pmmo_levels: 3, starting_pmmo_level: 5, skill_points: 2 means "starting at PMMO level 5, grant 2 points; another 2 at level 8, 11, 14, and so on."
Four reconcile modes
The genuinely interesting design choice. Configs drift over time — you tweak a rate, a player's points have been spent, PMMO loses levels on death. Each award picks how the bridge handles it:
additive(default) — top up missing points, never claw back. Safest. Players keep what they have when you lower a rate.trim_unspent— top up, and claw back unspent points if the new expected is lower. Won't refund nodes already bought.strict— enforce exact alignment. If expected drops below granted, the player gets a clean respec: every node in that category refunds, and the total drops to the new expected.none— only react to live level-ups, never audit. Useful when other sources feed the same category and you want this bridge to stay out of the way.
Sync at the right moments
The bridge applies the formula at three well-defined moments — never as a constant background process:
- On level change — when a player's PMMO skill levels up (or down), the delta is granted live. Hot path: zero Pufferfish reads, just a write.
- On player join — one tick after login, every mapping is audited against the player's current PMMO levels. Catches drift from new mappings added while they were offline.
- On
/reload— every online player is re-audited. Edit a mapping,/reload, the change applies to everyone instantly.
For when those aren't enough, /pmmopufferfish resync is the admin escape hatch.
Per-source attribution
Pufferfish tracks point grants per source. This bridge uses stable per-skill source IDs (pmmo_pufferfish_compat:pmmo/<skill>), which means:
- This mod, FTB Quests, an admin's
/puffish_skillscommand, and a future skill_tree-style content pack can all feed the same category without stepping on each other. - Changing a mapping's rate doesn't orphan old grants — the source ID is stable, only the expected total moves.
- Strict-mode respec refunds the nodes the player chose, not their entire point balance.
Performance-aware
The XpEvent listener is the hot path on any active server. It's been built around that:
- Source-id strings interned at config load, never rebuilt per event.
- No
Streamchains, no lambda allocation, no boxing on the event path. - No Pufferfish read-back for live grants — only the audit moments (login /
/reload) do that work. - Mappings indexed in primitive-style arrays keyed by PMMO skill name.
Setup
You need two pieces in your datapack:
- A Pufferfish category (either authored yourself or shipped by another mod):
data/<pack>/puffish_skills/config.json # lists category names data/<pack>/puffish_skills/categories/<name>/ # category.json, skills.json, etc. - A bridge mapping per PMMO skill you want to wire:
data/<pack>/pmmo_pufferfish_compat/skill_map/<file>.json
Drop a /reload and you're live.
Commands
/pmmopufferfish resync — resync the executing player (op-only)
/pmmopufferfish resync <player> — resync one player
/pmmopufferfish resync @a — resync everyone online
All variants require permission level 2 (op / cheats enabled).
Why this mod?
PMMO already has a polished skill-up loop — break blocks, kill mobs, brew potions, all of it. Pufferfish Skills already has a polished tree UI with rewards, prerequisites, and per-category point pools. Both are mature mods that hit their slot well.
What was missing was the cable between them. An opinion-free, performance-aware, datapack-configurable cable that lets a modpack author say "1 point in Mining for every level in PMMO Mining, capped at 50, additive reconcile" in one JSON file and have it work — including drift correction, multi-source coexistence, and live config edits.
This mod is that cable.
It was inspired by daedalus_dev's skill_tree, which uses Pufferfish Skills the same way but with its own custom progression system. PMMO can fit that slot just as well with a small adapter, and I wanted that adapter.
Compatibility
- Pufferfish Skills
0.17.3+(required) - Project MMO
2.7.35+(required) - Coexists with
skill_tree, FTB Quests, admin point grants, and any other source feeding the same Pufferfish categories. - NeoForge 1.21.1.
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers