ExoLevels
ExoLevels is a lightweight and highly customizable leveling and quest system for Minecraft servers that rewards players with experience levels and challenges based on their actions
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
ExoLevels
🚀 ExoLevels
ExoLevels is a lightweight, modern, and highly customizable leveling + quest system built for performance-focused Minecraft servers. Reward players for their actions, keep them engaged with quests, and fully control progression with flexible configuration.
---
✨ Features
📊 Dynamic XP System
Reward players for almost any action: - Mining & block breaking - Killing mobs (including bosses) - Placing blocks - Exploring & traveling
---
🎯 Built-in Quest System
- Create custom quests with GUI support - Track player progress in real-time - Reward completion with XP
---
📈 Fully Customizable Leveling
- Define your own XP curve - Control level progression in `levels.yml` - Balance your server exactly how you want
---
🏗️ Decimal XP Support
Fine-tune rewards with precision: - Example: `0.5 XP` per block mined
---
🎵 Sound Customization
- Customize level-up sounds - Customize quest completion sounds - Or disable sounds completely
---
💾 Efficient Data Storage
- Uses SQLite for fast and reliable local storage
---
🔗 PlaceholderAPI Support
Easily integrate with scoreboards, chat, and tablists:
- `%exo_player_xp%` - `%exo_player_level%` - `%exo_xp_needed%`
---
🛠️ Commands & Permissions
| Command | Aliases | Description | Permission | |--------|--------|------------|-----------| | `/exolevels` | `el`, `exo`, `exolevel` | Main help command | None | | `/exolevels quests` | `q`, `/quests` | Open quests GUI | None | | `/exolevels level [player]` | `lvl`, `/level` | View level | None / `exolevels.admin` | | `/exolevels xp [player]` | `/xp` | View XP | None / `exolevels.admin` | | `/exolevels reload` | — | Reload configs | `exolevels.admin` | | `/exolevels xp <add|set|take> <player> <amount>` | — | Manage XP | `exolevels.admin` | | `/exolevels reset <player>` | — | Reset player data | `exolevels.admin` |
---
🧩 Placeholders
Use with PlaceholderAPI:
- `%exo_player_xp%` → Current XP - `%exo_player_level%` → Current level - `%exo_xp_needed%` → XP needed for next level
---
💻 Developer API
Integrate ExoLevels into your own plugins:
```java import org.notainamx.exolevels.ExoLevels; import org.notainamx.exolevels.manager.PlayerManager;
PlayerManager playerManager = ExoLevels.getInstance().getPlayerManager();
// Add XP playerManager.addXp(player, 50.5, "CustomSource");
// Get data PlayerData data = playerManager.getPlayerData(player.getUniqueId()); double xp = data.getXp(); int level = data.getLevel();