Cubyz
Cubyz copied to clipboard
Comptime Modding Framework
As discussed in #1507
- [ ] Automatically load list of all moddable interfaces (currently present as
_list.zig) from a common (mods) folder - [ ] Create a registry that contains a list of trusted mods with name, author, link, and a secure hash of the source code
- [ ] Create a launcher that automatically downloads and compiles mods from the registry when entering the world or joining a server (requires #1483)
- [ ] Create documentation on how modding works, how to make a mod, how to add it to the registry, how to create your own registry, how to install a mod, basic rules how to avoid catching a virus
Trivially moddable systems (just extend list of structs we are loading):
- rotations (#1509)
- block entities (requires changing loading code)
- entity components
- entity systems
- UI
- simple structures
- server commands
Non-trivially moddable systems (require extending or changing the design):
- items / tools
- rendering
We may also consider adding more general hooks, eg. init, deinit, playerConnected, playerDisconnected, chunkLoaded, chunkSerialized to allow implementing global features, mini games or whatever.
Non-trivially moddable systems (require extending or changing the design):
Should be tracked separately, it is outside the scope of this issue to add/design new moddable interfaces.
Should I create It?
Do we want to create the registry system from ground up or base it on existing protocols and tools (eg. git?)
Should I create It?
yes, but only for those features that you actually would want yourself. We shouldn't make everything accessible to mods for no reason.
Do we want to create the registry system from ground up or base it on existing protocols and tools (eg. git?)
Well that is something worth investigating