Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/phantomloader/phantomloader
A library to automate part of the process of creating Minecraft mods for multiple mod loaders
https://github.com/phantomloader/phantomloader
fabric fabricmc fabricmod forge forge-mod minecraft minecraft-fabric minecraft-fabric-mod minecraft-forge minecraft-forge-mod minecraft-library minecraft-mod
Last synced: 4 months ago
JSON representation
A library to automate part of the process of creating Minecraft mods for multiple mod loaders
- Host: GitHub
- URL: https://github.com/phantomloader/phantomloader
- Owner: PhantomLoader
- License: apache-2.0
- Created: 2023-12-18T20:55:52.000Z (about 1 year ago)
- Default Branch: 1.20.1
- Last Pushed: 2024-01-21T16:26:16.000Z (about 1 year ago)
- Last Synced: 2024-10-14T06:21:56.203Z (4 months ago)
- Topics: fabric, fabricmc, fabricmod, forge, forge-mod, minecraft, minecraft-fabric, minecraft-fabric-mod, minecraft-forge, minecraft-forge-mod, minecraft-library, minecraft-mod
- Language: Java
- Homepage:
- Size: 639 KB
- Stars: 4
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: readme.md
- Changelog: changelog.md
- Funding: .github/FUNDING.yml
- License: license
Awesome Lists containing this project
README
![Phantom Loader](logo.png)
Phantom Loader is an API that automates part of the process of creating Minecraft mods for multiple mod loaders by generating loader-specific code at build time.
## About
Normally, when creating a mod for both Fabric and Forge, mod developers have to create separate modules for both mod loaders and add loader-specific code that has mostly the same function.
**Phantom Loader** allows you to automatically generate Forge and Fabric initializer classes on build time by keeping all code, or most of the code, in the common module.The **Phantom Library** also takes care of abstracting each mod loader's basic functionalities to allow the developer to only depend on the abstraction from the common module.
### Before:
```
Project
|--common
| |--src/main/java
| | |--common/...
| | |--AbstractRegistry.java
| | |--CommonInit.java
| |--src/main/resources
| | |--assets/...
| | |--data/...
| |--build.gradle
|--fabric
| |--src/main/java
| | |--FabricRegistry.java
| | |--FabricInitializer.java
| |--src/main/resources
| | |--fabric.mod.json
| |--build.gradle
|--forge
|--src/main/java
| |--ForgeRegistry.java
| |--ForgeInitializer.java
|--src/main/resources
| |--META-INF/mods.toml
|--build.gradle
```### After:
```
Project
|--common
| |--src/main/java
| | |--content/...
| | |--ModRegistry.java
| |--src/main/resource
| | |--assets/...
| | |--data/...
| |--build.gradle
|--fabric
| |--build.gradle
|--forge
|--build.gradle
```## For developers
Documentation for setting up and using **Phantom Loader** can be found on the [Wiki](https://github.com/PhantomLoader/PhantomLoader/wiki).
An example mod using **Phantom Loader** can be found [here](https://github.com/PhantomLoader/ExampleMod).
## Credits
Author: [HexagonNico](https://github.com/HexagonNico)
## License
This software is licensed under the [Apache License 2.0](license)