{"id":147480,"date":"2026-06-08T23:22:48","date_gmt":"2026-06-08T20:22:48","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/sqlib\/"},"modified":"2026-06-08T23:22:48","modified_gmt":"2026-06-08T20:22:48","slug":"sqlib","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/sqlib\/","title":{"rendered":"SQLib"},"content":{"rendered":"<p>![Maintenance](https:\/\/GitHub.com\/Naereen\/StrapDown.js\/graphs\/commit-activity)<br \/>\n![PRs Welcome](http:\/\/makeapullrequest.com)<\/p>\n<p>![ko-fi](https:\/\/ko-fi.com\/G2G4DZF4D)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/raw.githubusercontent.com\/MrNavaStar\/SQLib\/master\/src\/main\/resources\/assets\/sqlib\/icon.png\" width=\"300\" height=\"300\"><\/p>\n<p># SQLib<br \/>\nSQLib is the easiest way to store data for all your minecraft needs! A simple sql wrapper made with a focus on minecraft use cases.<\/p>\n<p># Important Note:<br \/>\nThis library is not a full-fledged sql wrapper, and does not provide full access to many sql features.<br \/>\nThe main focus of this library is to provide an easy and simple way to store data in your mods.<br \/>\nIf you are looking for a more advanced database I recommend taking a look at something like Nitrite.<\/p>\n<p># Config<br \/>\nThe mod generates a config on first time start that allows you to configure the database used by all mods relying on sqlib.<br \/>\nThe default database is a sqlite database running in the sqlib directory.<\/p>\n<p># Datatypes<br \/>\nThe datatypes can be accessed via `JavaTpes`, `MinecraftTypes` or the `AdventureTypes` classes. I tend to add support for new types as I run into them in my projects. If you would like one added, pleade make an issue!<br \/>\n| Standard | Minecraft   | Adventure |<br \/>\n|&#8212;&#8212;&#8212;-|&#8212;&#8212;&#8212;&#8212;-|&#8212;&#8212;&#8212;&#8211;|<br \/>\n| Byte     | Vec3i       | Key       |<br \/>\n| Byte[]   | BlockPos    | Component |<br \/>\n| Bool     | ChunkPos    |           |<br \/>\n| Short    | Text        |           |<br \/>\n| Int      | Identifier  |           |<br \/>\n| Float    | Sound       |           |<br \/>\n| Double   | Json        |           |<br \/>\n| Long     | NbtElement  |           |<br \/>\n| String   |             |           |<br \/>\n| Char     |             |           |<br \/>\n| Date     |             |           |<br \/>\n| Color    |             |           |<br \/>\n| UUID     |             |           |<br \/>\n| URI      |             |           |<br \/>\n| URL      |             |           |<\/p>\n<p>You can also add your own custom types as seen here:<\/p>\n<p># Setup<br \/>\nIn your build.gradle include:<br \/>\n&#8220;` gradle<br \/>\nrepositories {<br \/>\n    maven { url &#8220;https:\/\/api.modrinth.com\/maven&#8221; }<br \/>\n}<\/p>\n<p>dependencies {<br \/>\n  modImplementation(&#8220;maven.modrinth:sqlib:3.2.2&#8221;)<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p># Developer Usage<br \/>\nThis example uses the built-in database managed by sqlib. for 99% of mods, using the built-in database is good, however<br \/>\nfurther down are examples for custom database management.<br \/>\n&#8220;`java<br \/>\n\/\/ Do not call SQLib.getDatabase() in a early mod initializer. Doing so will likely crash your mod.<br \/>\n\/\/ Calling in or after the regular mod initializer is ok.<br \/>\nDatabase db = SQLib.getDatabase();<\/p>\n<p>DataStore store = db.dataStore(&#8220;myModId&#8221;, &#8220;userdata&#8221;);<\/p>\n<p>DataContainer playerData = store.createDataContainer();<br \/>\nplayerData.put(JavaTypes.STRING, &#8220;username&#8221;, &#8220;CoolGuy123&#8221;);<br \/>\nplayerData.put(MinecraftTypes.BLOCKPOS, &#8220;home&#8221;, new BlockPos(304, 62, 37));<br \/>\nplayerData.put(MinecraftTypes.NBT, &#8220;nbt&#8221;, new NbtCompound());<\/p>\n<p>System.out.println(playerdata.get(JavaTypes.STRING, &#8220;username&#8221;));<br \/>\nSystem.out.println(playerdata.get(MinecraftTypes.BLOCKPOS, &#8220;home&#8221;));<br \/>\nSystem.out.println(playerdata.get(MinecraftTypes.NBT, &#8220;nbt&#8221;));<br \/>\n&#8220;`<\/p>\n<p># Custom Database Management<br \/>\n&#8220;`java<br \/>\nPostgres db = new Postgres(&#8220;name&#8221;, &#8220;192.168.1.69&#8221;, &#8220;3306&#8221;, &#8220;cooluser&#8221;, &#8220;radman&#8221;);<br \/>\n\/\/ OR<br \/>\nMySQL db = new MySQL(&#8220;name&#8221;, &#8220;192.168.1.69&#8221;, &#8220;3306&#8221;, &#8220;cooluser&#8221;, &#8220;radman&#8221;);<br \/>\n\/\/ OR<br \/>\nSQLite db = new SQLite(&#8220;name&#8221;, &#8220;some\/dir&#8221;);<br \/>\n&#8220;`<\/p>\n<p># Transaction Support<br \/>\nThis approach will bach sql commands into one command for faster read\/writes of large amounts of data.<br \/>\n&#8220;`java<br \/>\nDataStore store = db.dataStore(&#8220;modId&#8221;, &#8220;userdata&#8221;);<\/p>\n<p>DataContainer playerData = table.createDataContainer();<br \/>\nplayerData.transaction().put(&#8220;username&#8221;, &#8220;CoolGuy123&#8221;).put(&#8220;home&#8221;, new BlockPos(304, 62, 37).commit();<br \/>\n&#8220;`<\/p>\n<p># Custom Types<br \/>\nYou can add a custom type by following the implentations in `JavaTypes`, `MinecraftTypes` and `AdventureTypes`. Then you can use it like any other native SQLib type.<br \/>\n&#8220;`java<br \/>\n\/\/ The SQLPrimitive is the base type to serialize to, and the two function lambdas are to serialize and deserialize from it<br \/>\npublic static final SQLibType<JsonElement> JSON = new SQLibType<>(SQLPrimitive.STRING, JsonElement::toString, JsonParser::parseString);<\/p>\n<p>\/\/ You can also extend a type like this:<br \/>\npublic static final SQLibType<Identifier> IDENTIFIER = new SQLibType<>(SQLPrimitive.STRING, Identifier::toString, Identifier::tryParse);<br \/>\npublic static final SQLibType<SoundEvent> SOUND = new SQLibType<>(IDENTIFIER, SoundEvent::getId, SoundEvent::of);<br \/>\n&#8220;`<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The easiest way to store data for all your minecraft needs!<\/p>\n","protected":false},"featured_media":147481,"template":"","meta":{"_minecraft_slug":"sqlib","_minecraft_project_id":"IM84wwxs","_minecraft_author":"mrnavastar","_minecraft_license":"CC0-1.0","_minecraft_downloads":10599,"_minecraft_follows":32,"_minecraft_client_side":"optional","_minecraft_server_side":"optional","_minecraft_storage_type":"zip","_minecraft_archive_name":"sqlib.zip","_minecraft_size_bytes":441209071,"_minecraft_version_count":67,"_minecraft_updated_at":"2026-05-16T01:53:44.715670Z","_minecraft_date_created":"2023-05-02T22:22:35.229563Z","_minecraft_date_modified":"2025-03-21T15:20:51.459119Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/sqlib","_minecraft_icon_attachment_id":147481,"_minecraft_imported_at":"2026-06-08T20:22:50+00:00","_minecraft_import_hash":"684d3ed7b876591ce6fe678430e9dbaa","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[97,873,126,98,123,985],"mod_loader":[99,100,986],"minecraft_version":[48,49,50,51,52,53,54,55,56,57,58,59,36,60,93,94,101,102,62,37,40,41,73,74,38,78,79,80,81,82],"class_list":["post-147480","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-fabric","mod_category-library","mod_category-management","mod_category-quilt","mod_category-technology","mod_category-velocity","mod_loader-fabric","mod_loader-quilt","mod_loader-velocity","minecraft_version-1-16-5","minecraft_version-1-17","minecraft_version-1-17-1","minecraft_version-1-18","minecraft_version-1-18-1","minecraft_version-1-18-2","minecraft_version-1-19","minecraft_version-1-19-1","minecraft_version-1-19-2","minecraft_version-1-19-3","minecraft_version-1-19-4","minecraft_version-1-20","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","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>SQLib - 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\/sqlib\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQLib - Minecraft\" \/>\n<meta property=\"og:description\" content=\"The easiest way to store data for all your minecraft needs!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/sqlib\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta property=\"og:image\" content=\"https:\/\/raw.githubusercontent.com\/MrNavaStar\/SQLib\/master\/src\/main\/resources\/assets\/sqlib\/icon.png\" \/>\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\\\/sqlib\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/sqlib\\\/\",\"name\":\"SQLib - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/sqlib\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/sqlib\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/sqlib-icon-f3cb0f690a669fa723aea3d0999457245e82b171.png\",\"datePublished\":\"2026-06-08T20:22:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/sqlib\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/sqlib\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/sqlib\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/sqlib-icon-f3cb0f690a669fa723aea3d0999457245e82b171.png\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/sqlib-icon-f3cb0f690a669fa723aea3d0999457245e82b171.png\",\"width\":1024,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/sqlib\\\/#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\":\"SQLib\"}]},{\"@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":"SQLib - 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\/sqlib\/","og_locale":"en_US","og_type":"article","og_title":"SQLib - Minecraft","og_description":"The easiest way to store data for all your minecraft needs!","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/sqlib\/","og_site_name":"Minecraft","og_image":[{"url":"https:\/\/raw.githubusercontent.com\/MrNavaStar\/SQLib\/master\/src\/main\/resources\/assets\/sqlib\/icon.png","type":"","width":"","height":""}],"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\/sqlib\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/sqlib\/","name":"SQLib - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/sqlib\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/sqlib\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/sqlib-icon-f3cb0f690a669fa723aea3d0999457245e82b171.png","datePublished":"2026-06-08T20:22:48+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/sqlib\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/sqlib\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/sqlib\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/sqlib-icon-f3cb0f690a669fa723aea3d0999457245e82b171.png","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/sqlib-icon-f3cb0f690a669fa723aea3d0999457245e82b171.png","width":1024,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/sqlib\/#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":"SQLib"}]},{"@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\/147480","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\/147481"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=147480"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=147480"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=147480"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=147480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}