Duels
A full-fledged system of 1 on 1 PvP duels with a graphical interface, economy, bets, arenas, whales, leaderboards and an admin panel.
A full-fledged system of 1 on 1 PvP duels with a graphical interface, economy, bets, arenas, whales, leaderboards and an admin panel. The plugin supports bets with currency and resources, automatic selection of opponents. ## Opportunities # ## For players - * * Graphic UI * * — a full-fledged HyUI menu (`/duels menu`) with navigation between screens - * * Invitations * * — challenge a player to a duel with the choice of a whale and a bet - * * Autofit * * — queue with automatic search for an opponent - * * Bets * * — currency (EconomyAPI) or inventory resources - * * Whales * * — fixed sets of equipment, voting, random or your own inventory - * * Arenas * * — automatic selection of a free arena with face control c - **Statistics** — wins, losses, winrate, series, earnings - * * Leaderboard * * — top wins, earnings, series (with tabs) - * * Claim Box ** - unclaimed items/currency are saved and waiting for the player - * * Revenge ** — offer a second battle after the end of the match ### For administrators - **Admin panel** (`/duels admin ui`) — management through the graphical interface - ** Arena management ** — creation, setting up positions, borders, lobby - ** Whale management ** — creation from current inventory, deletion - **Monitoring** — active matches, queue, audit logs - **Force stop** — all matches stop with return of bets - * * Reload config * * — hot reboot without server restart --- # # Commands # # # Gaming | Team |---------|----------| | Description | | `/duels menu` | Open main menu | | `/duels invite [whale]` | Invite to duel | | `/duels accept` | Accept invitation | | `/duels deny` | Decline invitation | | `/duels queue` | Join queue | | `/duels leave` | Leave queue / match | | `/duels surrender` | Surrender | | `/duels rematch` | Offer revenge | | `/duels wager ` | Set bid | | `/duels kit` | Select whale | | `/duels stats [player]` | Stats | | `/duels top` | Leaderboard | | `/duels claim` | Claim rewards | ### Administrative | Command | Description | |---------|----------| | `/duels admin ui` | Open admin panel | | `/duels admin reload` | Reload config | | `/duels admin forcestop` | Force end all matches | | `/duels admin arena create<id>` | Create arena | | `/duels admin arena pos1/pos2` | Set spawn points | | `/duels admin arena lobby` | Set lobby point | | `/duels admin arena enable<id>` | Enable/disable arena | | `/duels adm in arena list` | Arena list | | `/duels admin kit create <id>` | Create whale from inventory | | `/duels admin kit delete <id>` | Delete whale | | `/duels admin kit list` | Whale list | --- ## Permissions | Right | Description | |-------|----------| | ` duels.use ` | Using the plugin | | ` duels.invite ` | Sending invitations | | ` duels.queue ` | Queuing | | ` duels.wager.currency ` | Currency bets | | ` duels.wager.resources` | Bids resources | | `duels.kit.select` | Whale selection | | `duels.loadout.custom` | Your own set of equipment | | `duels.stats` | Viewing statistics | | `duels.admin` | Access to admin teams | | `duels.admin.ui` | Access to the admin panel | | `duels.admin.force` | Force stopping matches | | `duels.admin.logs` | Viewing audit logs | --- ## Configuration The `config.json` file is created at the first start. Main sections: | Section | Parameters | |--------|-----------| | **economy** | enabled, taxPercent, minBet, maxBet, operationTimeoutMs | | **resources** | enabled, allowedItemIds, blockedTags, maxStacksPerPlayer | | **escrow** | claimBoxEnabled, claimTlDays, overflowPolicy | | **kits** | modeDefault, allowed, customLoadoutEnabled, defaultKitId | | **match** | countdownSeconds (1–10), maxDurationSeconds (30–1800), disconnectIsLoss, rematchTimeoutSeconds, requestT tlSeconds | | **queue** | enabled, maxWaitSeconds | | **arena** | autoSelect, boundaryEnforced, outOfBoundsPolicy (TELEPORT_BACK / KILL) | | **spectator** | enabled, maxPerArena | | **messages** | locale, fallbackLocales, enablePluralForms | | **observability** | metricsEnabled, blockedCommandsInDuel, alerts |
Duration: 180 days
499 RUB
Purchases: 1
Reviews
☆☆☆☆☆
No reviews yet
Sign in to leave a review.
RollbackGuard
A full-fledged system for logging and rolling back player actions for Hytale servers.
RollbackGuard records every change in the world — the setting and destruction of blocks, the movement of items in the inventory — and allows administrators to instantly roll back any damage caused by clamshells or errors. Capabilities Logging actions Staging and destroying blocks while maintaining the full state (block type before and after) Inventory changes: adding and deleting items with metadata Binding each action to the player, coordinates and world Inspector of blocks Inspector mode (/rg inspect) — click on any block to see the full history of changes: who, when and what did Search by history Flexible filters: by player, time, radius, world, type of action Page-by-page output of results Rollback and restore /rg rollback — rollback of actions by specified filters: blocks are returned to their original state, items are returned/removed from the inventory /rg restore — cancel the rollback if it was performed by mistake Preview mode (--dry-run) — find out how many actions will be affected, before performing Confirm large operations through the token (/rg confirm) Inventory rollback When rollback CONTAINER_ADD the item is removed from the player's inventory When rollback CONTAINER_REMOVE the item is returned to the player If the player is offline — changes are queued and automatically applied when logging on to the server Conflict policy SKIP_CONFLICTS — skip blocks changed after the logged action (safe mode) FORCE_APPLY — force all changes SQLite data storage out of the box — does not require additional PostgreSQL services for high-load servers Automatic scheduled cleaning of old records (configurable retention) Performance asynchronous recording queue with batch inserts in the database Customizable queue size, reset interval and batch size Degraded mode — the plugin continues to work even when the database is temporarily unavailable Configuration Fully customizable JSON-config Localization through an external translation file (Russian out of the box) Hot reload of the configuration (/rg reload) Commands /rg inspect Enable/disable inspector mode/rg lookup [filters] Search for actions by filter tram /rg rollback rollback/rg restore <jobId> Undo rollback /rg purge Delete old records /rg confirm Confirm operation /rg status [jobId] Queue status/ tasks /rg reload Reload config Filters: player:, time:<30m|2h|7d>, radius:, world:, action:
Duration: 180 days
299 RUB
Purchases: 5
Reviews
☆☆☆☆☆
No reviews yet
Sign in to leave a review.
NEI
Adds a recipe GUI browser
## 1) What does` nei `do?` nei `adds a recipe GUI browser: -` Recipes` — where the item is the result of crafting, - `Uses` — where the item is used as an ingredient, - search for `item id` and `recipe id`, - search buttons for the item in the hand (`Hand Recipe`, `Hand Uses`), - pagination and auto-update the recipe index. ## 2) What commands are available? - `/nei` — open the nei GUI. - `/neir` — open the nei in `Recipes` mode for the item in the hand. - `/neiu` — open nei in `Uses` mode for an item in hand. ## 3) Are there built-in key bindings inside the UI? No. There are no built-in UI-binds in the current version. If you need hotkeys, you can assign the `/neir` and `/neiu` commands via `Controls -> Command Input` (if supported by your client/build). ## 4) Do you need a separate `HyUI' plugin? No. `HyUI' is already built into `NEI.jar'. ## 5) How do I switch the interface language? There is an `EN/RU` button at the top of the nei, it switches the interface language. ## 6) How do `Hand Recipe` and `Hand Uses` work? - `Hand Recipe` is looking for recipes where the object in the hand is the result. - `Hand Uses` is looking for recipes where the item in the hand is an ingredient. If the hand is empty, the output is: `nei: Hold an item in hand first.` ## 7) How often is the recipe index updated? - Automatically: every 15 seconds. - Manually: using the `Refresh Index` button in the GUI. ## 8) Why aren't there any recipes? Check: - the server is fully loaded, - the item has the correct `item id`, - there are no extra characters in the search field, - after changing the mods, click `Refresh Index`. ## 9) Does nei work with mods? Yes. The index is built from a common store of recipes, including recipes added by mods.
Duration: Permanent
Free
Downloads: 1
Reviews
☆☆☆☆☆
No reviews yet
Sign in to leave a review.
TheComplicator
Complicates vanilla crafts, but retains the vanilla progression chain.
## 1) What this` TheComplicator `mod does complicates vanilla crafts but keeps the vanilla progression chain. The main idea: - the recipe remains the same in logic (the same items); - but the number of ingredients becomes larger; - these new values are immediately visible in the workbench interface (current UI). --- ## 2) How it works technically (in simple words) At the start of the mod server: 1. Reads all craft recipes from the asset store. 2. For each recipe, counts the new required `input`. 3. Replaces the recipes in the store. 4. The client receives the updated recipes and shows them in the UI. Important: - changes are applied **at the start of the server**; - after editing `complicator.json`, you need to **restart the server** to see the new balance. --- ## 3) Where the config is located After the first launch, the file is created: `mods/TheComplicator/complicator.json` If there is no file: - check that the plugin loaded without errors; - check the `manifest.json` and `Main` class; - check that `TheComplicator.jar` is in the server plugins folder. --- ## 4) Full parsing of all settings Below are all the config fields that are currently used by the mod. ## # `enabled' - Type: `boolean` - Default: `true` - What does: Enables/disables recipe substitution. - If `false`: recipes remain vanilla. ### `baseExtraFactor` - Type: `number` - Default: `0.60` - Range (including validation): `0.0 .. 5.0` - What does: Base markup for **all** recipes. ### `equipmentBonusFactor` - Type: `number` - Default: `0.60` - Range: `0.0 .. 5.0` - What does: Extra markup for recipes recognized as equipment. # ## `advancedBonusFactor` - Type: `number` - Default: `0.35` - Range: `0.0 .. 5.0` - What does: Extra markup for “advanced” recipes. ### `memoryLevelBonusFactor` - Type: `number` - Default: `0.15` - Range: `0.0 .. 2.0` - What does: Extra markup for each level of `RequiredMemoriesLevel` above 1. ### `maxTotalExtraFactor` - Type: `number` - Default: `3.0` - Range: `0.0 .. 10.0` - What does: Limits the final multiplier from above. ## # `catalystPerCraft` - Type: `integer` - Default: `2` - Minimum: `0` - What does: fixed adds value to the **first ingredient** of the recipe. ## # `catalystOnlyForEquipment` - Type: `boolean` - Default: `false` - What it does: - `true` -> catalyst only applies to equipment. - `false` -> catalyst applies to all recipes. # ## `advancedIngredientThreshold` - Type: `integer` - Default: `3` - Minimum: `1` - What it does: If there are as many or more different inputs in a recipe, it is considered advanced. ### `advancedCraftTimeSeconds` - Type: `number` - Default: '1.0` - Range: `0.0 .. 60.0` - What it does: If the `timeSeconds` of the recipe is greater than/equal to the threshold, the recipe is considered advanced. ## # `equipmentKeywords` - Type:<string> `array` - Default: list of keywords (sword, pickaxe, armor, etc.) - What it does: The mod understands from these words that the recipe refers to equipment. - Comparison: by `recipeId` and `primaryOutput.itemId`, in lower-case. ### `excludedRecipeIds` - Type: `array<string>` - Default: `[]` - What it does: it completely excludes the specified recipes from complication. - Convenient for starter items and progression bottlenecks. --- ## 5) Calculation formula (most important) For each recipe ingredient: 1. The final multiplier is considered: `totalFactor = base + equipmentBonus + advancedBonus + memoryBonus` Where: - `equipmentBonus` is added only for equipment recipes; - `advancedBonus` for advanced recipes only; - `memoryBonus = (RequiredMemoriesLevel - 1) * memoryLevelBonusFactor` (if level > 1); - then `totalFactor` is limited to `maxTotalExtraFactor`. 2. New ingredient quantity: `newQty = baseQty + ceil(baseQty * totalFactor)` 3. For the first ingredient, additionally: `newQty += catalystPerCraft` (if the catalyst application conditions are met). --- ## 6) How is equipment and advanced # ## Equipment recipe defined A recipe is considered equipment if at least one word from `equipmentKeywords` occurs in: - `recipeId`, or - `primaryOutput.itemId`. ### Advanced recipe A recipe is considered advanced if **at least one** condition is met: - the number of input types` >= advancedIngredientThreshold `; - there is a` benchRequirement `; -` timeSeconds >= advancedCraftTimeSeconds`; - `RequiredMemoriesLevel > 1`. --- ## 7) Calculation examples ### Example A: regular recipe - Base: `4 wood` - `totalFactor = 0.50` - Markup: `ceil(4 * 0.50) = 2` - Total: `6 wood` ### Example B: complex recipe + catalyst - Base: `3 iron`, `2 leather` - `totalFactor = 0.90` - `iron`: `3 + ceil(3 * 0.90) = 6` - `leather`: `2 + ceil(2 * 0.90) = 4` - + `catalystPerCraft = 2` to the first ingredient -> `iron = 8` - Total: `8 iron`, `4 leather` --- ## 8) Ready-made config presets Below three blanks. Insert the desired values into `complicator.json` and restart the server. ### Option 1: Lightweight (slightly longer than vanilla) `` `json { "enabled": true, "baseExtraFactor": 0.15, "equipmentBonusFactor": 0.15, "advancedBonusFactor": 0.10, "memoryLevelBonusFactor": 0.05, "maxTotalExtraFactor": 0.80, "catalystPerCraft": 0, "catalystOnlyForEquipment": true, "advancedIngredientThreshold": 4, "advancedCraftTimeSeconds": 2.0, "equipmentKeywords": ["sword", "axe", "pickaxe", "armor", "helmet", "boots"], "excludedRecipeIds": [] } ``` ### Option 2: Medium (recommended) ```json { "enabled": true, "baseExtraFactor": 0.60, "equipmentBonusFactor": 0.60, "advancedBonusFactor": 0.35, "memoryLevelBonusFactor": 0.15, "maxTotalExtraFactor": 3.0, "catalystPerCraft": 2, "catalystOnlyForEquipment": false, "advancedIngredientThreshold": 3, "advancedCraftTimeSeconds": 1.0, "equipmentKeywords": [ "sword", "axe", "pickaxe", "shovel", "hoe", "hammer", "dagger", "bow", "crossbow", "staff", "wand", "shield", "helmet", "chestplate", "leggings", "boots", "armor", "tool", "weapon" ], "excludedRecipeIds": [] } ``` ### Option 3: Hardcore (long progression) ```json { "enabled": true, "baseExtraFactor": 0.60, "equipmentBonusFactor": 0.60, "advancedBonusFactor": 0.35, "memoryLevelBonusFactor": 0.15, "maxTotalExtraFactor": 3.0, "catalystPerCraft": 2, "catalystOnlyForEquipment": false, "advancedIngredientThreshold": 3, "advancedCraftTimeSeconds": 1.0, "equipmentKeywords": [ "sword", "axe", "pickaxe", "shovel", "hoe", "hammer", "dagger", "bow", "crossbow", "staff", "wand", "shield", "helmet", "chestplate", "leggings", "boots", "armor", "tool", "weapon" ], "excludedRecipeIds": [] } ``` --- ## 9) How to balance correctly (practice) Recommended procedure: 1. Raise only `baseExtraFactor` to the desired difficulty. 2. Then separately strengthen the equipment through `equipmentBonusFactor`. 3. Then gently add `advancedBonusFactor`. 4. `catalystPerCraft` touch at the end, it often hits the early gameplay hard. 5. Don't forget `excludedRecipeIds` for starter recipes if the start gets stuffy. --- ## 10) Common problems and solutions # ## Problem: There are still vanilla recipes in the workbench Check: 1. The server was completely restarted after editing the config. 2. There is a loading string `TheComplicator loaded ... recipesPatched =true` in the logs. 3. There is no other mod that later overwrites the same recipes. ### Problem: I change the configuration, but nothing changes. Reason: the mod applies the changes at the start. Solution: a full server restart after each revision of `complicator.json`. ### Problem: Starting the game has become too hard Solution: - lower `baseExtraFactor`; - put `catalystPerCraft = 0`; - add the first key recipes to `excludedRecipeIds`. ### Problem: Too expensive equipment Solution: - reduce `equipmentBonusFactor'; - narrow `equipmentKeywords` so that fewer recipes fall into the equipment class. ### Problem: The mod doesn't start Check: - correctness of `manifest.json`; - that `TheComplicator.jar` is in the required plugin folder; - that the API version is compatible with your `HytaleServer.jar`. --- ## 11) Safe value limits (recommendation) If you do not want to break the server economy: - `baseExtraFactor': `0.15 .. 0.60` - `equipmentBonusFactor`: `0.15 .. 0.70` - `advancedBonusFactor`: `0.10 .. 0.40` - `memoryLevelBonusFactor`: `0.05 .. 0.20` - 'catalystPerCraft`: `0 .. 2` - `maxTotalExtraFactor`: `1.0 .. 3.0` --- ## 12) Quick checklist after setup 1. Changes` complicator.json `. 2. Restart the server. 3. Check the plugin download log. 4. Open the workbench and check 3-5 key recipes. 5. Adjust the coefficients. 6. Repeat the cycle. --- ## 13) Minimum working config (template)``` json { "enabled": true, "baseExtraFactor": 0.35, "equipmentBonusFactor": 0.35, "advancedBonusFactor": 0.20, "memoryLevelBonusFactor": 0.10, "maxTotalExtraFactor": 2.0, "catalystPerCraft": 1, "catalystOnlyForEquipment": true, "advancedIngredientThreshold": 4, "advancedCraftTimeSeconds": 2.0, "equipmentKeywords": [ "sword", "axe", "pickaxe", "shovel", "hoe", "armor" ], "excludedRecipeIds": [] }
Duration: Permanent
Free
Downloads: 0
Reviews
☆☆☆☆☆
No reviews yet
Sign in to leave a review.