View hymod Development Progress:
Hymod is a command-line toolkit for Hytale mod developers who want a fast build-and-deploy loop.
- Scaffold new mods with
hymod new - Build mod artifacts with
hymod build - Link artifacts into local servers with
hymod link - Run an end-to-end dev loop with
hymod dev - Deploy mods to remote servers with
hymod deploy
- Hytale server owners
- Java/Rust mod developers
- Teams that want repeatable mod build and deployment workflows
hymod is strictly open source software.
-
The Tool: GPLv3. Free forever. If you modify the
hymodsource code, you must share your changes. -
Your Mods: MIT-0. 100% yours. The code generated by
hymod newis not covered by the GPLv3. You can release your mods under any license you want (closed source, MIT, etc) and you do not need to attributehymod.
Test coverage is automatically generated and published to GitHub Pages on every push to the master branch. The coverage report provides detailed line-by-line coverage information for all crates in the workspace.
This workspace contains:
- core: Core functionality and shared types
- features: Feature-specific crates
- cli: Command-line interface
cargo test --all-features --workspaceInstall cargo-llvm-cov:
cargo install cargo-llvm-covGenerate an HTML coverage report:
cargo llvm-cov --all-features --workspace --htmlThe report will be generated in ./target/llvm-cov/html/index.html.
Global settings are stored in ~/.hymod/config.yaml. These provide defaults for the hymod new command.
| Option | Type | Default | Description |
|---|---|---|---|
author |
String | None | Default author name for new mods. |
username |
String | None | System username replacement (e.g. for local.properties). |
group |
String | None | Default package group prefix (e.g., com.yourname). |
version |
String | None | Default initial version for new mods (e.g., 1.0.0). |
description |
String | None | Default description for new mods. |
Server definitions are stored in ~/.hymod/servers.d/<name>.yaml. These define connection and deployment details for Hytale servers.
| Option | Type | Default | Description |
|---|---|---|---|
server.name |
String | Required | Unique name for the server configuration. |
server.kind |
String | Required | Server type: local or ssh. |
server.server_root |
String | Required | Absolute path to the server root directory. |
server.mods_dir |
String | Required | Path to the mods directory (relative to server_root or absolute). |
server.restart.cmd |
String | Required | Command to restart the server (e.g., systemctl restart hytale). |
server.ssh.host |
String | Required (SSH) | Hostname or IP address for SSH connection. |
server.ssh.user |
String | Required (SSH) | Username for SSH connection. |
server.ssh.port |
Number | 22 |
Port for SSH connection. |
server.ssh.identity_file |
String | None | Path to private key file for SSH authentication. |
server.ssh.known_hosts_file |
String | None | Path to custom known_hosts file. |
server.upload.method |
String | Required | Upload method: rsync or scp. |
server.upload.rsync.opts |
String | None | Additional options for rsync command. |
server.upload.scp.opts |
String | None | Additional options for scp command. |
Project-specific settings are stored in hymod.yaml in the root of your mod project.
| Option | Type | Default | Description |
|---|---|---|---|
schema_version |
Integer | 1 |
Schema version of the configuration file. |
mod.id |
String | Required | Unique identifier for the mod (e.g., my-mod). |
mod.name |
String | Required | Human-readable name of the mod. |
mod.version |
String | Required | Current version of the mod (SemVer). |
mod.entrypoint |
String | Required | Main class or entrypoint for the mod. |
defaults.server |
String | None | Default server to use for dev, deploy, and link commands if --server is not specified. |
build.gradle.tasks |
List | ["build"] |
List of Gradle tasks to execute during build. |
build.gradle.artifact_path |
String | None | Path to the build artifact (relative to project root). Overrides default detection. |