[API 4.1.0/5.0.0/6.0.0] KatLib - A Scala Sponge library


KatLib is library that I personally use to make making plugins for Sponge easier. It contains shaded common libraries and Scala. Most plugins I make from now on will require KatLib.


When downloading, make sure to get the right version for the API you’re using.


KatLib offers features like:

  • Classes to reduce boilerplate in the main plugin file
  • Automatically create a plugin command help command
  • Help keep order on Configurate stuff
  • Shorthand for creating Text objects

I think Plugins/Resources is a more relevant category for this :slight_smile:

Oh, ok, was a bit unsure about that as this does have it’s own @Plugin annotation.

True, the way I see it is whether it’s main benefit is for server admins/players or for plugin devs. This is best categorized as a developer resource.

The fact that Katrix’s other plugins requires it, makes me think it’s better off in plugin releases, so end users can find and install it easier.

To fix the ‘pretty syntax’ thing in Implicits, why not use the update() method?

KatLib 2.0.0

  • Now uses Scala 2.12
  • Now includes shapeless
  • Now (officially) supports SpongeAPI 6.0.0
  • Because of shapeless, now provides a TypeSerializer for all case classes
  • Overhaul for configs
  • typeToken implicit is now provided with a macro to be correct hopefully in all instances
  • Redid and fixed help command
  • Many small changes
  • Lots of bugfixes

Note: If you are going to rename the file, be aware of the fact that KatLib is very picky about when it’s loaded by forge. To load correctly, it should come before all plugins that depend on it alphabetically. KatLib by default solves this by including a zero length whitespace as the first character of it’s filename.


Plugins that use KatLib 1.x won’t work with KatLib 2.x (not might not work, simply won’t work. That goes for ALL plugins. Period.)

I’ll release updates for my existing plugins soon enough.

KatLib 2.0.1

  • Made typeToken macro more aware of wrong use
  • Use default config value of no value is found
  • Create config files if they aren’t found
  • Fix misc errors in TyperSerializerImpl
  • Changed filename to use normal character, more reliable