COWMODSКаталог модов

Hopeful: Enchanting

Enchanting overhaul focusin on customizability, determinism, and choice!

Автор: Double_Pi63915обновлён 25 окт. 2026 г.
Механики игрыБиблиотекиМагия

Описание

The aim of Hopeful: Enchanting is to rebuild the system of enchanting to be focused on choice, customizability, and intent.

All systems are built with datapacks & modpack creators in mind.

This mod is my first "commercial" mod, so I'm ready for constructive feedback! :)

Current Features

Tool Levels

  • Each tool has Tool Level that can be seen when placed in a smithing table.
  • When they are all used up, it will no longer accept scrolls.
  • Some tools can level up when being used like chainmail and bows. Leveling up will allow them to accept more scrolls.
  • With Hopeful Unlimited, a built-in datapack you can enable, tools will get virtually infinite tool level, so this mechanic becomes obsolete.
  • A data component called sealed_enchants allows for tools to have enchantments that don't take up tool levels, and can't be removed.

XP Rework

  • Now each level is 16 points.
  • There are 3 new gamerules to improve XP handling:
    • xpPerLevel (or hopeful:xp_per_level on 26.1) defines the number of experience points per level (default: 16)
    • percentageXPLost (or hopeful:percentage_xp_lost on 26.1) defines the percentage of XP lost (unrecoverable) on death (default: 0)
    • percentageXPDropped (or hopeful:percentage_xp_dropped on 26.1) defines the percentage of XP dropped on the ground on death (default: 100)
  • Anvils can be mend using iron ingot (or #hopeful:anvil_mends)
  • Anvils will fully repair an item using only one repair material (Thanks Forgery for the code)
  • Repairs are data-driven.

Scrolls

  • Scrolls are a package of enchantments, having 2-3 enchants.
  • Combine equipment with a scroll and lapis lazuli in a smithing table to upgrade an enchantment's level by the level specified on the scroll.
  • Scrolls can be blessings (positive enchantments that use up Tool Levels), curses (negative enchantments that free up Tool Levels), and deals (both).
  • When getting enchanted books and tools in the wild - They will be stripped to their scrolls.
  • stripAllEnchants gamerule would decide if all the enchants will be stripped, or only until valid configuration (where used tool level is not bigger than default tool level), and giveStrippedScrolls whether stripped scrolls will be given or voided.
  • Using the built-in normalized_enchants datapack, enchantments would normalized to be 1 or 3 levels.

Enchanting Table Overhaul

The enchanting table menu is gone Now, clicking on it with a piece of paper has a chance of transforming into a scroll.

Default chance is quite low though, but you can increase it with catalysts!

These are blocks that have to be in a 5x5x5 area around the table, and can give different effects.

Currently, we have:

  • Bookshelves: increase chance of producing a scroll, but increase xp requirement.
  • Lapis Block: decreases xp level requirement, but has a chance of evaporating.
  • The following increase chance of a scroll, but increase xp requirement:
    • Magma: flame scroll.
    • Prismarine: fins and gills scrolls
    • Soul blocks & soul fire blocks: undead scroll
    • Vault: wind scroll (has a chance of spawning a breeze)
    • Carved pumpkins: binding scroll
    • Enchanting Table: Endless scroll
    • Lightning Rod: channeling scroll
    • Pointed Dripstone: extermination scroll.
    • Sculk blocks: echoes scroll.

Dev Stuff

Scroll

Scrolls will be placed in datapack_name/hopeful/scroll/scroll_name.json and its format will look like this:

{
  "title":{
    "translate": "scroll.hopeful.acceleration"
  },
  "type": "blessing",
  "tool_levels": 1,
  "enchantments": {
    "minecraft:quick_charge": 1,
    "minecraft:riptide": 1
  },
  "sealed_enchantments": {
    "minecraft:quick_charge": 1
  }
}

Sealed Enchantments are optional. Scrolls also have loot table functionality

  • Scrolls stripping works automatically in loot tables using hopeful:strip_to_scrolls loot table modifier
  • There's a random_scroll loot pool entry type, which can be seen in action in unknown_scroll loot table.

Sealed Enchantments

The component has the same structure as vanilla enchantments.

Do note that innate enchantments don't apply the enchantments.

For example, to summon a gold pick with innate fortune 2 (that actually works):

/give @s minecraft:golden_pickaxe[minecraft:enchantments={fortune:2},hopeful:sealed_enchantments={fortune:2}]

Levels

Tool Level stats can be modified in datapack_name/data/hopeful/data_maps/item/tool_levels.json in this format:

{
  "values": {
    "minecraft:chainmail_chestplate": {
      "starting_level": 5,
      "level_ups": [10,50,100] 
    },
    "minecraft:crossbow": {
      "starting_level": 3,
      "level_ups": [50, 100, 150]
    }
  }
}

Note that the numbers are the uses above previous that it takes to level up. For example, for the crossbow, after reaching level 2, you'd need 50 more uses to get to level 3.

Repairing tools can be modified in datapack_name/data/hopeful/data_maps/item/tool_repairs.

This is the format:

{
  "values": {
    "minecraft:iron_sword": [
      {
        "material": "minecraft:diamond",
        "level_cost": 1,
        "durability": 100,
        "is_percentage": true
      }
    ]
  }
}

materials can be omitted to use default repair material for the item. Note that data maps are lowest-to-highest priority, so the most general overrides should appear first

Enchanters

Enchanters are the blocks you are allowed to click on to enchant with. By default, only the enchanting table is one. The datamap is located at data/hopeful/data_maps/block/enchanters.json and it follows this format:

  {
  "values": {
    "minecraft:enchanting_table": {
      "catalyst_limit": 4,
      "range": 2,
      "effects": [
        {
          "type": "hopeful:scroll_weight",
          "scrolls": "#hopeful:default",
          "increase_by": 10
        },
        {
          "type": "hopeful:scroll_weight",
          "scrolls": "#hopeful:scrolls",
          "increase_by": 10
        },
        {
          "type": "hopeful:success_chance",
          "increase_by": 0.25
        }
      ]
    }
  }
}

Catalysts

These catalysts are data-driven, and we have 5 effects, with plenty more to come.

The catalysts are of the form: datapack_name/hopeful/hopeful/catalyst/unused_name.json

And look like so: (made up catalyst)

{
  "blocks": "minecraft:bedrock",
  "limit": 2,
  "effects": [
    {
      "type": "hopeful:scroll_weight",
      "scrolls": "hopeful:acceleration",
      "increase_by": 2
    },
    {
      "type": "hopeful:xp_levels_requirement",
      "increase_by": 10000
    },
    {
      "type": "hopeful:success_chance",
      "increase_by": 0.5
    }

  ]
}

Галерея

Scroll ApplyingBlessing of AccelerationCurse of Binding ScrollCatalysts in JEI

Последние версии

Все версии →
release

Hopeful: Enchanting 1.7.2

1.7.2
25 окт. 2026 г.26Minecraft: 1.21, 1.21.1neoforge
Скачать
Что нового
* Added level up trigger for advancements * Added loot effect, which can roll a list of loot tables * Fixed multiplayer bug
release

Hopeful: Enchanting 1.7.1

1.7.1
6 сент. 2026 г.103Minecraft: 1.21, 1.21.1neoforge
Скачать
Что нового
## Version 1.7.1 * Scrolls can now require the tool to already have some enchantments in order to be applied. * Scroll enchantment's structure has been redone, again. It now is a singular map from enchantment to number (for normal levels) or object for sealed and requirements. * Scroll's creative tab has been removed, the scrolls are now in ingredients. * Tools can now have "infinite" tool levels by not defining starting level (see hopeful_unlimited) * Smithing screen has been cleaned up, only showing player xp and tool level bar when needed. * Applying scrolls can now trigger advancements! * Dispensers can now enchant, granted xp requirement is 0 * New enchanting effect: function! This will allow the thing to execute an mcfunction as the player in the location of the enchanter * Librarians now trade scrolls instead of enchanted books
release

Hopeful: Enchanting 1.7.0

1.7.0
29 авг. 2026 г.29Minecraft: 1.21, 1.21.1neoforge
Скачать
Что нового
## Version 1.7.0 * Added back the ability to define scroll enchantments using a list or tag. * Code cleanup * Built foundations for wiki ### Advancements * Enchanting calls a special trigger called `hopeful:enchanting` with many conditions on the setup. * Some conditions can be seen in the new advancements in the story tab! ### Parchments * Instead of `scroll_material` tag, materials are now defined in an item datamap called `parchments`. * Each parchment can have its own enchanting effects, similar to enchanters and catalysts. * Using `morph_self` effect on parchments will morph the enchanter, but there are plans to be able to morph the item. Note: I refrain from adding new items and blocks, which is why the only parchments and enchanters available is paper and enchanting table respectively.
release

Hopeful: Enchanting 1.6.2

1.6.2
9 авг. 2026 г.39Minecraft: 1.21, 1.21.1neoforge
Скачать
Что нового
Added JEI category for Enchanters * Known Bug: EMI doesn't work with JEI's cycling itemstacks? idk
release

Hopeful: Enchanting 1.6.1

1.6.1
8 авг. 2026 г.17Minecraft: 1.21, 1.21.1neoforge
Скачать
Что нового
* New gamerule: `giveStrippedScrolls` whether stripped scrolls will be given or voided. # Loot Tables * Scrolls stripping works automatically in loot tables using `hopeful:strip_to_scrolls` loot table modifier * Added `random_scroll` loot pool entry type, which can be seen in action in `unknown_scroll` loot table.
release

Hopeful: Enchanting 1.6.0

1.6.0
7 авг. 2026 г.25Minecraft: 1.21, 1.21.1neoforge
Скачать
Что нового
# Enchanters The enchanting table itself is now data-driven! Any block can become an enchanter with its own effects, catalyst limit, and range! # Scrolls Scrolls can now add multiple levels of an enchantment! **This means scrolls can no longer use a list or tag, so it does result in breaking changes!** # Misc. * Renamed `enchanting_status` to `used_levels` and `innate_enchantments` to `sealed_enchantments`. Previous versions would still migrate automatically. * Removed unused gamerules * Moved normalized enchantments into a built-in datapack. * Enchanting now gives the Enchanter advancement
release

Hopeful: Enchanting 1.5.4

1.5.4
14 июл. 2026 г.126Minecraft: 1.21, 1.21.1neoforge
Скачать
Что нового
* Add JEI Compat for catalysts (v1)
release

Hopeful: Enchanting 1.5.3

1.5.3
13 июл. 2026 г.21Minecraft: 1.21, 1.21.1neoforge
Скачать
Что нового
* Made vault twice as effective as a catalyst, but only allow one at a time. * Allowed `entity_nbt` in the `summon_entity` catalyst effect * Made smithing table's notches darker * Fixed a bug with stackable enchanted books * Fixed bugs relating to custom repairs to improve stability with renaming, multiple repair rules, and enchanted books with no scrolls. * Netherite tools can now be repaired with diamond, repairing half the durability * Updated description
release

Hopeful: Enchanting 1.5.2

1.5.2
11 июн. 2026 г.51Minecraft: 1.21, 1.21.1neoforge
Скачать
Что нового
Added a new `innate_enchantments` data component, which allows tools to have enchantments that don't take up tool levels, and can't be removed. Since this is a data component, it will require Defaulted for modpack purposes.
release

Hopeful: Enchanting 1.5.1

1.5.1
10 июн. 2026 г.20Minecraft: 1.21, 1.21.1neoforge
Скачать
Что нового
* Fixed a bug with enchantments that don't have an appropriate scroll disappearing.