GitHunt
TH

A Minecraft FFA plugin made in Ruby with PaperMC and JRuby

gFFA

A Minecraft FFA plugin made in Ruby with PaperMC and JRuby.

Description

This plugin attempts to implement the Free for all (FFA) game mode.
Players will be able to select a kit with the /kit command and go fight others in an arena.

Requirements

The dependencies are listed in the build.gradle file. Here are the development tools utilized :

  • Java 23
  • JRuby 10.0.3.0

ShadowJar is used in order to include JRuby and its dependencies in the final JAR.

Commands

Syntax:

  • (argument): argument is optional
  • [argument]: argument is mandatory

/kit (number)

Open the kit selection GUI. If the number is provided, the player receive the corresponding kit directly. This
command doesn't work if the sender is :

  • in the arena
  • in combat

/spawn

Teleport the player to the spawn if they aren't in combat, therefore leaving the arena.

Project structure

The Ruby code is located in the resources directory.
The main.rb script is loaded on plugin startup (by FFA.java).

This script loads and register multiple listeners, commands and utility for the plugin. Since they are loaded in order
by the same file, something imported by a given file A (loaded before B) can be used in B without explicitly importing
it in B.

Note

This plugin was made to work well on a specific map, located in the assets/world folder. I attempted to hardcode as little
elements as possible so it won't be too hard to adapt it for another map.
Currently, the spawn location is hardcoded in the /spawn command and
in the PlayerJoinListener

Languages

Ruby97.9%Java2.1%

Contributors

Created February 15, 2026
Updated February 21, 2026