JoinBook by nis

JoinBook by nis

JoinBook is a lightweight, beautiful, highly configurable player-onboarding plugin for Paper servers.

3 downloads

JoinBook

Make your Minecraft server's first 60 seconds unforgettable.

JoinBook is a lightweight, beautiful, highly configurable player-onboarding plugin for Paper servers. When a player joins for the first time, JoinBook replaces the usual wall of chat text with a short welcome, an optional title/sound, and a polished interactive menu covering rules, getting-started tips, Discord, and live server info.

No database, no external web service, no PlaceholderAPI dependency — it works immediately after installation with sensible defaults.

Features

  • First-join detection with a configurable welcome message, sound, and title
  • A clean, configurable 27-slot (or larger) GUI with gradient MiniMessage styling
  • Modular pages: Welcome, Rules, Getting Started, Discord, Server Info
  • Fully configurable buttons — material, slot, name, lore, sound, enabled state
  • Live server info (online/max players, uptime, world, version) computed on demand, no repeating tasks
  • Optional "returning player" welcome-back message
  • UUID-based onboarding persistence (data.yml) that degrades gracefully if corrupted
  • /joinbook reload for safe, zero-downtime config reloads
  • /joinbook reset <player> for admins/testers
  • Internal placeholder system (%player%, %server%, %online%, %max_players%, %version%, %uptime%) — no PlaceholderAPI required
  • Every player-facing string lives in messages.yml

Requirements

  • Paper (or a Paper fork) for Minecraft 1.21.x
  • Java 21

Installation

  1. Download JoinBook-1.0.0.jar
  2. Drop it into your server's plugins/ folder.
  3. Restart the server.
  4. config.yml, messages.yml, and data.yml are generated automatically in plugins/JoinBook/.

No further setup is required — the plugin works out of the box.

Configuration

Edit plugins/JoinBook/config.yml (formatting via MiniMessage):

first-join:
  enabled: true
  open-gui: true
  delay-ticks: 20

gui:
  title: "<gradient:#ff8acb:#b98cff><bold>JoinBook</bold></gradient>"
  rows: 3
  buttons:
    rules:
      enabled: true
      slot: 10
      material: BOOK
      name: "<yellow><bold>Rules"
      lore:
        - "<gray>Read the server rules."
        - ""
        - "<green>Click to open"

After editing, run /joinbook reload — no restart needed. All player-facing text lives separately in messages.yml.

Commands

Command Aliases Description
/joinbook /jb Opens your JoinBook (same as /joinbook open)
/joinbook open Opens the JoinBook menu
/joinbook reload Reloads config.yml and messages.yml
/joinbook help Shows command help
/joinbook version Shows plugin/server version info
/joinbook reset <player> Resets a player's onboarding state

Permissions

Permission Default Description
joinbook.use true Open and use the JoinBook menu
joinbook.admin op Grants all administrative permissions below
joinbook.reload op Reload configuration
joinbook.reset op Reset a player's onboarding state