AstraTemplate
by makeevrserg
AstraTemplate is a Kotlin starter template for building one codebase that targets Paper, Forge and Fabric servers and clients.
What it does
The template is organized as modules with a lifecycle-driven architecture, so one shared codebase runs across Paper, Forge and NeoForge. Only the instance module knows about a specific platform, and it builds a fat jar with ShadowJar. Every other module is either platform-agnostic or clearly named as a platform variant. The core module provides config, translations and coroutine scopes, and other modules depend on it.
Developers can use the template as a base for their own plugins or mods. Config is stored as a typed object in config.yml, translations work the same way through translation.yml, and a default value works out of the box when the files are present. A local database layer built on Exposed ORM switches between H2, SQLite, MySQL and MariaDB through a single line of config, and a Ktor-based REST client shows how to fetch data from an external HTTP endpoint, returning Result values instead of throwing errors.
Required dependencies are Fabric API and Fabric Language Kotlin. The project is released under the MIT License and is open source. Files are published for Fabric and Forge across 28 release versions, 1.15.2 – 1.21.3, and the latest builds for both loaders are 8.0.0-alpha01 for 1.21, an alpha channel release dated 2025-11-07.
Key features
Modular lifecycle architecture
Modules follow a lifecycle-driven structure, separating platform-agnostic code from named platform variants.
Typed configuration
A typed object is written to config.yml, and a reloadable state flow lets changes apply without a restart.
Local database access
Suspend CRUD functions over user tables sit on Exposed ORM, with the connection chosen from config at runtime.
Cross-platform commands
Commands are defined once with the Brigadier DSL and adapted to each platform at the root module level.
Paginated chest GUI
A Bukkit chest GUI is driven by a state flow and re-renders automatically whenever its state changes, with stubs for other platforms.
Compatibility
Latest build for each game version and loader.
1.21.x4 of 4 versions with builds
1.20.x7 of 7 versions with builds
1.19.x5 of 5 versions with builds
1.18.x3 of 3 versions with builds
1.17.x2 of 2 versions with builds
1.16.x6 of 6 versions with builds
Only full game releases are shown. This mod publishes no snapshot builds.
Requirements
Dependencies declared by the latest file for each loader.
Required 2
Use cases
Who it’s for: The template suits Kotlin developers who write Minecraft plugins or mods for more than one server or loader and want shared configuration, translations, database access and commands in one codebase.
Questions
Does AstraTemplate need Fabric API on Forge?
Which databases does the local module support?
Is the template stable for production use?
In the catalog
AstraTemplate is one of 4,058 Storage mods on ModsFinder, and one of 2,474 Storage mods for Fabric. 13,252 mods support Minecraft 1.21.3.
More from makeevrserg
Similar mods
What the author says
A production-grade Minecraft plugin/mod template written in Kotlin. Provides a modular, lifecycle-driven architecture that runs across Paper, Forge, and NeoForge from a single shared codebase. Each instances/ builds a fat jar via ShadowJar and is the only place that knows about a specific platform. Everything in…
Official listing
- Modrinth page
- modrinth.com/mod/astratemplate
- Owner
- makeevrserg
- Published
- 2023-04-21
- Updated on Modrinth
- 2025-11-07
- Facts verified
- 2026-10-15
