Tags
Creators
Details
2.1.0
Compatibility
Changes
kWelcome 2.1.0
This update greatly expands version support and makes kWelcome more reliable for established servers.
One download for many Paper versions
You can now use the same kWelcome JAR on:
- Paper 1.18 through 1.21.11
- Paper 26.1.x
- Paper 26.2
There is no need to download a separate build for each Minecraft version.
More accurate first-join messages
kWelcome now checks whether someone is truly joining the server for the first time.
Previously, players who had joined before kWelcome was installed could receive the first-join message because they were missing from players.yml. Existing players will now receive the normal join message, while actually new players will receive the first-join message.
Smoother player joins
Player data is no longer written to disk every time someone joins. Changes are collected and saved once per minute, when the plugin is reloaded, and when the server shuts down.
This reduces unnecessary disk activity on busy servers. If saving fails, kWelcome keeps the pending data in memory, reports the problem in the console, and avoids replacing it during a reload.
Easier command use
The /kwelcome reload command now supports tab completion for players and console senders with permission to use it.
Safer custom messages
Player names and other placeholder values are inserted as plain text. They cannot be used to add unexpected MiniMessage colors or formatting.
MiniMessage formatting continues to work normally in messages.yml across all supported versions.
Updating
- Stop the server.
- Replace the old kWelcome JAR with version 2.1.0.
- Start the server again.
Your existing config.yml, messages.yml, and players.yml files will continue to work. No configuration reset is required.
Java requirements
| Paper version | Java version |
|---|---|
| 1.18 through 1.19.4 | Java 17 |
| 1.20 through 1.21.11 | Java 21 |
| 26.1.x and 26.2 | Java 25 |
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:p0xJ32Dk:aLrbmBNF"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:p0xJ32Dk:aLrbmBNF"
}

