3.0.2
Compatibility
Changes
KeepInventoryShop v3.0.2 Changelog
New Features
Multi-Currency Support
Players can now pay for lives and upgrades using three different currencies:
- Server Economy (default): Uses your Vault-compatible economy plugin
- Emeralds: Pay with emeralds from your inventory
- XP Levels: Pay with experience levels
How it works:
- In the Buy Lives and Upgrade GUIs, the top row now shows currency selector buttons
- Click a currency to switch to it (selected currency is highlighted)
- The cart and confirm button automatically update to show costs in your selected currency
- Costs are calculated relative to the money price using configurable exchange rates
New Config Options:
# Allow players to pay with emeralds instead of money
allow-emerald-payment: true
# Allow players to pay with XP levels instead of money
allow-xp-payment: true
# How much money 1 emerald is worth
# Example: If emerald-value is 100 and cost-per-life is 500, one life costs 5 emeralds
emerald-value: 100
# How much money 1 XP level is worth
# Example: If xp-level-value is 50 and cost-per-life is 500, one life costs 10 XP levels
xp-level-value: 50
Server owners can disable either alternative currency by setting allow-emerald-payment: false or allow-xp-payment: false.
Bug Fixes
Admin GUI Reload Button
- Fixed the reload button in the Admin Panel not working
- The reload button now properly reloads both
config.ymlandmessages.yml - Shows confirmation message after reload
Technical Changes
- Updated Buy and Upgrade GUIs to 54-slot layout (6 rows) to accommodate currency selector
- Added currency selection persistence per player session
- Added helper methods for currency conversion, balance checking, and withdrawals
- Dynamic slot calculation for Admin GUI to support variable inventory sizes
Full Compatibility: Minecraft 1.21.0 - 1.21.11
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:FaUbpMea:WGx20V16"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:FaUbpMea:WGx20V16"
}

