## Kaioken could be taken for free without earning it
**Double clicking Kaioken in the skills menu granted its first level for nothing.** That first rung is priced as not-for-sale on purpose, because it is meant to come from the master, and DragonMineZ refuses to sell it. Our own buy path, which exists because DragonMineZ's handler declines these skills, read that not-for-sale marker as a price of zero and granted the skill anyway.
A rung marked not-for-sale is now refused, with a message telling the player to earn it from the master. That closes both halves at once: the rung is no longer free, and it can no longer be bought at all. It applies to any skill rung marked that way, and the Ultimate unlock keeps its own clearer message.
A successful skill purchase is now written to the audit trail, naming the player, the skill, the new level and what they paid. There was no record of these before.
## Player vault limits did nothing
**Every player could open 50 vaults regardless of rank.** The vault count is meant to come from a per-rank value, and it was being overruled by an older style of per-count permission that nobody had set. An unset permission of that kind reads as allowed rather than denied, so the check passed for the highest count every time and the configured rank values could never win.
The count now comes only from the per-rank value. Nothing was lost by removing the old path: there was not a single one of those per-count permissions stored anywhere. Ranks without a value fall back to one vault, so any rank that should have more needs its value set.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }