Skip to main content

Guides

 πŸ“˜ LockedQuests Plugin Guide

LockedQuests is a powerful and flexible Minecraft quest system that allows players to complete tasks and earn rewards. Perfect for survival, RPG, or progression-based servers.

---

 πŸ“¦ Installation

1. Download the `.jar` file and place it in your server's `plugins` folder.
2. Make sure **Vault** and an economy plugin (e.g., EssentialsX) are installed.
3. Start or restart your server.
4. Edit the `config.yml` to customize quests and settings.

---

 βš™οΈ Configuration (`config.yml`)

 Key Sections:

- **`afk-timeout-seconds:`**
  Set how long (in seconds) before a player is marked as AFK (default: `300`).

- **`quest entries:`**
  Add and configure quests here. Each quest includes:
  - `name:` Display name of the quest.
  - `type:` One of many types like `BLOCK_BREAK`, `CRAFT_ITEM`, etc.
  - `target:` What to act on (e.g., `STONE`, `DIAMOND_SWORD`, `ANY`).
  - `amount:` Amount required to complete the quest.
  - `reward:` Command to run on completion (e.g., `eco give %player% 100`).
  - `reward-message:` Message sent on completion (supports `%player%`, `%amount%`, `%key%`).
  - **Optional:**
    - `repeatable:` `true/false`
    - `cooldown-seconds:` Cooldown before quest can be repeated
    - `requires:` ID of another quest required to unlock
    - `targets:` (List) For quests like `CRAFT_ITEM`
    - `profession:` (For `VILLAGER_TRADE`)
    - `price-max:` Max allowed trade cost
    - `unique-villagers:` `true/false`
    - `distinct-professions:` `true/false`

---

 πŸ§‘ Player Commands

| Command | Permission | Description |
|--------|------------|-------------|
| `/quests` | `lockedquests.command.quests` | Opens the quest GUI to view progress and claim rewards. |
| `/uuid <player>` | `lockedquests.command.uuid` | View the UUID of a player (for admin use/debug). |

---

 πŸ› οΈ Admin Commands

| Command | Permission | Description |
|---------|------------|-------------|
| `/questsadmin reload` | `lockedquests.admin` | Reloads the plugin configuration and quests. |
| `/questsadmin reset <player/uuid> <questId>` | `lockedquests.admin` | Resets a player's progress for a specific quest. |
| `/questsadmin set <player/uuid> <questId> <value>` | `lockedquests.admin` | Manually set a player's quest progress. |
| `/questsadmin resetall <player/uuid>` | `lockedquests.admin` | Resets all quests for the specified player. |

> βœ… UUIDs and player names are both supported for admin commands.

---

 βœ… Supported Quest Types

| Type | Description |
|------|-------------|
| `BLOCK_BREAK` | Break a specific block. |
| `BLOCK_PLACE` | Place specific blocks. |
| `KILL_ENTITY` | Kill any or specific mobs. |
| `KILL_PLAYER` | PvP kills. |
| `PLAYTIME` | Time spent online (in minutes). |
| `CHAT` | Send messages (or say specific words). |
| `CRAFT_ITEM` | Craft specific items (respects output slot use). |
| `SMELT_ITEM` | Smelt items using furnaces. |
| `BREW_POTION` | Brew potions (auto-detects results). |
| `FISH` | Catch fish (validates actual catches). |
| `VILLAGER_TRADE` | Trade with villagers (filter by profession/item/price). |

---

 πŸ“Š GUI Features

- **Quest progress** shown as percentage bars.
- **AFK Status** indicator updates live.
- **Claimable Quests** glow when complete.
- **"Redeem All"** button to claim all rewards in one click.
- **Sound effect** plays when GUI is opened.

---

 πŸ” Permissions Summary

| Permission | Default | Description |
|------------|---------|-------------|
| `lockedquests.command.quests` | true | Allows player to use `/quests`. |
| `lockedquests.command.uuid` | op | Allows use of `/uuid <player>`. |
| `lockedquests.admin` | op | Full admin control (`/questsadmin` commands). |

---

 πŸ“ Notes

- Quest progress is saved per-player and persists through restarts.
- The plugin supports cooldowns and repeatable quests.
- You can easily create quest chains using the `requires:` field.
- Designed to be lightweight and compatible with most server setups.


# Sprout β€” Admin Setup Guide

*A lightweight utility pack for survival/semivanilla servers. This guide shows how to install, configure, and run Sprout features like VeinMiner and Graves. All examples use Paper 1.20.x, LuckPerms, and (optionally) PlaceholderAPI.*

---

## πŸ”§ Installation

1. **Drop the jar**
   - Put `sprout-<version>.jar` into `/plugins/`.
2. **Start the server once**
   - Sprout will generate `/plugins/Sprout/config.yml` and data files.
3. **(Optional) Hook-ins**
   - **LuckPerms** for permissions.
   - **PlaceholderAPI** if you want scoreboard/menu placeholders.
4. **Reload/Restart**
   - Use `/sprout reload` after editing config files.

---

## πŸ“¦ File Layout

```
plugins/
└─ Sprout/
   β”œβ”€ config.yml                    # Global settings (see below)
   β”œβ”€ veinminer-players.yml         # Per-player VeinMiner toggles/mode/depth + debug list
   └─ logs/                         # Your standard server logs show Sprout debug/info
```

> **Persistence:** Player VeinMiner state (enabled/disabled, mode, depth, and debug on/off) is stored in **`veinminer-players.yml`** and survives restarts. If this file is deleted, defaults are used until players change settings again.

---

## πŸ›‘οΈ Permissions (LuckPerms)

Grant these to the groups that need them:

```bash
# Core
lp group default permission set sprout.veinmine.use true       # allow using VeinMiner
lp group default permission set sprout.veinmine.toggle true    # allow /vm toggle
lp group default permission set sprout.veinmine.command true   # general /vm access
lp group admin   permission set sprout.veinmine.debug true     # allow /vm debug
lp group admin   permission set sprout.admin true              # Sprout admin (reload)
lp group admin   permission set sprout.graves.admin true       # graves admin tools
```

> If you run a very locked-down server, also give players the specific tools they can use (see `veinminer.tools.restrict` below).

---

## βš™οΈ `config.yml` (key options)

```yml
veinminer:
  enabled: true              # master switch for the feature
  applyPhysics: true
  extrasPerTickBase: 80      # performance budget; scaled per-tick
  batchXp: true              # combine XP orbs
  debug: false               # also toggle per-player with /vm debug

  maxBlocks: 64
  requireSneak: true
  requirePermission: true
  damageToolPerExtra: true
  respectOtherCancels: true  # honor other plugins' BlockBreakEvent cancels
  dropAtPlayerFront: false

  tools:
    restrict: false          # if true, only allow tools below
    allow:
      - DIAMOND_PICKAXE
      - NETHERITE_AXE
      # ...

  include:                   # what blocks/groups can be vein-mined
    - "#LOGS"
    - "#ORES"
    - "#CROPS"
    - "#COLUMNS"
  exclude: []                # black-list materials/tags here

  hunger:
    enabled: true
    perBlock: 0.05           # food points per block (1.0 = one drumstick)
    mode: EXHAUSTION         # EXHAUSTION | FOOD_LEVEL
    minFoodToUse: 0
    message:
      tooHungry: "&cYou're too hungry to veinmine."

  search:
    mode: CONNECTED          # CONNECTED | RADIUS (for non-shape mode)
    diagonals: true
    radius: 5

graves:
  enabled: true              # Graves feature master switch (if included in your build)
  # (your graves-specific settings live in this section if present)

message:
  toggleOn:  "&aVeinMiner enabled."
  toggleOff: "&7VeinMiner disabled."
```

**Notes**
- `include`/`exclude` accepts material names or category tags like `#LOGS`, `#ORES`, `#LEAVES`, etc.
- `hunger.mode = FOOD_LEVEL` subtracts whole food points smoothly and keeps fractional cost across uses.
- Per-player **mode** and **depth** are stored in `veinminer-players.yml` and persist across restarts.

---

## 🧰 Commands

### Core
```
/sprout reload              # reloads Sprout config
```

### VeinMiner
```
/vm                        # toggle on/off (per player)
/vm toggle                 # alias
/vm mode                   # show current mode + depth
/vm mode <2x2|3x3|4x4|layer|connected|radius> [depth]
/vm debug                  # (admin) toggles rich debug for *you* + logs
```
- **Depth** works as β€œforward layers” from the block face you broke.
- **Odd sizes** (3x3) are perfectly centered. **Even sizes** (2x2, 4x4) are visually centered against the broken face.

### Graves (Admin)
> Only if the Graves module is present in your build.
```
/grave tp <player> [index]  # teleport to a player's grave; if multiple, pick the index
/grave list <player>        # show indexed graves for that player
/grave purgeempty           # remove empty/invalid graves (safe operation)
/grave purge all            # hard purge (be careful)
```

---

## πŸ”Ž VeinMiner Modes (quick reference)

- **connected** – classic flood-fill vein mining (can include diagonals).
- **radius** – grabs closest blocks of the same type inside a cubic radius.
- **2x2 / 3x3 / 4x4** – breaks a prism aligned to the **face you actually mined**.
  - Depth = number of layers forward from the hit face.
  - Only blocks of the **same type** as the origin are included.
- **layer** – contiguous region on the same Y level as the origin block.

---

## πŸ§ͺ Debugging VeinMiner

Enable per-player debug to see exactly which coordinates are tried/accepted:

```
/vm debug
```
Debug messages show:
- Face and axes chosen for your hit (`f`, `u`, `v`)
- Every attempted coordinate with ACCEPT/skip + material
- What actually breaks and drops
- Final hunger cost calculation

Disable it with `/vm debug` again.

> There is also a **global** toggle via `veinminer.debug: true` in `config.yml`.

---

## πŸ‘€ Player Experience & Tips

- Players can keep VeinMiner **enabled** but require **sneak** to trigger (configurable).
- If a tool breaks too quickly, either raise durability or set `damageToolPerExtra: false`.
- Use `dropAtPlayerFront: true` to funnel all extra drops to a clean spot in front of the player.

---

## 🧽 Maintenance

- Back up `veinminer-players.yml` if you care about modes/toggles persisting.
- If something seems off after a config change: `/sprout reload` and test with `/vm debug`.
- Conflicts: If another plugin cancels block break events, set `respectOtherCancels: false` (not recommended), or whitelist Sprout in that plugin.

---

## ❓ FAQ

**Q: My 3x3x3 sometimes becomes 3x3x1.**  
A: Shape depth is taken **forward from the face you hit**. If you mine the top/bottom face, your forward axis is up/down; mine a side face for forward = north/south/east/west. Debug shows the chosen face.

**Q: Do players keep their mode/depth across restarts?**  
A: Yes. It’s saved in `veinminer-players.yml`.

**Q: I don’t want logs/leaves in connected mode.**  
A: Add a tag or material to `exclude:` or remove the tag from `include:` and reload.

**Q: Can I restrict VeinMiner to specific tools?**  
A: Set `veinminer.tools.restrict: true` and list allowed tool materials under `allow:`.

---

### Changelog Hints (for admins writing patch notes)
- βœ… Added: `/vm debug` per-player toggle; also persists in `veinminer-players.yml`.
- βœ… Shape mining now uses **hit face** + integer axes for consistent 2x2/3x3/4x4 prisms.
- βœ… Player mode/depth/toggle **persist across restarts**.
- βœ… Rich debug messages for attempts, accepts, drops, and hunger math.