Bow and arrow combat too boring for you? Well, we probably have the solution for you! Try Bow Overhaul!
Bow Overhaul aims to make using bows more exciting and skillful by providing a bonus for better accuracy and disadvantages to using bows in close-range and while wearing heavy armor.
In addition, a quiver is added to make inventory management a bit easier and adds new bows and arrows more in-line with the vanilla tools and weapons.
Also, pretty much everything can be disabled, you could completely strip it down just to let you modify arrow damage or speed or just add headshots. Have fun!
Note: If you make custom head hitboxes for a mod's mobs, please share them! If you send them to me, I will happily include them in my defaults for innate mod support! (Also, you will be added to the mcmod.info credits and a list on this page, unless you wish to remain anonymous.)
* Akitori for extensive mod testing!
Mod support (head hitbox defaults):
Headshots - Arrows are now able to score headshots for increased damage (generally speaking). Each mob's (and the player's) head hitbox is determined by property files, where each head's size, position, and damage modifiers can be set. Damage modifiers for headshots and non-headshots may also be configured for each arrow and bow.
Defaults are included for all vanilla mobs, and mod-added humanoid mobs should be handled fairly well (they will get the same hitbox as zombies, skeletons, etc.).
Debug mode causes these "hitboxes" to be rendered in red on each mob, similar to F3+B bounding boxes.
When a headshot is scored, a burst of critical particles will explode from that head. You will see these coming out of your face if a headshot is scored on you.
Arrow ramp-up - Arrows deal less damage to enemies that are too close. By default, arrows need to travel 10 blocks from their initial position in order to deal full damage. This distance can be configured for each arrow and bow.
Heavy/light armor - Wearing "heavy" armor reduces your bow's drawback speed. For vanilla armors, only leather and chainmail are considered "light".
Recipes are added to convert iron ingots to and from chainmail (1 iron ingot = 1 chainmail), which can be used to craft chainmail armor.
Bows - Adds five new bows corresponding to the five standard tool materials. These bows, which replace the vanilla bow by default, are a bit more expensive to craft (same as a sword of the same material + 3 string), and offer these changes:
* Arrow speed varies slightly with the material's attack damage, with the iron bow shooting arrows at the same speed as vanilla (affects arrow damage, range, and flight time)
* Draw speed is based on the material's dig speed, with the diamond bow having the same draw speed as vanilla
* Bow durability is the same as a standard tool, based on its material
* Do not require an arrow in your inventory when enchanted with infinity (this causes more damage to the bow, but shoots a decently powerful arrow)
* Capable of shooting many things that dispensers can (e.g., splash potions, ender pearls, snowballs, spawn eggs, etc. - with the flame enchantment, TNT and fire charges may be shot as well)
* Capable of shooting items out of quivers
Quivers - Adds a quiver item that has three inventory slots dedicated to items that can be used as ammo. Ammo in quivers will be shot before ammo loose in your inventory, with the quiver equipped in your chestplate slot being used first. Quivers may also be crafted on to some chestplates (generally only light armor), so you don't have to sacrifice armor.
By default, G opens your highest priority quiver's inventory (a quiver can also be opened by right-clicking with it), while R swaps the active slot in your current quiver, which is rendered on the left side of your screen by default.
Quivers attempt to absorb picked up ammo to replenish spent ammo. This functionality does not work on vanilla arrows, however.
Arrows - Adds six new arrows corresponding to the five standard tool materials, plus a flint arrow that replaces the vanilla arrow by default. The recipes for these arrows are essentially the same as the vanilla arrow's recipe, but only yields two arrows for each crafting. The new arrows:
* Deal damage based on the material's attack damage, with iron having the same base damage as vanilla (flint deals damage equal to stone)
* Have only a chance to break on hit based on the material's durability (100% for wood and gold, 51% for stone, 27% for iron and flint, and 4% for diamond).
* Take 5 minutes to despawn from the ground instead of 1 (only if the arrow can be picked up).
* Are useful when fired from a dispenser (dispensers shoot as if they are fully-charged wooden bows with a 5% chance to crit)
Studded leather armor - Adds an additional armor set considered "light" armor, so that it does not incur a draw speed penalty when worn. Defensively, it is the same as iron armor (a heavy armor), but it is more durable and enchantable. In addition, a quiver can be crafted on to a studded leather chestplate.
This armor is crafted with studded leather, which is made out of leather and chainmail (leather and iron ingot, if chainmail is disabled).
Stackable snowballs/splash potions - Adds snowballs and splash potions which can be crafted to achieve a higher stack size (64 for snowballs and 16 for splash potions). When crafted this way, they are only usable by bows and dispensers.
Snowballs can be crafted into their ammo version freely, but splash potions require one string for each potion.
Just about any entity can have "arrow stats". However, they are only automatically generated for entities which extend EntityArrow. Feel free to add your own files here, such as for fireballs, snowballs, splash potions, etc. (Just be sure to get the entity's savegame id correct in the new files!)
Same as for arrow stats, any item can have bow stats - these apply arrow stats to any entities spawned that consider you their shooter when the "bow" is equipped, and apply modifiers to certain bow events while the item is held.
In addition to modifying headshot and bodyshot damage modifiers and ramp-up range, a speed multiplier, variance (inaccuracy), and arrow nbt data (see Mob/Block Properties nbt functions, it is identical apart from the if_X functions available) can also be applied for each arrow and bow type.
Draw speed and maximum draw power can also be configured for each bow type.
Bow stats can also be overridden on a specific bow through NBT data. If the string tag "BowOverhaulStats" is in an item stack's tag, that string will be loaded as its Json bow stats file and override the file in your config (if any).
The arrows added in this mod have some extra NBT tags, allowing you further control using the nbt function array in arrow/bow stats files.
* "lifespan" (short) - the amount of ticks on the ground until the arrow despawns (generally defaults to 5 minutes or 6000, but lower for arrows that can't be picked up and the infinity arrow)
* "breakChance" (float) - the chance for this arrow to break on hit (a negative value lets the material decide)
* "knockback" (float) - the level of knockback enchantment used (can apply negative knockback)
* "friction" (float) - the amount by which the arrow is slowed down each tick in air (defaults to 1% or 0.01)
* "waterFriction" (float) - the amount by which the arrow is slowed down each tick under water (defaults to 20% or 0.2)
* "gravity" (float) - a constant downward velocity applied to the arrow - do NOT set this to 0 unless you also set both friction values to 0 (defaults to 0.05 m/tick)
Some helpful tools for working with this mod:
/boreload will reload all of your Json settings in config/BowOverhaul
There is a debug mode that can be enabled in the main config, but it can also be enabled/disabled in game without changing your setting using /bodebug
Debug mode is mainly to help with balancing/tweaking your Json settings. It will print information to your console and render imaginary bounding boxes.
I haven't gotten around to adding a renderer for equipped quivers. You do get a placeholder armor mesh for just the plain quiver when equipped, however.
Entities with "new" AI do no actually rotate from the idle looking tasks. This causes passive mobs' head hitboxes to be in the wrong location visually until the entity moves again.
Vanilla bow and arrow replacement is not complete - Bows can be equipped on and then dropped by skeletons, and could appear as mod-added drops. Both can still appear as villager trades and chest loot. Mod-added recipes may still include the vanilla bow or arrow as inputs or outputs.