Jellyfish is a Paper/Pufferfish fork designed for Network Lobbies.
This fork WILL introduce breaking changes, it is only recommended for Lobbies, not for SMP or Minigames.
Jellyfish was designed for lobbies, as such is not intended to work as a standalone server software and should always be running behind a proxy.
As it is based on Paper, it allows using already existing plugins for Spigot/Paper.
If you have the time and resources to develop/port your existing software to another platform, an even better alternative to this project would be Minestom.
If you only want to hold players as an afk limbo zone with no map, you can give NanoLimbo a look.
For Jellyfish config file jellyfish.yml, startup flags and development API, check USAGE.md.
Since most of the features in a Paper server can already be disabled via config files, the core ideas behind Jellyfish are:
- Provide a proper default config
- Save some extra performance by allowing to toggle more features that are not always going to be use and can't be toggled in Paper (if any)
- Reduce the jar size by completely removing features that are definitely not going to be used
- Probably add a couple of features that make easier to handle legacy players
Since this project is not meant to be constantly updated to the latest minor/major release, another advantage of changing the default config files is to facilitate migration to other forks if an up-to-date version is needed.
Some examples of the difference between features that can be disabled and features that will be removed.
| Example Feature | Expected action | Reason |
|---|---|---|
| Block breaking | Disabled by default | Most lobbies don't need block breaking |
| Mobs spawning with AI | Disabled by default | Most plugins that spawn mobs don't use their AI |
| Hunger and Health ticking | Disabled by default | Most lobbies don't use/need this mechanic |
| Terrain generation | Removed | Lobbies use void worlds |
| Natural mob spawning | Removed | Lobbies don't need mobs spawning around |
- Remove terrain generation logic
- Remove nether and end dimension generation logic
- Remove global attack cooldown (For ~1.8 players)
- Modify void height (For <1.16 players)
- Toggle mob AI by default
- Toggle health and hunger consumption
- Toggle block breaking
Features will slowly be removed/added as my time allows
All patches are licensed under the MIT license.
See PaperMC/Paper, and PaperMC/Paperweight for the license of material used by this project.
First, clone this repository. Do not download it.
Then run the following command in the root directory:
./gradlew applyAllPatches
The project is now ready for use in your IDE.
See CONTRIBUTING.md.
Use the command ./gradlew build to build the API and server. Compiled JARs
will be placed under jellyfish-api/build/libs and jellyfish-server/build/libs.
These JARs are not used to start a server.
To compile a server-ready paperclip jar, run ./gradlew createMojmapBundlerJar.
To install the jellyfish-api and jellyfish dependencies to your local Maven repo, run ./gradlew publishToMavenLocal. The compiled paperclip jar will be in jellyfish-server/build/libs.
This project is designed for Serlith Network, so support is currently not guaranteed until we can find someone to properly maintain the project.
- PaperMC Team
- Pufferfish Host
- PurpurMC Team, even if this is not a direct Purpur fork, we do use their paperweight project setup.
