Skip to content

catches/Jerry

Repository files navigation

Jerry

Disclaimer

Jerry is an unofficial fork of TerminatorPlus.

Jerry is maintained by Marcel and is based on the original TerminatorPlus project by HorseNuggets. This fork is not affiliated with the original TerminatorPlus maintainers.

This project is provided for educational, experimental, and personal server testing only. It may be unstable, incomplete, outdated, or incompatible with some Minecraft/Paper versions.

Do not use this plugin on a production server unless you understand the risks. Bugs, crashes, broken bot behavior, server lag, or world disruption may occur.

Original project: https://github.com/HorseNuggets/TerminatorPlus


Jerry is a Bukkit/Paper plugin for creating server-side player bots.

This fork focuses on improving the original in a variety of ways.

Features

  • Improved bot movement and pathfinding for more reliable chasing, navigation, and combat positioning
  • Added an in-game settings GUI for managing bot behavior more easily
  • Added stuck teleport recovery to help bots escape unreachable or trapped positions
  • Added dimensional travel support so bots can follow gameplay across dimensions
  • Added complete automatic difficulty progression with staged equipment and behavior upgrades
  • Added special PvP actions, including crystal PvP, bow combat, ender pearl use, TNT ignition, and fireballs
  • Added automatic respawning so bots can continue rejoining combat after death
  • Added teleport-to-bot commands for easier testing and management
  • Prevented bots from attacking invulnerable players
  • Added underwater combat behavior so bots can keep fighting in water

Requirements

  • Java 21
  • Paper server
  • Minecraft/Paper 1.21.8 recommended for this fork
  • Gradle wrapper included

Repository Structure

Jerry/
├── Jerry-API/       # Public API module
├── Jerry-Plugin/    # Main plugin implementation
├── buildSrc/                 # Shared Gradle build logic
├── docs/                     # Documentation files
├── gradle/wrapper/           # Gradle wrapper files
├── src/main/resources/       # Plugin metadata/resources
├── build.gradle.kts          # Root Gradle build file
├── settings.gradle.kts       # Gradle module settings
├── gradlew                   # Linux/macOS Gradle wrapper
├── gradlew.bat               # Windows Gradle wrapper
└── LICENSE                   # EPL-2.0 license

Building From Source

Clone the repository:

git clone https://github.com/catches/Jerry.git
cd Jerry

Build the plugin:

Windows

gradlew.bat build

Linux/macOS

./gradlew build

After building, the compiled plugin JAR should be located in:

build/libs/

The generated plugin JAR is named:

Jerry.jar

Installation

  1. Build or download the plugin JAR.
  2. Stop your Paper server.
  3. Place the JAR file in your server's plugins folder.
  4. Start the server.
  5. Watch the console for compatibility warnings or errors.
  6. Join the server and test the commands.

Example:

server/
└── plugins/
    └── Jerry.jar

Commands

The plugin registers these command groups:

/jerry
/jer
/bot
/npc
/ai
/botenvironment
/botenv

Bot Commands

/bot create <name> [skin] [location]

Creates a single bot.

/bot multi <amount> <name> [skin] [location]

Creates multiple bots at once.

/bot give <item-name>

Gives a specified item to all current bots.

/bot armor <armor-tier>

Gives all bots an armor set.

Available armor tiers:

none
leather
chain
gold
iron
diamond
netherite
/bot info <bot-name>

Shows information about a loaded bot.

/bot tp [bot-name]

Teleports you to a bot and switches you to creative mode.

Aliases:

/bot goto
/bot teleport
/bot visit
/bot stage <stage|auto> [bot-name]

Sets a bot's difficulty progression stage, or returns it to automatic progression with auto.

Aliases:

/bot level
/bot setstage

Examples:

/bot stage 5 Jerry
/bot stage auto Jerry
/bot gui

Opens the bot settings GUI.

Aliases:

/bot menu
/bot controlpanel
/bot settingsgui
/bot count

Lists/counts loaded bots.

Alias:

/bot list
/bot reset

Removes all loaded bots.

/bot settings

Opens the settings GUI when used by a player, or displays settings options when used with arguments.

Settings

The settings system includes controls for:

  • Goal selection
  • Mob targeting
  • Player targeting
  • Player-list behavior
  • Difficulty progression
  • Dimension travel
  • Automatic respawning
  • Special actions
  • Stuck teleport recovery
  • Region behavior

Difficulty Progression Stages

Difficulty progression automatically upgrades bots as they survive longer and get kills.

Progression is based on a score made from:

alive time + kills

Each kill adds the same amount of progress as roughly 75 seconds of survival time.

You can manually override a bot's stage with:

/bot stage <0-8> [bot-name]

You can return a bot to automatic progression with:

/bot stage auto [bot-name]

Stage Overview

Stage Unlock Time Equipment / Behavior
0 0 seconds No weapon, no armor
1 30 seconds Wooden axe
2 75 seconds Stone axe, leather armor, Speed I
3 120 seconds Iron sword, chainmail armor, shield, Speed I, Strength I
4 180 seconds Iron axe, iron armor, shield, regeneration, 1 companion dog
5 270 seconds Diamond axe, diamond armor, shield, Speed II, fire resistance, 1 companion dog
6 390 seconds Enchanted diamond sword, enchanted diamond armor, shield, stronger potion effects, 2 companion dogs
7 540 seconds Enchanted netherite axe, enchanted netherite armor, shield, resistance, 2 companion dogs
8 720 seconds Max enchanted netherite sword, max enchanted netherite armor, advanced potion effects, 3 companion dogs

Special Actions

When enabled, special actions allow bots to use additional PvP-style abilities during combat.

Special actions include:

  • Crystal PvP
  • Bow and arrow
  • Ender pearls
  • Light TNT
  • Fireballs

Permissions

The plugin defines the following permissions:

jerry.*
jerry.manage

By default, bot management permissions are intended for server operators.

Development Notes

This project uses:

  • Java 21
  • Gradle Kotlin DSL
  • Paperweight userdev
  • Paper API
  • Multi-module Gradle layout

Main modules:

Jerry-Plugin
Jerry-API

Plugin main class:

catches.jerry.Jerry

Plugin name:

Jerry

Known Limitations

  • This fork is experimental.
  • Documentation may become outdated.
  • Compatibility is version-sensitive.
  • Bot behavior may be unstable.
  • AI and combat behavior may need testing and tuning.
  • Production use is not recommended.
  • Some functionality may depend on internal Minecraft/Paper behavior.

License

This project is licensed under the Eclipse Public License 2.0.

See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors