Documentation Guide

Plugin Setup

How to install, activate, and configure AxLore — including ElevenLabs and Dropbox.

Initial Setup

Follow these steps to get AxLore running on your Paper/Spigot server.

1. Dashboard Installation

To ensure maximum security and compatibility, AxLore uses a Smart Installation system. We don't provide a generic file; instead, we generate a unique JAR for your account.

  1. Access axspace.us/dashboard.
  2. Log in and go to the Licenses section.
  3. Find your active AxLore license and click Download Plugin.
  4. Important: The system automatically "stamps" your license inside the .jar file. This ensures the plugin is uniquely compatible with your account and simplifies activation.
Pro Tip By downloading from the dashboard, you will always get the latest version compatible with your server, without needing constant manual updates.

2. Plug & Play Activation

Thanks to our "stamping" system, activation is fully automatic.

  • No Commands Needed: When you start your server for the first time, AxLore will detect the license embedded in the JAR.
  • Asynchronous Validation: The plugin communicates with our API in the background to validate your access without affecting server performance.
  • Silent Configuration: A .key file will be generated in the plugin folder to persist activation even if you change the JAR in the future.
Important Notice Do not share your downloaded JAR file with anyone. It includes a unique token linked to your license.

3. 🎙️ ElevenLabs API Key

AxLore uses ElevenLabs to generate high-fidelity AI voice narrations.

Step 1 — Create an ElevenLabs Account

  1. Go to elevenlabs.io and create a free account.
  2. The free tier includes a limited number of characters per month. For production servers, a paid plan is recommended.

Step 2 — Generate an API Key

  1. Log in and go to your Profile SettingsAPI Keys.
  2. Click Create API Key.
  3. Give it a name (e.g., AxLore Server) and copy the key.
Important Notice Required permissions: **Text to Speech** (`tts:stream`). Read access to **Voices** and **Models** is also recommended.

Step 3 — Find a Voice ID

  1. Go to the Voice Library in your ElevenLabs dashboard.
  2. Click on any voice and look at the URL — the long alphanumeric string at the end is the Voice ID.
  3. Example: https://elevenlabs.io/voice/IKne3meq5aSn9XLyUdCD → ID is IKne3meq5aSn9XLyUdCD

Step 4 — Add Credentials to AxLore

Open plugins/AxLore/credentials.yml on your server and fill in your key:

yaml
elevenlabs:
  api-key: "YOUR_ELEVENLABS_API_KEY"

Then open plugins/AxLore/config.yml and set your default voice:

yaml
elevenlabs:
  model: "eleven_v3"             # Best quality. Use "eleven_multilingual_v2" for faster generation.
  default-voice-id: "YOUR_VOICE_ID"
  voice-settings:
    stability: 0.50              # 0.0 = expressive, 1.0 = consistent
    similarity-boost: 0.75       # How closely it follows the original voice
    speed: 1.0                   # 0.7 (slow) to 1.2 (fast)

4. 🔵 Dropbox Setup (Cloud Hosting)

Dropbox is the recommended method to host the resource pack, since it works on all server types without requiring open ports.

Step 1 — Create a Dropbox App

  1. Go to dropbox.com/developers/apps.
  2. Click Create app.
  3. Select Scoped accessFull Dropbox.
  4. Give it a name (e.g., AxLoreServer) and click Create app.

Step 2 — Set Permissions

In your new app's settings, go to the Permissions tab and enable:

  • files.content.write
  • files.content.read
  • sharing.write

Click Submit to save.

Step 3 — Get Your App Key and Secret

Go to the Settings tab of your Dropbox app. You will see:

  • App key — Copy this value.
  • App secret — Click "Show" and copy this value.

Step 4 — Add to credentials.yml

Open plugins/AxLore/credentials.yml and fill in your keys:

yaml
dropbox:
  app-key: "YOUR_DROPBOX_APP_KEY"
  app-secret: "YOUR_DROPBOX_APP_SECRET"
[!WARNING] Do **not** manually fill in `refresh-token` or `access-token`. These are managed automatically by the plugin.

Step 5 — Authorize the Plugin

In-game (as an operator), run:

code
/axlore dropbox auth

Click the link that appears in chat. It will open a Dropbox authorization page in your browser. Accept the permissions. The plugin will automatically store the tokens and begin syncing.

Also make sure Dropbox is enabled in config.yml:

yaml
dropbox:
  enabled: true
  upload-path: "/axlore-pack.zip"

5. 🏠 Alternative: Internal Hosting

If you prefer not to use Dropbox, AxLore includes a built-in web server (NanoHTTPD).

yaml
dropbox:
  enabled: false

hosting:
  enabled: true
  port: 8085
  forced-host: "YOUR_SERVER_IP_OR_DOMAIN"  # e.g., "mc.myserver.com"
  force-pack: false
Pro Tip Make sure the port you choose is open in your firewall and/or forwarded in your panel (e.g., Pterodactyl).

6. 🛡️ Inexpugnable Security (Zero-Secret)

AxLore implements a Zero-Secret Architecture, a security standard designed to protect your investment and your server's integrity.

  • End-to-End Handshake: All communication between the plugin and our license server is encrypted and validated through a private protocol.
  • Integrity Protection: The JAR file is protected against unauthorized modifications. Any attempt to alter the core logic will result in an immediate deactivation for security.
  • No Private Keys on Disk: Unlike other plugins, your sensitive license information is never stored in plain text.

7. Requirements and Dependencies

To ensure AxLore works correctly, you must meet these requirements:

  • Paper or Spigot: Version 1.19.4 or newer.
  • ProtocolLib: (Required) Version compatible with your server.
  • Java 17+: AxLore is optimized for modern Minecraft versions.
  • WorldGuard (Optional): Needed if you want to use REGION triggers for your narrative scenes.
  • FFmpeg (Auto-managed): Used internally for audio conversion. The plugin will attempt to download a portable version if not found.

Pro Tip After completing setup, test everything with `/axlore play boss_defeated_epic`. If you hear the narrator, your system is operational!

Was this helpful?

Help us improve our documentation.(Anonymous & any language)