unsup is a somewhat minimal implementation of a generic working directory
syncer in Java. It supports running as a Java agent, to piggy-back off of the
launch of another program.
***It is particularly good at syncing small private modpacks or one-offs in small groups, where a full public distribution (e.g. on Modrinth!) is overkill or undesirable.*** It is capable of downloading mods from their original sources, wherever that may be… as long as it speaks HTTP(S).
An [unsup.ini](https://git.sleeping.town/unascribed/unsup/wiki/Config-format)
must be placed in the working directory for unsup to know what to do, or a `-Dunsup.bootstrapUrl=` JVM argument specifying where to find such a file.
The updater works hard to ensure the working directory is never left in an
inconsistent state. Short of a sudden power loss in the middle of applying
changes (an incredibly short time window), an unsup update cannot result in
an inconsistent or corrupted working directory.
It does hash-based consistency validation (with your choice of function, SHA-256 recommended) on all downloads and on files before overwriting
them, warning the user if they’ve changed something that has been updated. It
additionally supports signing manifests using OpenBSD Signify for additional
security.
unsup’s unique simplified design means it is compatible with **all launchers**,
from the vanilla launcher to MultiMC. Just add `-javaagent:unsup.jar` to the
JVM arguments, and place `unsup.jar` and `unsup.ini` in the .minecraft
directory.
In Prism Launcher, you can utilize unsup as a “component” by importing the
`com.unascribed.unsup.json` from the latest release on Forgejo. (I can’t upload JSON files to Modrinth). This will allow Prism
Launcher to download and manage unsup. (MultiMC does not support Java agent
components, despite requests.)
It also has a built-in concept of *environments* and *flavors*, allowing it to
be used to manage server installs rather than just clients, and allowing users
to pick between multiple mutually incompatible mod sets with a feature-packed interface unlike any other updater tool.
unsup is also capable of updating MultiMC’s “components”, including
unsup itself if it is added as one. This means you can update mod loaders or
Minecraft itself.
## Creating Packs
You can either point unsup at a [Packwiz](https://packwiz.infra.link/) pack.toml (recommended),
or write a native unsup manifest by hand. See [the wiki](https://git.sleeping.town/unascribed/unsup/wiki/Manifest-format) for info on the
native manifest format. The Creator GUI is on hold, as Packwiz has become a
de-facto standard for Minecraft modpacks.
## Stability
unsup has been used for modpacks on versions from b1.7.3 to 1.21.5, both client and server,
and is known to work with Forge (both legacy and modern), Fabric, Quilt, and NeoForge. It
has successfully powered many modpacks, from [small](https://git.sleeping.town/Rewind/Upsilon)
to [large](https://github.com/ModFest/bc23-pack). Native manifest and Packwiz manifest
support are both quite stable, and have been used extensively.
Signing support is still somewhat experimental, and has not been deployed by anyone at
large scale. That someone could be you — please let me know if it works well!
## GUI
unsup has a minimal and elegant GUI that works everywhere (yes, including
macOS) and can have all of its colors customized to make it fit in with your
branding. It ships with a dark theme with minty accents. Check out the gallery tab!
## License
unsup is released under the LGPLv3.
Pico Limbo Java Wrapper
# PicoLimbo Java Wrapper
A Java wrapper around PicoLimbo, a lightweight, multi-version Minecraft limbo server written in Rust. This allows you to run the PicoLimbo server directly inside your proxy or as a standalone jar file.
[⭐ Star this repo](https://github.com/Quozul/PicoLimbo) • [💬 Join Discord](https://discord.gg/M2a9dxJPRy) • [📖 Read Docs](https://picolimbo.quozul.dev/)

*Schematic from [Limbo](https://modrinth.com/mod/limbo-server), another great project*
PicoLimbo is a lightweight [limbo server](https://quozul.dev/posts/2025-05-14-what-are-minecraft-limbo-servers/) written in Rust, designed primarily as an AFK or waiting server. Its core focus is on efficiency by implementing only essential packets required for client login and maintaining connection (keep-alive) without unnecessary overhead.
While not aiming to replicate every Minecraft server feature, PicoLimbo supports **all Minecraft versions from 1.7.2 up until the latest stable version**, excluding snapshots.
⚠️ IMPORTANT – READ BEFORE PROCEEDING ⚠️
This project uses native code and was not intended to be used as a plugin. For maximum performance and stability, it is recommended to use the binary instead. You can read more about alternative installation instructions on the [official documentation website](https://picolimbo.quozul.dev/about/installation.html). The Java wrapper is provided to reach more people that have limited setup options.
Since the Java wrapper uses native code, it cannot run on all platforms. It is only compatible with:
– **GNU/Linux** (e.g., Debian, Ubuntu) – With x64 CPUs (AMD/Intel) or arm64 CPUs (e.g., Raspberry Pi)
– **Windows** – With x64 CPUs (AMD/Intel)
– **macOS** – M-series chips (M1/M2/M3+)
If you are unsure whether it’ll work, try it. Most hosting providers uses GNU/Linux with x64 CPUs so you should be fine
## Other Installations Platforms
PicoLimbo is also compatible with Docker and Pterodactyl. If you already have a Docker or Pterodactyl installation, it is recommended that you use that instead of the Java wrapper.
Documentation
Please read the [installation instructions for the Java Wrapper](https://picolimbo.quozul.dev/about/installation.html#java-wrapper) from the documentation website and [how to configure forwarding for PicoLimbo](https://picolimbo.quozul.dev/config/proxy-integration.html) before reporting any issues.
## Community & Support
If you have any questions, suggestions or simply want to stay updated, please join the [Discord server](https://discord.gg/M2a9dxJPRy)!
## Features
### Wide Version Compatibility
Supports all Minecraft versions from **1.7.2 to 26.1.2** natively, no need for ViaVersion or additional compatibility
layers.
### Ultra-Lightweight & Highly Scalable
When running natively outside of the JVM, PicoLimbo uses 0% CPU while idle and can handles hundreds of players under 10 MB RAM.
[View benchmarks](https://picolimbo.quozul.dev/about/benchmarks.html).
### Skin Support
Player skins are supported. What else to say about that?
Customize your server using a simple TOML configuration file, including welcome message, spawn dimension, server list
MOTD, and more. [View configuration docs](https://picolimbo.quozul.dev/config/introduction.html).
When running as a plugin in a proxy, the generated configuration file is located in the same location as any other plugins.
### Schematic World (Experimental)
Load a custom world from a schematic file and customize spawn location (1.16+ only).
Mods Type Checker
# ModsChecker
CLI tool to audit Minecraft mods and flag client-only mods. It scans a `mods` folder, calculates hashes, and queries Modrinth and CurseForge to classify mods.
## Features
– Modrinth lookup by SHA1.
– CurseForge lookup by fingerprint (batch request).
– Metadata detection from `fabric.mod.json`, `META-INF/mods.toml`, `mcmod.info`.
– Client-only classification + heuristics.
– Console summary and optional JSON report.
– English/Russian output.
## CLI options
– `–modsDir `: Mods folder (default `./mods` next to the jar or cwd).
– `–curseforgeApiKey `: API key (or env `CURSEFORGE_API_KEY`).
– `–gameId `: Default `432` (Minecraft).
– `–jsonOutput `: Save JSON report.
– `–verbose`: Print extra diagnostics.
– `–language `: `ru` or `en`.
– `–pause`: Wait for Enter before exit (default on Windows).
– `–noPause`: Do not wait for Enter.
## Classification rules
A mod is considered client-only if:
– Modrinth `client_side=required` and `server_side=unsupported` (client required), or
– Modrinth `client_side=required` and `server_side=optional` (client preferred).
If Modrinth data is not available, a heuristic is used based on keywords in mod names.
## Notes
– CurseForge is used for identification only (no explicit client/server flags).
– No infinite retries or loops; HTTP timeouts are used.
Mod Loading Screen
# Mod Loading Screen
An advanced loading screen with the loading progress of mods. It works on all Minecraft versions, as it doesn’t even require Minecraft. Its only requirement is Fabric Loader 0.12.0 or later or Quilt Loader (specific versions of Quilt support are unknown). Do note that if you run this mod on a game other than Minecraft, the loading screen may not close itself.
## Agent
Mod Loading Screen provides a Java agent, which allows opening the loading screen before even the mod loader itself loads. This feature is primarily targeted at modpack developers who want to make a seamless loading experience. The agent can be used by passing `-javaagent:mod-loading-screen-1.0.4.jar` as a JVM argument. If the agent is used, the loading screen should *not* be installed as a mod.
## API
To depend on the API, use the Modrinth Maven. The API should be JiJed, and doing so will not include Mod Loading Screen inside your mod (it will only include the API, which is only a few kilobytes). The API is designed to have both forwards and backwards binary compatibility with future Mod Loading Screen versions. An API is provided for checking which API calls will return stubs and which ones are real.
## [Development Builds & Scheme Download for Default Spawn Island](https://ci.loohpjames.com/job/Limbo/)
## Video
Want video demonstrations? Here are some videos made by some awesome people!
Video by [KasaiSora](https://www.youtube.com/@KasaiSora) in English:
## About
If your server always has a few players that **AFK** forever and causes a waste of server resources, or if you want something that can hold lots of players like a **waiting room** or **server lobby**, you can consider using a Limbo server.
This standalone server program can act as any other backend server in your **bungeecord network** (tho can also work without, options in server.properties).
Currently, the program is still **under development** and things will continue to be added.
Limbo Server is built against **26.1.1** and wouldn’t work with other versions. **However, you can use the Limbo plugin [ViaLimbo](https://github.com/LOOHP/ViaLimbo/) do make it possible!**
**A small .schem can be loaded as the default world (the current sponge/worldedit schematic format) and player skins are also supported.**
Limbo Server also has an **API** which allows you to create **simple plugins** and change the behaviour of the Limbo, such as listening to chat events, adding custom commands, sending custom packets, or even adding more worlds.

_A screenshot from the demo server, [download the scheme here](https://ci.loohpjames.com/job/Limbo/)_
## Demo Limbo Server
Want to take a look at a live demo?
## Installation
1. Put Limbo.jar in a folder you like
2. Start the server just like any other spigot server with `java -jar Limbo.jar –nogui` _(Or without –nogui flag if you for some reason like the annoying GUI)_
3. Edit the server.properties
4. Restart the server
5. Set up and link the server to your bungeecord proxy if you use that (Remember to set bungeecord to true in step 3)
## Data usage
Usage statistics at https://bstats.org/plugin/server-implementation/Limbo will be visible to the public with your server included in the statistics. No private information of your server is sent.
This is an extension mod for Krypton Fabric, ported from KryptonReno.
## Feature
– More basic optimizations
– RecastLib provides acceleration features for **Windows** (x64/arm64)
## Install
Install directly as a Mod.
Starting from version 26.1.2, the Mod body no longer includes the Patcher and JavaAgent modules. If you still want them
to take effect, please see [README](https://github.com/KryptonReno-Fabric/blob/26.1/javaagent/README.md).
## Config
Add the following parameters to the Java startup parameters to control the mixin enablement:
| Parameter | Description | Default value | Configuration in file form |
|————————–|—————-|—————|—————————-|
| velocity.natives-disable | Disable Native | false | Not supported |
– [Krypton Fabric](https://modrinth.com/mod/krypton) – Optional dependency. I put some optimizations here.
## License
> This work has a restrictive license in addition to the original license to prevent some unexpected behavior,
> see [404Setup Public License](https://github.com/404Setup/404Setup/blob/main/LICENSE.md)
2025-2026 404Setup. All rights reserved. Source code is licensed under a LGPL-3.0 Only.
TNT submerged in water will not destroy item frames, paintings, armor stands, and other similar entities.
This is merely an imitation of the vanilla features, and it does not fully align with them.
It can also be used as a JavaAgent for improved efficiency
Half-Life Menu
## Half-Life Menu
This mod replaces the title screen with the one from Half-Life 1’s “steam-legacy” build and replaces the background on all menus that have the panorama with the stretched image of Gordon Freeman. It also replaces the loading and resource reload screens with ones from Half-Life 1 (does not work on forge!)

Old v2.1 builds have been removed due to barely working (ex. missing textures on all versions besides forge) and being ugly
Ears (+ Snouts/Muzzles, Tails, Horns, Wings, and More)
Faithful fancy fashion features for fuzzy folk.
Created due to a lack of the Tails mod for 1.16, Ears is a mod that adds ears, snouts, tails, horns, wings, and more to the player. Eventually, it also became a complete lightweight open source 1.9 skin backport for many old versions, which works even if you aren’t using its special features.
Ears has a more vanilla-faithful appearance than Tails, with a lot of 2D regions but a few 3D ones too. There are a wide variety of possible configurations and it can all be customized.
Why use Ears instead of Tails? Because Ears is easy to port to other versions, based on a multi-version abstraction allowing the mod to even run in web browsers. The Tails mod has wonderful 3D models and animations, but it’s a burden to update it to any version due to its large rendering system and all the data syncing code, causing it to be tightly coupled with the version of the game and mod loader it was designed for. Ears stores all data as pixels in the player’s skin.
However, Ears requires you to draw your own additions, and does not come with easy recolorable prefabs like Tails. Additionally, unlike CPM or Figura, Ears has a limited number of customization options. (Note that if you have a simple idea, I may add it. Open an issue on GitHub or hop in Discord.) Ears offers a good middle-ground that will work in almost any version you wish to play. It also does not and never will use external servers, just Mojang’s skin server, so there’s no concerns about a third-party server going down (be it temporarily or for good).
Why use Ears instead of other skin fixes? Ears provides a lot of new features to customize your skin, and is a much more lightweight patch with no usage of third-party servers and is completely open source. Additionally, Ears backports translucent secondary layer support to 1.8 and 1.7.
Create any recipe to make any item you desire. Anything found in-game can be done using CR! Use your imagination to make hundreds of custom items and recipes!
### ▶ Custom Bag Crafting (HavenBags)
In collaboration with Valorless, CustomRecipes support crafting of HavenBags! You can create custom crafting recipes to allow players to craft bags. You can read more on the WIKI.
### ▶ Separate Recipe Files
All recipes are stored in their own file found in a ‘recipes’ folder. This makes for the best organization and makes it easier when working with tons of recipes.
### ▶ Per World Recipes
You have the ability to disable your recipes in specific worlds while leaving them enabled for others allowing for per-world recipes. You can configure the resulting action within the blacklisted.yml file under the “recipe-disabled-message:” section.
### ▶ Disable Server Recipes
Disable any vanilla recipe completely or override the recipe so you can change how it is traditionally crafted! Toggle a chat/action bar message to the player if the recipe has been disabled! Refer to the blacklisted.yml for help!
Blacklisting a recipe listens for the result while crafting, triggering any response or messages to the player, while overriding a recipe completely removes the recipe key from the server which allows you to “change” how a vanilla recipe is crafted.
### ▶ PlaceholderAPI Support
Ability to use placeholders in the lore of your custom items via placeholderAPI. There are also custom plugin-sided placeholders found below. If you have any suggestions for more please let me know.
**Requires PlaceholderAPI to be installed on your server.
Other placeholders are found here.
Spoiler: Current placeholders:
### ▶ Recipe Permissions
Require a user to have specified permission in order to see or craft the custom recipe. Option to send a customized chat/action bar message along with it.
### ▶ Custom Item Support
Full support of custom items in your recipes. We currently support nexo, oraxen, itemsadder, executable items, mmoitems, and mythic mobs. In addition, you can also create your own custom item in the ‘Items’ folder to be used in a recipe.
### ▶ NBT Support
Ability to detect custom recipe item names, if it was renamed using an anvil, specific lores, specific material types, specific color codes, and if it has a specific custom identifier.
For versions 1.14+ there is added support for CustomModelData used for texture packs and such. Set a specific custom model data to change the look of a vanilla item while using texture packs!
You have the option to ignore meta-data – ‘Ignore-Data’ in the config.
You have the option to add effects to your weapons, such as poison, which will apply the poison affect to your enemy.
You can add item attributes to your recipes. Item attributes let you change specific attributes on items such as attack damage, knockback, etc. Supports legacy < 1.12 as well for this.
You can have spawners for recipe results, colored leather armor, potions, stored enchantments, and a ton of other options by customizing NBT data to tailor your needs.
### ▶ Define Item Flags
Ability to add item flags to your custom items. You can hide attributes and more by utilizing this feature. You can also choose whether or not this recipe can be placed down (Placeable: false). All of the item flags can be found here.
### ▶ Define Ingredient Amount Requirements
Ability to set and require ingredient amounts. I have implemented checks that detect whether or not the amounts of your ingredients match what is set in your recipe. Works for both shift and non-shift clicks.
### ▶ Supports Shapeless & Shaped Recipes
Ability to create shapeless recipes (any order in the crafting table) OR shaped recipes (must have specific materials in specific slots of the crafting table)
### ▶ Supports Furnace, BlastFurnace, Smoker, Anvil, Crafter, & More
Ability to create a ton of other recipe types using the 'Converter' section in the recipe file. We currently support regular crafting, anvil, stonecutter, grindstone, blast furnace, furnace, campfire, smoker, brewing, and smithing recipes.
### ▶ Recipe Cooldowns
Supports crafting cooldowns for players. You can limit how long your players have to wait before they can craft another custom recipe.
### ▶ Recipe Commands
Ability to have commands be performed by the server upon crafting an item. You can have multiple commands. You can also configure whether or not you want the output item to be granted still, or if you only want the command(s) to be performed.
### ▶ Recipe Conditions
Ability to require specific conditions needed for a recipe to be craftable by a player. This includes requiring or denying biomes, time of day, moon phases, worlds, weather, advancements, and more!
### ▶ Leftover Items
Ability to define items that will be leftover in the workbench. These items will be required to craft your recipe, but will not be taken when crafted.
### ▶ Supports Crate Plugins
Implement your custom recipes into crates! Utilize the give recipe command in your crates plugin to use these custom recipes as a reward for landing on it.
### ▶ Player Recipe Booklet (GUI)
Added GUI that shows all active recipes that the player has permission to craft. Once a recipe is clicked on, it will then display how to craft the recipe. This makes it easier for players to remember how to craft your custom items.
### ▶ Vanilla Recipe & Cooking Book
Supports the in-game crafting recipe or cooking recipe book. Configure whether or not the recipe auto-discovers on join.
### ▶ Tab Completion
Integrated tab completion for every aspect of the plugin. This ensures ease of use while typing commands and giving recipes.
### ▶ Reload Command
Integrated reload command, give recipe command, and a fully integrated GUI that is in the works.
### ▶ Version Support
This plugin supports paper spigot and regular spigot from versions ranging from 1.8.x to the latest version. This plugin is updated frequently and actively supported.
### ▶ Extremely Configurable
You have the ability to configure pretty much everything with the plugin. You can configure the messages, the permissions, the recipe name, lore, enchantments, effects, etc!
### ▶ In-game Item Editor
You can edit items in-game using /edititem. This allows you to discover/undiscover recipes, change the lore, name, enchants, etc, of an item for testing recipes in real time.
### ▶ Intuitive Recipe Creating GUI
You can edit, create, or remove recipes directly in-game using /cr gui or the in-game commands. Check out our wiki for more details.
### ▶ Commands & Perms
aliases: crecipes, customrecipe, customrecipes, customr, cr
crecipe.help
/crecipe - Displays the help page
crecipe.gui
/crecipe gui - Opens the GUI
crecipe.create
/crecipe create [optional perm] – Creates a recipe
crecipe.remove
/crecipe remove – Removes a recipe
crecipe.show
/crecipe show – Shows a recipe
crecipe.book
/crecipe book – Opens the recipe booklet
crecipe.reload
/crecipe reload – Reloads the recipes and configs
crecipe.give
/crecipe give – Gives a player a custom recipe.
crecipe.debug
/crecipe debug – Enables/disables debug mode
crecipe.list
/crecipe list – Lists all active custom recipes
crecipe.edititem
/edititem – Help with managing item tags and data in-game
You also are defining your own permissions in the config to craft a custom recipe!
### ▶ How to use:
Create a .yml file in the ‘recipes’ folder
Configure recipes into the file using the template
Arrange ingredients how you desire.
Add custom display names or other metadata
Type ‘/crecipe reload’ or restart your server.
Craft your newly created recipe!
Any issues regarding CustomRecipes should be brought up via the discussion tab or PM. I will promptly respond to your concerns with an answer. I am open to any and all suggestions to further this plugin! Thank you! Please consider leaving a positive review if you are satisfied!