{"id":35181,"date":"2026-06-01T20:00:23","date_gmt":"2026-06-01T17:00:23","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/bslib\/"},"modified":"2026-06-01T20:00:23","modified_gmt":"2026-06-01T17:00:23","slug":"bslib","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/bslib\/","title":{"rendered":"BSLib"},"content":{"rendered":"<p># BSLib First Snapshot Release: Modernizing Minecraft Plugin Development<\/p>\n<p>I GAVE UP ON THIS LIBBARY IT&#8217;S GETTING TO COMPLICATED!!<\/p>\n<p>We are thrilled to announce the first snapshot release of **BSLib**, a powerful and comprehensive framework designed to revolutionize the way you develop plugins for Minecraft Paper servers. BSLib aims to eliminate boilerplate code, streamline development workflows, and introduce modern reactive programming paradigms to the Minecraft ecosystem.<\/p>\n<p>DOCUMENTATION<\/p>\n<p>## Why BSLib?<\/p>\n<p>BSLib is built on the principle of **state-driven development**, allowing you to define your plugin&#8217;s logic and UI in a declarative manner. This means less time wrestling with manual updates and more time focusing on innovative features. Key highlights include:<\/p>\n<p>*   **Reactive UI**: Create dynamic and responsive GUIs, scoreboards, and other in-game elements that automatically update when your data changes, similar to modern web frameworks.<br \/>\n*   **Zero-Boilerplate Setup**: With `@AutoScan` and `FrameworkPlugin`, BSLib handles dependency injection, command registration, event listening, and configuration loading automatically, significantly reducing setup time.<br \/>\n*   **Robust Asynchronous Operations**: Safely manage complex asynchronous tasks with `AsyncChain`, preventing common concurrency issues and ensuring smooth server performance.<br \/>\n*   **Declarative Command System**: Define commands and subcommands using simple annotations, complete with automatic tab completion and permission handling.<br \/>\n*   **Flexible State Persistence**: Easily save and load plugin data to YAML or JSON with automatic dirty tracking and configurable autosave intervals.<br \/>\n*   **Live Reload Capabilities**: Update plugin configurations and re-inject services without a full server restart, drastically speeding up your development cycle.<\/p>\n<p>## Getting Started<\/p>\n<p>To integrate BSLib into your project, you need to declare a dependency on the `BSLib-paper` plugin in your `plugin.yml` file and add the BSLib library dependency to your build configuration. Replace `LATEST_SNAPSHOT_TAG` with the actual latest commit hash or release tag from the BSLib GitHub repository.<\/p>\n<p>### Plugin Dependency (plugin.yml)<\/p>\n<p>For your plugin to correctly utilize BSLib-paper, you **must** declare it as a dependency in your `plugin.yml` file. This ensures that BSLib-paper is loaded before your plugin and its services are available.<\/p>\n<p>&#8220;`yaml<br \/>\nname: YourPluginName<br \/>\nversion: 1.0.0<br \/>\nmain: com.yourplugin.YourPluginMainClass<br \/>\nauthor: YourName<br \/>\ndepend: [BSLib]<br \/>\n&#8220;`<\/p>\n<p>Alternatively, if your plugin can function with reduced features when BSLib is not present, you can use `softdepend` instead of `depend`.<\/p>\n<p>&#8220;`yaml<br \/>\nname: YourPluginName<br \/>\nversion: 1.0.0<br \/>\nmain: com.yourplugin.YourPluginMainClass<br \/>\nauthor: YourName<br \/>\nsoftdepend: [BSLib]<br \/>\n&#8220;`<\/p>\n<p>### Library Dependency (Build System)<\/p>\n<p>### Gradle (Groovy DSL)<\/p>\n<p>**Step 1. Add the JitPack repository to your `settings.gradle`:**<\/p>\n<p>&#8220;`groovy<br \/>\ndependencyResolutionManagement {<br \/>\n    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)<br \/>\n    repositories {<br \/>\n        mavenCentral()<br \/>\n        maven { url &#8216;https:\/\/jitpack.io&#8217; }<br \/>\n    }<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>**Step 2. Add the dependency to your `build.gradle`:**<\/p>\n<p>&#8220;`groovy<br \/>\n\tdependencies {<br \/>\n\t        implementation &#8216;com.github.Fragmer2.BSLib:bslib-api:7a5257256f&#8217;<br \/>\n\t}<br \/>\n&#8220;`<\/p>\n<p>### Gradle (Kotlin DSL)<\/p>\n<p>**Step 1. Add the JitPack repository to your `settings.gradle.kts`:**<\/p>\n<p>&#8220;`kotlin<br \/>\ndependencyResolutionManagement {<br \/>\n    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)<br \/>\n    repositories {<br \/>\n        mavenCentral()<br \/>\n        maven { url = uri(&#8220;https:\/\/jitpack.io&#8221;) }<br \/>\n    }<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>**Step 2. Add the dependency to your `build.gradle.kts`:**<\/p>\n<p>&#8220;`kotlin<br \/>\n\tdependencies {<br \/>\n\t        implementation(&#8220;com.github.Fragmer2.BSLib:bslib-api:7a5257256f&#8221;)<br \/>\n\t}<br \/>\n&#8220;`<\/p>\n<p>### Maven<\/p>\n<p>**Step 1. Add the JitPack repository to your `pom.xml`:**<\/p>\n<p>&#8220;`xml<br \/>\n<repositories><br \/>\n    <repository><br \/>\n        <id>jitpack.io<\/id><br \/>\n        <url>https:\/\/jitpack.io<\/url><br \/>\n    <\/repository><br \/>\n<\/repositories><br \/>\n&#8220;`<\/p>\n<p>**Step 2. Add the dependency to your `pom.xml`:**<\/p>\n<p>&#8220;`xml<br \/>\n\t<dependency><br \/>\n\t    <groupId>com.github.Fragmer2.BSLib<\/groupId><br \/>\n\t    <artifactId>bslib-api<\/artifactId><br \/>\n\t    <version>7a5257256f<\/version><br \/>\n\t<\/dependency><br \/>\n&#8220;`<\/p>\n<p>### SBT<\/p>\n<p>**Step 1. Add the JitPack resolver to your `build.sbt`:**<\/p>\n<p>&#8220;`scala<br \/>\nresolvers += &#8220;jitpack&#8221; at &#8220;https:\/\/jitpack.io&#8221;<br \/>\n&#8220;`<\/p>\n<p>**Step 2. Add the dependency to your `build.sbt`:**<\/p>\n<p>&#8220;`scala<br \/>\n\tlibraryDependencies += &#8220;com.github.Fragmer2.BSLib&#8221; % &#8220;bslib-api&#8221; % &#8220;7a5257256f&#8221;<br \/>\n&#8220;`<\/p>\n<p>### Leiningen<\/p>\n<p>**Step 1. Add the JitPack repository to your `project.clj`:**<\/p>\n<p>&#8220;`clojure<br \/>\n:repositories [[&#8220;jitpack&#8221; &#8220;https:\/\/jitpack.io&#8221;]]<br \/>\n&#8220;`<\/p>\n<p>**Step 2. Add the dependency to your `project.clj`:**<\/p>\n<p>&#8220;`clojure<br \/>\n\t:dependencies [[com.github.Fragmer2.BSLib\/bslib-api &#8220;7a5257256f&#8221;]]<br \/>\n&#8220;`<\/p>\n<p>## Feedback and Contributions<\/p>\n<p>This is an early snapshot, and we highly encourage you to experiment with BSLib and provide your valuable feedback. Your input will be crucial in shaping the future development of this framework. Please report any issues or suggest features on the GitHub repository.<\/p>\n<p>Thank you for being a part of the BSLib journey!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>BSLib Library aims to eliminate boilerplate code, streamline development workflows, and introduce modern reactive programming paradigms to the Minecraft ecosystem.<\/p>\n","protected":false},"featured_media":35182,"template":"","meta":{"_minecraft_slug":"bslib","_minecraft_project_id":"8U9ZLiYg","_minecraft_author":"bogdan6736","_minecraft_license":"Apache-2.0","_minecraft_downloads":27,"_minecraft_follows":0,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"bslib.zip","_minecraft_size_bytes":212578,"_minecraft_version_count":1,"_minecraft_updated_at":"2026-05-15T22:16:19.764412Z","_minecraft_date_created":"2026-02-25T01:51:35.047363Z","_minecraft_date_modified":"2026-02-24T02:05:15.344702Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/bslib","_minecraft_icon_attachment_id":35182,"_minecraft_imported_at":"2026-06-01T17:00:25+00:00","_minecraft_import_hash":"0385d028884fdd6b2a5190783d14cba5","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,873,126,90,127,128,129,91,123,92],"mod_loader":[130,132,133,134],"minecraft_version":[36,94,62,37,40,41,73,74,38,78,79,80,81,82],"class_list":["post-35181","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-library","mod_category-management","mod_category-optimization","mod_category-paper","mod_category-purpur","mod_category-spigot","mod_category-storage","mod_category-technology","mod_category-utility","mod_loader-bukkit","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","minecraft_version-1-20-1","minecraft_version-1-20-4","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>BSLib - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/bslib\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"BSLib - Minecraft\" \/>\n<meta property=\"og:description\" content=\"BSLib Library aims to eliminate boilerplate code, streamline development workflows, and introduce modern reactive programming paradigms to the Minecraft ecosystem.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/bslib\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/bslib\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/bslib\\\/\",\"name\":\"BSLib - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/bslib\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/bslib\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/bslib-icon-3014694b700a7e3a1d4da8dadea2127da55b887c_96.webp\",\"datePublished\":\"2026-06-01T17:00:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/bslib\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/bslib\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/bslib\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/bslib-icon-3014694b700a7e3a1d4da8dadea2127da55b887c_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/bslib-icon-3014694b700a7e3a1d4da8dadea2127da55b887c_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/bslib\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"BSLib\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"BSLib - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/bslib\/","og_locale":"en_US","og_type":"article","og_title":"BSLib - Minecraft","og_description":"BSLib Library aims to eliminate boilerplate code, streamline development workflows, and introduce modern reactive programming paradigms to the Minecraft ecosystem.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/bslib\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/bslib\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/bslib\/","name":"BSLib - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/bslib\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/bslib\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/bslib-icon-3014694b700a7e3a1d4da8dadea2127da55b887c_96.webp","datePublished":"2026-06-01T17:00:23+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/bslib\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/bslib\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/bslib\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/bslib-icon-3014694b700a7e3a1d4da8dadea2127da55b887c_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/bslib-icon-3014694b700a7e3a1d4da8dadea2127da55b887c_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/bslib\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"BSLib"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/35181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/35182"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=35181"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=35181"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=35181"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=35181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}