TaczAttributeAdd
A mod that provides dynamic player attributes for Tacz.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
TaczAttributeAdd
TAA Mod - Tacz Attribute Enhancement Mod
Attribute System
Damage Attributes
- Universal Firearm Damage: `taa:bullet_gundamage` - Base damage bonus for all firearms
Firearm-Specific Damage Attributes
- Launcher: `taa:bullet_gundamage_pistol` - Pistol-specific damage bonus - Launcher: `taa:bullet_gundamage_rifle` - Rifle-specific damage bonus - Launcher: `taa:bullet_gundamage_shotgun` - Shotgun-specific damage bonus - Launcher: `taa:bullet_gundamage_sniper` - Sniper rifle-specific damage bonus - Launcher: `taa:bullet_gundamage_smg` - Submachine gun-specific damage bonus - Launcher: `taa:bullet_gundamage_lmg` - Light machine gun-specific damage bonus - Launcher: `taa:bullet_gundamage_launcher` - Launcher-specific damage bonus (e.g., RPGs)
Core Firearm Attributes (20 Total)
- Bullet Count: `taa:ads_time` - Aim speed bonus (lower = faster) - Bullet Count: `taa:ammo_speed` - Bullet velocity bonus - Bullet Count: `taa:armor_ignore` - Armor penetration capability - Bullet Count: `taa:effective_range` - Maximum effective shooting distance - Bullet Count: `taa:move_speed` - Firearm movement speed reduction - Bullet Count: `taa:headshot_multiplier` - Headshot damage multiplier - Bullet Count: `taa:knockback` - Bullet knockback force - Bullet Count: `taa:pierce` - Bullet entity penetration count - Bullet Count: `taa:rounds_per_minute` - Rounds per minute rate - Bullet Count: `taa:recoil` - Firearm recoil reduction - Bullet Count: `taa:inaccuracy` - Bullet spread reduction (lower = better) - Bullet Count: `taa:weight` - Firearm weight reduction (lower = better) - Bullet Count: `taa:magazine_capacity` - Magazine size bonus - Bullet Count: `taa:reload_time` - Reload speed bonus - Bullet Count: `taa:melee_damage` - Melee attack power bonus - Bullet Count: `taa:melee_distance` - Melee attack range bonus - Bullet Count: `taa:bullet_count` - Projectiles per shot bonus
Special Effects
- Ignite: `taa:silence` - Silencing effectiveness (<1.0 activates passive silencing) - Ignite: `taa:ignitefire` - Bullet fire ignition chance
Explosive System
- Explosion Delay: `taa:explosion_radius` - Blast radius bonus - Explosion Delay: `taa:explosion_damage` - Blast damage bonus - Explosion Delay: `taa:explosion_knockbacknew` - Blast knockback - Explosion Delay: `taa:explosion_destroy_blocknew` - Block destruction capability - Explosion Delay: `taa:explosion_delay` - Blast delay time
Accessory Modifier System
- Bullet Count: `melee_damage` - Melee attack damage - Bullet Count: `melee_distance` - Melee effective range - Bullet Count: `magazine_capacity` - Magazine capacity - Bullet Count: `reload_time` - Reload time - Bullet Count: `bullet_count` - Projectiles per shot
Attribute Value Specifications
- Passive Activation: 1.0 (100% effect) - Passive Activation: - Example: 0.5 = 50% increase (final multiplier = 1.0 + 0.5 = 1.5x) - 1.0 = 100% increase (no additional effect) - Passive Activation: 0.0 = false, 1.0 = true - Passive Activation: Attributes like silencing automatically trigger conditions (<1.0)
Damage Calculation Modes
Configurable Modes (via `taa-attributes.toml`):
1. MAX Mode (Default) - Formula: `Math.max(base_damage, specific_damage)` - Selects higher value between base and firearm-specific damage
2. ADDITIVE Mode - Formula: `base_damage + specific_damage - 1.0` - Combines values while preserving base damage
3. MULTIPLICATIVE Mode - Formula: `base_damage * specific_damage` - Multiplies base and firearm-specific damage
Technical Implementation
Core Components
- `PropertyCalculator`: Handles all attribute calculations - `PlayerAttributeHelper`: Retrieves player attributes - `PropertyCacheUpdater`: Updates calculated values in attachment cache - `GunPropertiesInitializer`: Dynamically initializes firearm properties - `AttributeConfig`: Manages configuration settings - `GunTypeContext`: Tracks current firearm type context
Client/Server Architecture
- Client Safety: - UI methods annotated with `@OnlyIn(Dist.CLIENT)` - Client-side mixins configured in `taa.mixins.json` - No server-side client code execution
- Data Consistency: - Modifiers fully compatible with TACZ accessory system - Calculations performed server-side - Attribute updates via standard `AttachmentPropertyManager`
Calculation Workflow
1. Event trigger during firearm attribute processing 2. Firearm type identification via Tacz API 3. Context setup in `GunTypeContext` 4. Mode-based calculation execution 5. Cache update with new values 6. TACZ system applies final attributes
Compatibility & Configuration
Accessory System
- 5 new modifier types compatible with TACZ accessories: - Melee damage - Melee range - Magazine capacity - Reload time - Bullet count - Standardized implementation for cross-mod compatibility