
#Internal schema version for config migrations. Do not change.
[internal]
	#Range: > 0
	configSchemaVersion = 11

#Sound Attract Mod Configuration
[general]
	#Enable debug logging for troubleshooting.
	debugLogging = false
	#Enable datapack-based configuration (tags/JSON).
	#If false, only the TOML configuration is used for sounds and other features.
	enableDataDriven = true
	#Controls precedence when both datapacks and config define the same entries.
	#'datapack_over_config' = datapacks override config values.
	#'config_over_datapack' = config overrides datapack values.
	datapackPriority = "datapack_over_config"
	#Enable the FleeFromUnseenAttackerGoal that makes mobs flee after being hurt by an attacker they cannot see.
	enableFleeFromUnseenAttackerGoal = true
	#Maximum number of sounds any single mob can track simultaneously.
	#Range: 1 ~ 1000000
	maxSoundsTracked = 20
	#Switching threshold factor (0.0–1.0]. A mob will switch if newWeight > currentWeight × soundSwitchRatio.
	#Example: 0.5 means a new sound beating 70% of the current weight will trigger a switch (more eager switching).
	#Set closer to 1.0 for conservative switching; closer to 0.0 for very eager switching.
	#Range: 0.0 ~ 1.0
	soundSwitchRatio = 0.5
	#A small weight bonus given to very new sounds to make mobs more likely to switch to them.
	#This helps break ties and makes mobs seem more 'alert' to new threats.
	#Set to 0.0 to disable.
	#Range: 0.0 ~ 10.0
	soundNoveltyBonusWeight = 9.5
	#How long (in ticks) a sound is considered 'new' for the novelty bonus to apply.
	#20 ticks = 1 second.
	#Range: 1 ~ 200
	soundNoveltyTimeTicks = 100

#Mob grouping and squad behavior
[groups]
	#Enables smarter behavior for mobs at the edge of their hearing range (e.g. pathing closer to investigate further)
	edgeMobSmartBehavior = false
	#How long a sound event remains 'interesting' to a mob, in ticks (20 ticks = 1 second).
	#Range: 20 ~ 1000000
	soundLifetimeTicks = 1200
	#How close a mob needs to get to a sound source to consider it 'reached'.
	#Range: 1.0 ~ 100.0
	arrivalDistance = 6.0
	#After a follower reaches the investigation area near a sound, it will path away from the sound position to spread out and search.
	#This controls how far (in blocks) it tries to spread out.
	#Range: 0.0 ~ 256.0
	followLeaderSpreadOutDistance = 24.0
	#Base speed multiplier for mobs moving towards a sound.
	#Range: 0.1 ~ 3.0
	mobMoveSpeed = 1.15
	#Maximum number of mobs allowed in a group for group AI behavior. Default: 64
	#Range: 1 ~ 128
	maxGroupSize = 64
	#Radius (in blocks) used to group mobs under a leader for group AI behavior. Default: 64.0
	#Range: 1.0 ~ 128.0
	leaderGroupRadius = 64.0
	#Maximum distance (in blocks) for mobs to consider themselves part of a group for group behaviors. Used in AI such as FollowLeaderGoal.
	#Range: 1.0 ~ 256.0
	groupDistance = 128.0
	#Multiplier for spacing between mob leaders in a group. Default: 1.0
	#Range: 0.1 ~ 10.0
	leaderSpacingMultiplier = 1.0
	#Number of edge sectors for group detection (AI). Default: 4
	#Range: 1 ~ 64
	numEdgeSectors = 4
	#Interval (in ticks) between group AI updates. Default: 200
	#Range: 1 ~ 20000
	groupUpdateInterval = 200
	#Maximum number of group leaders tracked for AI grouping. Default: 16
	#Range: 1 ~ 64
	maxLeaders = 16
	#Maximum number of edge mobs to select per angular sector. Default: 4
	#Range: 1 ~ 64
	edgeMobsPerSector = 1
	#Sprint speed multiplier used when followers rally/advance during RAID and when edge mobs return to the leader.
	#Range: 1.0 ~ 5.0
	sprintMultiplier = 1.1
	#Distance (in blocks) within which an edge mob considers itself 'returned' to its leader.
	#Range: 0.5 ~ 16.0
	leaderReturnArrivalDistance = 2.0
	#Countdown duration (in ticks) before a RAID advances to the target. 20 ticks = 1 second.
	#Range: 20 ~ 72000
	raidCountdownTicks = 100
	#Range: 0.0 ~ 1000000.0
	followLeaderMinSoundWeightToSpreadOut = 10.0

#Performance-tuning options. Adjust these to balance responsiveness and server load.
[performance]
	#Delay in ticks before the first mob group computation is run after server startup.
	#This helps prevent lag on world load by giving the server time to stabilize.
	#20 ticks = 1 second. Default: 50 (2.5 seconds)
	#Range: 0 ~ 72000
	initialGroupComputationDelay = 50
	#Number of background worker threads used for off-thread computations (e.g., group building).
	#Increase for large servers; decrease if you observe contention.
	#Range: 1 ~ 64
	workerThreads = 2
	#Soft per-task time budget in milliseconds for worker computations before yielding.
	#Higher values allow more work per batch but can increase latency to apply results.
	#Range: 1 ~ 1000
	workerTaskBudgetMs = 10
	enableQuantifiedIntegration = true
	enableSmartBrainLibIntegration = true
	enableCustomNpcsIntegration = true
	enableQuantifiedCacheIntegration = true
	#Range: 0 ~ 65536
	quantifiedCacheMemoryLimitMB = 256
	disableQuantifiedCacheOnMemoryPressure = true
	triggerQuantifiedCacheCleanupOnMemoryPressure = true
	#Minimum time in ticks between mob scans for new sounds. Higher values can improve performance but reduce responsiveness.
	#Range: 1 ~ 1000000
	scanCooldownTicks = 25
	#How many ticks to add to the base scan cooldown for each active mob.
	#This directly controls how much the cooldown increases with more mobs.
	#A higher value means more cooldown per mob, slowing down scans more aggressively.
	#Example: 0.25 means 100 mobs will add (100 * 0.15) = 15 ticks to the base cooldown.
	#Range: 0.0 ~ 10.0
	cooldownTicksPerMob = 0.15
	#TPS below which scanCooldownTicks is dynamically increased to save performance. Set to 0 to disable.
	#Range: 0.0 ~ 20.0
	minTpsForScanCooldown = 15.0
	#TPS above which scanCooldownTicks is dynamically decreased (down to its minimum defined value). Set to 21 to disable.
	#Range: 0.0 ~ 21.0
	maxTpsForScanCooldown = 19.0
	#Cooldown (in ticks) per mob between async sound scoring submissions when candidates/target are unchanged.
	#Range: 0 ~ 10000
	soundScoringSubmitCooldownTicks = 1
	#Time-to-live (in ticks) for cached async sound scoring results before considered stale.
	#Range: 1 ~ 10000
	asyncResultTtlTicks = 10
	#Enable caching for raycast results to improve performance. Disable if experiencing issues with sound obstruction detection.
	enableRaycastCache = true
	#Time-to-live (in ticks) for raycast cache entries before they are considered expired.
	#Range: 1 ~ 1000000
	raycastCacheTtlTicks = 200
	#Maximum number of entries stored in the raycast cache. Oldest entries are evicted when exceeded.
	#Range: 100 ~ 1000000
	raycastCacheMaxEntries = 5000
	enableOptimizedLos = true
	enableOptimizedLosPairCache = true
	#Range: 256 ~ 1000000
	optimizedLosPairCacheMaxEntries = 8192
	enableOptimizedLosVanillaFallback = true
	enableLosBatching = true
	#Range: 1 ~ 1000000
	losBatchBudgetPerTick = 64
	#Range: 64 ~ 1000000
	losBatchQueueMaxSize = 4096
	enableLivingEntityLosOverride = true
	enableTieredStealthPerformance = true
	#Range: 0.0 ~ 21.0
	stealthTierSkipExpensiveChecksTps = 19.0
	#Range: 0.0 ~ 21.0
	stealthTierCurrentTargetsOnlyTps = 18.0
	#Range: 0.0 ~ 21.0
	stealthTierSharedRangeTps = 17.0
	#Range: 0.0 ~ 21.0
	stealthTierVanillaTps = 15.0
	#Range: 0.0 ~ 256.0
	stealthShareTargetToNearbyMobsRadius = 16.0

["Enchanced AI Integration"]
	#Enable mobs running AttractionGoal to break blocks to reach their destination when stuck. Requires EnhancedAI to be installed for block blacklists/rules.
	enableBlockBreaking = false
	#Multiplier for the time a mob takes to break a block. E.g., 2.0 means it takes twice as long. Uses EnhancedAI's config value if installed and this is set to -1.
	#Range: -1.0 ~ 100.0
	blockBreakingTimeMultiplier = 1.5
	#If true, mobs will only attempt to break blocks if they are holding a tool (e.g. pickaxe) in their offhand.
	blockBreakingToolOnly = false
	#If true, mobs will only break blocks if their tool is the 'proper' tool for that block (e.g., pickaxe for stone).
	blockBreakingProperToolOnly = false
	#Enable special AI: mobs with the specified tag can teleport another mob to the sound location.
	enableTeleportToSound = false
	#Chance [0..1] for a teleporter mob to attempt the teleport behavior when evaluating goals. If EnhancedAI is installed, its difficulty-based chance is used instead.
	#Range: 0.0 ~ 1.0
	teleportChance = 0.35
	#Cooldown (in ticks) after a teleport action. If EnhancedAI is installed, its value is used instead.
	#Range: 0 ~ 72000
	teleportCooldownTicks = 300
	#EntityType tag used to decide which mobs can perform teleport-to-sound. Defaults to EnhancedAI's tag.
	teleportCanTeleportTag = "enhancedai:mobs/teleport_to_target/can_teleport"
	#EntityType tag used to decide which mobs can be teleported. Defaults to EnhancedAI's tag.
	teleportCanBeTeleportedTag = "enhancedai:mobs/teleport_to_target/can_be_teleported"
	#Enable special AI: mobs with the specified tag can pick up another mob and throw it toward the sound location.
	enablePickUpAndThrowToSound = true
	#Chance [0..1] for a thrower mob to attempt the pick-up-and-throw behavior. If EnhancedAI is installed, its difficulty-based chance is used instead.
	#Range: 0.0 ~ 1.0
	pickUpChance = 0.05
	#Cooldown (in ticks) after a throw action. If EnhancedAI is installed, its value is used instead.
	#Range: 0 ~ 72000
	pickUpCooldownTicks = 600
	#Minimum distance from the sound for the mob to consider picking up a target.
	#Range: 0 ~ 1024
	pickUpMinDistanceToPickUp = 5
	#Max distance to the sound within which the mob will release/throw the picked-up mob.
	#Range: 0 ~ 1024
	pickUpMaxDistanceToThrow = 24
	#Speed modifier applied to the mob while approaching the pick-up target.
	#Range: 0.0 ~ 10.0
	pickUpSpeedModifier = 1.25
	#EntityType tag used to decide which mobs can perform pick-up-and-throw. Defaults to EnhancedAI's tag.
	pickUpCanPickUpTag = "enhancedai:mobs/pick_up_and_throw/can_pick_up"
	#EntityType tag used to decide which mobs can be picked up. Defaults to EnhancedAI's tag.
	pickUpCanBePickedUpTag = "enhancedai:mobs/pick_up_and_throw/can_be_picked_up"
	#Enable XRAY targeting compat: mobs in the apply_xray tag can detect players through walls up to a configured range.
	enableXrayTargeting = true
	#EntityType tag used to decide which mobs can have XRAY detection. Defaults to EnhancedAI's tag.
	xrayApplyTag = "enhancedai:mobs/targeting/apply_xray"
	#Require the mob to also be in the Better Nearby Targeting tag to apply XRAY (mirrors EnhancedAI behavior).
	xrayRequireBetterNearby = true
	#EntityType tag for Better Nearby Targeting. Used only if xrayRequireBetterNearby is true.
	xrayBetterNearbyTag = "enhancedai:mobs/targeting/better_nearby_targeting"
	#Minimum XRAY follow range (blocks) for fallback when EnhancedAI is not present. 0..128
	#Range: 0 ~ 128
	xrayMinRange = 16
	#Maximum XRAY follow range (blocks). 0 disables XRAY fallback.
	#Range: 0 ~ 128
	xrayMaxRange = 24
	#Chance [0..1] for a mob in the XRAY tag to get the XRAY range (fallback when EnhancedAI is not present).
	#Range: 0.0 ~ 1.0
	xrayChance = 0.5

[Mobs]
	#List of mobs that will be attracted to sounds. Example: ['minecraft:zombie', 'minecraft:skeleton'].
	attractedEntities = ["minecraft:cave_spider", "minecraft:creeper", "minecraft:drowned", "minecraft:endermite", "minecraft:evoker", "minecraft:guardian", "minecraft:hoglin", "minecraft:husk", "minecraft:magma_cube", "minecraft:phantom", "minecraft:piglin", "minecraft:piglin_brute", "minecraft:pillager", "minecraft:ravager", "minecraft:shulker", "minecraft:silverfish", "minecraft:skeleton", "minecraft:slime", "minecraft:spider", "minecraft:stray", "minecraft:vex", "minecraft:vindicator", "minecraft:witch", "minecraft:wither_skeleton", "minecraft:zoglin", "minecraft:zombie", "minecraft:zombie_villager", "scguns:cog_knight", "scguns:cog_minion", "scguns:blunderer", "scguns:hive", "scguns:dissident", "scguns:hornlin", "scguns:redcoat", "scguns:cog_knight", "scguns:sky_carrier", "scguns:supply_scamp", "scguns:swarm", "scguns:zombified_hornlin", "spore:braiomil", "spore:braurei", "spore:brot", "spore:brute", "spore:busser", "spore:inf_construct", "spore:delusioner", "spore:gastgaber", "spore:gazenbreacher", "spore:griefer", "spore:hevoker", "spore:hidenburg", "spore:howitzer", "spore:howler", "spore:hvindicator", "spore:illusion", "spore:inf_drownded", "spore:inf_evoker", "spore:inf_hazmat", "spore:husk", "spore:inf_pillager", "spore:inf_player", "spore:inf_villager", "spore:inf_vindicator", "spore:inf_wanderer", "spore:inf_witch", "spore:inf_human", "spore:inquisitor", "spore:jagd", "spore:knight", "spore:lacerator", "spore:leaper", "spore:mound", "spore:nuclea", "spore:ogre", "spore:plagued", "spore:proto", "spore:reconstructor", "spore:scamper", "spore:scavenger", "spore:scent", "spore:sieger", "spore:specter", "spore:spitter", "spore:stalker", "spore:thorn", "spore:umarmed", "spore:usurper", "spore:verva", "spore:vigil", "spore:volatile", "spore:wendigo", "sculkhorde:sculk_zombie", "sculkhorde:sculk_witch", "sculkhorde:sculk_vindicator", "sculkhorde:sculk_vex", "sculkhorde:sculk_squid", "sculkhorde:sculk_spore_spewer", "sculkhorde:sculk_spitter", "sculkhorde:sculk_soul_reaper", "sculkhorde:sculk_sheep", "sculkhorde:sculk_salmon", "sculkhorde:sculk_ravager", "sculkhorde:sculk_pufferfish", "sculkhorde:sculk_phantom", "sculkhorde:sculk_mite_aggressor", "sculkhorde:sculk_mite", "sculkhorde:sculk_metamorphosis_pod", "sculkhorde:sculk_hatcher", "sculkhorde:sculk_guardian", "sculkhorde:sculk_ghast", "sculkhorde:sculk_enderman", "sculkhorde:sculk_creeper", "sculkhorde:sculk_broodling", "sculkhorde:sculk_brood_hatcher", "sculkhorde:sculk_bee_infector", "sculkhorde:sculk_bee_harvester", "sculkhorde:golem_of_wrath", "apocalypsenow:walker_1", "apocalypsenow:walker_2", "apocalypsenow:walker_3", "apocalypsenow:walker_4", "apocalypsenow:walker_5", "apocalypsenow:walker_6", "apocalypsenow:walker_7", "apocalypsenow:walker_8", "apocalypsenow:walker_9", "apocalypsenow:walker_10", "apocalypsenow:walker_11", "apocalypsenow:walker_12", "apocalypsenow:walker_13", "apocalypsenow:walker_14", "apocalypsenow:walker_15", "apocalypsenow:walker_16", "apocalypsenow:walker_17", "apocalypsenow:walker_18", "apocalypsenow:walker_19", "apocalypsenow:walker_20", "apocalypsenow:walker_21", "apocalypsenow:walker_22", "apocalypsenow:walker_23", "apocalypsenow:walker_24", "apocalypsenow:walker_25", "apocalypsenow:walker_26", "apocalypsenow:walker_27", "apocalypsenow:walker_28", "apocalypsenow:walker_29", "apocalypsenow:walker_30", "apocalypsenow:walker_31", "apocalypsenow:walker_32", "apocalypsenow:walker_33", "apocalypsenow:runner_34", "apocalypsenow:runner_35", "apocalypsenow:runner_36", "apocalypsenow:runner_37", "apocalypsenow:runner_38", "apocalypsenow:runner_39", "apocalypsenow:runner_40", "apocalypsenow:runner_41", "apocalypsenow:runner_42", "apocalypsenow:runner_43", "apocalypsenow:runner_44", "apocalypsenow:runner_45", "apocalypsenow:runner_46", "apocalypsenow:runner_47", "apocalypsenow:runner_48", "apocalypsenow:runner_49", "apocalypsenow:runner_50", "apocalypsenow:runner_51", "apocalypsenow:runner_52", "apocalypsenow:runner_53", "apocalypsenow:runner_54", "apocalypsenow:runner_55", "apocalypsenow:runner_56", "apocalypsenow:runner_57"]
	#A list of entity resource IDs to PREVENT from receiving the attraction AI goals.
	#This acts as a blacklist. Mobs on this list will never be attracted to sounds, regardless of other settings.
	#Format: ['minecraft:pig', 'modid:some_other_mob']
	mobBlacklist = ["minecraft:pig"]
	#List of mob IDs that should bypass Sound Attract's stealth/FOV overrides entirely and fall back to their native targeting.
	#Format: ['modid:entity_id']
	stealthBypassMobIds = []
	#List of mod IDs whose mobs should bypass Sound Attract's stealth/FOV overrides. Example: ['minecraft', 'mymobpack'].
	#Entries are compared case-insensitively.
	stealthBypassModNamespaces = []

["Sounds White List"]
	#If not empty, only sound event IDs in this list will be considered by mobs.
	soundIdWhitelist = ["minecraft:item.crossbow.shoot", "minecraft:item.crossbow.loading_start", "minecraft:item.crossbow.loading_middle", "minecraft:item.crossbow.loading_end", "minecraft:item.crossbow.quick_charge_1", "minecraft:item.crossbow.quick_charge_2", "minecraft:item.crossbow.quick_charge_3", "minecraft:entity.arrow.shoot", "minecraft:item.shield.block", "minecraft:block.lever.click", "minecraft:block.wooden_trapdoor.open", "minecraft:block.wooden_trapdoor.close", "minecraft:block.bamboo_wood_trapdoor.open", "minecraft:block.bamboo_wood_trapdoor.close", "minecraft:block.cherry_wood_trapdoor.open", "minecraft:block.cherry_wood_trapdoor.close", "minecraft:block.iron_trapdoor.open", "minecraft:block.iron_trapdoor.close", "minecraft:block.wooden_door.open", "minecraft:block.wooden_door.close", "minecraft:block.bamboo_wood_door.open", "minecraft:block.bamboo_wood_door.close", "minecraft:block.cherry_wood_door.open", "minecraft:block.cherry_wood_door.close", "minecraft:block.iron_door.open", "minecraft:block.iron_door.close", "minecraft:block.fence_gate.open", "minecraft:block.fence_gate.close", "minecraft:block.piston.extend", "minecraft:block.piston.contract", "minecraft:block.dispenser.dispense", "minecraft:block.dispenser.launch", "minecraft:block.anvil.land", "minecraft:block.anvil.use", "minecraft:block.anvil.destroy", "minecraft:block.sand.fall", "minecraft:block.gravel.fall", "minecraft:block.grass.break", "minecraft:block.scaffolding.break", "tacz:target_block_hit", "minecraft:entity.boat.paddle_water", "minecraft:ambient.underwater.enter", "minecraft:ambient.underwater.exit", "minecraft:block.chest.open", "minecraft:block.chest.close", "minecraft:block.barrel.open", "minecraft:block.barrel.close", "minecraft:block.ender_chest.open", "minecraft:block.ender_chest.close", "minecraft:block.shulker_box.open", "minecraft:block.shulker_box.close", "minecraft:block.bell.use", "minecraft:block.bell.resonate", "minecraft:block.furnace.fire_crackle", "minecraft:entity.generic.explode", "minecraft:entity.firework_rocket.launch", "minecraft:entity.firework_rocket.blast", "minecraft:entity.firework_rocket.large_blast", "minecraft:entity.player.hurt", "parcool:grabbing", "parcool:wallrun_and_running", "parcool:jumping", "parcool:sliding_1", "parcool:sliding_2", "parcool:sliding_3", "parcool:roll_and_dodge", "parcool:landing", "minecraft:random/anvil_land", "entity/leashknot/place1", "minecraft:entity.player.sprint", "minecraft:entity.player.jump", "minecraft:entity.player.sneak", "tacz:gun", "soundattract:voice_chat", "soundattract:virtual", "musketmod:musket_fire", "musketmod:blunderbuss_fire", "musketmod:pistol_fire", "cgm:item.shotgun.fire", "cgm:item.shotgun.silenced_fire", "cgm:item.shotgun.enchanted_fire", "cgm:item.shotgun.cock", "cgm:item.rifle.fire", "cgm:item.rifle.silenced_fire", "cgm:item.rifle.enchanted_fire", "cgm:item.rifle.cock", "cgm:item.pistol.fire", "cgm:item.pistol.silenced_fire", "cgm:item.pistol.enchanted_fire", "cgm:item.pistol.reload", "cgm:item.pistol.cock", "cgm:item.assault_rifle.fire", "cgm:item.assault_rifle.silenced_fire", "cgm:item.assault_rifle.enchanted_fire", "cgm:item.assault_rifle.cock", "cgm:item.grenade_launcher.fire", "cgm:item.bazooka.fire", "cgm:item.mini_gun.fire", "cgm:item.mini_gun.enchanted_fire", "cgm:item.machine_pistol.fire", "cgm:item.machine_pistol.silenced_fire", "cgm:item.machine_pistol.enchanted_fire", "cgm:item.heavy_rifle.fire", "cgm:item.heavy_rifle.silenced_fire", "cgm:item.heavy_rifle.enchanted_fire", "cgm:item.heavy_rifle.cock", "cgm:item.grenade.pin", "cgm:entity.stun_grenade.explosion", "cgm:entity.stun_grenade.ring", "scguns:item.makeshift_rifle.cock", "scguns:item.pistol.cock", "scguns:item.flamethrower.reload", "scguns:item.gauss.reload", "scguns:item.pistol.reload", "scguns:item.airgun.fire", "scguns:item.beam.fire", "scguns:item.blackpowder.fire", "scguns:item.boomstick.fire", "scguns:item.brass_pistol.fire", "scguns:item.brass_revolver.fire", "scguns:item.brass_shotgun.fire", "scguns:item.bruiser.fire", "scguns:item.combat_shotgun.fire", "scguns:item.cowboy.fire", "scguns:item.flamethrower.fire_2", "scguns:item.gauss.fire", "scguns:item.greaser_smg.fire", "scguns:item.gyrojet.fire", "scguns:item.heavy_rifle.fire", "scguns:item.heavier_rifle.fire", "scguns:item.iron_pistol.fire", "scguns:item.iron_rifle.fire", "scguns:item.makeshift_rifle.fire", "scguns:item.plasma.fire", "scguns:item.raygun.fire", "scguns:item.rocket.fire", "scguns:item.rocket_rifle.fire", "scguns:item.rusty_gnat.fire", "scguns:item.scrapper.fire", "scguns:item.sculk.fire", "scguns:item.shock.fire", "scguns:item.shulker.fire", "scguns:item.scorched_sniper.fire", "scguns:item.scorched_rifle.fire", "scguns:item.shock.silenced_fire", "scguns:item.bruiser.silenced_fire", "scguns:item.makeshift_rifle.silenced_fire", "scguns:item.combat_shotgun.silenced_fire", "scguns:item.rusty_gnat.silenced_fire", "scguns:item.shock.fire", "scguns:item.scorched_sniper.fire", "scguns:item.scorched_rifle.fire", "scguns:item.bruiser.fire", "scguns:item.flamethrower.fire_2", "scguns:item.blackpowder.fire", "scguns:item.gyrojet.fire", "scguns:item.boomstick.fire", "scguns:item.brass_shotgun.fire", "scguns:item.brass_revolver.fire", "scguns:item.shulker.fire", "scguns:item.iron_rifle.fire", "scguns:item.combat_shotgun.fire", "scguns:item.beam.fire", "scguns:item.airgun.fire", "scguns:item.heavier_rifle.fire", "scguns:item.iron_pistol.fire", "scguns:item.gauss.fire", "scguns:item.heavy_rifle.fire", "scguns:item.greaser_smg.fire", "scguns:item.plasma.fire", "scguns:item.rusty_gnat.fire", "scguns:item.cowboy.fire", "scguns:item.scrapper.fire", "scguns:item.sculk.fire", "scguns:item.raygun.fire", "scguns:item.rocket_rifle.fire", "scguns:item.makeshift_rifle.cock", "scguns:item.pistol.cock", "scguns:item.flamethrower.reload", "scguns:item.gauss.reload", "scguns:item.pistol.reload", "scguns:item.airgun.fire", "scguns:item.beam.fire", "scguns:item.blackpowder.fire", "scguns:item.boomstick.fire", "scguns:item.brass_pistol.fire", "scguns:item.brass_revolver.fire", "scguns:item.brass_shotgun.fire", "scguns:item.bruiser.fire", "scguns:item.combat_shotgun.fire", "scguns:item.cowboy.fire", "scguns:item.flamethrower.fire_2", "scguns:item.gauss.fire", "scguns:item.greaser_smg.fire", "scguns:item.gyrojet.fire", "scguns:item.heavy_rifle.fire", "scguns:item.heavier_rifle.fire", "scguns:item.iron_pistol.fire", "scguns:item.iron_rifle.fire", "scguns:item.makeshift_rifle.fire", "scguns:item.plasma.fire", "scguns:item.raygun.fire", "scguns:item.rocket.fire", "scguns:item.rocket_rifle.fire", "scguns:item.rusty_gnat.fire", "scguns:item.scrapper.fire", "scguns:item.sculk.fire", "scguns:item.shock.fire", "scguns:item.shulker.fire", "scguns:item.scorched_sniper.fire", "scguns:item.scorched_rifle.fire", "scguns:item.shock.silenced_fire", "scguns:item.bruiser.silenced_fire", "scguns:item.makeshift_rifle.silenced_fire", "scguns:item.combat_shotgun.silenced_fire", "scguns:item.rusty_gnat.silenced_fire", "scguns:item.shock.fire", "scguns:item.scorched_sniper.fire", "scguns:item.scorched_rifle.fire", "scguns:item.bruiser.fire", "scguns:item.flamethrower.fire_2", "scguns:item.blackpowder.fire", "scguns:item.gyrojet.fire", "scguns:item.boomstick.fire", "scguns:item.brass_shotgun.fire", "scguns:item.brass_revolver.fire", "scguns:item.shulker.fire", "scguns:item.iron_rifle.fire", "scguns:item.combat_shotgun.fire", "scguns:item.beam.fire", "scguns:item.airgun.fire", "scguns:item.heavier_rifle.fire", "scguns:item.iron_pistol.fire", "scguns:item.gauss.fire", "scguns:item.heavy_rifle.fire", "scguns:item.greaser_smg.fire", "scguns:item.plasma.fire", "scguns:item.rusty_gnat.fire", "scguns:item.cowboy.fire", "scguns:item.scrapper.fire", "scguns:item.sculk.fire", "scguns:item.raygun.fire", "scguns:item.rocket_rifle.fire", "superbwarfare:taser_fire_1p", "superbwarfare:taser_fire_3p", "superbwarfare:taser_reload_empty", "superbwarfare:trachelium_fire_1p", "superbwarfare:trachelium_fire_3p", "superbwarfare:trachelium_far", "superbwarfare:trachelium_veryfar", "superbwarfare:trachelium_fire_1p_s", "superbwarfare:trachelium_fire_3p_s", "superbwarfare:trachelium_far_s", "superbwarfare:trachelium_reload_empty", "superbwarfare:trachelium_bolt", "superbwarfare:hunting_rifle_fire_1p", "superbwarfare:hunting_rifle_fire_3p", "superbwarfare:hunting_rifle_far", "superbwarfare:hunting_rifle_veryfar", "superbwarfare:hunting_rifle_reload_empty", "superbwarfare:m_79_fire_1p", "superbwarfare:m_79_fire_3p", "superbwarfare:m_79_far", "superbwarfare:m_79_veryfar", "superbwarfare:m_79_reload_empty", "superbwarfare:sks_fire_1p", "superbwarfare:sks_fire_3p", "superbwarfare:sks_reload_normal", "superbwarfare:sks_reload_empty", "superbwarfare:sks_far", "superbwarfare:sks_veryfar", "superbwarfare:homemade_shotgun_fire_1p", "superbwarfare:homemade_shotgun_fire_3p", "superbwarfare:homemade_shotgun_far", "superbwarfare:homemade_shotgun_veryfar", "superbwarfare:homemade_shotgun_reload_normal", "superbwarfare:homemade_shotgun_reload_empty", "superbwarfare:ak_47_fire_1p", "superbwarfare:ak_47_fire_1p_s", "superbwarfare:ak_47_fire_3p", "superbwarfare:ak_47_fire_3p_s", "superbwarfare:ak_47_far", "superbwarfare:ak_47_veryfar", "superbwarfare:ak_47_reload_normal", "superbwarfare:ak_47_reload_empty", "superbwarfare:devotion_fire_1p", "superbwarfare:devotion_fire_3p", "superbwarfare:devotion_far", "superbwarfare:devotion_veryfar", "superbwarfare:devotion_reload_normal", "superbwarfare:devotion_reload_empty", "superbwarfare:rpg_fire_1p", "superbwarfare:rpg_fire_3p", "superbwarfare:rpg_far", "superbwarfare:rpg_veryfar", "superbwarfare:rpg_reload_empty", "superbwarfare:m_4_fire_1p", "superbwarfare:m_4_fire_1p_s", "superbwarfare:m_4_fire_3p", "superbwarfare:m_4_fire_3p_s", "superbwarfare:m_4_far", "superbwarfare:m_4_veryfar", "superbwarfare:m_4_reload_normal", "superbwarfare:m_4_reload_empty", "superbwarfare:aa_12_fire_1p", "superbwarfare:aa_12_fire_3p", "superbwarfare:aa_12_far", "superbwarfare:aa_12_veryfar", "superbwarfare:aa_12_reload_normal", "superbwarfare:aa_12_reload_empty", "superbwarfare:bocek_zoom_fire_1p", "superbwarfare:bocek_zoom_fire_3p", "superbwarfare:bocek_shatter_cap_fire_1p", "superbwarfare:bocek_shatter_cap_fire_3p", "superbwarfare:bocek_pull_1p", "superbwarfare:bocek_pull_3p", "superbwarfare:hk_416_fire_1p", "superbwarfare:hk_416_fire_1p_s", "superbwarfare:hk_416_fire_3p", "superbwarfare:hk_416_fire_3p_s", "superbwarfare:hk_416_far", "superbwarfare:hk_416_veryfar", "superbwarfare:hk_416_reload_normal", "superbwarfare:hk_416_reload_empty", "superbwarfare:rpk_fire_1p", "superbwarfare:rpk_fire_3p", "superbwarfare:rpk_fire_1p_s", "superbwarfare:rpk_fire_3p_s", "superbwarfare:rpk_far", "superbwarfare:rpk_veryfar", "superbwarfare:rpk_reload_normal", "superbwarfare:rpk_reload_empty", "superbwarfare:ntw_20_fire_1p", "superbwarfare:ntw_20_fire_3p", "superbwarfare:ntw_20_far", "superbwarfare:ntw_20_veryfar", "superbwarfare:ntw_20_reload_normal", "superbwarfare:ntw_20_reload_empty", "superbwarfare:ntw_20_bolt", "superbwarfare:vector_fire_1p", "superbwarfare:vector_fire_3p", "superbwarfare:vector_far", "superbwarfare:vector_veryfar", "superbwarfare:vector_fire_1p_s", "superbwarfare:vector_fire_3p_s", "superbwarfare:vector_far_s", "superbwarfare:vector_reload_normal", "superbwarfare:vector_reload_empty", "superbwarfare:minigun_fire_1p", "superbwarfare:minigun_fire_3p", "superbwarfare:minigun_far", "superbwarfare:minigun_veryfar", "superbwarfare:minigun_rot", "superbwarfare:minigun_overheat", "superbwarfare:mk_14_fire_1p", "superbwarfare:mk_14_fire_3p", "superbwarfare:mk_14_far", "superbwarfare:mk_14_veryfar", "superbwarfare:mk_14_fire_1p_s", "superbwarfare:mk_14_fire_3p_s", "superbwarfare:mk_14_far_s", "superbwarfare:mk_14_reload_normal", "superbwarfare:mk_14_reload_empty", "superbwarfare:sentinel_fire_1p", "superbwarfare:sentinel_fire_3p", "superbwarfare:sentinel_charge_fire_1p", "superbwarfare:sentinel_charge_fire_3p", "superbwarfare:sentinel_far", "superbwarfare:sentinel_veryfar", "superbwarfare:sentinel_charge_far", "superbwarfare:sentinel_charge_veryfar", "superbwarfare:sentinel_reload_normal", "superbwarfare:sentinel_reload_empty", "superbwarfare:sentinel_charge", "superbwarfare:sentinel_bolt", "superbwarfare:m_60_fire_1p", "superbwarfare:m_60_fire_3p", "superbwarfare:m_60_far", "superbwarfare:m_60_veryfar", "superbwarfare:m_60_reload_normal", "superbwarfare:m_60_reload_empty", "superbwarfare:svd_fire_1p", "superbwarfare:svd_fire_3p", "superbwarfare:svd_far", "superbwarfare:svd_veryfar", "superbwarfare:svd_fire_1p_s", "superbwarfare:svd_fire_3p_s", "superbwarfare:svd_far_s", "superbwarfare:svd_reload_normal", "superbwarfare:svd_reload_empty", "superbwarfare:m_98b_fire_1p", "superbwarfare:m_98b_fire_3p", "superbwarfare:m_98b_fire_1p_s", "superbwarfare:m_98b_fire_3p_s", "superbwarfare:m_98b_far", "superbwarfare:m_98b_veryfar", "superbwarfare:m_98b_reload_normal", "superbwarfare:m_98b_reload_empty", "superbwarfare:m_98b_bolt", "superbwarfare:marlin_fire_1p", "superbwarfare:marlin_fire_3p", "superbwarfare:marlin_far", "superbwarfare:marlin_veryfar", "superbwarfare:marlin_loop", "superbwarfare:marlin_prepare", "superbwarfare:marlin_end", "superbwarfare:marlin_bolt", "superbwarfare:m_870_fire_1p", "superbwarfare:m_870_fire_3p", "superbwarfare:m_870_far", "superbwarfare:m_870_veryfar", "superbwarfare:m_870_prepare_load", "superbwarfare:m_870_loop", "superbwarfare:m_870_bolt", "superbwarfare:glock_17_fire_1p", "superbwarfare:glock_17_fire_3p", "superbwarfare:glock_17_far", "superbwarfare:glock_17_veryfar", "superbwarfare:glock_17_reload_normal", "superbwarfare:glock_17_reload_empty", "superbwarfare:mp_443_fire_1p", "superbwarfare:mp_443_fire_3p", "superbwarfare:m_1911_fire_1p", "superbwarfare:m_1911_fire_3p", "superbwarfare:m_1911_far", "superbwarfare:m_1911_veryfar", "superbwarfare:qbz_95_fire_1p", "superbwarfare:qbz_95_fire_1p_s", "superbwarfare:qbz_95_fire_3p", "superbwarfare:qbz_95_fire_3p_s", "superbwarfare:qbz_95_far", "superbwarfare:qbz_95_veryfar", "superbwarfare:qbz_95_reload_normal", "superbwarfare:qbz_95_reload_empty", "superbwarfare:k_98_fire_1p", "superbwarfare:k_98_fire_3p", "superbwarfare:k_98_far", "superbwarfare:k_98_veryfar", "superbwarfare:k_98_reload_empty", "superbwarfare:k_98_bolt", "superbwarfare:k_98_loop", "superbwarfare:k_98_prepare", "superbwarfare:k_98_end", "superbwarfare:mosin_nagant_fire_1p", "superbwarfare:mosin_nagant_fire_3p", "superbwarfare:mosin_nagant_far", "superbwarfare:mosin_nagant_veryfar", "superbwarfare:mosin_nagant_bolt", "superbwarfare:mosin_nagant_loop", "superbwarfare:mosin_nagant_prepare", "superbwarfare:mosin_nagant_prepare_empty", "superbwarfare:mosin_nagant_end", "superbwarfare:javelin_fire_1p", "superbwarfare:javelin_fire_3p", "superbwarfare:javelin_far", "superbwarfare:javelin_reload_empty", "superbwarfare:javelin_lock", "superbwarfare:javelin_lockon", "superbwarfare:ak_12_fire_1p", "superbwarfare:ak_12_fire_3p", "superbwarfare:ak_12_fire_1p_s", "superbwarfare:ak_12_fire_3p_s", "superbwarfare:ak_12_far", "superbwarfare:ak_12_veryfar", "superbwarfare:ak_12_far_s", "superbwarfare:ak_12_veryfar_s", "superbwarfare:ak_12_reload_normal", "superbwarfare:ak_12_reload_empty", "superbwarfare:bullet_supply", "superbwarfare:shock", "superbwarfare:electric", "superbwarfare:triggerclick", "superbwarfare:hit", "superbwarfare:targetdown", "superbwarfare:indication", "superbwarfare:indication_vehicle", "superbwarfare:jump", "superbwarfare:doublejump", "superbwarfare:explosion_close", "superbwarfare:explosion_far", "superbwarfare:explosion_very_far", "superbwarfare:explosion_water", "superbwarfare:ouch", "superbwarfare:step", "superbwarfare:growl", "superbwarfare:idle", "superbwarfare:land", "superbwarfare:headshot", "superbwarfare:mortar_fire", "superbwarfare:mortar_distant", "superbwarfare:mortar_load", "superbwarfare:firerate", "superbwarfare:adjust_fov", "superbwarfare:mk_42_fire_1p", "superbwarfare:mk_42_far", "superbwarfare:mk_42_veryfar", "superbwarfare:mk_42_fire_3p", "superbwarfare:cannon_reload", "superbwarfare:cannon_zoom_in", "superbwarfare:cannon_zoom_out", "superbwarfare:drone_sound", "superbwarfare:grenade_throw", "superbwarfare:grenade_pull", "superbwarfare:heng", "superbwarfare:edit_mode", "superbwarfare:edit", "superbwarfare:shell_casing_normal", "superbwarfare:shell_casing_shotgun", "superbwarfare:shell_casing_50cal", "superbwarfare:huge_explosion_close", "superbwarfare:huge_explosion_far", "superbwarfare:huge_explosion_very_far", "superbwarfare:open", "superbwarfare:charge_rifle_fire_1p", "superbwarfare:charge_rifle_fire_3p", "superbwarfare:charge_rifle_fire_boom_1p", "superbwarfare:charge_rifle_fire_boom_3p", "superbwarfare:annihilator_fire_1p", "superbwarfare:annihilator_fire_3p", "superbwarfare:annihilator_far", "superbwarfare:annihilator_veryfar", "superbwarfare:annihilator_reload", "superbwarfare:boat_engine", "superbwarfare:vehicle_strike", "superbwarfare:m_2_hb_fire_1p", "superbwarfare:m_2_hb_fire_3p", "superbwarfare:m_2_hb_far", "superbwarfare:m_2_hb_veryfar", "superbwarfare:m_2_hb_reload_normal", "superbwarfare:m_2_hb_reload_empty", "superbwarfare:wheel_chair_engine", "superbwarfare:wheel_chair_jump", "superbwarfare:radar_search_start", "superbwarfare:radar_search_idle", "superbwarfare:radar_search_end", "superbwarfare:helicopter_engine_start", "superbwarfare:helicopter_engine", "superbwarfare:heli_cannon_fire_1p", "superbwarfare:heli_cannon_fire_3p", "superbwarfare:heli_cannon_far", "superbwarfare:heli_cannon_veryfar", "superbwarfare:small_rocket_fire_1p", "superbwarfare:small_rocket_fire_3p", "superbwarfare:into_cannon", "superbwarfare:into_missile", "superbwarfare:missile_reload", "superbwarfare:low_health", "superbwarfare:no_health", "superbwarfare:locking_warning", "superbwarfare:locked_warning", "superbwarfare:missile_warning", "superbwarfare:decoy_reload", "superbwarfare:decoy_fire", "superbwarfare:secondary_cataclysm_fire_1p", "superbwarfare:secondary_cataclysm_fire_3p", "superbwarfare:secondary_cataclysm_far", "superbwarfare:secondary_cataclysm_veryfar", "superbwarfare:secondary_cataclysm_loop", "superbwarfare:secondary_cataclysm_prepare_load", "superbwarfare:secondary_cataclysm_end", "superbwarfare:secondary_cataclysm_fire_1p_charge", "superbwarfare:secondary_cataclysm_fire_3p_charge", "superbwarfare:secondary_cataclysm_far_charge", "superbwarfare:secondary_cataclysm_veryfar_charge", "superbwarfare:lunge_mine_growl", "superbwarfare:lav_fire_1p", "superbwarfare:lav_fire_3p", "superbwarfare:lav_far", "superbwarfare:lav_veryfar", "superbwarfare:lav_engine", "superbwarfare:coax_fire_1p", "superbwarfare:bmp_fire_1p", "superbwarfare:bmp_fire_3p", "superbwarfare:bmp_engine", "superbwarfare:bmp_missile_fire_1p", "superbwarfare:bmp_missile_fire_3p", "superbwarfare:bmp_missile_reload", "superbwarfare:wheel_step", "superbwarfare:laser_tower_shoot", "superbwarfare:yx_100_reload", "superbwarfare:yx_100_fire_1p", "superbwarfare:yx_100_fire_3p", "superbwarfare:yx_100_far", "superbwarfare:yx_100_veryfar", "superbwarfare:yx_100_engine", "superbwarfare:turret_turn", "superbwarfare:c4_beep", "superbwarfare:c4_final", "superbwarfare:c4_throw", "superbwarfare:c4_detonator_click", "superbwarfare:prism_fire_1p", "superbwarfare:prism_fire_3p", "superbwarfare:prism_fire_1p_2", "superbwarfare:prism_fire_3p_2", "superbwarfare:prism_engine", "superbwarfare:insidious_fire_1p", "superbwarfare:insidious_fire_3p", "superbwarfare:insidious_far", "superbwarfare:insidious_veryfar", "superbwarfare:insidious_reload_empty", "superbwarfare:smoke_fire", "superbwarfare:hpj_11_fire_3p", "superbwarfare:track_move", "superbwarfare:rocket_fly", "superbwarfare:shell_fly", "superbwarfare:rocket_engine", "superbwarfare:vehicle_swim", "superbwarfare:a10_engine", "superbwarfare:a10_fire", "superbwarfare:bomb_release", "superbwarfare:missile_start", "superbwarfare:bomb_reload", "superbwarfare:jet_lock", "superbwarfare:jet_lockon", "superbwarfare:dps_generator_evolve", "superbwarfare:melee_hit", "superbwarfare:aurelia_sceptre_fire_1p", "superbwarfare:aurelia_sceptre_fire_3p", "superbwarfare:fly_loop", "superbwarfare:mp_5_fire_1p", "superbwarfare:mp_5_fire_3p", "superbwarfare:mp_5_far", "superbwarfare:mp_5_veryfar", "superbwarfare:mp_5_fire_1p_s", "superbwarfare:mp_5_fire_3p_s", "superbwarfare:mp_5_reload_normal", "superbwarfare:mp_5_reload_empty", "superbwarfare:steel_pipe_hit", "superbwarfare:steel_pipe_drop", "superbwarfare:qbz_191_fire_1p", "superbwarfare:qbz_191_fire_1p_s", "superbwarfare:qbz_191_fire_3p", "superbwarfare:qbz_191_fire_3p_s", "superbwarfare:qbz_191_far", "superbwarfare:qbz_191_veryfar", "superbwarfare:qbz_191_reload_normal", "superbwarfare:qbz_191_reload_empty", "superbwarfare:smoke_grenade_release", "superbwarfare:hand_wheel_rot", "superbwarfare:medium_rocket_fire", "superbwarfare:ty63_reload", "pointblank:gun_action"]
	#Minimum sound level (0.0-1.0) for player-emitted sounds to be considered. Higher values mean only louder sounds are tracked.
	#Range: 0.0 ~ 1.0
	minSoundLevelForPlayer = 0.1
	#Minimum sound level (0.0-1.0) for mob-emitted sounds to be considered.
	#Range: 0.0 ~ 1.0
	minSoundLevelForMob = 0.15

#Default Sound Properties
[sound_defaults]
	#List of default sound properties. Format: 'sound_id;range;weight'
	#Example: 'minecraft:item.crossbow.shoot;16.0;4.0'
	soundDefaults = ["minecraft:item.crossbow.shoot;16;4", "minecraft:item.crossbow.loading_start;6;2", "minecraft:item.crossbow.loading_middle;6;2", "minecraft:item.crossbow.loading_end;6;2", "minecraft:item.crossbow.quick_charge_1;6;2", "minecraft:item.crossbow.quick_charge_2;6;2", "minecraft:item.crossbow.quick_charge_3;6;2", "minecraft:entity.arrow.shoot;14;4", "minecraft:item.shield.block;12;3", "minecraft:block.lever.click;5;3", "minecraft:block.wooden_trapdoor.open;8;3", "minecraft:block.wooden_trapdoor.close;8;3", "minecraft:block.bamboo_wood_trapdoor.open;10;3", "minecraft:block.bamboo_wood_trapdoor.close;10;3", "minecraft:block.cherry_wood_trapdoor.open;10;3", "minecraft:block.cherry_wood_trapdoor.close;10;3", "minecraft:block.iron_trapdoor.open;15;4", "minecraft:block.iron_trapdoor.close;15;4", "minecraft:block.wooden_door.open;12;4", "minecraft:block.wooden_door.close;12;4", "minecraft:block.bamboo_wood_door.open;15;4", "minecraft:block.bamboo_wood_door.close;15;4", "minecraft:block.cherry_wood_door.open;15;4", "minecraft:block.cherry_wood_door.close;15;4", "minecraft:block.iron_door.open;20;5", "minecraft:block.iron_door.close;20;5", "minecraft:block.fence_gate.open;10;3", "minecraft:block.fence_gate.close;10;3", "minecraft:block.piston.extend;20;4", "minecraft:block.piston.contract;20;4", "minecraft:block.dispenser.dispense;12;4", "minecraft:block.dispenser.launch;12;4", "minecraft:block.anvil.land;25;5", "minecraft:block.anvil.use;25;5", "minecraft:block.anvil.destroy;25;5", "minecraft:block.sand.fall;6;3", "minecraft:block.gravel.fall;6;3", "minecraft:block.grass.break;3;2", "minecraft:block.scaffolding.break;3;2", "tacz:target_block_hit;6;3", "minecraft:entity.boat.paddle_water;8;3", "minecraft:ambient.underwater.enter;4;2", "minecraft:ambient.underwater.exit;4;2", "minecraft:block.chest.open;5;2", "minecraft:block.chest.close;5;2", "minecraft:block.barrel.open;5;2", "minecraft:block.barrel.close;5;2", "minecraft:block.ender_chest.open;6;2", "minecraft:block.ender_chest.close;6;2", "minecraft:block.shulker_box.open;6;2", "minecraft:block.shulker_box.close;6;2", "minecraft:block.bell.use;30;5", "minecraft:block.bell.resonate;15;4", "minecraft:block.furnace.fire_crackle;8;3", "minecraft:entity.generic.explode;50;7", "minecraft:entity.firework_rocket.launch;10;3", "minecraft:entity.firework_rocket.blast;20;5", "minecraft:entity.firework_rocket.large_blast;30;6", "soundattract:virtual;10;1.0", "musketmod:musket_fire;155;8", "musketmod:blunderbuss_fire;154;7", "musketmod:pistol_fire;164;5", "cgm:item.shotgun.fire;156;15", "cgm:item.shotgun.silenced_fire;131;13", "cgm:item.shotgun.enchanted_fire;156;15", "cgm:item.shotgun.cock;90;6", "cgm:item.rifle.fire;162;16", "cgm:item.rifle.silenced_fire;137;13", "cgm:item.rifle.enchanted_fire;162;16", "cgm:item.rifle.cock;90;6", "cgm:item.pistol.fire;164;16", "cgm:item.pistol.silenced_fire;139;13", "cgm:item.pistol.enchanted_fire;164;16", "cgm:item.pistol.reload;85;7", "cgm:item.pistol.cock;90;6", "cgm:item.assault_rifle.fire;159;16", "cgm:item.assault_rifle.silenced_fire;134;13", "cgm:item.assault_rifle.enchanted_fire;159;16", "cgm:item.assault_rifle.cock;90;6", "cgm:item.grenade_launcher.fire;172;17", "cgm:item.bazooka.fire;184;17", "cgm:item.mini_gun.fire;180;17", "cgm:item.mini_gun.enchanted_fire;180;17", "cgm:item.machine_pistol.fire;160;16", "cgm:item.machine_pistol.silenced_fire;135;13", "cgm:item.machine_pistol.enchanted_fire;160;16", "cgm:item.heavy_rifle.fire;165;16", "cgm:item.heavy_rifle.silenced_fire;140;13", "cgm:item.heavy_rifle.enchanted_fire;165;16", "cgm:item.heavy_rifle.cock;90;6", "cgm:item.grenade.pin;72;6", "cgm:entity.stun_grenade.explosion;175;18", "cgm:entity.stun_grenade.ring;104;10", "scguns:item.makeshift_rifle.cock;10;1.0", "scguns:item.pistol.cock;5;0.5", "scguns:item.flamethrower.reload;10;1.0", "scguns:item.gauss.reload;25;2.5", "scguns:item.pistol.reload;10;1.0", "scguns:item.airgun.fire;80;8.0", "scguns:item.beam.fire;100;10.0", "scguns:item.blackpowder.fire;115;11.5", "scguns:item.boomstick.fire;120;12.0", "scguns:item.brass_pistol.fire;105;10.5", "scguns:item.brass_revolver.fire;110;11.0", "scguns:item.brass_shotgun.fire;110;11.0", "scguns:item.bruiser.fire;115;11.5", "scguns:item.combat_shotgun.fire;120;12.0", "scguns:item.cowboy.fire;110;11.0", "scguns:item.flamethrower.fire_2;95;9.5", "scguns:item.gauss.fire;130;13.0", "scguns:item.greaser_smg.fire;110;11.0", "scguns:item.gyrojet.fire;115;11.5", "scguns:item.heavy_rifle.fire;120;12.0", "scguns:item.heavier_rifle.fire;125;12.5", "scguns:item.iron_pistol.fire;110;11.0", "scguns:item.iron_rifle.fire;120;12.0", "scguns:item.makeshift_rifle.fire;110;11.0", "scguns:item.plasma.fire;115;11.5", "scguns:item.raygun.fire;110;11.0", "scguns:item.rocket.fire;140;14.0", "scguns:item.rocket_rifle.fire;135;13.5", "scguns:item.rusty_gnat.fire;105;10.5", "scguns:item.scrapper.fire;110;11.0", "scguns:item.sculk.fire;100;10.0", "scguns:item.shock.fire;95;9.5", "scguns:item.shulker.fire;105;10.5", "scguns:item.scorched_sniper.fire;130;13.0", "scguns:item.scorched_rifle.fire;125;12.5", "scguns:item.shock.silenced_fire;45;4.5", "scguns:item.bruiser.silenced_fire;55;5.5", "scguns:item.makeshift_rifle.silenced_fire;50;5.0", "scguns:item.combat_shotgun.silenced_fire;60;6.0", "scguns:item.rusty_gnat.silenced_fire;45;4.5", "scguns:item.shock.fire;155;15.5", "scguns:item.scorched_sniper.fire;190;19.0", "scguns:item.scorched_rifle.fire;185;18.5", "scguns:item.bruiser.fire;175;17.5", "scguns:item.flamethrower.fire_2;155;15.5", "scguns:item.blackpowder.fire;175;17.5", "scguns:item.gyrojet.fire;175;17.5", "scguns:item.boomstick.fire;180;18.0", "scguns:item.brass_shotgun.fire;170;17.0", "scguns:item.brass_revolver.fire;170;17.0", "scguns:item.shulker.fire;165;16.5", "scguns:item.iron_rifle.fire;180;18.0", "scguns:item.combat_shotgun.fire;180;18.0", "scguns:item.beam.fire;160;16.0", "scguns:item.airgun.fire;140;14.0", "scguns:item.heavier_rifle.fire;185;18.5", "scguns:item.iron_pistol.fire;170;17.0", "scguns:item.gauss.fire;190;19.0", "scguns:item.heavy_rifle.fire;180;18.0", "scguns:item.greaser_smg.fire;170;17.0", "scguns:item.plasma.fire;175;17.5", "scguns:item.rusty_gnat.fire;165;16.5", "scguns:item.cowboy.fire;170;17.0", "scguns:item.scrapper.fire;170;17.0", "scguns:item.sculk.fire;160;16.0", "scguns:item.raygun.fire;170;17.0", "scguns:item.rocket_rifle.fire;195;19.5", "scguns:item.makeshift_rifle.cock;10;1.0", "scguns:item.pistol.cock;5;0.5", "scguns:item.flamethrower.reload;10;1.0", "scguns:item.gauss.reload;25;2.5", "scguns:item.pistol.reload;10;1.0", "scguns:item.airgun.fire;80;8.0", "scguns:item.beam.fire;100;10.0", "scguns:item.blackpowder.fire;115;11.5", "scguns:item.boomstick.fire;120;12.0", "scguns:item.brass_pistol.fire;105;10.5", "scguns:item.brass_revolver.fire;110;11.0", "scguns:item.brass_shotgun.fire;110;11.0", "scguns:item.bruiser.fire;115;11.5", "scguns:item.combat_shotgun.fire;120;12.0", "scguns:item.cowboy.fire;110;11.0", "scguns:item.flamethrower.fire_2;95;9.5", "scguns:item.gauss.fire;130;13.0", "scguns:item.greaser_smg.fire;110;11.0", "scguns:item.gyrojet.fire;115;11.5", "scguns:item.heavy_rifle.fire;120;12.0", "scguns:item.heavier_rifle.fire;125;12.5", "scguns:item.iron_pistol.fire;110;11.0", "scguns:item.iron_rifle.fire;120;12.0", "scguns:item.makeshift_rifle.fire;110;11.0", "scguns:item.plasma.fire;115;11.5", "scguns:item.raygun.fire;110;11.0", "scguns:item.rocket.fire;140;14.0", "scguns:item.rocket_rifle.fire;135;13.5", "scguns:item.rusty_gnat.fire;105;10.5", "scguns:item.scrapper.fire;110;11.0", "scguns:item.sculk.fire;100;10.0", "scguns:item.shock.fire;95;9.5", "scguns:item.shulker.fire;105;10.5", "scguns:item.scorched_sniper.fire;130;13.0", "scguns:item.scorched_rifle.fire;125;12.5", "scguns:item.shock.silenced_fire;45;4.5", "scguns:item.bruiser.silenced_fire;55;5.5", "scguns:item.makeshift_rifle.silenced_fire;50;5.0", "scguns:item.combat_shotgun.silenced_fire;60;6.0", "scguns:item.rusty_gnat.silenced_fire;45;4.5", "scguns:item.shock.fire;155;15.5", "scguns:item.scorched_sniper.fire;190;19.0", "scguns:item.scorched_rifle.fire;185;18.5", "scguns:item.bruiser.fire;175;17.5", "scguns:item.flamethrower.fire_2;155;15.5", "scguns:item.blackpowder.fire;175;17.5", "scguns:item.gyrojet.fire;175;17.5", "scguns:item.boomstick.fire;180;18.0", "scguns:item.brass_shotgun.fire;170;17.0", "scguns:item.brass_revolver.fire;170;17.0", "scguns:item.shulker.fire;165;16.5", "scguns:item.iron_rifle.fire;180;18.0", "scguns:item.combat_shotgun.fire;180;18.0", "scguns:item.beam.fire;160;16.0", "scguns:item.airgun.fire;140;14.0", "scguns:item.heavier_rifle.fire;185;18.5", "scguns:item.iron_pistol.fire;170;17.0", "scguns:item.gauss.fire;190;19.0", "scguns:item.heavy_rifle.fire;180;18.0", "scguns:item.greaser_smg.fire;170;17.0", "scguns:item.plasma.fire;175;17.5", "scguns:item.rusty_gnat.fire;165;16.5", "scguns:item.cowboy.fire;170;17.0", "scguns:item.scrapper.fire;170;17.0", "scguns:item.sculk.fire;160;16.0", "scguns:item.raygun.fire;170;17.0", "scguns:item.rocket_rifle.fire;195;19.5", "superbwarfare:taser_fire_1p;150;65", "superbwarfare:taser_fire_3p;150;65", "superbwarfare:taser_reload_empty;30;25", "superbwarfare:trachelium_fire_1p;150;65", "superbwarfare:trachelium_fire_3p;150;65", "superbwarfare:trachelium_far;250;150", "superbwarfare:trachelium_veryfar;400;300", "superbwarfare:trachelium_fire_1p_s;150;65", "superbwarfare:trachelium_fire_3p_s;150;65", "superbwarfare:trachelium_far_s;250;150", "superbwarfare:trachelium_reload_empty;30;25", "superbwarfare:trachelium_bolt;30;10", "superbwarfare:hunting_rifle_fire_1p;150;65", "superbwarfare:hunting_rifle_fire_3p;150;65", "superbwarfare:hunting_rifle_far;250;150", "superbwarfare:hunting_rifle_veryfar;400;300", "superbwarfare:hunting_rifle_reload_empty;30;25", "superbwarfare:m_79_fire_1p;150;65", "superbwarfare:m_79_fire_3p;150;65", "superbwarfare:m_79_far;250;150", "superbwarfare:m_79_veryfar;400;300", "superbwarfare:m_79_reload_empty;30;25", "superbwarfare:sks_fire_1p;150;65", "superbwarfare:sks_fire_3p;150;65", "superbwarfare:sks_reload_normal;30;25", "superbwarfare:sks_reload_empty;30;25", "superbwarfare:sks_far;250;150", "superbwarfare:sks_veryfar;400;300", "superbwarfare:homemade_shotgun_fire_1p;150;65", "superbwarfare:homemade_shotgun_fire_3p;150;65", "superbwarfare:homemade_shotgun_far;250;150", "superbwarfare:homemade_shotgun_veryfar;400;300", "superbwarfare:homemade_shotgun_reload_normal;30;25", "superbwarfare:homemade_shotgun_reload_empty;30;25", "superbwarfare:ak_47_fire_1p;150;65", "superbwarfare:ak_47_fire_1p_s;150;65", "superbwarfare:ak_47_fire_3p;150;65", "superbwarfare:ak_47_fire_3p_s;150;65", "superbwarfare:ak_47_far;250;150", "superbwarfare:ak_47_veryfar;400;300", "superbwarfare:ak_47_reload_normal;30;25", "superbwarfare:ak_47_reload_empty;30;25", "superbwarfare:devotion_fire_1p;150;65", "superbwarfare:devotion_fire_3p;150;65", "superbwarfare:devotion_far;250;150", "superbwarfare:devotion_veryfar;400;300", "superbwarfare:devotion_reload_normal;30;25", "superbwarfare:devotion_reload_empty;30;25", "superbwarfare:rpg_fire_1p;150;65", "superbwarfare:rpg_fire_3p;150;65", "superbwarfare:rpg_far;250;150", "superbwarfare:rpg_veryfar;400;300", "superbwarfare:rpg_reload_empty;30;25", "superbwarfare:m_4_fire_1p;150;65", "superbwarfare:m_4_fire_1p_s;150;65", "superbwarfare:m_4_fire_3p;150;65", "superbwarfare:m_4_fire_3p_s;150;65", "superbwarfare:m_4_far;250;150", "superbwarfare:m_4_veryfar;400;300", "superbwarfare:m_4_reload_normal;30;25", "superbwarfare:m_4_reload_empty;30;25", "superbwarfare:aa_12_fire_1p;150;65", "superbwarfare:aa_12_fire_3p;150;65", "superbwarfare:aa_12_far;250;150", "superbwarfare:aa_12_veryfar;400;300", "superbwarfare:aa_12_reload_normal;30;25", "superbwarfare:aa_12_reload_empty;30;25", "superbwarfare:bocek_zoom_fire_1p;150;65", "superbwarfare:bocek_zoom_fire_3p;150;65", "superbwarfare:bocek_shatter_cap_fire_1p;150;65", "superbwarfare:bocek_shatter_cap_fire_3p;150;65", "superbwarfare:bocek_pull_1p;30;10", "superbwarfare:bocek_pull_3p;30;10", "superbwarfare:hk_416_fire_1p;150;65", "superbwarfare:hk_416_fire_1p_s;150;65", "superbwarfare:hk_416_fire_3p;150;65", "superbwarfare:hk_416_fire_3p_s;150;65", "superbwarfare:hk_416_far;250;150", "superbwarfare:hk_416_veryfar;400;300", "superbwarfare:hk_416_reload_normal;30;25", "superbwarfare:hk_416_reload_empty;30;25", "superbwarfare:rpk_fire_1p;150;65", "superbwarfare:rpk_fire_3p;150;65", "superbwarfare:rpk_fire_1p_s;150;65", "superbwarfare:rpk_fire_3p_s;150;65", "superbwarfare:rpk_far;250;150", "superbwarfare:rpk_veryfar;400;300", "superbwarfare:rpk_reload_normal;30;25", "superbwarfare:rpk_reload_empty;30;25", "superbwarfare:ntw_20_fire_1p;150;65", "superbwarfare:ntw_20_fire_3p;150;65", "superbwarfare:ntw_20_far;250;150", "superbwarfare:ntw_20_veryfar;400;300", "superbwarfare:ntw_20_reload_normal;30;25", "superbwarfare:ntw_20_reload_empty;30;25", "superbwarfare:ntw_20_bolt;30;10", "superbwarfare:vector_fire_1p;150;65", "superbwarfare:vector_fire_3p;150;65", "superbwarfare:vector_far;250;150", "superbwarfare:vector_veryfar;400;300", "superbwarfare:vector_fire_1p_s;150;65", "superbwarfare:vector_fire_3p_s;150;65", "superbwarfare:vector_far_s;250;150", "superbwarfare:vector_reload_normal;30;25", "superbwarfare:vector_reload_empty;30;25", "superbwarfare:minigun_fire_1p;150;65", "superbwarfare:minigun_fire_3p;150;65", "superbwarfare:minigun_far;250;150", "superbwarfare:minigun_veryfar;400;300", "superbwarfare:minigun_rot;30;10", "superbwarfare:minigun_overheat;30;10", "superbwarfare:mk_14_fire_1p;150;65", "superbwarfare:mk_14_fire_3p;150;65", "superbwarfare:mk_14_far;250;150", "superbwarfare:mk_14_veryfar;400;300", "superbwarfare:mk_14_fire_1p_s;150;65", "superbwarfare:mk_14_fire_3p_s;150;65", "superbwarfare:mk_14_far_s;250;150", "superbwarfare:mk_14_reload_normal;30;25", "superbwarfare:mk_14_reload_empty;30;25", "superbwarfare:sentinel_fire_1p;150;65", "superbwarfare:sentinel_fire_3p;150;65", "superbwarfare:sentinel_charge_fire_1p;150;65", "superbwarfare:sentinel_charge_fire_3p;150;65", "superbwarfare:sentinel_far;250;150", "superbwarfare:sentinel_veryfar;400;300", "superbwarfare:sentinel_charge_far;250;150", "superbwarfare:sentinel_charge_veryfar;400;300", "superbwarfare:sentinel_reload_normal;30;25", "superbwarfare:sentinel_reload_empty;30;25", "superbwarfare:sentinel_charge;30;10", "superbwarfare:sentinel_bolt;30;10", "superbwarfare:m_60_fire_1p;150;65", "superbwarfare:m_60_fire_3p;150;65", "superbwarfare:m_60_far;250;150", "superbwarfare:m_60_veryfar;400;300", "superbwarfare:m_60_reload_normal;30;25", "superbwarfare:m_60_reload_empty;30;25", "superbwarfare:svd_fire_1p;150;65", "superbwarfare:svd_fire_3p;150;65", "superbwarfare:svd_far;250;150", "superbwarfare:svd_veryfar;400;300", "superbwarfare:svd_fire_1p_s;150;65", "superbwarfare:svd_fire_3p_s;150;65", "superbwarfare:svd_far_s;250;150", "superbwarfare:svd_reload_normal;30;25", "superbwarfare:svd_reload_empty;30;25", "superbwarfare:m_98b_fire_1p;150;65", "superbwarfare:m_98b_fire_3p;150;65", "superbwarfare:m_98b_fire_1p_s;150;65", "superbwarfare:m_98b_fire_3p_s;150;65", "superbwarfare:m_98b_far;250;150", "superbwarfare:m_98b_veryfar;400;300", "superbwarfare:m_98b_reload_normal;30;25", "superbwarfare:m_98b_reload_empty;30;25", "superbwarfare:m_98b_bolt;30;10", "superbwarfare:marlin_fire_1p;150;65", "superbwarfare:marlin_fire_3p;150;65", "superbwarfare:marlin_far;250;150", "superbwarfare:marlin_veryfar;400;300", "superbwarfare:marlin_loop;30;10", "superbwarfare:marlin_prepare;30;10", "superbwarfare:marlin_end;30;10", "superbwarfare:marlin_bolt;30;10", "superbwarfare:m_870_fire_1p;150;65", "superbwarfare:m_870_fire_3p;150;65", "superbwarfare:m_870_far;250;150", "superbwarfare:m_870_veryfar;400;300", "superbwarfare:m_870_prepare_load;30;10", "superbwarfare:m_870_loop;30;10", "superbwarfare:m_870_bolt;30;10", "superbwarfare:glock_17_fire_1p;150;65", "superbwarfare:glock_17_fire_3p;150;65", "superbwarfare:glock_17_far;250;150", "superbwarfare:glock_17_veryfar;400;300", "superbwarfare:glock_17_reload_normal;30;25", "superbwarfare:glock_17_reload_empty;30;25", "superbwarfare:mp_443_fire_1p;150;65", "superbwarfare:mp_443_fire_3p;150;65", "superbwarfare:m_1911_fire_1p;150;65", "superbwarfare:m_1911_fire_3p;150;65", "superbwarfare:m_1911_far;250;150", "superbwarfare:m_1911_veryfar;400;300", "superbwarfare:qbz_95_fire_1p;150;65", "superbwarfare:qbz_95_fire_1p_s;150;65", "superbwarfare:qbz_95_fire_3p;150;65", "superbwarfare:qbz_95_fire_3p_s;150;65", "superbwarfare:qbz_95_far;250;150", "superbwarfare:qbz_95_veryfar;400;300", "superbwarfare:qbz_95_reload_normal;30;25", "superbwarfare:qbz_95_reload_empty;30;25", "superbwarfare:k_98_fire_1p;150;65", "superbwarfare:k_98_fire_3p;150;65", "superbwarfare:k_98_far;250;150", "superbwarfare:k_98_veryfar;400;300", "superbwarfare:k_98_reload_empty;30;25", "superbwarfare:k_98_bolt;30;10", "superbwarfare:k_98_loop;30;10", "superbwarfare:k_98_prepare;30;10", "superbwarfare:k_98_end;30;10", "superbwarfare:mosin_nagant_fire_1p;150;65", "superbwarfare:mosin_nagant_fire_3p;150;65", "superbwarfare:mosin_nagant_far;250;150", "superbwarfare:mosin_nagant_veryfar;400;300", "superbwarfare:mosin_nagant_bolt;30;10", "superbwarfare:mosin_nagant_loop;30;10", "superbwarfare:mosin_nagant_prepare;30;10", "superbwarfare:mosin_nagant_prepare_empty;10;14", "superbwarfare:mosin_nagant_end;30;10", "superbwarfare:javelin_fire_1p;150;65", "superbwarfare:javelin_fire_3p;150;65", "superbwarfare:javelin_far;250;150", "superbwarfare:javelin_reload_empty;30;25", "superbwarfare:javelin_lock;30;10", "superbwarfare:javelin_lockon;30;10", "superbwarfare:ak_12_fire_1p;150;65", "superbwarfare:ak_12_fire_3p;150;65", "superbwarfare:ak_12_fire_1p_s;150;65", "superbwarfare:ak_12_fire_3p_s;150;65", "superbwarfare:ak_12_far;250;150", "superbwarfare:ak_12_veryfar;400;300", "superbwarfare:ak_12_far_s;250;150", "superbwarfare:ak_12_veryfar_s;400;300", "superbwarfare:ak_12_reload_normal;30;25", "superbwarfare:ak_12_reload_empty;30;25", "superbwarfare:bullet_supply;30;10", "superbwarfare:shock;30;10", "superbwarfare:electric;30;10", "superbwarfare:triggerclick;30;10", "superbwarfare:hit;30;10", "superbwarfare:targetdown;30;10", "superbwarfare:indication;30;10", "superbwarfare:indication_vehicle;30;10", "superbwarfare:jump;30;10", "superbwarfare:doublejump;30;10", "superbwarfare:explosion_close;30;10", "superbwarfare:explosion_far;250;150", "superbwarfare:explosion_very_far;400;300", "superbwarfare:explosion_water;30;10", "superbwarfare:ouch;30;10", "superbwarfare:step;30;10", "superbwarfare:growl;30;10", "superbwarfare:idle;30;10", "superbwarfare:land;30;10", "superbwarfare:headshot;30;10", "superbwarfare:mortar_fire;150;65", "superbwarfare:mortar_distant;30;10", "superbwarfare:mortar_load;30;10", "superbwarfare:firerate;150;65", "superbwarfare:adjust_fov;30;10", "superbwarfare:mk_42_fire_1p;150;65", "superbwarfare:mk_42_far;250;150", "superbwarfare:mk_42_veryfar;400;300", "superbwarfare:mk_42_fire_3p;150;65", "superbwarfare:cannon_reload;30;25", "superbwarfare:cannon_zoom_in;30;10", "superbwarfare:cannon_zoom_out;30;10", "superbwarfare:drone_sound;30;10", "superbwarfare:grenade_throw;30;10", "superbwarfare:grenade_pull;30;10", "superbwarfare:heng;30;10", "superbwarfare:edit_mode;30;10", "superbwarfare:edit;30;10", "superbwarfare:shell_casing_normal;30;10", "superbwarfare:shell_casing_shotgun;30;10", "superbwarfare:shell_casing_50cal;30;10", "superbwarfare:huge_explosion_close;30;10", "superbwarfare:huge_explosion_far;250;150", "superbwarfare:huge_explosion_very_far;400;300", "superbwarfare:open;30;10", "superbwarfare:charge_rifle_fire_1p;150;65", "superbwarfare:charge_rifle_fire_3p;150;65", "superbwarfare:charge_rifle_fire_boom_1p;150;65", "superbwarfare:charge_rifle_fire_boom_3p;150;65", "superbwarfare:annihilator_fire_1p;150;65", "superbwarfare:annihilator_fire_3p;150;65", "superbwarfare:annihilator_far;250;150", "superbwarfare:annihilator_veryfar;400;300", "superbwarfare:annihilator_reload;30;25", "superbwarfare:boat_engine;30;10", "superbwarfare:vehicle_strike;30;10", "superbwarfare:m_2_hb_fire_1p;150;65", "superbwarfare:m_2_hb_fire_3p;150;65", "superbwarfare:m_2_hb_far;250;150", "superbwarfare:m_2_hb_veryfar;400;300", "superbwarfare:m_2_hb_reload_normal;30;25", "superbwarfare:m_2_hb_reload_empty;30;25", "superbwarfare:wheel_chair_engine;30;10", "superbwarfare:wheel_chair_jump;30;10", "superbwarfare:radar_search_start;30;10", "superbwarfare:radar_search_idle;30;10", "superbwarfare:radar_search_end;30;10", "superbwarfare:helicopter_engine_start;30;10", "superbwarfare:helicopter_engine;30;10", "superbwarfare:heli_cannon_fire_1p;150;65", "superbwarfare:heli_cannon_fire_3p;150;65", "superbwarfare:heli_cannon_far;250;150", "superbwarfare:heli_cannon_veryfar;400;300", "superbwarfare:small_rocket_fire_1p;150;65", "superbwarfare:small_rocket_fire_3p;150;65", "superbwarfare:into_cannon;30;10", "superbwarfare:into_missile;30;10", "superbwarfare:missile_reload;30;25", "superbwarfare:low_health;30;10", "superbwarfare:no_health;30;10", "superbwarfare:locking_warning;30;10", "superbwarfare:locked_warning;30;10", "superbwarfare:missile_warning;30;10", "superbwarfare:decoy_reload;30;25", "superbwarfare:decoy_fire;150;65", "superbwarfare:secondary_cataclysm_fire_1p;150;65", "superbwarfare:secondary_cataclysm_fire_3p;150;65", "superbwarfare:secondary_cataclysm_far;250;150", "superbwarfare:secondary_cataclysm_veryfar;400;300", "superbwarfare:secondary_cataclysm_loop;30;10", "superbwarfare:secondary_cataclysm_prepare_load;30;10", "superbwarfare:secondary_cataclysm_end;30;10", "superbwarfare:secondary_cataclysm_fire_1p_charge;150;65", "superbwarfare:secondary_cataclysm_fire_3p_charge;150;65", "superbwarfare:secondary_cataclysm_far_charge;250;150", "superbwarfare:secondary_cataclysm_veryfar_charge;400;300", "superbwarfare:lunge_mine_growl;30;10", "superbwarfare:lav_fire_1p;150;65", "superbwarfare:lav_fire_3p;150;65", "superbwarfare:lav_far;250;150", "superbwarfare:lav_veryfar;400;300", "superbwarfare:lav_engine;30;10", "superbwarfare:coax_fire_1p;150;65", "superbwarfare:bmp_fire_1p;150;65", "superbwarfare:bmp_fire_3p;150;65", "superbwarfare:bmp_engine;30;10", "superbwarfare:bmp_missile_fire_1p;150;65", "superbwarfare:bmp_missile_fire_3p;150;65", "superbwarfare:bmp_missile_reload;30;25", "superbwarfare:wheel_step;30;10", "superbwarfare:laser_tower_shoot;30;10", "superbwarfare:yx_100_reload;30;25", "superbwarfare:yx_100_fire_1p;150;65", "superbwarfare:yx_100_fire_3p;150;65", "superbwarfare:yx_100_far;250;150", "superbwarfare:yx_100_veryfar;400;300", "superbwarfare:yx_100_engine;30;10", "superbwarfare:turret_turn;30;10", "superbwarfare:c4_beep;30;10", "superbwarfare:c4_final;30;10", "superbwarfare:c4_throw;30;10", "superbwarfare:c4_detonator_click;30;10", "superbwarfare:prism_fire_1p;150;65", "superbwarfare:prism_fire_3p;150;65", "superbwarfare:prism_fire_1p_2;150;65", "superbwarfare:prism_fire_3p_2;150;65", "superbwarfare:prism_engine;30;10", "superbwarfare:insidious_fire_1p;150;65", "superbwarfare:insidious_fire_3p;150;65", "superbwarfare:insidious_far;250;150", "superbwarfare:insidious_veryfar;400;300", "superbwarfare:insidious_reload_empty;30;25", "superbwarfare:smoke_fire;150;65", "superbwarfare:hpj_11_fire_3p;150;65", "superbwarfare:track_move;30;10", "superbwarfare:rocket_fly;30;10", "superbwarfare:shell_fly;30;10", "superbwarfare:rocket_engine;30;10", "superbwarfare:vehicle_swim;30;10", "superbwarfare:a10_engine;30;10", "superbwarfare:a10_fire;150;65", "superbwarfare:bomb_release;30;10", "superbwarfare:missile_start;30;10", "superbwarfare:bomb_reload;30;25", "superbwarfare:jet_lock;30;10", "superbwarfare:jet_lockon;30;10", "superbwarfare:dps_generator_evolve;30;10", "superbwarfare:melee_hit;30;10", "superbwarfare:aurelia_sceptre_fire_1p;150;65", "superbwarfare:aurelia_sceptre_fire_3p;150;65", "superbwarfare:fly_loop;30;10", "superbwarfare:mp_5_fire_1p;150;65", "superbwarfare:mp_5_fire_3p;150;65", "superbwarfare:mp_5_far;250;150", "superbwarfare:mp_5_veryfar;400;300", "superbwarfare:mp_5_fire_1p_s;150;65", "superbwarfare:mp_5_fire_3p_s;150;65", "superbwarfare:mp_5_reload_normal;30;25", "superbwarfare:mp_5_reload_empty;30;25", "superbwarfare:steel_pipe_hit;30;10", "superbwarfare:steel_pipe_drop;30;10", "superbwarfare:qbz_191_fire_1p;150;65", "superbwarfare:qbz_191_fire_1p_s;150;65", "superbwarfare:qbz_191_fire_3p;150;65", "superbwarfare:qbz_191_fire_3p_s;150;65", "superbwarfare:qbz_191_far;250;150", "superbwarfare:qbz_191_veryfar;400;300", "superbwarfare:qbz_191_reload_normal;30;25", "superbwarfare:qbz_191_reload_empty;30;25", "superbwarfare:smoke_grenade_release;30;10", "superbwarfare:hand_wheel_rot;30;10", "superbwarfare:medium_rocket_fire;150;65", "superbwarfare:ty63_reload;30;25", "pointblank:gun_action;15;5"]

#====================================================================
# Sound Attract Mod - Stealth & Detection Configuration
#====================================================================
[sound_attract_main]

	#--- Field of View Settings ---
	[sound_attract_main.fov]
		#The default horizontal Field of View for all mobs not in the override list.
		#Represents the width of the vision cone in degrees.
		#Range: 0.0 ~ 360.0
		defaultHorizontalFov = 200.0
		#The default vertical Field of View for all mobs not in the override list.
		#Represents the height of the vision cone in degrees.
		#Range: 0.0 ~ 360.0
		defaultVerticalFov = 135.0
		#A list of custom FOV (Field of View) overrides for specific mobs.
		#This gives you direct control over the vision cone for any mob.
		#Format: "modid:mob_id, horizontal_fov, vertical_fov"
		#SPECIAL VALUE: A horizontal FOV of 360 or more grants the mob 360-degree vision (omni-directional).
		#Any mob NOT in this list will use the default FOV (200 horizontal, 135 vertical).
		customFovOverrides = ["minecraft:spider, 360.0, 360.0", "minecraft:cave_spider, 360.0, 360.0", "minecraft:phantom, 200.0, 280.0", "minecraft:vex, 200.0, 280.0", "minecraft:allay, 200.0, 280.0", "minecraft:bat, 20.0, 20.0", "minecraft:parrot, 200.0, 280.0", "minecraft:ghast, 200.0, 280.0", "minecraft:blaze, 200.0, 280.0", "minecraft:axolotl, 270.0, 90.0", "minecraft:camel, 270.0, 90.0", "minecraft:chicken, 270.0, 90.0", "minecraft:cow, 270.0, 90.0", "minecraft:donkey, 270.0, 90.0", "minecraft:goat, 270.0, 90.0", "minecraft:horse, 270.0, 90.0", "minecraft:mule, 270.0, 90.0", "minecraft:mooshroom, 270.0, 90.0", "minecraft:panda, 270.0, 90.0", "minecraft:pig, 270.0, 90.0", "minecraft:rabbit, 270.0, 90.0", "minecraft:sheep, 270.0, 90.0", "minecraft:sniffer, 270.0, 90.0", "minecraft:strider, 270.0, 90.0", "minecraft:turtle, 270.0, 90.0", "minecraft:villager, 270.0, 90.0", "minecraft:wandering_trader, 270.0, 90.0", "minecraft:slime, 270.0, 120.0", "minecraft:magma_cube, 270.0, 120.0", "minecraft:cod, 300.0, 100.0", "minecraft:pufferfish, 300.0, 100.0", "minecraft:salmon, 300.0, 100.0", "minecraft:squid, 300.0, 100.0", "minecraft:glow_squid, 300.0, 100.0", "minecraft:tadpole, 300.0, 100.0", "minecraft:tropical_fish, 300.0, 100.0", "minecraft:cat, 140.0, 140.0", "minecraft:ocelot, 140.0, 140.0", "minecraft:wolf, 140.0, 140.0", "minecraft:polar_bear, 140.0, 140.0", "minecraft:fox, 140.0, 140.0", "minecraft:frog, 140.0, 140.0", "minecraft:zombie, 200.0, 135.0", "minecraft:husk, 200.0, 135.0", "minecraft:drowned, 200.0, 135.0", "minecraft:skeleton, 200.0, 135.0", "minecraft:stray, 200.0, 135.0", "minecraft:pillager, 200.0, 135.0", "minecraft:vindicator, 200.0, 135.0", "minecraft:evoker, 200.0, 135.0", "minecraft:witch, 200.0, 135.0", "minecraft:piglin, 200.0, 135.0", "minecraft:piglin_brute, 200.0, 135.0", "minecraft:iron_golem, 200.0, 135.0", "minecraft:creeper, 90.0, 90.0", "minecraft:enderman, 180.0, 240.0", "minecraft:guardian, 320.0, 180.0", "minecraft:elder_guardian, 320.0, 180.0", "minecraft:ravager, 160.0, 100.0", "minecraft:hoglin, 160.0, 100.0", "minecraft:zoglin, 160.0, 100.0", "minecraft:shulker, 270.0, 45.0"]
		#A list of mobs that will COMPLETELY IGNORE the FOV system.
		#Use this for bosses or mobs from other mods with special AI that might break.
		#Format: "modid:mob_id"
		#Note: Certain vanilla mobs like the Warden are always excluded for stability and cannot be removed.
		fovExclusionList = ["minecraft:warden"]
		#Blocks in this allowlist are treated as see-through for line-of-sight checks (e.g., modded glass).
		#Format: ['modid:block_id']
		nonBlockingVisionAllowList = []

	#General Stealth System Settings
	[sound_attract_main.general_stealth_settings]
		#Master switch for all custom stealth mechanics. If false, mobs use vanilla detection (modified only by maxStealthDetectionRange if set).
		enableStealthMechanics = true
		#How often (in ticks) the server checks ongoing stealth situations (e.g., for grace period). Lower is more responsive but higher performance cost.
		#20 ticks = 1 second.
		#Range: 5 ~ 100
		stealthCheckInterval = 100
		#How long (in ticks) a mob will keep targeting a player after losing direct detection (due to stealth) before giving up.
		#Set to 0 for no grace period (immediate de-aggro if stealth conditions met).
		#Range: 0 ~ 200
		stealthGracePeriodTicks = 200

	#Base detection ranges for players based on their stance.
	#These are modified by all other factors (light, camo, etc.).
	[sound_attract_main.player_stance_detection_ranges]
		#Base detection range (in blocks) when a player is standing.
		#Range: 0.0 ~ 512.0
		standingDetectionRangePlayer = 32.0
		#Base detection range (in blocks) when a player is sneaking (crouching).
		#Range: 0.0 ~ 512.0
		sneakingDetectionRangePlayer = 12.0
		#Base detection range (in blocks) when a player is crawling (e.g., in a 1-block high gap).
		#Range: 0.0 ~ 512.0
		crawlingDetectionRangePlayer = 4.0

	#How environmental conditions affect stealth.
	[sound_attract_main.environmental_factors]

		#Light level effects on detection.
		[sound_attract_main.environmental_factors.light_level]
			#The light level (0-15) considered neutral (no bonus or penalty to detection).
			#Range: 0 ~ 15
			neutralLightLevel = 7
			#Modifier strength per point of light difference from 'neutralLightLevel'. Higher = more impact.
			#Positive values increase detection in bright light / decrease in dark. Negative values would invert this.
			#Range: 0.0 ~ 0.5
			lightLevelSensitivity = 0.3
			#Minimum multiplier that can be applied due to light levels (e.g., 0.2 for max 80% range reduction in total darkness).
			#Range: 0.01 ~ 1.0
			minLightFactor = 0.2
			#Maximum multiplier that can be applied due to light levels (e.g., 2.0 for max 100% range increase in full brightness).
			#Range: 1.0 ~ 5.0
			maxLightFactor = 3.0
			#Horizontal radius (blocks) around player to sample for average/effective light level.
			#Range: 0 ~ 5
			lightSampleRadiusHorizontal = 2
			#Vertical radius (blocks) around player to sample for average/effective light level.
			#Range: 0 ~ 3
			lightSampleRadiusVertical = 1

		#Weather effects on detection.
		[sound_attract_main.environmental_factors.weather]
			#Detection range multiplier when raining (e.g., 0.8 for 20% range reduction).
			#Range: 0.1 ~ 1.0
			rainStealthFactor = 0.8
			#Detection range multiplier when thundering (overrides rain factor if active).
			#Range: 0.1 ~ 1.0
			thunderStealthFactor = 0.6

	#How player actions affect their detectability.
	[sound_attract_main.player_actions]

		#Movement effects on detection.
		[sound_attract_main.player_actions.movement]
			#Detection range multiplier when player is moving (not sneaking/crawling). >1.0 means easier to detect.
			#Set to 1.0 for no penalty.
			#Range: 1.0 ~ 3.0
			movementStealthPenalty = 1.2
			#Detection range multiplier if player is NOT moving above threshold (e.g. 0.8 for 20% harder to detect).
			#Set to 1.0 for no bonus when stationary. Applies unless sprinting/crawling.
			#Range: 0.1 ~ 1.0
			stationaryStealthBonusFactor = 0.8
			#Squared distance threshold to consider a player as 'moving' per stealth check interval.
			#Range: 1.0E-4 ~ 0.1
			movementThreshold = 0.003

		#Invisibility potion effect.
		[sound_attract_main.player_actions.invisibility]
			#Detection range multiplier when player has Invisibility effect (e.g., 0.1 for 90% range reduction).
			#Range: 0.0 ~ 1.0
			invisibilityStealthFactor = 0.1

	#Settings for item, armor and environmental camouflage.
	[sound_attract_main.camouflage_system]
		#Master switch for all camouflage effects (item-based and environmental).
		enableCamouflage = true
		#Enable to penalize players for holding items in their hands, making them more detectable.
		enableHeldItemPenalty = true
		#Factor by which detection range is multiplied if the player is holding any item in main or off-hand (e.g., 1.1 = 10% more detectable per occupied hand). This is applied before enchantment penalties on held items.
		#Range: 1.0 ~ 2.0
		heldItemPenaltyFactor = 1.1
		#Enable to penalize players for wearing enchanted armor or holding enchanted items.
		enableEnchantmentPenalty = true
		#Factor by which detection range is multiplied for *each* piece of visibly enchanted armor (not concealed) (e.g., 1.05 = 5% more detectable per piece).
		#Range: 1.0 ~ 2.0
		armorEnchantmentPenaltyFactor = 1.15
		#Factor by which detection range is multiplied if a visibly enchanted item (not concealed) is held in main or off-hand (e.g., 1.1 = 10% more detectable per enchanted held item).
		#Range: 1.0 ~ 2.0
		heldItemEnchantmentPenaltyFactor = 1.15

		#Camouflage provided by wearing specific armor items.
		[sound_attract_main.camouflage_system.item_camouflage]
			#List of item IDs (e.g., 'modid:godly_helmet') basically a set that will work everywhere.
			camouflageArmorItems = []
			#If true, 'fullArmorStealthBonus' applies only if wearing a complete set of 4 armor pieces, ALL of which are from 'camouflageArmorItems'.
			#If false, benefits are gained per piece (see per-slot effectiveness) or via 'fullArmorStealthBonus' if a full set of *any* 4 listed items is worn.
			requireFullSetForCamouflageBonus = false
			#Stealth effectiveness factor (0.0 to 1.0) if wearing a 'full set' of listed camouflage items.
			#Final range *= (1.0 - bonus). E.g., 0.2 = 20% detection range reduction.
			#Range: 0.0 ~ 1.0
			fullArmorStealthBonus = 0.85
			#Effectiveness of a listed helmet if per-piece bonuses apply.
			#Range: 0.0 ~ 1.0
			helmetCamouflageEffectiveness = 0.15
			#Effectiveness of a listed chestplate if per-piece bonuses apply.
			#Range: 0.0 ~ 1.0
			chestplateCamouflageEffectiveness = 0.3
			#Effectiveness of a listed leggings if per-piece bonuses apply.
			#Range: 0.0 ~ 1.0
			leggingsCamouflageEffectiveness = 0.25
			#Effectiveness of a listed boots if per-piece bonuses apply.
			#Range: 0.0 ~ 1.0
			bootsCamouflageEffectiveness = 0.15
			#Maximum total effectiveness (0.0 to 1.0) from all item camouflage sources (full set or sum of pieces). Prevents range from becoming too small.
			#Range: 0.0 ~ 0.99
			maxCamouflageEffectivenessCap = 0.85
			#If 'requireFullSetForCamouflageBonus' is TRUE, but player isn't wearing a full set of listed items, should per-piece bonuses still apply for the listed items they ARE wearing?
			allowPartialBonusIfFullSetRequired = true

		#Camouflage based on matching armor color to the surrounding environment.
		[sound_attract_main.camouflage_system.environmental_camouflage]
			#Enable camouflage based on armor color matching the environment.
			enableEnvironmentalCamouflage = true
			#If true, significantly mismatched armor/environment colors will INCREASE detection range.
			enableEnvironmentalMismatchPenalty = true
			#Maximum effectiveness factor (0.0 to 1.0) if armor color perfectly matches environment.
			#Final range *= (1.0 - effectiveness).
			#Range: 0.0 ~ 1.0
			environmentalCamouflageMaxEffectiveness = 0.7
			#Tolerance for color matching (sum of absolute RGB differences). Lower = stricter match needed.
			#Range: 0 ~ 765
			environmentalCamouflageColorMatchThreshold = 90
			#Detection range multiplier if armor color SIGNIFICANTLY mismatches the environment (e.g., 1.5 for 50% INCREASED range).
			#Applies if color difference exceeds 'environmentalMismatchThreshold'. Set to 1.0 to disable penalty.
			#Range: 1.0 ~ 3.0
			environmentalMismatchPenaltyFactor = 1.3
			#Color difference threshold beyond which the 'environmentalMismatchPenaltyFactor' applies.
			#Should be greater than 'environmentalCamouflageColorMatchThreshold'. E.g., if match threshold is 90, mismatch could be 200.
			#Range: 0 ~ 765
			environmentalMismatchThreshold = 100
			#If true, only dyed leather armor contributes its color. If false, uses 'customArmorColors' for non-leather/undyed items.
			environmentalCamouflageOnlyDyedLeather = false
			#Map of item ID to average hex color (e.g., 'minecraft:iron_chestplate;#A0A0A0').
			#Used for environmental camouflage if 'environmentalCamouflageOnlyDyedLeather' is false.
			customArmorColors = ["minecraft:leather_helmet;#804F27", "minecraft:leather_chestplate;#804F27", "minecraft:leather_leggings;#804F27", "minecraft:leather_boots;#804F27", "minecraft:chainmail_helmet;#58585A", "minecraft:chainmail_chestplate;#58585A", "minecraft:chainmail_leggings;#58585A", "minecraft:chainmail_boots;#58585A", "minecraft:iron_helmet;#CACACA", "minecraft:iron_chestplate;#CACACA", "minecraft:iron_leggings;#CACACA", "minecraft:iron_boots;#CACACA", "minecraft:golden_helmet;#F5E54C", "minecraft:golden_chestplate;#F5E54C", "minecraft:golden_leggings;#F5E54C", "minecraft:golden_boots;#F5E54C", "minecraft:diamond_helmet;#39D5CD", "minecraft:diamond_chestplate;#39D5CD", "minecraft:diamond_leggings;#39D5CD", "minecraft:diamond_boots;#39D5CD", "minecraft:netherite_helmet;#403B3B", "minecraft:netherite_chestplate;#403B3B", "minecraft:netherite_leggings;#403B3B", "minecraft:netherite_boots;#403B3B", "minecraft:turtle_helmet;#7B8834"]
			#Radius (blocks) around player to sample for average environmental color.
			#Range: 0 ~ 3
			envColorSampleRadius = 1
			#Starting Y-offset relative to player pos for env color sampling (e.g., 0 for player's feet level).
			#Range: -2 ~ 2
			envColorSampleYOffsetStart = 0
			#Ending Y-offset relative to player pos for env color sampling (e.g., -1 for blocks at feet and one below). Must be <= YOffsetStart.
			#Range: -2 ~ 2
			envColorSampleYOffsetEnd = -1

	#Absolute min/max detection ranges after all modifiers are applied.
	[sound_attract_main.detection_range_limits]
		#The absolute minimum detection range (in blocks). Player cannot be harder to detect than this, regardless of modifiers.
		#Set > 0 to prevent mobs from being completely blind unless intended by other mechanics.
		#Range: 0.0 ~ 64.0
		minStealthDetectionRange = 0.5
		#The absolute maximum detection range (in blocks). Player cannot be easier to detect than this.
		#Also used as default range if 'enableStealthMechanics' is false.
		#Range: 1.0 ~ 1024.0
		maxStealthDetectionRange = 64.0

#Tacz Integration Configuration
[tacz]
	#Enable Tacz gun integration
	enableTaczIntegration = true
	#Tacz reload sound range (fallback, calculated as shootDb/20.0 for known guns)
	#Range: 1.0 ~ 128.0
	taczReloadRange = 9.0
	#Tacz reload sound weight (fallback, calculated as (shootDb/10.0)/2.0 for known guns)
	#Range: 0.0 ~ 10.0
	taczReloadWeight = 1.0
	#Tacz shoot sound range (fallback, calculated as db for known guns)
	#Range: 1.0 ~ 256.0
	taczShootRange = 140.0
	#Tacz shoot sound weight (fallback, calculated as db/10.0 for known guns)
	#Range: 0.0 ~ 10.0
	taczShootWeight = 10.0
	#Tacz gun shoot decibels. Format: 'modid:item;decibels'. Example: 'tacz:akm;120.0'
	taczGunShootDecibels = ["suffuse:aks74u;157.0", "suffuse:python;155.0", "suffuse:tec9;160.0", "suffuse:tt33;158.0", "tacz:deagle_golder;164.0", "suffuse:tti2011;158.0", "tacz:m1911;157.0", "suffuse:trapper50cal;172.0", "tacz:deagle;164.0", "tacz:cz75;157.0", "tacz:p320;157.0", "suffuse:viper2011;158.0", "tacz:m700;160.0", "tacz:m107;171.0", "tacz:m95;172.0", "tacz:ai_awp;170.0", "suffuse:aw50;173.0", "suffuse:gm6;172.0", "suffuse:m200;173.0", "suffuse:xm7;165.0", "suffuse:qbu191;164.0", "suffuse:n4;161.0", "suffuse:qbz951;160.0", "suffuse:ash12;165.0", "suffuse:qbz951s;160.0", "suffuse:qbz192;159.0", "suffuse:an94;161.0", "tacz:sks_tactical;159.0", "tacz:ak47;159.0", "tacz:type_81;158.0", "tacz:qbz_95;160.0", "tacz:hk416d;161.0", "tacz:m4a1;159.0", "tacz:m16a1;159.0", "tacz:hk_g3;161.0", "tacz:m16a4;159.0", "tacz:mk14;162.0", "tacz:scar_l;161.0", "tacz:scar_h;162.0", "tacz:aug;160.0", "tacz:db_short;165.0", "tacz:db_long;166.0", "tacz:m870;165.0", "tacz:aa12;161.0", "tacz:ump45;158.0", "tacz:hk_mp5a5;158.0", "tacz:uzi;157.0", "suffuse:pp19;157.0", "tacz:vector45;158.0", "tacz:p90;156.0", "tacz:rpg7;180.0", "tacz:m320;172.0", "suffuse:m79;172.0", "suffuse:pkp;165.0", "tacz:m249;165.0", "tacz:rpk;164.0", "tacz:g36k;135.0", "tacz:spr15hb;140.0", "tacz:b93r;125.0", "tacz:glock_17;125.0"]
	#Tacz attachment sound reduction. Format: 'modid:item;reduction'. Example: 'tacz:suppressor;15.0'
	taczAttachmentReductions = ["tacz:muzzle_brake_cthulhu;-3.0", "tacz:muzzle_brake_pioneer;-3.0", "tacz:muzzle_brake_cyclone_d2;-3.0", "tacz:muzzle_brake_trex;-5.0", "tacz:muzzle_silencer_mirage;35.0", "tacz:muzzle_silencer_vulture;45.0", "tacz:muzzle_silencer_knight_qd;40.0", "tacz:muzzle_silencer_ursus;30.0", "tacz:muzzle_silencer_ptilopsis;30.0", "tacz:muzzle_silencer_phantom_s1;30.0", "tacz:muzzle_compensator_trident;-2.0", "tacz:deagle_golden_long_barrel;20.0"]
	#Default reduction value for Tacz attachments if the attachment id is not in the list.
	#Range: -300.0 ~ 300.0
	taczAttachmentReductionDefault = 20.0
	#The base visual detection range (in blocks) when a gunshot occurs, before muzzle attachments are factored in.
	#Range: 16.0 ~ 512.0
	gunshotBaseDetectionRange = 128.0
	#How long (in ticks) the increased detection from a gunshot lasts. 20 ticks = 1 second.
	#Range: 1 ~ 200
	gunshotDetectionDurationTicks = 60
	#Tacz attachment VISUAL FLASH reduction. A positive value reduces flash range, a negative value INCREASES it (e.g., for muzzle brakes)., Format: 'modid:item;reduction_amount'
	taczMuzzleFlashReductions = ["tacz:muzzle_silencer_mirage;100.0", "tacz:muzzle_silencer_vulture;110.0", "tacz:muzzle_silencer_knight_qd;105.0", "tacz:muzzle_silencer_ursus;90.0", "tacz:muzzle_silencer_ptilopsis;90.0", "tacz:muzzle_silencer_phantom_s1;90.0", "tacz:muzzle_brake_cthulhu;-10.0", "tacz:muzzle_brake_pioneer;-10.0", "tacz:muzzle_brake_cyclone_d2;-10.0", "tacz:muzzle_brake_trex;-15.0", "tacz:muzzle_compensator_trident;-5.0"]
	#Default flash reduction value for Tacz attachments if the attachment id is not in the list.
	#Range: -300.0 ~ 300.0
	taczAttachmentFlashReductionDefault = 0.0

#Point Blank Integration Configuration
[pointblank]
	#Enable Point Blank gun integration
	enablePointBlankIntegration = true
	#Point Blank reload sound range fallback (used when specific gun data is not provided)
	#Range: 1.0 ~ 128.0
	pointBlankReloadRange = 9.0
	#Point Blank reload sound weight fallback (used when specific gun data is not provided)
	#Range: 0.0 ~ 10.0
	pointBlankReloadWeight = 1.0
	#Point Blank shoot sound range fallback (used when specific gun data is not provided)
	#Range: 1.0 ~ 256.0
	pointBlankShootRange = 140.0
	#Point Blank shoot sound weight fallback (used when specific gun data is not provided)
	#Range: 0.0 ~ 10.0
	pointBlankShootWeight = 10.0
	#Point Blank gun shoot ranges (when provided, override fallback). Format: 'modid:item;range' (range in blocks)
	pointBlankGunShootRanges = ["pointblank:glock17;128.0", "pointblank:glock18;128.0", "pointblank:m9;128.0", "pointblank:m1911a1;128.0", "pointblank:tti_viper;128.0", "pointblank:p30l;128.0", "pointblank:mk23;128.0", "pointblank:deserteagle;140.0", "pointblank:rhino;138.0", "pointblank:m4a1;118.0", "pointblank:m4a1mod1;118.0", "pointblank:star15;90.0", "pointblank:m4sopmodii;118.0", "pointblank:m16a1;90.0", "pointblank:hk416;118.0", "pointblank:scarl;72.0", "pointblank:xm7;118.0", "pointblank:g36c;132.0", "pointblank:g36k;132.0", "pointblank:aug;118.0", "pointblank:g41;118.0", "pointblank:ak74;128.0", "pointblank:ak12;128.0", "pointblank:an94;128.0", "pointblank:ar57;128.0", "pointblank:xm29;128.0", "pointblank:mp5;128.0", "pointblank:mp7;128.0", "pointblank:ro635;119.0", "pointblank:ump45;128.0", "pointblank:vector;90.0", "pointblank:p90;128.0", "pointblank:m950;128.0", "pointblank:tmp;128.0", "pointblank:sl8;128.0", "pointblank:mk14ebr;128.0", "pointblank:uar10;156.0", "pointblank:g3;128.0", "pointblank:wa2000;128.0", "pointblank:xm3;128.0", "pointblank:c14;128.0", "pointblank:l96a1;128.0", "pointblank:ballista;128.0", "pointblank:gm6lynx;128.0", "pointblank:m590;128.0", "pointblank:m870;128.0", "pointblank:spas12;128.0", "pointblank:m1014;128.0", "pointblank:citoricxs;128.0", "pointblank:hs12;128.0", "pointblank:lamg;128.0", "pointblank:mk48;128.0", "pointblank:m249;128.0", "pointblank:m32mgl;128.0", "pointblank:smaw;128.0", "pointblank:at4;128.0", "pointblank:javelin;200.0", "pointblank:m134minigun;156.0", "pointblank:aughbar;128.0", "pointblank:aa12;128.0", "pointblank:ak47;128.0"]
	#Point Blank attachment sound reduction. Format: 'modid:item;reduction'. Positive reduces range, negative increases.
	pointBlankAttachmentSoundReductions = ["pointblank:ar_suppressor;40.0", "pointblank:ar_suppressor_tan;40.0", "pointblank:xm7_suppressor;40.0", "pointblank:ak_suppressor;40.0", "pointblank:smg_suppressor;40.0", "pointblank:rf_suppressor;40.0", "pointblank:hp_suppressor;40.0", "pointblank:sg_suppressor;40.0"]
	#Default sound reduction for Point Blank attachments not listed above.
	#Range: -300.0 ~ 300.0
	pointBlankAttachmentReductionDefault = 20.0
	#Point Blank attachment VISUAL FLASH reduction. Positive reduces flash range, negative increases. Format: 'modid:item;reduction_amount'
	pointBlankMuzzleFlashReductions = ["pointblank:ar_suppressor;90.0", "pointblank:ar_suppressor_tan;90.0", "pointblank:xm7_suppressor;90.0", "pointblank:ak_suppressor;90.0", "pointblank:smg_suppressor;90.0", "pointblank:rf_suppressor;90.0", "pointblank:hp_suppressor;90.0", "pointblank:sg_suppressor;90.0"]

["Simple VC"]
	#Enable Simple Voice Chat (SVC) integration.
	#When enabled, voice chat frames generate a dynamic sound whose range scales with the audio's peak level (dBFS).
	#Optional: Only takes effect if SVC is installed.
	enableVoiceChatIntegration = true
	#Base range used when the player is whispering in SVC (before applying dB multiplier).
	#Range: 1 ~ 64
	voiceChatWhisperRange = 16
	#Base range used for normal speaking in SVC (before applying dB multiplier).
	#Range: 1 ~ 128
	voiceChatNormalRange = 32
	#Weight assigned to the generated SVC sound event.
	#Range: 0.0 ~ 10.0
	voiceChatWeight = 9.0
	#Mapping from normalized dB thresholds to range multipliers for SVC.
	#Normalized dB is in [0..127], where 0 = silence and 127 = max peak (0 dBFS).
	#Each entry format: 'threshold:multiplier'. Entries are evaluated from highest threshold to lowest.
	#Defaults replicate the built-in behavior: >=50 -> 1.0, >=30 -> 0.7, >=10 -> 0.3.
	voiceChatDbThresholdMap = ["110:2.0", "90:1.8", "75:1.5", "50:1.0", "30:0.7", "10:0.3", "0:0.05"]

#Muffling settings for different block types.
[muffling]
	#Enable/disable block muffling effects on sound range/weight.
	enableBlockMuffling = true
	#Maximum number of blocks to check for muffling between sound source and mob. Higher values are more accurate but more performance intensive.
	#Range: 8 ~ 256
	maxMufflingBlocksToCheck = 16
	#Sound muffling factor for wool blocks. Default: 0.15
	#Range: 0.0 ~ 1.0
	mufflingFactorWool = 0.15
	#Sound muffling factor for solid blocks. Default: 0.35
	#Range: 0.0 ~ 1.0
	mufflingFactorSolid = 0.35
	#Sound muffling factor for non-solid blocks. Default: 0.7
	#Range: 0.0 ~ 1.0
	mufflingFactorNonSolid = 0.7
	#Sound muffling factor for thin blocks (e.g., carpets, panes). Default: 0.9
	#Range: 0.0 ~ 1.0
	mufflingFactorThin = 0.9
	#Sound muffling factor for liquid blocks. Default: 0.5
	#Range: 0.0 ~ 1.0
	mufflingFactorLiquid = 0.5
	#Sound muffling factor for air blocks. Default: 1.0
	#Range: 0.0 ~ 1.0
	mufflingFactorAir = 1.0
	#List of custom wool block IDs for sound muffling. Format: 'modid:blockid'. Default: empty list.
	customWoolBlocks = []
	#List of custom solid block IDs for sound muffling. Format: 'modid:blockid'. Default: empty list.
	customSolidBlocks = []
	#List of custom non-solid block IDs for sound muffling. Format: 'modid:blockid'. Default: empty list.
	customNonSolidBlocks = []
	#List of custom thin block IDs for sound muffling. Format: 'modid:blockid'. Default: empty list.
	customThinBlocks = []
	#List of custom liquid block IDs for sound muffling. Format: 'modid:blockid'. Default: empty list.
	customLiquidBlocks = []
	#List of custom air block IDs for sound muffling. Format: 'modid:blockid'. Default: empty list.
	customAirBlocks = []

[profiles]
	#List of special mob profiles. Each profile is a string with 5 parts separated by ';'.
	#Format: profileName;mobId;nbtMatcher;soundOverridesString;detectionOverridesString
	#- profileName: A unique name (e.g., 'AlphaZombie').
	#- mobId: Mob's resource location (e.g., 'minecraft:zombie'). Make sure it is in attractedEntities. Use '*' or empty to match any mob if NBT is specific.
	#- nbtMatcher: Any compound NBT (e.g., '{IsAlpha:1b}'). Leave empty for no NBT matching.
	#- soundOverrides: Comma-separated 'soundId:range:weight' (e.g., 'minecraft:entity.player.hurt:30.0:2.0,minecraft:block.chest.open:25.0:1.5'). Leave empty for no overrides, and make sure the sound IDs are in the soundIdWhitelist.
	#- detectionOverrides: Comma-separated 'stanceName:value' (e.g., 'standing:50.0,sneaking:25.0'). Stances: standing, sneaking, crawling. Leave empty for no overrides.
	#Example: AlphaZombie;minecraft:zombie;{IsAlpha:1b};minecraft:entity.player.hurt:30.0:2.0;standing:50.0,sneaking:25.0
	#To add more profiles, just add more strings to the list.
	specialMobProfilesRaw = ["GreedyGoblin;minecraft:piglin;;minecraft:block.chest.open:30.0:2.5,minecraft:entity.player.death:50.0:3.0;standing:40.0,sneaking:20.0,crawling:10.0", "SmartZombie;minecraft:zombie;{IsAlpha:1b};minecraft:entity.player.hurt:30.0:2.0;standing:80.0,sneaking:45.0,crawling:15.0", "InsaneVillager;minecraft:villager;;minecraft:wooden_door.open:25.0:1.5,minecraft:block.barrel.open:20.0:1.0;"]
	#List of special player profiles. Each string has 3 parts separated by ';'.
	#Format: profileName;nbtMatcher;detectionOverridesString
	#- profileName: A unique name (e.g., 'FelineOrigin').
	#- nbtMatcher: Any compound NBT to match on the player (capabilities included). Use valid SNBT. Keys containing ':' must be quoted (e.g., '{"ForgeCaps":{"origins:origins":{"Origins":{"origins:origin":"origins:feline"}}}}'). Leave empty to match all players.
	#- detectionOverridesString: Comma-separated 'stanceName:value' (e.g., 'standing:40.0,sneaking:20.0,crawling:10.0'). Valid stances: standing, sneaking, crawling.
	#Example: FelineOrigin;{"ForgeCaps":{"origins:origins":{"Origins":{"origins:origin":"origins:feline"}}}};standing:24.0,sneaking:10.0,crawling:3.0
	specialPlayerProfilesRaw = ["FelineOrigin;{\"ForgeCaps\":{\"origins:origins\":{\"Origins\":{\"origins:origin\":\"origins:feline\"}}}};standing:24.0,sneaking:10.0,crawling:3.0", "DinosaurHatched;{\"ForgeCaps\":{\"fossil:player\":{\"HatchedDinosaur\":1b}}};standing:50.0"]

["Relentless Undead Integration"]
	#Enable or disable the Relentless Undead climbing mechanics integration. Default: false.
	enableRelentlessClimbing = false
	#List of mobs eligible for the climbing goal if Relentless Undead is NOT installed.
	#If Relentless Undead is installed, its HORDE_TAG (forge:hordes) is used instead.
	relentlessEligibleMobs = ["minecraft:zombie", "minecraft:husk", "minecraft:drowned"]
	#If true, zombies will ignore height differences when stacking/climbing.
	#Used if Relentless Undead is NOT installed or if using Sound Attract's config.
	zombiesIgnoreHeight = true
	#If true, zombies can stack on top of each other.
	#Used if Relentless Undead is NOT installed or if using Sound Attract's config.
	zombiesCanStack = false
	#Multiplier for fall damage when using climbing mechanics.
	#Used if Relentless Undead is NOT installed or if using Sound Attract's config.
	#Range: 0.0 ~ 10.0
	zombieFallDamageMultiplier = 0.5

#Player Action Sounds
[player_action_sounds]
	#Enable generation of virtual sounds based on player actions (walking, sprinting, sneaking, etc.).
	#This runs even if Fear of Sound is not installed. If Fear of Sound is installed, this is effectively ignored to save performance.
	enablePlayerActionSounds = true
	#Ranges for player actions. Format: 'ACTION_NAME;range'. Actions: CRAWLING, SNEAKING, WALKING, SPRINTING, SPRINT_JUMPING.
	playerActionRanges = ["CRAWLING;3", "SNEAKING;5", "WALKING;10", "SPRINTING;16", "SPRINT_JUMPING;20"]
	#Weights for player actions. Format: 'ACTION_NAME;weight'.
	playerActionWeights = ["CRAWLING;1.0", "SNEAKING;1.0", "WALKING;1.0", "SPRINTING;1.0", "SPRINT_JUMPING;1.0"]
	#Radius for player action sounds.
	#Range: 0.0 ~ 1.7976931348623157E308
	playerActionCheckRadius = 24.0

