← Назад к ресурсам

infinote

Server-side configurable Noteblock expansion mod

Modrinth game-mechanics utility

Описание

# Infinote **Server-side configurable Noteblock expansion mod. Noteblock should be configurable!** --- ## 📖 Overview **Infinote** is a **server-side** Note Block expansion mod for Fabric. It allows you to add custom noteblock sounds with mostly unlimited pitch shifting and fully customizable volume control. Unlike traditional client-side mods such as Notebetter, Infinote handles sound logic on the **server side**, making it especially suitable for collaboration. Because the server manages sound, it operates stably in multiplayer. ### Client Requirement - If the client **does not** install the mod: - The mod still works. - Custom sounds function as long as a valid resource pack is provided. - However, pitch shifting may be limited by vanilla clamp behavior. - If the client **does** install the mod: - Pitch clamp is expanded. - Extended pitch ranges function properly. - Full functionality is enabled. For sounds that do not exist in vanilla Minecraft, additional resources must be provided via a resourcepack — otherwise the sound will be muted. By using a **server-side resource pack**, all clients can hear the same custom sounds without needing to install resourcepacks manually. --- ## ⭐ Features - Fully configurable noteblock sounds - Block-under-based sound expansion - Config-driven - Primarily server-side logic - Multiplayer support - Multi-version ready --- ## 📸 Demonstration --- ## 🛠️ Usage Click to expand command usage ### Commands ``` /infinote add ``` Adds or updates a sound mapping for the specified block. - ``: Target block ID (e.g. minecraft:stone) - ``: Any valid sound ID (not limited to built-in sounds) - ``: Sound category (e.g. master, music, record, block, etc.) - ``: Pitch shift in semitones (accepts **float**) - ``: Volume multiplier (float) ``` /infinote remove ``` Removes the sound mapping for the specified block. ``` /infinote reload ``` Reloads the configuration. ``` /infinote import notebetterfabric ``` Imports configuration from a **NotebetterFabric-style JSON file** and converts it into Infinote format. - ``: Path to the NotebetterFabric configuration file This command allows easy migration from NotebetterFabric to Infinote. --- ### 🎵 About `pitchShift` `pitchShift` represents pitch change in **semitones**. - `12` = +12 semitones = +1 octave - `-12` = -12 semitones = -1 octave - `0` = no pitch change Unlike vanilla Note Blocks, `pitchShift`: - Accepts **floating-point values** - Is **not limited to 12-tone equal temperament** - Allows microtonal adjustments (e.g. `0.5`, `-2.3`, etc.) --- ### 📏 Pitch Clamp Behavior Minecraft internally clamps pitch values. ### Without the client mod installed Vanilla pitch clamping applies. If the calculated pitch exceeds vanilla limits, it will be clamped by the client. ### With the client mod installed Pitch clamp range is expanded to:`[0.03125, 32.0]`, witch means you can change pitch within: -5va ~ +5va note that for full extended pitch range, client installation is needed. --- ### 🔊 About `` The `` argument is **not restricted to vanilla sound events**. You may use: - Custom namespaces - Custom paths - Any id defined inside a resourcepack It does **NOT** need to start with `minecraft:`. Example valid IDs: ``` minecraft:block.note_block.harp custom:piano my_music:grand.piano ``` you cannot use nested namespace, like `infinote.custom:piano`, or `smoe:namespace:your_path`. The `` can contain: - Lowercase letters (`a-z`) - Numbers (`0-9`) - Underscore (`_`) - Only one colon (`:`) - Dot (`.`) Format: ``` : ``` Only **one colon** is allowed. ## 🎵 Resourcepack (Vanilla Structure) follow the standard Minecraft resourcepack structure: Click to expand resourcepack structure ``` resourcepack/ └─ assets/ └─ / ├─ sounds.json └─ sounds/ ├─ example_sound.ogg └─ smth_ur_folder/ └─ nested/ └─ your_sound.ogg ``` Example `sounds.json`: ```json { "your_sound": { "category": "record", "replace": false, "sounds": [ "example_sound" ] }, "sound_id_in_the_command": { "category": "record", "replace": false, "sounds": [ "smth_ur_folder/nested/your_sound" ] } } ``` After defining the sound in `sounds.json`, use its full ID in the command: ``` /infinote add minecraft:stone :custom.sound block 0 3 ``` In the above example, you should send command: ``` /infinote add minecraft:stone :your_sound records 0 3 /infinote add minecraft:white_concrete :sound_id_in_the_command records 0 3 ``` --- ## 🔄 Migration from NotebetterFabric Infinote provides a built-in migration command for users coming from **NotebetterFabric**. You can import an existing NotebetterFabric configuration file directly: ``` /infinote import notebetterfabric ``` - ``: Path to your existing NotebetterFabric configuration file The command reads the JSON file and converts it into Infinote format automatically. ### Why migrate? Compared to NotebetterFabric, Infinote: - Runs primarily on the **server side** - Supports extended pitch ranges (with client mod installed) - Allows floating-point semitone pitch shifting - multiplayer compatible After importing, use: ``` /infinote reload ``` to apply the converted configuration. Always keep a backup of your original JSON file before importing. Migration is designed to make switching seamless while preserving your existing sound mappings. --- ## 📜 License This project is licensed under the **MIT License**. You are free to: - Use - Modify - Distribute - Include in modpacks Attribution is required.