# BuffMobs - Changelog
## Version 2.4.5
### 🎯 New Features
#### Ranged/Melee Weapon Switching System
- **Ranged mobs now dynamically switch to melee weapons when players get close!**
- Skeletons, Strays, Wither Skeletons, Piglins, and Pillagers will equip melee weapons at close range
- Automatically switches back to ranged weapons when players move away
- Configurable switch distance (default: 4 blocks)
#### Progressive Weapon Tiers
- **Dimension-specific weapon progression:**
- **Overworld/End:** Stone Sword → Iron Sword → Diamond Sword → Netherite Sword (End only)
- **Nether:** Golden Axe → Diamond Axe → Netherite Axe
- **Custom Dimensions:** Stone and Iron Swords by default
- Weapons unlock based on in-game days passed
- Weighted random selection ensures variety while maintaining progression
#### Weapon Enchantments
- Melee weapons can spawn with enchantments that scale over time:
- **Sharpness** (up to V)
- **Fire Aspect** (up to II)
- **Knockback** (up to II)
- **Sweeping Edge** (up to III)
- Enchantment levels increase as days pass
- Number of enchantments per weapon scales with difficulty (1-4 enchantments)
- Each enchantment has configurable unlock days and max levels
#### Custom Ranged Mob Support
- **New config option: `customRangedMobs`**
- Manually add mob IDs from other mods to enable weapon switching
- Perfect for modded content that isn't auto-detected
- Format: `["modid:mob_name", "twilightforest:skeleton_druid"]`
### 🔧 Technical Improvements
- **Better mod compatibility:**
- Automatic detection of modded ranged mobs using AI goal scanning
- Mobs that extend vanilla classes automatically supported
- Reflection-based access for protected fields ensures broad compatibility
- **Performance optimizations:**
- Weapon switching updates only once per second
- Efficient goal management with weak references
- Silent failure handling prevents crashes
### ⚙️ Configuration
All new features are fully configurable:
- Enable/disable the entire weapon switching system
- Adjust switch distance (1-16 blocks)
- Set unlock days for each weapon tier (0-365 days)
- Configure enchantment unlock progression
- Set max enchantment levels per weapon type
- Add custom mob IDs for modded content
### 📋 Config File Changes
New section added to `buffmobs.json5`:
```json
"rangedMeleeSwitching": {
"enabled": true,
"switchDistance": 4.0,
"customRangedMobs": [],
"enchantmentsEnabled": true,
"maxEnchantmentsPerWeapon": 2,
"daysPerEnchantmentLevel": 7,
// Weapon unlock days...
// Enchantment settings...
}
```
### 🐛 Bug Fixes
- Fixed registry access for Minecraft 1.21.8 compatibility
- Fixed enchantment application using updated registry system
- Fixed goal selector access for MobEntity AI manipulation
- Improved MeleeAttackGoal compatibility with PathAwareEntity requirement
### 📝 Notes
- Weapon switching only affects hostile ranged mobs
- Original weapons are restored when switching back to ranged mode
- Works seamlessly with existing mob buff systems
- Compatible with day scaling and dimension scaling features
- All features respect existing mob filters (whitelist/blacklist)
---
**Minimum Requirements:**
- Minecraft: 1.21.6 - 1.21.8
- Fabric Loader: 0.16.7+
- Fabric API: Required
- Cloth Config: 19.0.147+
- Java: 21+
**Installation:**
Place the mod file in your `mods` folder and launch the game. Configuration can be accessed via Mod Menu.
Optional dependencies
Mod Menu
Any compatible version
Cloth Config API
Any compatible version
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }