Skip to content

Releases: sonruhin/omni-tools

Omni tools 2.2.0

Choose a tag to compare

@sonruhin sonruhin released this 13 Oct 15:48
d31ed38

OmniTools 2.2.0 - what the update brings

This file lists everything that is new since 1.1.0 (build 2), what changes for existing servers, and how to upgrade.
The full manual is in README.md.

2.2.0 collects three steps that were built one after another:

Build Theme
3 Safety pass: stricter console steps, audit log, atomic money, safe loading
4 SMP, PvP and minigames
5 (2.2.0) New /omni layout, visible {args}, custom ranks, universal scoreboard, admin toolbox, advanced PvP
6 (2.2.0) Custom dimensions in the same world, dimension-aware arenas, persistent return points

1. Highlights

  • Compact /omni: about, help, search and six categories: smp, pvp, games, board, tools, admin.
  • Visible {args}: player commands show /tpa <player>, /pay <player> <amount> and so on, in tab-complete and lists.
  • Custom ranks: prefix and suffix next to the name above the head, in the tab list and in chat; permissions, parents, numeric limits, power up to operator level, optional vanilla op.
  • Universal scoreboard: profiles with triggers and priorities, a board per player or one shared board, tab header/footer, action bar, placeholders from every module.
  • Admin toolbox: TPS, memory, chunks, entities, drop clean-up, inspect, freeze, audit reader, in-game settings, backups, announcements, maintenance mode.
  • SMP: homes, warps, spawn, /back, land claims, teleport warmup and cooldown, chat channels, mutes, nicknames.
  • PvP: ranked queue with Elo and leagues, arenas with snapshots and auto-reset, loadouts, anti-farm, assists, streaks, bounties, combat tag, seasons, open-world PvP.
  • Minigames: spleef, tnt_run, parkour, bedwars, skywars, koth, tdm, ffa, lms on one engine.
  • Dimensions: create void, flat, overworld, nether, end and more inside the same world (one restart), arenas and games in any dimension or in one of their own, rules per dimension (build, pvp, claims).
  • Safer by default: console step rules, rate limit, audit log, atomic money, safe loading of damaged files, backups.

2. Changes that affect an existing server

2.1 Command paths moved

The old top-level groups are gone. Stored aliases and chest steps are converted automatically once when 2.2.0 first starts
(the log says command layout 2.1: N stored command(s) were moved).

Old New
omni tpa ... / omni rtp ... omni smp tpa ... / omni smp rtp ...
omni market ... (player parts) omni smp market ...
omni market list|remove|log|create|delete|blacklist|set|settings|limit|sweep omni admin market ...
omni eco balance|pay|top omni smp money balance|pay|top
omni eco give|take|set|reset omni admin eco ...
omni duel ... omni pvp duel ...
omni kit ..., omni chest ..., omni alias ... omni tools kit ..., omni tools chest ..., omni tools alias ...
omni mg ... omni games ...
omni reload omni admin reload
(build 4) omni smp claim ... omni smp land ...
(build 4) omni smp setwarp|delwarp|setspawn|install|mute|unmute|mutes|rank omni admin ...

What you must do yourself: any command you type by hand, scripts, command blocks, other mods' configs and datapacks that call the old paths.
Player commands (/tpa, /market, /balance, ...) keep their names.

2.2 Console steps are checked

For players who are not operators, a console step is now refused when it:

  • runs a blocked command (op deop ban ban-ip pardon pardon-ip kick stop reload whitelist save-all save-off save-on), also hidden inside execute ... run or return run;
  • uses {args} as the command itself (for example execute as {player} run {args});
  • combines {args} with a selector (@a @s @e @p @r @n).

At every start the log lists console steps that use {args}. If one must keep working, flag it:
/omni tools alias flag <alias> <step> selector|dangerous true (and /omni tools chest cmd <size> <n> flag <slot> <step> ...).
Aliases created by 1.1.0 itself are player-mode and are not affected.

2.3 Rate limit

A non-operator player can trigger at most safety.stepsPerSecond (default 10) steps per second. Extra steps are delayed by one second, not dropped.

2.4 Aliases with a usage are stricter

An alias that has a usage accepts only the forms in it (the ten default aliases now have one). An alias without usage keeps one free argument, now shown as <args>.
An alias without {args} in any step no longer accepts typed arguments.

2.5 Ranks moved

Ranks made with build 4 (smp/social.json) are imported once into ranks.json. Rank limits now come from rank attributes
(homes, claims, claimarea, tpwarmup, tpcooldown); smp.maxHomes, smp.maxClaims, smp.maxClaimArea, smp.teleportWarmup and smp.teleportCooldown are the defaults for ranks without the attribute.

2.6 Purchases can be refused for new reasons

A market or shop purchase is refused (and nothing is charged) when the inventory and the claim box are full, or when the seller's balance cannot take the payment.

2.7 /omni reload may wait

If a delayed command sequence is still running, the reload is queued (at most 2 minutes).

2.8 Arenas need a loaded world (build 6)

An arena whose dimension is not loaded is now "not ready": it is skipped by the queue, join refuses it and /omni pvp arena info says why. Before, a match could start and silently fail to teleport the players.
Matches that cannot reach their world are cancelled and everybody is sent back. The old duel keeps its in-memory home but now also saves it to pvp/returns.json.

2.9 /claim stays the market claim box

Land claims use /landclaim.


3. Everything new, by module

Safety (build 3)

  • Guard rules for console steps, per-step flags (selector, dangerous), step rate limit.
  • audit.jsonl (money before/after, listings, purchases, claims, kit gives, chest opens, alias runs, flags, blocked steps, game results, rank and setting changes).
  • Atomic money: Eco.transfer, checked takes, no money destroyed by balance caps, no item lost when encoding fails.
  • Safe loading: damaged files are moved to <name>.corrupt-<time>; one bad file no longer aborts loading the others.
  • One scheduler for all delayed work; settings range checks and settings.schema.json; reserved alias names.
  • Bugs fixed: unchecked money in market purchases, claim duplication, unbounded claim box via shop chests, silently deleted chest items, unchecked listing fee.

SMP (build 4, extended in 2.2.0)

  • Homes (/sethome /home /delhome /homes), warps, spawn, /back.
  • Teleport warmup and cooldown (cancel on move or damage), rank-based, blocked by combat tag.
  • Land claims with trust list and PvP flag; golden shovel selection.
  • Chat channels (global, local, staff, trade), mutes, nicknames.
  • Economy and market moved under /omni smp money and /omni smp market.

Ranks (2.2.0)

Full in-game design: prefix, suffix, color, weight, power 0-4, parent, permissions (omni.*, -perm), attributes, optional vanilla op, clone, per-player assignment. See README, section "Ranks".

PvP (builds 4 and 5)

Queue with growing Elo window, arenas for six modes, loadouts with a crash-safe inventory vault, spectators, snapshots and auto-reset, anti-farm, kill reward and death penalty,
assists, kill streaks with announcements, bounties, combat tag with combat-log penalty, leagues (pvp.tiers), seasons, open-world PvP. Duels moved to /pvp duel.

Minigames (build 4)

Spleef, tnt_run, parkour, bedwars, skywars, koth, tdm, ffa, lms. Teams, lives, time limits, rewards (money and kit), sidebar or action bar, lobby and countdown.

Universal scoreboard (2.2.0)

Profiles (default, queue, pvp, minigame, combat are created for you), triggers, priority, scope player or global, tab header/footer, action bar, 60+ placeholders. See README, section "Universal scoreboard".

Admin toolbox (2.2.0)

perf, chunks, entities, clear, autoclear, gc, inspect, freeze, broadcast, audit, settings (35 keys), backup (manual and scheduled), announce, maintenance, season.

Dimensions (build 6)

/omni admin dim create|list|info|tp|set|apply|delete|purge|status|rewrite|packmeta|folder. Eleven templates. A new dimension is written as a data pack file and appears after one restart
(/omni admin dim apply <seconds> confirm does the countdown). Rules build, pvp, claims per dimension (any dimension, no restart). Arenas and games: create <name> <type> [dimension], world, newdim, tp.
Players are sent back through pvp/returns.json, so a crash or a missing dimension does not strand anybody. Placeholders %dimension%, %dimension_name%. See README, section "Dimensions".

Alias usage (2.2.0)

/omni tools alias usage <alias> <text> with a small grammar (<x>, [x], <x...>, a|b, ;).


4. New and changed settings

New sections and keys in settings.json (all optional, defaults apply):

  • market.maxClaimsPerPlayer (200), market.blockShulkerInShopChests (false)
  • safety.stepsPerSecond (10)
  • smp.*: maxHomes, teleportWarmup, teleportCooldown, baseHomes (not used any more), maxClaims, maxClaimArea, localChatRange, enforcePermissions, chatFormat
  • pvp.*: killReward, deathPenalty, snapshotMaxBlocks, combatSeconds, combatLogKill, assistReward, streakBonus, bountyTaxPercent, bountyMin, openWorldPvp, tiers
  • admin.*: rankAdminPower, layoutVersion, autoClear, autoClearMinutes, backupHours, backupKeep

New files in config/omnitools/: dimensions.json, pvp/returns.json, audit.jsonl, settings.schema.json...

Read more

Omni tools 2.1.0 BETA

Choose a tag to compare

@sonruhin sonruhin released this 11 Oct 20:51
a5a1124

OmniTools 2.1.0 - what the update brings

This file lists everything that is new since 1.1.0 (build 2), what changes for existing servers, and how to upgrade. The full manual is in README.md.

2.1.0 collects three steps that were built one after another:

Build | Theme -- | -- 3 | Safety pass: stricter console steps, audit log, atomic money, safe loading 4 | SMP, PvP and minigames 5 (2.1.0) | New /omni layout, visible {args}, custom ranks, universal scoreboard, admin toolbox, advanced PvP

What you must do yourself: any command you type by hand, scripts, command blocks, other mods' configs and datapacks that call the old paths. Player commands (/tpa, /market, /balance, ...) keep their names.

2.2 Console steps are checked

For players who are not operators, a console step is now refused when it:

  • runs a blocked command (op deop ban ban-ip pardon pardon-ip kick stop reload whitelist save-all save-off save-on), also hidden inside execute ... run or return run;
  • uses {args} as the command itself (for example execute as {player} run {args});
  • combines {args} with a selector (@a @s @e @p @r @n).

At every start the log lists console steps that use {args}. If one must keep working, flag it: /omni tools alias flag <alias> <step> selector|dangerous true (and /omni tools chest cmd <size> <n> flag <slot> <step> ...). Aliases created by 1.1.0 itself are player-mode and are not affected.

2.3 Rate limit

A non-operator player can trigger at most safety.stepsPerSecond (default 10) steps per second. Extra steps are delayed by one second, not dropped.

2.4 Aliases with a usage are stricter

An alias that has a usage accepts only the forms in it (the ten default aliases now have one). An alias without usage keeps one free argument, now shown as <args>. An alias without {args} in any step no longer accepts typed arguments.

2.5 Ranks moved

Ranks made with build 4 (smp/social.json) are imported once into ranks.json. Rank limits now come from rank attributes (homes, claims, claimarea, tpwarmup, tpcooldown); smp.maxHomes, smp.maxClaims, smp.maxClaimArea, smp.teleportWarmup and smp.teleportCooldown are the defaults for ranks without the attribute.

2.6 Purchases can be refused for new reasons

A market or shop purchase is refused (and nothing is charged) when the inventory and the claim box are full, or when the seller's balance cannot take the payment.

2.7 /omni reload may wait

If a delayed command sequence is still running, the reload is queued (at most 2 minutes).

2.8 /claim stays the market claim box

Land claims use /landclaim.


3. Everything new, by module

Safety (build 3)

  • Guard rules for console steps, per-step flags (selector, dangerous), step rate limit.
  • audit.jsonl (money before/after, listings, purchases, claims, kit gives, chest opens, alias runs, flags, blocked steps, game results, rank and setting changes).
  • Atomic money: Eco.transfer, checked takes, no money destroyed by balance caps, no item lost when encoding fails.
  • Safe loading: damaged files are moved to <name>.corrupt-<time>; one bad file no longer aborts loading the others.
  • One scheduler for all delayed work; settings range checks and settings.schema.json; reserved alias names.
  • Bugs fixed: unchecked money in market purchases, claim duplication, unbounded claim box via shop chests, silently deleted chest items, unchecked listing fee.

SMP (build 4, extended in 2.1.0)

  • Homes (/sethome /home /delhome /homes), warps, spawn, /back.
  • Teleport warmup and cooldown (cancel on move or damage), rank-based, blocked by combat tag.
  • Land claims with trust list and PvP flag; golden shovel selection.
  • Chat channels (global, local, staff, trade), mutes, nicknames.
  • Economy and market moved under /omni smp money and /omni smp market.

Ranks (2.1.0)

Full in-game design: prefix, suffix, color, weight, power 0-4, parent, permissions (omni.*, -perm), attributes, optional vanilla op, clone, per-player assignment. See README, section "Ranks".

PvP (builds 4 and 5)

Queue with growing Elo window, arenas for six modes, loadouts with a crash-safe inventory vault, spectators, snapshots and auto-reset, anti-farm, kill reward and death penalty, assists, kill streaks with announcements, bounties, combat tag with combat-log penalty, leagues (pvp.tiers), seasons, open-world PvP. Duels moved to /pvp duel.

Minigames (build 4)

Spleef, tnt_run, parkour, bedwars, skywars, koth, tdm, ffa, lms. Teams, lives, time limits, rewards (money and kit), sidebar or action bar, lobby and countdown.

Universal scoreboard (2.1.0)

Profiles (default, queue, pvp, minigame, combat are created for you), triggers, priority, scope player or global, tab header/footer, action bar, 60+ placeholders. See README, section "Universal scoreboard".

Admin toolbox (2.1.0)

perf, chunks, entities, clear, autoclear, gc, inspect, freeze, broadcast, audit, settings (35 keys), backup (manual and scheduled), announce, maintenance, season.

Alias usage (2.1.0)

/omni tools alias usage <alias> <text> with a small grammar (<x>, [x], <x...>, a|b, ;).


4. New and changed settings

New sections and keys in settings.json (all optional, defaults apply):

  • market.maxClaimsPerPlayer (200), market.blockShulkerInShopChests (false)
  • safety.stepsPerSecond (10)
  • smp.*: maxHomes, teleportWarmup, teleportCooldown, baseHomes (not used any more), maxClaims, maxClaimArea, localChatRange, enforcePermissions, chatFormat
  • pvp.*: killReward, deathPenalty, snapshotMaxBlocks, combatSeconds, combatLogKill, assistReward, streakBonus, bountyTaxPercent, bountyMin, openWorldPvp, tiers
  • admin.*: rankAdminPower, layoutVersion, autoClear, autoClearMinutes, backupHours, backupKeep

New files in config/omnitools/: audit.jsonl, settings.schema.json, ranks.json, boards.json, admin.json, games.json, smp/*.json, pv...

Read more

Omni tools 1.1.0

Choose a tag to compare

@sonruhin sonruhin released this 05 Oct 14:53
09eeb33

OmniTools

Kits, virtual chest menus, custom commands, economy, player market, duels, TPA and random teleport for Fabric servers.

OmniTools is an all-in-one server toolkit for Minecraft 1.21.11 (Fabric). It is built around one idea: server owners should be able to create their own menus and commands in-game, without writing a single line of code, and players should only ever see simple, safe commands.

Everything an operator does lives under one command, /omni. Everything a player does goes through short aliases such as /market, /sell, /tpa and /rtp. Players never get access to /omni itself.

Full Changelog: https://github.com/sonruhin/omni-tools/commits/Omni-Tools