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

3

Quick challenge

How far can you run before the mobs catch you?

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();

ADS