promotional bannermobile promotional banner

Visual Anvil

Probably the only anvil mod you need, everything related is toggleable in configurations file.

Visual Anvil makes Minecraft anvils feel like physical workstations instead of temporary menus.

Items placed inside an anvil remain there when the GUI is closed and are visibly rendered on top of the block. The calculated result can also be displayed above the anvil, allowing anvils to become a real part of workshops, factories, enchanting rooms, and multiplayer builds.

Visual Anvil also includes an extensive optional configuration system for changing anvil mechanics, enchantments, repairs, automation, rendering, XP costs, naming, and more.

Almost all gameplay-changing features are disabled by default. You can install Visual Anvil simply for persistent and visible anvils without changing vanilla balance.

Configuration files are stored in:


config/visualanvil-server.toml
config/visualanvil-client.toml

The server/common configuration controls gameplay and automation. The client configuration only controls visual presentation and enchantment-level display.

Core Features

Items placed into an anvil remain stored inside it after closing the menu.

Both input items can be rendered physically on top of the anvil, and the current calculated result can be displayed above them.

Multiple players can use the same anvil while its inventory and result remain synchronized.

Stored items survive normal, chipped, and damaged anvil state changes.

Falling anvils preserve their stored contents, with configurable behavior if the falling anvil breaks.

Hoppers and compatible automation systems can insert items into anvils.

Many normally hard-coded anvil mechanics can optionally be customized.

 Complete Configuration Reference

Gameplay

  •   removeTooExpensive = false — Completely removes the vanilla Too Expensive! mechanic when enabled. This removes the actual restriction, not just the text.
  •  maximumAnvilCost = 40 — Sets the maximum allowed anvil level cost. Supports values from 1 to 100000. Ignored when Too Expensive is completely disabled.
  •  disableXpCost = false — Makes anvil operations consume 0 XP levels.
  •  semiDisableXpCost = false — The player must still have the normally required level, but a successful operation consumes only 1 level.
  • anvilXpCostMultiplier = 1.0 — Multiplies calculated anvil XP costs. Range 0.0–10.0.
  • disablePriorWorkPenalty = false — Removes Minecraft's prior-work penalty from repeatedly worked items.
  • priorWorkPenaltyMultiplier = 1.0 — Multiplies prior-work penalties instead of removing them completely. Range 0.0–10.0

Enchantments

  •      allowOverleveledEnchantments = false — Allows enchantments combined through an anvils to exceed their normal vanilla maximum.
  • maxAnvilEnchantmentLevel = 255 — Maximum enchantment level obtainable through anvil overleveling. Range 1–255.
  • allowVanillaLevelStacking = true — Preserves vanilla equal-level stacking, such as Sharpness IV + Sharpness IV = Sharpness V.
  • allowLevelStacking = false — Enables fully additive enchantment combining. For example, IV + IV = VIII and IV + III = VII. When additive stacking is enabled, it takes priority over vanilla stacking.
  • allowIncompatibleEnchantments = false — Allows normally mutually exclusive enchantments to coexist.
  • allowTreasureEnchantmentCombining = false — Loosens normal item-support restrictions for treasure enchantments supplied through enchanted books.
  • allowAnyEnchantOnAnyItem = false — Allows enchantments to be applied to items they normally do not support.
  •  customNaturalEnchantmentLevels = false — Enables the custom natural-enchantment level range.
  • naturalEnchantmentMinLevel = 1 — Minimum naturally generated enchantment level. Range 1–255.
  • naturalEnchantmentMaxLevel = 255 — Maximum naturally generated enchantment level. Range 1–255. Natural-level customization affects supported natural enchantment-generation paths while leaving enchantment eligibility itself unchanged.
      

 Item Repair & Naming

  •     repairPercentPerMaterial = 25 — Percentage of an item's maximum durability restored by each valid repair material. Range 1–100%.
  • singleMaterialFullRepair = false — Makes one valid repair material completely repair the item.
  • universalRepairMaterial = "" — Optional item registry ID that can repair any repairable item. Empty by default, meaning disabled. Example: "minecraft:diamond".
  • consumeRepairMaterials = true — Controls whether repair materials are consumed. When disabled, applicable materials can be reused.
  • freeRenaming = false — Makes pure item-renaming operations cost no XP.
  • renameXpCost = 1 — Sets the XP cost for renaming when free renaming is disabled. Range 0–100000.
  • maxItemNameLength = 50 — Maximum custom item-name length. Range 1–256.
  • allowFormattedNames = false — Allows legacy formatting codes using '&', enabling colored and formatted custom item names.

 Physical Anvil

  •     repairAnvilWithIronIngots = false — Allows damaged anvil blocks themselves to be repaired by sneak-right-clicking them with the configured repair material.
  • anvilRepairItem = "minecraft:iron_ingot" — Registry ID of the item used to physically repair anvils.
  • anvilRepairStagesPerItem = 1 — Number of damage stages repaired per item. Range 1–2.
  • fullRepairWithOneRepairItem = false — Makes one repair item immediately restore a damaged/chipped anvil to a normal anvil.
  • disableAnvilDamage = false — Prevents anvils from taking durability/damage from use.
  • anvilDamageChance = 0.12 — General chance for an anvil to become damaged after an operation. Range 0.0–1.0.
  • useOperationSpecificDamageChances = false — Enables separate damage probabilities for different kinds of operations.
  • repairDamageChance = 0.12 — Damage chance following item-repair operations.
  • enchantCombineDamageChance = 0.12 — Damage chance following enchantment-combination operations.
  • renameDamageChance = 0.12 — Damage chance following rename operations.
  • disableAnvilUseSound = false — Disables the normal anvil-use sound without disabling unrelated falling/breaking sounds.
  • anvilUseSoundVolume = 1.0 — Controls anvil-use sound volume. Range 0.0–4.0.
  • fallingBrokenContentsMode = "DROP" — Controls what happens to stored contents when a falling anvil is destroyed instead of successfully landing. Supported modes are "DROP", "PRESERVE", and "VOID".

Client Rendering

  •     renderInputs = true — Renders the two stored input items on the anvil.
  • renderResult = true — Renders the calculated output.
  • bobResult = true — Makes the rendered result gently bob.
  • resultBobSpeed = 1.0 — Result bobbing speed. Range 0.0–20.0.
  • resultBobAmplitude = 0.04 — Result bobbing distance. Range 0.0–1.0.
  • resultRotationSpeed = 1.0 — Rotation speed of the displayed result. Range 0.0–20.0.
  • resultScale = 1.0 — Result-item rendering scale. Range 0.05–5.0.
  • resultVerticalOffset = 0.0 — Vertical position adjustment for the result. Range -2.0–2.0.
  • resultFullbright = false — Renders the result at maximum lighting.
  • resultDisplayDurationTicks = 0 — How long a taken result continues to appear. '0' means it remains until the inputs change. Range 0–72000 ticks.
  • inputScale = 1.0 — Rendering scale of input items. Range 0.05–5.0.
  • inputLeftOffset = -0.19 — Position adjustment for the left input. Range -2.0–2.0.
  • inputRightOffset = 0.19 — Position adjustment for the right input. Range -2.0–2.0.
  • inputVerticalOffset = 0.0 — Vertical position adjustment for both inputs. Range -2.0–2.0.
  • inputRotationDegrees = 0.0 — Rotation adjustment for input items. Range -360°–360°.
  • bobInputs = false — Enables bobbing for the rendered inputs.
  • inputBobSpeed = 1.0 — Input bobbing speed. Range 0.0–20.0.
  • inputBobAmplitude = 0.02 — Input bobbing distance. Range 0.0–1.0.
  • inputFullbright = false — Renders input items at maximum lighting.
     

Client Enchantment Display

  •     romanEnchantmentLevels = true — Displays enchantment levels using Roman numerals, including levels beyond vanilla's normal range all the way through 255 / CCLV. Disable it to use regular Arabic numbers such as "Sharpness 25".

Configuration Precedence

Some settings intentionally override others.

When "disableXpCost" is enabled, it takes priority over "semiDisableXpCost".

When "allowLevelStacking" is enabled, additive stacking takes priority over "allowVanillaLevelStacking".

With additive stacking disabled and vanilla stacking enabled:

IV + IV = V
IV + III = IV

With additive stacking enabled:

IV + IV = VIII
IV + III = VII

With both stacking systems disabled:

IV + IV = IV
IV + III = IV

 

The result is then limited either by the enchantment's normal maximum level or by "maxAnvilEnchantmentLevel" when overleveling is enabled.

Note:

Visual Anvil is designed so that installing it does not automatically overhaul vanilla anvil balance.

By default, mechanics such as removing Too Expensive, altered anvil damage and custom natural enchantment levels are disabled.

The main Visual Anvil functionality: persistent contents, visible items and multiplayer synchronization works without requiring those gameplay changes.

This means server owners can use Visual Anvil as a purely visual/workstation improvement, or enable individual mechanics to turn it into a much deeper anvil overhaul.

The Visual Anvil Team

profile avatar
Owner
  • 1
    Projects
  • 325
    Downloads

I heard it tastes like strawberry