Skip to content

Repository files navigation

Medieval Roleplay Engine

Description

Medieval Roleplay Engine is a Minecraft plugin for players to use to roleplay more effectively. It currently supports Character Cards, Birds, Emotes, Dice, and different types of chats including local, global, whisper, yell, and local out-of-character.

Supported Minecraft Versions

This plugin is supported on the Minecraft versions listed in minecraft-versions.json: currently 1.19.4, 1.21.11, 26.2 and 26.3 (Spigot and its forks). Every stable release is booted on a real server of each of these versions before it is published, and every build checks that the plugin only uses Bukkit API that exists on all of them. Other versions from 1.19.4 onwards are expected to work but are not tested. To support another version, add it to the file: both checks pick it up.

Installation

First Time Installation

  1. Download the plugin from SpigotMC.
  2. Place the jar in the plugins folder of your server.
  3. Restart your server.

Optional Integrations

Works Well With

Medieval Roleplay Engine is the centre of the medieval roleplay set of Dan's Plugins. These plugins suit the same kind of server and run side by side; none of them is required. Medieval Factions and Mailboxes are declared as soft dependencies in plugin.yml, which only makes this plugin load after them: Medieval Roleplay Engine does not call into either one.

  • Medieval Factions (SpigotMC, /dpm get medievalfactions): nation-like factions with land claims, diplomacy and laws. Medieval Factions is the companion factions plugin; its add-ons are listed in its Expansions section.
  • Mailboxes (SpigotMC, /dpm get mailboxes): persistent mail between players, with item attachments.
  • Medieval Economy (SpigotMC, /dpm get medievaleconomy): a coinpurse and a physical currency item.
  • PlayerLore (SpigotMC, /dpm get playerlore): players write their own lore onto their items.
  • Medieval Cookery (no SpigotMC page, no stable release yet): cooking recipes for custom foods, defined by the server owner.
  • Conquest Recipes (SpigotMC, /dpm get conquestrecipes): recipes for historical weapons, armour and shields named to match the Conquest resource pack.

For a survival server, the survival flavour set goes well alongside: Food Spoilage, Wild Pets, SimpleSkills.

Every plugin above is listed on dansplugins.com. Medieval Roleplay Engine is listed at dansplugins.com/resources/medieval-roleplay-engine and can be installed in game with Dan's Plugin Manager: /dpm get medievalroleplayengine.

Usage

Documentation

Wiki & Additional Resources

Support

You can find the support Discord server here.

Experiencing a bug?

Please fill out a bug report here.

Contributing

Testing

Run the automated test suite with mvn test. It covers the plugin.yml contract — permission nodes, command registration, the rp.card.* parent, and the USER_GUIDE.md permission table — and runs as part of mvn package in CI. See CONTRIBUTING.md for what it checks. For manual testing of anything else, use the Docker-based development server described below.

Development

Test Server with Plugin Hot-Reloading

A Docker-based test server is available for development.

Setup

  1. Build the plugin: mvn package (this project has no Maven wrapper, so Maven must be installed; the build targets Java 8, which is also what CI uses)
  2. Start the test server: ./up.sh

Stopping the Test Server

./down.sh

Authors and Acknowledgement

Developers

Name Main Contributions
DanTheTechMan Creator
UndeadZeratul Created a potential replacement for the /roll command
Caibinus Implemented PlaceholderAPI integration

License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0).

You are free to use, modify, and distribute this software, provided that:

  • Source code is made available under the same license when distributed.
  • Changes are documented and attributed.
  • No additional restrictions are applied.

See the LICENSE file for the full text of the GPL-3.0 license.

Project Status

This project is in active development.

bStats

You can view the bStats page for the plugin here.

Usage reporting

Usage reporting is on by default: when the plugin is enabled, and each time one of its commands is used, it sends its name, version and the command's name (startup and command events) to https://trace.danielstephenson.dev so it is known which plugins are actually in use. Nothing about players, worlds or IPs is sent, and nothing typed after a command. The plugin says on every startup whether reporting is on. Each event also carries a random server ID (the server-id line in plugins/trace/config.yml) so servers can be counted rather than events. It identifies no person, account or IP address; delete the line to get a new one.

To turn it off:

  • usage-reporting.enabled: false in this plugin's config.yml (or /rpconfig set usage-reporting.enabled false; either way it takes effect on the next restart)
  • for every plugin on the server that reports to trace: enabled: false in plugins/trace/config.yml (written by the first such plugin to start)
  • the environment variable TRACE_USAGE_REPORTING=off or DO_NOT_TRACK=1

Details: https://danielstephenson.dev/usage-reporting

Roadmap

Changelog

See CHANGELOG.md for a release-by-release summary of changes.