promotional bannermobile promotional banner

yRodrigus: SMP Utilities

This mod was designed and planned to improve the experience of creating SMPs servers in Minecraft. Its main function is to ban and control items, blocks, and mods, with the ability to unban those same items, blocks, or mods for specific players.
Back to Files

SMP-Utilities-Forge-1.20.1-0.1.9.jar

File nameSMP-Utilities-Forge-1.20.1-0.1.9.jar
Uploaded
Nov 12, 2026
Downloads
4
Size
900.4 KB
Mod Loaders
Forge
File ID
9578174
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:smp-utilities-1481310:9578174")

Learn more about Curse Maven

What's new

# SMP: Utilities - Changelog

Complete development history of **SMP: Utilities**, from the initial refactoring of the legacy workspace to the current **0.1.9** version for **Minecraft 1.20.1 & 1.21.1** (**Forge**, **NeoForge**, and **Fabric**).

---

## [0.1.9] - 1.21.1 Parity & Optional Dependencies

### Optional Dependencies (4 Loaders)
- **Standalone Operation:** Curios (Forge/NeoForge), Trinkets and Accessories (Fabric), JEI, and Balm/Waystones are now strictly optional - the mod starts and operates normally both with these mods installed and without any of them.
- **Open Version Ranges:** `mods.toml` and `neoforge.mods.toml` updated with `versionRange="[0,]"` for `curios` and `jei`; `fabric.mod.json` (1.20.1 and 1.21.1) configured with `"suggests"` using `"*"` for `jei`, `trinkets`, `accessories`, `waystones`, and `balm`.
- **Class & Mixin Protection:** Isolation of optional handlers (`CuriosRestrictionHandler`) and client-only packets (`ShowTypewriterPacket`, `SyncRestrictionsPacket`, `SyncCanonHeartsPacket`), along with `SmpMixinConfigPlugin` using `require = 0` in `TrinketSlotMixin` to prevent crashes when Trinkets is absent.
- **Safety Backup:** Complete snapshot preserved in `_reservados/backup_pre_dependencias_2026-11-10/`.

### Commands & Final Documentation
- **Unquoted `#` Support in `/smpu lectern`:** Hex argument migrated to `ScoreHolderArgument` with `HEX_SUGGESTIONS`, allowing `/smpu lectern #FF5500` or `/smpu lectern #F50` to be used directly without quotation marks.
- **Command-Specific Colors:** Hexadecimal support removed from `/smpu rename`, `/smpu lore`, and `/smpu objective` in all 4 workspaces (keeping Minecraft's 16 named colors + `&` codes), making hexadecimal colors exclusive to `/smpu lectern`.
- **Official Wiki (`WIKI.md`):** Complete documentation rewritten in Markdown, covering all mechanics, items, blocks, commands, 14 restriction categories, TOML examples, Canon Hearts, potions, and FAQ.
- **Organized Exports:** Clean build and export of the 4 final `0.1.9` `.jar` files to `Desktop/SMP Utilities 0.1.9/`.

### Fabric 1.20.1 & 1.21.1 Parity
- **1:1 Fabric 1.21.1 Parity:** Fully ported using `DataComponents` (`CUSTOM_NAME`, `LORE`, `DYED_COLOR`, `POTION_CONTENTS`), `CustomPacketPayload` + `StreamCodec`, `FabricBrewingRecipeRegistryBuilder.BUILD`, `hud/heart/*` sprites, and singular data directories (`recipe`, `loot_table`, `tags/block`, `tags/item`).
- **Canon Hearts via Cardinal Components:** Persistence migrated to **Cardinal Components API** (`5.2.2` in 1.20.1 / `6.1.0` in 1.21.1) with `RespawnCopyStrategy.ALWAYS_COPY`, replacing old entity mixins.
- **HUD Textures & Animation:** Canon Hearts unified under `textures/gui/sprites/hud/heart/*.png` (including the `_blinking` state), with AppleSkin bar offset correction (`GuiMixin` on Fabric and `ARMOR_LEVEL` anchor on NeoForge 1.21.1).

### Curios, Trinkets & Accessories
- **Native Dual Integration on Fabric:** Created `TrinketsCompat` and `AccessoriesCompat` (`CanEquipCallback` + `AccessoryChangeCallback`), maintaining unified aliases in `restrictions.toml` and `PermissionManager` (`blocked_trinkets_items`, `blocked_curios_items`, `blocked_accessories_items`).
- **Prevention of Item Loss on `Shift+Click` and Hover Spam:** Removed error messages triggered merely by hovering over predictive slots (`mayPlace` / `canInsert`) and fixed `AbstractContainerMenuMixin` to prevent relics from being discarded during `QUICK_MOVE`.

### Restriction System (`restrictions.toml`)
- **New Categories (`blocked_offhand_items` and `blocked_crafting_items`):**
  - Complete offhand blocking (inventory slots, `F` key, and GUI clicks/swaps) through `RestrictedOffhandSlot` and mixins/events.
  - Server-side and client-side crafting recipe blocking (`RecipeManagerMixin` / `RecipeFilterHelper` / `RestrictedResultSlot`), hiding only the recipes in JEI without removing the item from search results when it is not listed in `hidden_jei_items`.
- **Creative vs. JEI Independence:** `hidden_creative_items` and `hidden_jei_items` now operate independently (including the `#c:hidden_from_recipe_viewers` tag for JEI/EMI/REI).
- **Individual Whitelists and Blacklists in the Same File:** Consolidation of `player_whitelist` and `player_blacklist` across all 14 categories within `restrictions.toml` (with the removal of `permissions.toml` and the old `special_features`), using empty `[]` lists by default.
- **Full `.toml` File Preservation:** Decoupling of `ForgeConfigSpec`/`ModConfigSpec` from `restrictions.toml`, `ConfigFormatter` converted into a no-op, and a resilient parser with `loadFallback` tolerant of manually added spaces and blank lines.
- **Action Bar Preemption & Placeholders:** `ShowTypewriterPacket` synchronizing remote messages; immediate preemption (new messages always interrupt previous ones from character 0); proximity-based `drop_items` display without pickup spam; universal case-insensitive resolution of `%item%`, `%block%`, and `%player%` (with a `notifStack` copy before slot removal); left-click attack handling removed from `blocked_use_items` (zero damage handling centralized in `zero_damage_items`).

### Weapons, Items, Audio & Visuals
- **Updated Identity:** Official displayed name set to **`SMP: Utilities`**.
- **Weapon Balancing & Tooltips:**
  - `Absurd Damage Sword`: damage fixed at `1,000,000` with a dark green vanilla tooltip displaying the `∞` symbol (without `+`).
  - `Ban Sword` and `Chapolin Colorado's Sledgehammer`: `0` actual damage while retaining knockback, particles, and sound only when hitting entities; Sledgehammer attack speed adjusted to `1.6` (`-2.4`).
  - `Mind Wrench`: `0` damage, zero knockback, and instant block breaking without drops (including unbreakable blocks, while respecting blocks protected by restrictions).
  - `/smpu lore` updated to use a single line with explicit `withItalic(false)` in the `normal` style (also fixing forced italics in `/smpu rename`).
- **3D Audio Normalization:** The 4 `.ogg` files (`little_poop`, `ban_sword`, `absurd_damage_sword`, `chapolin_sledgehammer`) normalized to `-21.2 dBFS` RMS in mono.
- **Tooltips & Line Wrapping:** Automatic wrapping of long lines (`wrapTooltipLines`) added to Fabric.

---

## [0.1.8] - Multi-Loader & NeoForge 1.21.1

### Version Policy & Multi-Loader Structure
- Official version **`0.1.8`** established for synchronization across workspaces, and folder names standardized without hyphens (`-`).
- **NeoForge 1.21.1 Port:** Complete migration of Forge 1.20.1 code to `ModDevGradle`, Java 21, `DataComponents`, `CustomPacketPayload` / `StreamCodec`, `NeoForge.EVENT_BUS`, updated test mods, and compatibility with Curios and JEI 1.21.1.
- **Fabric Workspaces Created (1.20.1 and 1.21.1):** Initial Loom structure, `.bat` execution scripts, NightConfig bundled via Jar-in-Jar, `FabricConfigManager` with templates aligned with Forge, and initial plugins for JEI and Waystones/Balm.
- **Critical Multi-Loader Fixes:**
  - Fixed `ClassCastException` in the Creative inventory and `NullPointerException` during client logout (`TypewriterActionBar`).
  - Fixed mixin/Jar-in-Jar loading (`syncModsToRun`) and implemented the rule of never exporting the mod's own `.jar` file to `mods/`.

---

## [Pre-0.1.8] - MCreator -> Forge Refactoring

### MCreator Decoupling & Clean Architecture
- Complete removal of MCreator files (`.mcreator`, `elements/`, `mcreator.gradle`) and package migration to `com.gamersa3b.smputilities` with native Gradle and instance `.bat` scripts.
- Migration of world-specific `.dat` files to 4 global `.toml` configs in `config/smp_utilities/` (`restrictions.toml`, `canon_hearts.toml`, `waystones.toml`, `utilities.toml`) with `/smpu reload` and support for vanilla `/reload`.

### Core Mechanics Implemented
- **Restrictions & Anti-Duplication:** Transition from legacy commands (`/restrict`, `/idrestrict`, `/idcontrol`, `/idlock`) to declarative configuration, along with `RestrictedArmorSlot` and `CurioEquipEvent` to eliminate duplication race conditions in slots.
- **Unified Commands (`/smpu` & `/smp_utilities`):** Centralization of `rename`, `lore`, `lectern`, `objective` (with custom typewriter animation and pause for alerts), `canon` (`get`, `set`, `add`, `setmax`, `reset`, `revive` online/offline), and `reload`, all strictly in English.
- **Creative Lectern:** Indestructible and dynamically RGB-dyeable administrative block (`LecternColorHelper`, `creative_lectern_dye` recipe, direct use of dyes in the world, washing with water/cauldrons, 17 entries in vanilla order, `CreativeLecternJeiPlugin`, page-switching fix in the menu, and `Done` button width correction).
- **Items, Weapons & Little Poop:** Infinite durability for admin tools, `LittlePoopProjectileEntity` decoupled from `SnowballItem` with mono 3D audio, `Mind Wrench` with villager menu bypass and `NoAI` toggle, and clean single-paragraph `[SHIFT]` tooltips on the 4 items with descriptions.
- **Blocks, Potions & Canon Hearts:** Fixed UVs and `cullface` on the `Security Block`; standardized potions and arrows in the Creative tab with exact durations (`5:00`, `2:30`, `1:15`, `0:10`); Canon Hearts HUD with left-to-right consumption and `CanonLossMobEffect`.
- **Cleanup & Removals:** Permanent removal of the old `Generator` (`/generator`) and `Lock` (`/lock`) systems, `Golden Beetroot` (`golden_beetroot`), `security_slab`/`security_stairs`, and extra `canon_loss` variants.

This mod has no additional files