premium banner
Blazing Fast Mod Manager powered by nyoCF API - checks ALL mods in ~50ms with full in-game UI for install, version selection and management.

Description

NyoUpdates

NyoUpdates is the fastest mod manager for Hytale. It uses the nyoCF API, a dedicated Hytale mod database that synchronizes with CurseForge significantly faster than other APIs. Update checks that take ~50ms instead of 50+ seconds.

Performance

The nyoCF API is optimized specifically for Hytale mod management:

  • Bulk endpoint checks ALL installed mods in a single HTTP request
  • Response time typically under 100ms for 200+ mods
  • Database synchronizes with CurseForge faster than CFWidget or others
  • Automatic fallback to CFWidget if the primary API is unavailable
  • No API key required

In-Game UI

Version 2.0 introduces a complete in-game interface for mod management:

  • Open with /upd ui
  • Browse installed mods with update status
  • Search and install mods directly from CurseForge
  • Select specific versions to install (not just latest)
  • Enable/disable mods without leaving the game
  • Ignore mods from update checks
  • Configure plugin settings visually

The UI displays mod icons, version history, release types, and file sizes. Version changes are staged as pending updates and applied on restart.

How It Works

  1. When the server starts (or when you run /updates check), NyoUpdates scans your mods folder
  2. It sends a single bulk request to the nyoCF API with all mod information
  3. The API returns update status for all mods at once
  4. Available updates are downloaded to a .updates folder
  5. An apply_updates.bat/sh script is created for manual application
  6. Updates can also be applied automatically via EarlyPlugin on restart

Features

  • Bulk API for fast update checks (~50ms for all mods)
  • In-game UI for mod management, installation, and version selection
  • No API key required
  • Bundle support (extracts mods from zip files with mods/earlyplugins structure)
  • Interactive update script with mod selection
  • Backup system before updating
  • Release type filtering (release, beta, alpha)
  • Ignore list for specific mods
  • Manual CurseForge mapping for edge cases
  • Singleplayer and server support
  • EarlyPlugin for automatic updates on restart

Hosting Service Compatibility

Many hosting services do NOT support the --accept-early-plugins argument required for automatic updates.

NyoUpdates works in MANUAL mode by default, which is compatible with ALL hosting services. Use manual mode and run apply_updates.bat/sh during server maintenance.

Quick Start

Singleplayer / Manual Mode

  1. Install NyoUpdates in your mods/ folder
  2. Start the game - it will check for updates automatically
  3. Use /updates ui to manage mods visually, or /updates check via command
  4. When updates are found, close the game
  5. Go to your mods/.updates folder and double-click apply_updates.bat/sh
  6. Select which mods to update and confirm
  7. Start the game again

Dedicated Servers (Auto Mode)

If you have full control over your server:

  1. Run /updates enable in-game or console
  2. Add --accept-early-plugins to your startup command
  3. Restart the server

Updates will be applied automatically on each restart.

Example startup command:

java -jar HytaleServer.jar --assets Assets.zip --accept-early-plugins

Commands

Command Description
/updates ui Open the in-game mod management interface
/updates check Check for updates and download them
/updates list List all installed mods with IDs
/updates pending Show updates waiting to be applied
/updates status Show detailed plugin status
/updates setup Show setup guide
/updates enable Enable automatic updates via EarlyPlugin
/updates disable Disable automatic updates
/updates ignore <id|name> Ignore a mod from update checks
/updates unignore <id|name> Stop ignoring a mod
/updates mapping add <id|name> <url> Map a mod to a CurseForge project
/updates mapping remove <id|name> Remove a mapping
/updates mapping list Show all CurseForge mappings
/updates lang <locale|list> Change plugin language or list available
/updates cache clear Clear the mod information cache
/updates cache stats View cache statistics
/updates reload Reload configuration
/updates debug info Show system and environment information
/updates debug check Run verbose check with detailed output
/updates debug mods Show detailed information about each mod

Command aliases: /updates, /upd, /nyo

The apply_updates.bat/sh Script

When updates are found, an interactive script is created in your mods folder:

  Updates ready to install:

  [X]  1. GoneFishing -> 0.1.2
  [X]  2. Playtime -> 1.3.0
  [X]  3. HyFixes -> 1.9.7
  [X]  4. [EP] HyFixes (EarlyPlugin) -> 1.9.7
  [ ]  5. SomeMod -> 2.0.0    (deselected)

  [EP] = EarlyPlugin (installed to earlyplugins folder)

  Commands:
    [number]  Toggle specific mod
    [A]       Apply all selected updates
    [S]       Select all  |  [D] Deselect all
    [Q]       Quit without applying

  Enter command: _

Configuration

Config file location: mods/dotJunyo_nyoUpdates/config.json

{
  "autoUpdateOnStartup": true,
  "checkIntervalHours": 12,
  "enableEarlyPlugin": false,
  "maxConcurrentDownloads": 2,
  "createBackups": true,
  "backupRetentionDays": 7,
  "gameVersionFilter": "",
  "releaseTypesAllowed": ["release", "beta"],
  "ignoredMods": [],
  "debugMode": false,
  "notifyOnAvailableUpdates": true,
  "autoRestartAfterUpdate": false,
  "modsFolderPath": "",
  "connectionTimeoutSeconds": 30,
  "readTimeoutSeconds": 60,
  "maxRetries": 3,
  "verifyChecksums": true,
  "curseforgeMapping": {},
  "language": "en-us",
  "enableFallback": true,
  "enableBulkApi": true,
  "betaMessageShown": false
}

Configuration Options

Option Description Default
autoUpdateOnStartup Run update check when the server starts true
checkIntervalHours Hours between periodic update checks 12
enableEarlyPlugin Enable automatic file replacement via EarlyPlugin on restart false
maxConcurrentDownloads Maximum number of parallel downloads 2
createBackups Create backup copies of mods before updating true
backupRetentionDays Number of days to keep old backups before deletion 7
gameVersionFilter Filter updates by Hytale game version (empty = all versions) ""
releaseTypesAllowed Which release types to consider for updates ["release", "beta"]
ignoredMods List of mod slugs or filenames to skip during update checks []
debugMode Enable verbose debug logging false
notifyOnAvailableUpdates Log a message when updates are found true
autoRestartAfterUpdate Create a restart marker file after applying updates false
modsFolderPath Custom path to mods folder (empty = auto-detect) ""
connectionTimeoutSeconds HTTP connection timeout in seconds 30
readTimeoutSeconds HTTP read timeout in seconds 60
maxRetries Number of retry attempts for failed downloads 3
verifyChecksums Verify file integrity after download using checksums true
curseforgeMapping Manual mapping of mod filenames to CurseForge slugs {}
language Language code for plugin messages (e.g., en-us, pt-br, de-de) "en-us"
enableFallback Enable fallback to CFWidget API if nyoCF fails true
enableBulkApi Use the nyoCF bulk API for fast update checks true
betaMessageShown Internal flag to track if beta welcome message was shown false

Translations

NyoUpdates supports multiple languages. Built-in translations:

  • English (en-us) - Default
  • Portuguese (pt-br) - Translation by dotJunyo
  • German (de-de) - Translation by TomberWolf
  • French (fr-fr) - Translation by Kraoc
  • Italian (it-it) - Translation by Lasersonico83
  • Polish (pl-pl) - Translation by Arcadiomo

If you find any issues with these translations, please reach out!

  • Russian (ru-ru) - Translation by dotJunyo (with AI)
  • Spanish (es-es) - Translation by dotJunyo (with AI)

Custom Translations

You can add your own translations:

  1. Create a file named <locale>.json (e.g., es-es.json for Spanish)
  2. Place it in mods/dotJunyo_nyoUpdates/lang/
  3. Use /updates lang list to verify it was detected
  4. Use /updates lang <locale> to activate it

Copy en-us.json as a template for your translation. The file must include the _meta section with language information.

https://tools.junyo.dev/en or https://tools.junyo.dev/pt

Permissions

NyoUpdates uses permission system. By default, all commands require the operator group. For granular control with permission plugins like LuckPerms, use the individual permission nodes below.

Permission Nodes

Permission Command Description
nyoupdates.base /updates Access the base command (required for all subcommands)
nyoupdates.ui /updates ui Open the in-game mod management interface
nyoupdates.check /updates check Manually check for mod updates
nyoupdates.list /updates list List all installed mods with IDs
nyoupdates.pending /updates pending View pending updates waiting to be applied
nyoupdates.done /updates done Dismiss cached update notifications
nyoupdates.info /updates info &amp;lt;mod&amp;gt; Show detailed information about a mod
nyoupdates.status /updates status View detailed plugin status and configuration
nyoupdates.setup /updates setup Display the setup guide for configuration
nyoupdates.enable /updates enable Enable automatic updates via EarlyPlugin
nyoupdates.disable /updates disable Disable automatic updates
nyoupdates.ignore /updates ignore &amp;lt;mod&amp;gt; Add a mod to the ignore list
nyoupdates.unignore /updates unignore &amp;lt;mod&amp;gt; Remove a mod from the ignore list
nyoupdates.mapping /updates mapping Access mapping command collection
nyoupdates.mapping.add /updates mapping add &amp;lt;mod&amp;gt; &amp;lt;url&amp;gt; Map a mod to a CurseForge project
nyoupdates.mapping.remove /updates mapping remove &amp;lt;mod&amp;gt; Remove a CurseForge mapping
nyoupdates.mapping.list /updates mapping list List all configured mappings
nyoupdates.cache /updates cache Access cache management commands
nyoupdates.cache.clear /updates cache clear Clear the mod information cache
nyoupdates.cache.stats /updates cache stats View cache statistics
nyoupdates.lang /updates lang &amp;lt;locale&amp;gt; Change the plugin language
nyoupdates.reload /updates reload Reload the plugin configuration
nyoupdates.debug /updates debug Access debug command collection
nyoupdates.debug.info /updates debug info Show system and path information
nyoupdates.debug.check /updates debug check Run update check with verbose output
nyoupdates.debug.mods /updates debug mods Show detailed information about each mod

Usage Examples

Grant all permissions to a player (LuckPerms):

/lp user <player> permission set nyoupdates.* true

Grant only UI and check permissions:

/lp user <player> permission set nyoupdates.base true
/lp user <player> permission set nyoupdates.ui true
/lp user <player> permission set nyoupdates.check true

Grant all permissions to a group:

/lp group moderator permission set nyoupdates.* true

Remove operator requirement (allow all players to use /updates ui):

/lp group default permission set nyoupdates.base true
/lp group default permission set nyoupdates.ui true

Recommended Permission Sets

For moderators (management):

  • All player permissions, plus:
  • nyoupdates.check - Manually trigger update checks
  • nyoupdates.ignore / nyoupdates.unignore - Manage ignored mods
  • nyoupdates.mapping.* - Configure CurseForge mappings

For administrators (full control):

  • nyoupdates.* - All permissions (wildcard)

Bundle Support

NyoUpdates handles mods that come as bundle zip files containing both the mod and an EarlyPlugin.

Example bundle structure:

hyfixes-bundle-v1.9.7/
  mods/
    hyfixes-1.9.7.jar
  earlyplugins/
    hyfixes-early-1.9.7.jar
  README.md

The plugin detects bundle structures, extracts the jar files to the correct locations, and tracks them for updates. EarlyPlugins from bundles are only installed if your server already has an earlyplugins/ folder with existing jars.

Manual CurseForge Mapping

If NyoUpdates cannot automatically identify a mod on CurseForge (due to naming differences), you can add a manual mapping.

Using the command:

/updates mapping add <id|name> <curseforge-slug>

Or edit config.json:

{
  "curseforgeMapping": {
    "hytale-votifier-1.0.0-SNAPSHOT.jar": "hytale-votifier",
    "votifier-1.4.jar": "votifier"
  }
}

The key is your mod's filename, the value is the CurseForge project slug from the URL.

Platform Support

  • Windows (AppData and server paths)
  • Linux (XDG paths, Flatpak, Snap)
  • macOS (Application Support)