E-Utils
Modby Hysocs
EverlastingUtils is a robust utility library for Minecraft mod development and all of Hysocs mods.
Type
Mod
CurseForge Downloads
342,830
CurseForge ID
1275646
Modrinth Downloads
49,822
Modrinth ID
YG7mMy6f
Last Updated
Jun 11, 2026
Description
Attention Developers
> The information from this point forward is intended for mod developers looking to use EverlastingUtils as a dependency in their own projects. > ## Core Features EverlastingUtils is designed to accelerate development by providing ready-to-use, high-quality systems for: * **Configuration**: A type-safe, multi-file configuration system with JSONC support, live reloading, and automatic version migration. * **Task Scheduling**: A server-aware scheduler that properly handles synchronous (main thread) and asynchronous tasks, preventing common concurrency issues. * **Commands**: A fluent, Brigadier-based command builder with integrated permission handling. * **GUIs**: A simple yet powerful framework for creating interactive inventory-based GUIs, including standard and anvil types. * **Utilities**: A collection of helpers for things like MiniMessage color parsing and toggleable, per-mod debug logging. --- ## System Spotlights ### Configuration System (`ConfigManager`) The `ConfigManager` is a sophisticated system designed to handle all aspects of configuration management with minimal boilerplate. **Key Functionalities:** * **Type-Safe & Modern**: Uses Kotlin data classes for type-safe config access and JSONC for human-readable files with comments. * **Live Reloading**: Automatically reloads configuration files from disk when they are changed, allowing server owners to adjust settings without a restart. * **Multi-File Support**: Manages a main `config.jsonc` and any number of "secondary" configs in sub-directories, perfect for organizing complex data like Pokémon or loot pools. * **Automatic Migration**: When you release a new version of your mod, the `ConfigManager` compares the version number in the user's config file with your mod's current version. If they don't match, it automatically merges their existing settings into a new, updated config structure, preserving their changes. * **Metadata & Comments**: Programmatically add header comments, footer comments, and per-field descriptions to your config files, making them self-documenting. **Example Usage:** ```kotlin // 1. Define your configuration structure data class MyConfig( override val version: String = "1.0.0", override val configId: String = "mymod", // Used for the config folder name var debugMode: Boolean = false, var welcomeMessage: String = "Welcome to my server!" ) : ConfigData // 2. Initialize the manager in your mod's entry point val configManager = ConfigManager( currentVersion = "1.0.0", // Your mod's current version defaultConfig = MyConfig(), configClass = MyConfig::class, metadata = ConfigMetadata( headerComments = listOf("Main configuration for MyMod."), sectionComments = mapOf("debugMode" to "Enables detailed console logging.") ) ) // 3. Access your config anywhere val isDebug = configManager.getCurrentConfig().debugMode ``` ### Task Scheduler (`SchedulerManager`) The `SchedulerManager` provides a safe and efficient way to schedule delayed or repeating tasks, built specifically for the Minecraft server environment. **Key Functionalities:** * **Server-Aware**: The scheduler is tied to the server lifecycle. It automatically shuts down when the server stops and recreates its thread pool on restart, preventing thread leaks and errors. * **Sync vs. Async**: Easily specify whether a task should run **synchronously** on the main server thread (necessary for almost all Minecraft API calls) or **asynchronously** on a worker thread (for heavy, non-API work like database queries). * **Efficient Threading**: Uses a shared, managed thread pool to prevent individual mods from creating excessive threads and bogging down the server. * **Tracked Tasks**: All scheduled tasks are tracked by a unique ID, allowing you to cancel them later if needed. **Example Usage:** ```kotlin // In your server-side initializer (e.g., inside ServerLifecycleEvents.SERVER_STARTED) val server = ... // Get the MinecraftServer instance // Schedule a task to run every 5 minutes on the main server thread SchedulerManager.scheduleAtFixedRate( id = "mymod-broadcast-task", // Unique ID for this task server = server, initialDelay = 0, period = 5, unit = TimeUnit.MINUTES, runAsync = false, // IMPORTANT: false runs on the main server thread task = { // This code is safe to run because runAsync is false server.playerManager.broadcast(Text.literal("It has been 5 minutes!"), false) } ) ``` --- ## Other Features ### Command System (`CommandManager`) A fluent builder for creating Brigadier commands with less boilerplate. It handles permission checks automatically, supporting both vanilla OP levels and the Fabric Permissions API. ```kotlin val commandManager = CommandManager(modId = "mymod") commandManager.command("hello", permission = "mymod.hello") { executes { context -> context.source.sendFeedback({ Text.literal("Hello, world!") }, false) 1 // Success } subcommand("admin") { executes { context -> /* ... */ } } } // Don't forget to register it! commandManager.register() ``` ### GUI Framework (`CustomGui` & `AnvilGuiManager`) Quickly create interactive GUIs for your players with callback-based logic, dynamic updates, and full MiniMessage support for titles and lore. ```kotlin // Example of a simple chest GUI CustomGui.openGuiFormatted( player = player, title = "My Awesome GUI", layout = listOf( CustomGui.createFormattedButton( ItemStack(Items.DIAMOND), "Click Me!", listOf("This is a button."), player ) ), onInteract = { context -> if (context.slotIndex == 0) { player.sendMessage(Text.literal("You clicked the button!")) CustomGui.closeGui(player) } }, onClose = { /* ... */ } ) ``` --- ## For Developers: Getting Started To use EverlastingUtils in your project, add it to your dependencies. #### build.gradle.kts ```kotlin repositories { // Add the repository where EverlastingUtils is hosted maven { url = "https://api.modrinth.com/maven" } } dependencies { // Add the library as a dependency modImplementation("maven.modrinth:e-utils:1.1.2") // Replace with the latest version } ``` #### fabric.mod.json Make sure to declare the dependency in your `fabric.mod.json` file. ```json "depends": { "everlastingutils": ">=1.1.2" // Replace with the version you are using } ```Compatibility
Mod Loaders
Game Versions
Similar Mods
Enchanted ToolTips
Enchantment info in tooltips!
Tweakerge
Tweakeroo unofficial forge port. A client-side Minecraft mod that adds various "tweaks" (= usually small-ish individual...
Plethora Peripherals
Additional peripherals for ComputerCraft, allowing interactions with many modded blocks
Birds Nests
Birds nests drop randomly from leaves and give you rewards!
DnT Woodland Mansion Overhaul
This Mod Overhauls the Woodland Mansion with 184 different rooms and 8 type of rooms. adding a basement layer and a road...
Zombie Infection Vaccine
Adds a more realistic item (vaccine) that cures the Hordes' mod zombie infection