ExtraSpecialLib
Shared backend helpers for Extra Special Studio mods—mod-list checks, small registries, and optional Forge config-builder utilities without every ES mod re‑implementing the same glue.
ExtraSpecialLib (ESL) is a library mod. It doesn’t add gameplay, items, screens, or a “main feature” by itself. It also doesn’t own any player-facing config files. Other Extra Special Studio mods depend on it for thin shared backend utilities so soft dependencies and registries stay consistent across the stack.
What it does:
ESL ships a small Esl* API: EslMods for “is this mod loaded?” checks and run-if-present hooks, EslRegistry for thread-safe keyed registries, EslStrings for tiny string helpers, and EslConfig for optional ForgeConfigSpec builder helpers (begin / push / pop only). Those config helpers are structure only—they define no keys and write no TOML. Actual settings always live in the consuming mod (e.g. ExtraSpecialCore theme configs, ES Hub client settings). ESL has zero GUI, render, or screen-loop code.
How it works:
Dependent ES mods call ESL from their own code. Soft integrations use EslMods instead of hard class references. When an ESS-stack mod wants shared config section scaffolding, it can use EslConfig while still declaring and owning its own Forge config files. ESL does not open menus, draw UI, decide game rules, or centralize pack settings.
How to use it:
Players: If a mod’s page says ExtraSpecialLib / ESL is required (often because ExtraSpecialCore needs it), add the same Minecraft + loader (Forge / NeoForge) build the author tested with. You won’t get a new menu or a new config from ESL alone—it’s there because another mod needs it.
Authors (Extra Special Studio / future ES mods): Declare ESL as a dependency; use EslMods / EslRegistry / EslStrings as needed. Use EslConfig only as optional builder helpers—keep every real config key and TOML in your own mod. Content mods outside the ESS stack should keep their configs fully in-house.
Important:
ESL is a dependency, not a standalone content pack and not a shared settings dump. Configs stay in their own mods; only the ESS stack (ExtraSpecialCore, ES Hub, Extra Special GUI, and future ES mods) should lean on ESL helpers. Match loader and game version with the mods that require it (Forge and NeoForge variants are separate if published that way). If something fails to load, check the mod that depends on ESL first, then confirm ESL version and loader match the pack.

