Creating Modpacks with Voodoo requires minimal effort, just create one .kt
definition per modpack
You can Test Any pack in MultiMC, creating a instance and launching it is completely automated, no more clicking than necessary
Modern Minecraft versions (1.6.+) and Forge are supported (older versions do not have mods on curseforge)
packages to SKCraft Launcher Pack Format
No Rehosting of Mods! completely automated by preparing .url.txt
files for SKLauncher
Reproducability: with a modpacks .lock.hjson
file and src
folder you can reproduce the modpack on any platform, server install or local testing
(given that the urls do not get taken down or redirect anywhere else)
Minimalistic Packs: on all platforms that support it (SK and the multimc-wrapper) mods will be downloaded by the user from the original location,
Want to make a modpack ? quickly test locally and then make it available on multiple platforms for users ?
voodoo is a set of tools to quickly prepare, build, test and deploy modpacks to users and servers
Voodoo might be for you if:
✔️ You want a fast and mostly automated process
✔️ You want to be able to update the modpack whenever you want
✔️ You don't want to depend on anyone else
or
✔️ You already use SKCraft Launcher
It may not be for you if:
🔸 You do not feel comfortable using a shell
🔸 You do not feel comfortable using a IDE or text editor with syntax highlighting
🔸 You don't have a website or place for people to download files from
and do not want to publish files to curse
🔸 You don't want anything to do with distributing the launcher or pack
This applies to different modules of voodoo individually.. without a place to host files you can still export a pack and upload it to curse, it will just be a much slower process due to approval and waiting time
https://elytra.github.io/Voodoo
when building locally you can use a development version of voodoo from mavenLocal
dependencies {
mavenLocal()
}
unix: ./gradlew publishToMavenLocal
windows: ./gradlew.bat publishToMavenLocal
use -dev
on the plugin version and add mavenLocal()
to the dependencies of plugins and in the main buildscript
build.gradle.kts
settings.gradle.kts
for all tasks shortcuts can be registered in the build.gradle.kts
voodoo {
addTask(name = "rebuildAndTestMMC", parameters = listOf("build", "test mmc"))
addTask(name = "build", parameters = listOf("build"))
addTask(name = "sk", parameters = listOf("pack sk"))
addTask(name = "server", parameters = listOf("pack server"))
addTask(name = "buildAndPackAll", parameters = listOf("build", "pack sk", "pack server", "pack mmc"))
}
these tasks will be registered for each modpack, eg cotm_rebuildAndTestMMC
would
execute cotm to build the pack and then open the multimc5 test client
examples based on Center of the Multiverse
Learn how to define your $pack.kt
in docs/setup
other samples: samples
create a server package
./gradlew cotm pack server -o ".server"
that creates a server package in .server/
- upload that package to different folder on your minecraft server
- stop the minecraft server and
- execute the server installer with the actual location of your minecraft server installation
eg.java -jar server-installer ../actualServer
this will:
- update configs/files
- install mods
- install/update forge
- create
forge.jar
To run a test instance use
./gradlew cotm test mmc
to compile a minimalistic MMC pack that selfupdates using the skcraft data
./gradlew cotm pack mmc
this expects a file multimc/${packname}.url.txt
that points at the previously uploaded skcraft pack
more specifically the json file of the pack
Voodoo is available on the elytradev maven (recommended usage is via gradle plugin, see docs/setup ) gradle:
repositories {
maven(url = "https://repo.elytradev.com") { name = "elytradev" }
maven(url = "https://dl.bintray.com/kotlin/kotlin-eap/") { name = "Kotlin EAP" }
maven(url = "https://kotlin.bintray.com/kotlinx") { name = "kotlinx" }
maven(url = "https://jitpack.io") {name = "jitpack" }
}
dependencies {
implementation(group = "moe.nikky.voodoo", name = "voodoo", version = "0.4+")
}
for builds not on master add the branch name to the groupId
eg. moe.nikky.voodoo-rewrite
Feel welcome to post ideas and suggestions to our tracker.
More advanced use-cases are (soon to be) documented in the complementary user guide
contact me directly in chat
or on irc #unascribed
@ irc.esper.net