Skip to content
/ Toki Public

A Paper fork providing a Fabric-based modding platform.

License

Notifications You must be signed in to change notification settings

TetraTau/Toki

Repository files navigation

Toki

Toki is a Paper fork which provides a Fabric-based modding platform for developers.

Join discord for discussion

State

Everything is still WIP, but all Fabric loader functionality works. There is a Gradle plugin for developers to develop mods for this platform.
If you're a developer and interested in the mixin usage, see the Toki example mod. See TODOs / Plans for more info about the state.

Download

For now you can download builds only from our Github releases

Q & A

Q: Will my fabric mod X work on it?
A: No, as far as mod developer didn't port their mod on this platform.

Q: Why it doesn't allow to launch already existing Fabric mods?
A: It is so unlikely that already exisiting mods will work, Paper makes so many changes so they break mods. (Though, if you are a developer and you have knowledge of mapping generation, you can discuss adding remapping of mods from intermediary to spigot as an experimental feature for this project.)

How to build

Generally, the build process the same as Paper's, except you also need to run ./gradlew applyFabricLoaderPatches and ./gradlew applyPaperclipPatches.

git clone https://github.com/TetraTau/Toki.git
./gradlew applyPatches
./gradlew applyFabricLoaderPatches
./gradlew applyPaperclipPatches
  For producion: (spigot mappings)
./gradlew createReobfPaperclipJar
  For testing: (mojang mappings)
./gradlew createMojmapBundlerJar

TODOs / Plans

  • Implement Fabric Loader on top of Paper.
  • Create a Gradle plugin for developers to be able to develop mods with this project.
  • Create a Toki API which has a compatibility with the Fabric API on the client side. (Registry sync)
  • Make Bukkit API flexible enough to handle modded content.

How it works?

This project patches Paperclip to support Fabric Loader. Patched Paperclip contains patched Fabric Loader jar, then it extracts it and installs needed libraries, then it makes patched Paper server jar and launches patched Fabric Loader telling it to start the patched server Jar. Patched Fabric Loader has changes in Knot classpath libraries, because Paper ships additional libraries and we need to tell Fabric Loader to load them, and also it has changes in the entrypoint patch, because CraftBukkit drastically changes net.minecraft.server.Main.