v1.2.0
Compatibility
Changes
๐๏ธ Multiple Storage Backends
New: YAML / SQLite / MySQL storage
Select your storage backend in config.yml under storage.type:
| Backend | Description |
|---|---|
yaml |
Default. Per-player .yml files in playerdata/. Zero setup required. |
sqlite |
Single embedded database file (homes.db). No external dependencies. Recommended for mid-size servers. |
mysql |
External MySQL or MariaDB server with full HikariCP connection pooling. For large networks. |
All three backends are bundled inside the JAR so no extra JARs to install.
Auto-migration (storage.auto-migrate: true)
Switch backends without losing data. On the next server start, Homes automatically reads all existing YAML player files and imports them into the new backend, then marks the source files as migrated.
SQLite specifics
- Uses WAL journal mode for better concurrent read performance
- Pool size locked to 1 (SQLite supports only one writer at a time)
- No external server or credentials required
MySQL/MariaDB specifics
- Full HikariCP connection pool (configurable size, timeouts, idle settings)
ON DUPLICATE KEY UPDATEfor safe upserts- Configurable table prefix (safe to share a database with other plugins)
- Tables created automatically on first start
New config section
storage:
type: yaml # yaml | sqlite | mysql
auto-migrate: true
sqlite:
file: homes.db
mysql:
host: localhost
port: 3306
database: homes
username: root
password: ""
table-prefix: homes_
pool:
maximum-pool-size: 10
minimum-idle: 2
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000
๐ Broad Server Compatibility (1.13 โ Latest)
Spigot, Paper, and Bukkit support
- Compiled against Spigot API 1.13.2 โ runs on Spigot, Paper, and any fork
Java requirement
- Minimum: Java 17
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:VWlsaAvU:aYZ8FyON"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:VWlsaAvU:aYZ8FyON"
}

