Config and commands
Where the config files are, every field for bows, relic bows, loot and trinkets, and the commands.
⚙️ Configuration System
Starting in Too Many Bows 3.0.0, nearly every aspect of the mod is configurable via JSON files. Configs are split into three categories: bow configs, the loot config, and the accessories config.
📁 Config File Locations
All config files are generated automatically on first launch and can be edited freely.
| Config Type | Path |
|---|---|
| Bow Configs | config/too_many_bows/bows/<bow_name>.json |
| Relic Bow Config | config/too_many_bows/bows/forbidden_three.json |
| Loot Config | config/too_many_bows.json |
| Accessories Config | config/too_many_bows/accessories/ |
Missing config files are generated with defaults. Bow JSON loading falls back to defaults if parsing fails; it does not automatically rewrite every malformed file. Back up files before editing.
🏹 Bow Config Fields
Most configurable bows have their own JSON file inside the bows/ folder. Eventide, Worldeater and Godsplitter share forbidden_three.json. While every bow is unique, they share common categories of fields:
| Field Category | Examples | Description |
|---|---|---|
| Damage | direct_hit_damage, direct_hit_damage_override | Controls base projectile damage. Set to -1.0 to leave unchanged. |
| Projectile Behavior | max_lifetime_ticks, allow_pickup, discard_after_entity_hit | Controls arrow lifetime, pickup rules, and hit behavior. |
| Spread & Multishot | arrow_count, spread_angle_degrees, velocity_multiplier | Controls how many arrows fire and their spread pattern. |
| Ability Effects | burst_radius, target_levitation_duration_ticks, owner_slow_falling_enabled | Toggles and tunes each bow's unique ability. |
| Trail Particles | trail_particles_enabled, trail_particles_per_tick, trail_particle_offset_y | Controls the particle trail on arrows in flight. |
| Hit/Burst Particles | burst_particles_enabled, burst_particle_count, burst_particle_offset_x | Controls particles spawned on impact. |
| Sounds | shoot_sound_enabled, burst_sound_volume, burst_sound_pitch | Controls volume and pitch of firing and impact sounds. |
| Armor Penetration | default_armor_penetration_factor, min/max_armor_penetration_factor | Controls how much armor is bypassed (e.g. Ancient Sage Bow). |
| Ricochet | starting_ricochet_count, max_ricochets, ricochet_velocity_multiplier | Controls bounce behavior (e.g. Astral Bound). |
Not all fields apply to every bow — each bow's JSON only contains fields relevant to its mechanics.
Example snippet — aethers_call.json:
{
"direct_hit_damage": 6.0,
"burst_radius": 4.0,
"target_levitation_enabled": true,
"target_levitation_duration_ticks": 40,
"trail_particles_enabled": true,
"trail_particles_per_tick": 1
}🌠 Relic Bow Configuration
The shared file is config/too_many_bows/bows/forbidden_three.json. In development, look under your launch's run/config/ folder. The values below are the current source defaults; existing configs can override them.
| Field | Default | Purpose |
|---|---|---|
eventideDamage | 14.0 | Eventide arrow damage setting |
lanceDamage | 8.0 | Eventide lance damage and constellation-link damage |
finalMaxHealthFraction | 0.08 | Extra maximum-health fraction on the final lance, before Alignment bonuses; extra damage is capped at 100 |
worldeaterDamage | 18.0 | Worldeater arrow damage setting |
dragonDiveDamage | 16.0 | Base dragon-dive damage |
dragonfireDamage | 4.0 | Dragonfire damage per pulse |
godsplitterDamage | 20.0 | Godsplitter arrow damage setting |
headshotMultiplier | 3.0 | Godsplitter perfect-headshot multiplier |
abilityCooldownTicks | 80 | Eventide and Worldeater special-shot cooldown |
maxDominance | 10 | Charges required for an empowered Worldeater shot |
starfallDelayTicks | 40 | Delay before Eventide's first lance; clamped to 10–100 ticks |
dragonfireDurationTicks | 100 | Dragonfire-zone duration; clamped to 20–180 ticks |
fragmentChance | 0.25 | Celestial component chance in its matching chest |
bluntedEdgeChance | 0.18 | Additional Blunted Edge loot chance |
affectPlayers | false | Allows relic targeting/effects against players |
protectPets | true | Excludes tamed animals from relic targeting/effects |
20 ticks = one second. Actual arrow damage also depends on flight speed, critical hits, enchantments and attributes.
For a stronger Eventide, these are suggested starting values rather than shipped defaults:
"eventideDamage": 24.0,
"lanceDamage": 12.0,
"finalMaxHealthFraction": 0.12Edit those fields inside the existing JSON object. Use /tmb reload bows for combat-value changes. Restart the game/server after changing fragmentChance or bluntedEdgeChance, because their loot pools are built during initialization. Loot changes do not reroll chests whose contents have already generated.
🎁 Loot Config Fields
The loot config lives at config/too_many_bows.json and controls which bows and trinkets appear in world loot, at what rates, and in which chests.
| Field | Default | Description |
|---|---|---|
easyLootEnabled | true | Enables easy-tier loot injection |
easyLootDropChance | 0.5 | Drop chance for easy loot (0.0–1.0) |
mediumLootEnabled | true | Enables medium-tier loot injection |
mediumLootDropChance | 0.4 | Drop chance for medium loot (0.0–1.0) |
hardLootEnabled | true | Enables hard-tier loot injection |
hardLootDropChance | 0.3 | Drop chance for hard loot (0.0–1.0) |
endgameLootEnabled | true | Enables endgame-tier loot injection |
endgameLootDropChance | 0.2 | Drop chance for endgame loot (0.0–1.0) |
globalBowPullSpeed | 16.0 | Global multiplier for bow draw speed |
easyLootTables | [simple_dungeon, mineshaft] | Chest loot tables to inject easy items into |
easyLootItems | (list of item IDs) | Items that can appear in easy loot |
mediumLootTables / mediumLootItems | — | Same as above for medium tier |
hardLootTables / hardLootItems | — | Same as above for hard tier |
endgameLootTables / endgameLootItems | — | Same as above for endgame tier |
Default Loot Tiers
| Tier | Default Chest Sources |
|---|---|
| Easy | Simple Dungeon, Abandoned Mineshaft |
| Medium | Jungle Temple, Pillager Outpost, Mineshaft, Dungeon |
| Hard | Stronghold Corridor, Nether Fortress, Bastion Treasure |
| Endgame | End City, Nether Fortress, Bastion Treasure |
Drop chances are clamped between
0.0and1.0. Invalid values are automatically corrected on load. A timestamped backup of your loot config (e.g.too_many_bows.json.bak-20250101-120000) is created automatically before any migration or correction is applied.
🧿 Accessories Config Fields
The accessories config controls the stat bonuses granted by each trinket.
| Field | Default | Trinket |
|---|---|---|
deadEyesPendantCritBonus | 0.08 | Dead Eye's Pendant — critical hit chance bonus per stack |
drawSpeedGloveBonus | 0.75 | Windwoven Gloves — bow draw speed bonus per stack |
sharpshotRingBonus | 0.15 | Sharpshot Ring — bow damage bonus per stack |
stormboundSignetBonus | 0.30 | Stormbound Signet — stronger bow damage bonus per stack |
Stackable trinkets multiply their bonus by the number equipped. The Fletcher's Talisman reduces durability loss and has no numeric config value.
🖥️ Commands
All Too Many Bows commands require operator permission level 2 or higher.
| Command | Description |
|---|---|
/tmb reload | Reloads all configs (bows, loot, and accessories) |
/tmb reload all | Alias for the above — reloads everything |
/tmb reload bows | Reloads only bow JSON configs from disk |
/tmb reload loot | Reloads only the loot config (too_many_bows.json) |
/tmb reload accessories | Reloads only the accessories/trinket configs |
Registered bow combat settings can be reloaded with
/tmb reload bows, includingforbidden_three.json. Relic chest-loot probabilities require a restart. Reloading does not reroll already generated chest contents.
