Content generated with AI — it may contain mistakes.

Getting started

Installation

Downloading the plugin, how ExyliaLib installs itself, the database, the files the first start writes, and how updates arrive.

Downloading

ExyliaGraves is free. Every release is published on Modrinth as ExyliaGraves-<version>.jar.

Before you start

PluginWhat for
ExyliaLibRequired. Configuration, menus, database, Redis, holograms, rewards, notices, logs and teleports.
PlaceholderAPIOptional. Exposes the grave placeholders to other plugins.
ExyliaEconomy or VaultOptional. Only needed when the teleport from /graves has a cost; it is charged in ExyliaLib's default currency.
ExyliaLib is listed as soft, and installs itself

plugin.yml names ExyliaLib under softdepend on purpose, so the plugin can still start without it. When ExyliaLib is missing, ExyliaGraves downloads the latest release from the library's GitHub releases into plugins/ExyliaLib.jar (falling back to the release it was built against), says so in the console, and stays disabled until you restart. When an ExyliaLib jar is already in plugins/ but failed to load, nothing is downloaded: the console asks you to fix the library's own errors first.

ExyliaGraves does not need packetevents itself. ExyliaLib does: install it next to the library as the library's installation page explains.

Installing

Drop in the jar

Copy ExyliaGraves.jar into plugins/.

Start the server

Without ExyliaLib, the first start downloads it and asks for a restart. Restart once.

Check the console

A moment after the server finishes starting, the graves standing on this server are read and the console says Loaded N grave(s). Until then no grave is drawn.

Die once

Generated files

All of them live in plugins/ExyliaGraves/.

FileContents
config.ymlLanguage, how long graves last, protection, limits, what goes in, collecting, teleport, hologram and respawn. See Configuration.
lang/<code>/messages.ymlEvery line the plugin sends, the hologram lines and the click hints of the menus.
lang/<code>/menus/user/graves.ymlThe players' /graves screen. Yours to restyle.
lang/<code>/menus/admin/graves.ymlThe staff screen of /gravesadmin list. Rewritten from the jar.
database.ymlDatabase engine and Redis, written by ExyliaLib. H2 by default.

<code> is the language the plugin runs in: en, es, pt, fr, ru or tr, or ExyliaLib's own language while config.yml says default.

menus/admin/ is rewritten

The staff screen is replaced from the jar every time the plugin starts and every time its menus are reloaded. Copy it under another name if you want to keep a restyle. The players' screen under menus/user/ keeps your edits; a release that has to change its layout raises its menu-version, and then the file is replaced with your previous one kept next to it.

Database

By default the plugin uses H2: a file inside the plugin folder, with no server and no maintenance. It is fine for a single server.

Graves live in one table, sc_graves. To see a player's graves from every server, every server points at the same database:

plugins/ExyliaGraves/database.yml
database:
  type: mysql
  mysql:
    host: 127.0.0.1
    port: 3306
    database: minecraft
    username: root
    password: ""
  redis:
    enabled: true
    host: 127.0.0.1
    server-id: survival-1

Supported engines: h2, mysql, mariadb, postgresql and mongodb. The file is ExyliaLib's; its full reference is in the library's database page. What a network needs on top of that — a distinct server-id per server above all — is on Network.

Nothing waits on the database while the plugin enables: the graves are read on the first tick, and every write is asynchronous.

Updating

ExyliaLib keeps ExyliaGraves up to date. The plugin names its GitHub repository in plugin.yml (exylia-updates: Exylia-Plugins/ExyliaGraves) and the oldest library it runs on (exylia-lib); ExyliaLib downloads a newer release in the background and applies it on the next restart.

  • A new major version is announced and left to you.
  • A release that needs a newer ExyliaLib waits until the library has updated.
  • plugin-updates in plugins/ExyliaLib/config.yml turns it off or tunes it; /exylialib updates shows what is pending.

To update by hand, replace the jar and restart. config.yml, messages.yml and the players' menu keep your edits; menus/admin/ is refreshed from the jar; the graves live in the database and are untouched.

Something missing on this page? Tell us on Discord