This thread is the result of a chat in #general . The observation comes from Pumpkin's website saying that Pumpkin has a Comprehensive Developer API, while other Minecraft server software don't.
This idea does not refer to modding minecraft, or adding support to Fabric and Forge. **But modding the server itself, modding Pumpkin's internal logic. **
Apparently, it's not possible to mod program developed in Rust. So this suggestion is about discussing about the concept of patches. Patches would be "mods applied to pumpkin at compile time", it wouldn't be meant to replace plugins, it's meant to prevent forking. Instead of shattering a community by forks, like what happened with Bukkit/spigot/paper, we could give the advantage of forking to "patches". That way, we could still be able to build great things around the same big project: Pumpkin; instead of being in a situation where everyone fork pumpkin.
For example, a fork would be able to
- reimplement different part of Pumpkin, like change Entities' AI behaviors, or make changes to the files in the
assetsfolder. - Forks like purpur (disabling or customizing a lot of minecraft's default behavior via config files) could be a patch.
- Minigame servers could be able to stop/delete behaviors they don't need without forking the whole thing (natural mob spawning, world generation, nether and the end dimension, disabling block placement without overusing events to block them)
It would also solve a problem we have: there's a lot of suggestions people make on this server that relies on internal logic, and it doesn't make sense to make this feature accessible from the plugin API. For example, the ability to customize the knockbacks for pvp servers, it wouldn't be a good idea to make knockback customizable from the plugin api because multiple plugin would be able to change it and cause conflict. And reacting to events to add or remove knockbacks has a performance impact. It could be handled via a "patch".