One engine behind every plugin: SnLib handles config, language, menus and storage, so each plugin ships small, documented and versioned in public.
____ ____ _ _
/ ___| _ __ | _ \ _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_
\___ \| '_ \| | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __|
___) | | | | |_| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_
|____/|_| |_|____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__|
|_| [SnLib] Loaded SnLib v1.28.0[SnLib] Enabling modules: yml, text, menus, items[SnAntiXray] Enabled v1.0.2[SnBans] Enabled v1.8.2[SnChat] Enabled v2.1.0Done (2.31s)! For help, type "help"Every plugin here is a SnLib consumer. Config parsing, language files, menus, items, scheduling and storage live in the library, not copy-pasted into each jar, so a fix in SnLib is a fix everywhere.
Modules are opt-in: a plugin declares what it needs and nothing else gets loaded. SnLib ships as its own jar, never shaded.
Explore SnLib docsEvery one documented and versioned in the open. Licensed per server: request yours on Discord.
Every version lands on GitHub with release notes and a jar. No private builds, no silent patches.
149 releases in the last 12 months.