With FancyVerteiler, you can deploy Minecraft and Hytale plugins to multiple platforms at once via GitHub Actions or the standalone app.
- Configure multiple platforms in a single JSON configuration file.
- Automatically read version and changelog from files.
- Send notifications to a Discord channel via webhook.
Supported Minecraft plugin platforms:
Supported Hytale plugin platforms:
Include the following in your GitHub Actions workflow:
- uses: fancyinnovations/fancyverteiler@main
with:
config_path: "plugins/fancynpcs/release_deployment_config.json"
commit_sha: "see example for git integration below"
commit_message: "see example for git integration below"
fancyspaces_api_key: ${{ secrets.FANCYSPACES_API_KEY }}
modrinth_api_key: ${{ secrets.MODRINTH_API_KEY }}
curseforge_api_key: ${{ secrets.CURSEFORGE_API_KEY }}
orbis_api_key: ${{ secrets.ORBIS_API_KEY }}
modtale_api_key: ${{ secrets.MODTALE_API_KEY }}
unifiedhytale_api_key: ${{ secrets.UNIFIEDHYTALE_API_KEY }}
hytahub_api_key: ${{ secrets.HYTAHUB_API_KEY }}
discord_webhook_url: ${{ secrets.DISCORD_WEBHOOK_URL }}Inputs:
config_path(required): Path to the JSON configuration file for FancyVerteiler.commit_sha(optional): The commit SHA to replace in the changelog.commit_message(optional): The commit message to replace in the changelog.<platform>_api_keyis only required if you want to publish to .
Example json config:
{
"project_name": "FancyNpcs",
"plugin_jar_path": "./plugins/fancynpcs/build/libs/FancyNpcs-%VERSION%.jar",
"changelog_path": "./plugins/fancynpcs/CHANGELOG.md",
"version_path": "./plugins/fancynpcs/VERSION",
"fancyspaces": {
"space_id": "fn",
"platform": "paper",
"channel": "release",
"supported_versions": [ "1.21.10", "1.21.11" ]
},
"modrinth": {
"project_id": "EeyAn23L",
"supported_versions": [ "1.21.10", "1.21.11" ],
"channel": "release",
"loaders": [ "paper", "folia" ],
"featured": true
},
"curseforge": {
"project_id": "123456",
"type": "plugin",
"game_versions": [ "1.21.10", "1.21.11" ],
"release_type": "release"
},
"orbis": {
"resource_id": "1234",
"channel": "RELEASE",
"hytale_version_ids": [ "cmj1x42ef001k4qz9r03ojrpe" ]
},
"modtale": {
"project_id": "abcdef123456",
"channel": "RELEASE",
"game_versions": [ "2026.12.02.12312313" ]
},
"unifiedhytale": {
"project_id": "abcdef123456",
"game_versions": [ "2026.12.02.12312313" ],
"release_channel": "release"
},
"hytahub": {
"slug": "mymode",
"channel": "release"
}
}To automatically get the last commit SHA and message from git, you can add the following steps before the FancyVerteiler step:
- name: Get last commit SHA and message
id: last_commit
run: |
{
echo "commit_sha=$(git rev-parse --short HEAD)"
echo "commit_msg<<EOF"
git log -1 --pretty=%B
echo "EOF"
} >> "$GITHUB_OUTPUT"
- name: Deploy
uses: fancyinnovations/fancyverteiler@main
with:
config_path: "/plugins/fancynpcs/release_deployment_config.json"
commit_sha: ${{ steps.last_commit.outputs.commit_sha }}
commit_message: ${{ steps.last_commit.outputs.commit_msg }}
modrinth_api_key: ${{ secrets.MODRINTH_API_KEY }}
discord_webhook_url: ${{ secrets.DISCORD_WEBHOOK_URL }}
This will replace %COMMIT_HASH% and %COMMIT_MESSAGE% in the changelog with the actual commit hash and message.
You can also run FancyVerteiler as a standalone app. Everything works the same way as in GitHub Actions, but you need to provide the inputs as environment variables.
Environment variables:
FV_CONFIG_PATHFV_DISCORD_WEBHOOK_URLFV_COMMIT_SHAFV_MESSAGE_SHAFV_{PLATFORM}_API_KEY(example:FV_FANCYSPACES_API_KEY)
You can download the latest version of the standalone app from FancySpaces.