# Configuration file

general {

    ##########################################################################################################
    # client
    #--------------------------------------------------------------------------------------------------------#
    # Client-only configs.
    ##########################################################################################################

    client {

        ##########################################################################################################
        # sounds
        #--------------------------------------------------------------------------------------------------------#
        # Control sounds triggered by guns
        ##########################################################################################################

        sounds {
            # If true, a ding sound will play when you successfully hit a player with a gun
            B:"Play Hit Sound"=true
        }

        ##########################################################################################################
        # display
        #--------------------------------------------------------------------------------------------------------#
        # Configuration for display related options
        ##########################################################################################################

        display {
            # If true, an animation is performed while cycling items in the Workbench
            B:"Workbench Animation"=true
        }

        ##########################################################################################################
        # controls
        #--------------------------------------------------------------------------------------------------------#
        # Configuration for control options
        ##########################################################################################################

        controls {
            # If true, uses the old controls in order to aim and shoot
            B:"Use Old Controls"=false
        }

    }

    ##########################################################################################################
    # server
    #--------------------------------------------------------------------------------------------------------#
    # Server-only configs.
    ##########################################################################################################

    server {
        # Enables the check for head shots for players. Projectiles that hit the head of a player will have increased damage.
        B:"Enable Head Shots"=true

        # The extra amount to expand an entity's bounding box when checking for projectile collision. Setting this value higher will make it easier to hit players
        # Min: 0.0
        # Max: 1.0
        D:"Grow Bounding Box"=0.3

        # The value to multiply the damage by if projectile hit the players head
        # Min: 1.0
        # Max: 1.7976931348623157E308
        D:"Head Shot Damage Multiplier"=1.1

        ##########################################################################################################
        # aggro mobs
        #--------------------------------------------------------------------------------------------------------#
        # Nearby mobs are angered and/or scared by the firing of guns.
        ##########################################################################################################

        "aggro mobs" {
            # If true, nearby mobs are angered and/or scared by the firing of guns.
            B:"Aggro Mobs Enabled"=true

            # If true, in addition to causing peaceful mobs to panic, firing a gun will also cause nearby hostile mobs to target the shooter.
            B:"Anger Hostile Mobs"=true

            # Any mobs of classes with class paths in this list will not aggro on shooters.
            S:"Exempt Mob Classes" <
                net.minecraft.entity.passive.EntityVillager
             >

            # Any mobs within a sphere of this radius will aggro on the shooter of a silenced gun.
            # Min: 0.0
            # Max: 1.7976931348623157E308
            D:"Range Silenced"=10.0

            # Any mobs within a sphere of this radius will aggro on the shooter of an unsilenced gun.
            # Min: 0.0
            # Max: 1.7976931348623157E308
            D:"Range Unsilenced"=20.0
        }

        guns {

            pistol {

                general {
                    I:"Max Ammo"=15
                    I:"Reload Speed"=1
                }

                projectile {
                    D:Damage=10.0
                    B:"Damage Falloff"=true
                    B:Gravity=false
                    I:Life=10
                    B:"Reduce Damage Not Zoomed"=false
                    D:Size=0.20000000298023224
                    D:Speed=10.0
                    B:Visible=false
                }

                sounds {
                    S:Cock=shotgun_fire
                    S:Fire=pistol_fire
                    S:Reload=pistol_reload
                    S:Silenced=pistol_fire_silenced
                }

            }

            shotgun {

                general {
                    I:"Max Ammo"=4
                    I:"Reload Speed"=1
                }

                projectile {
                    D:Damage=15.0
                    B:"Damage Falloff"=true
                    B:Gravity=false
                    I:Life=3
                    B:"Reduce Damage Not Zoomed"=false
                    D:Size=1.0
                    D:Speed=10.0
                    B:Visible=false
                }

                sounds {
                    S:Cock=shotgun_fire
                    S:Fire=shotgun_fire
                    S:Reload=pistol_reload
                    S:Silenced=shotgun_fire_silenced
                }

            }

            rifle {

                general {
                    I:"Max Ammo"=1
                    I:"Reload Speed"=1
                }

                projectile {
                    D:Damage=20.0
                    B:"Damage Falloff"=false
                    B:Gravity=false
                    I:Life=10
                    B:"Reduce Damage Not Zoomed"=true
                    D:Size=0.0625
                    D:Speed=20.0
                    B:Visible=false
                }

                sounds {
                    S:Cock=shotgun_fire
                    S:Fire=rifle_fire
                    S:Reload=pistol_reload
                    S:Silenced=rifle_fire_silenced
                }

            }

            "grenade launcher" {

                general {
                    I:"Max Ammo"=1
                    I:"Reload Speed"=1
                }

                projectile {
                    D:Damage=30.0
                    B:"Damage Falloff"=false
                    B:Gravity=true
                    I:Life=50
                    B:"Reduce Damage Not Zoomed"=false
                    D:Size=0.20000000298023224
                    D:Speed=1.0
                    B:Visible=true
                }

                sounds {
                    S:Cock=shotgun_fire
                    S:Fire=grenade_fire
                    S:Reload=pistol_reload
                    S:Silenced=silenced_fire
                }

            }

            bazooka {

                general {
                    I:"Max Ammo"=1
                    I:"Reload Speed"=1
                }

                projectile {
                    D:Damage=20.0
                    B:"Damage Falloff"=false
                    B:Gravity=false
                    I:Life=100
                    B:"Reduce Damage Not Zoomed"=false
                    D:Size=0.20000000298023224
                    D:Speed=2.0
                    B:Visible=true
                }

                sounds {
                    S:Cock=shotgun_fire
                    S:Fire=bazooka_fire
                    S:Reload=pistol_reload
                    S:Silenced=silenced_fire
                }

            }

            minigun {

                general {
                    I:"Max Ammo"=100
                    I:"Reload Speed"=4
                }

                projectile {
                    D:Damage=4.0
                    B:"Damage Falloff"=false
                    B:Gravity=false
                    I:Life=10
                    B:"Reduce Damage Not Zoomed"=false
                    D:Size=0.20000000298023224
                    D:Speed=10.0
                    B:Visible=false
                }

                sounds {
                    S:Cock=shotgun_fire
                    S:Fire=chain_gun_fire
                    S:Reload=pistol_reload
                    S:Silenced=silenced_fire
                }

            }

            "assault rifle" {

                general {
                    I:"Max Ammo"=30
                    I:"Reload Speed"=2
                }

                projectile {
                    D:Damage=6.0
                    B:"Damage Falloff"=false
                    B:Gravity=false
                    I:Life=10
                    B:"Reduce Damage Not Zoomed"=false
                    D:Size=0.20000000298023224
                    D:Speed=10.0
                    B:Visible=false
                }

                sounds {
                    S:Cock=shotgun_fire
                    S:Fire=rifle_fire
                    S:Reload=pistol_reload
                    S:Silenced=rifle_fire_silenced
                }

            }

        }

        ##########################################################################################################
        # stun grenades
        #--------------------------------------------------------------------------------------------------------#
        # Blinding/deafening properties of stun grenades.
        ##########################################################################################################

        "stun grenades" {

            ##########################################################################################################
            # blind
            #--------------------------------------------------------------------------------------------------------#
            # Blinding properties of stun grenades.
            ##########################################################################################################

            blind {
                # After the duration drops to this many ticks, the transparency of the overlay when blinded will gradually fade to 0 alpha.
                # Min: 0
                # Max: 255
                I:"Overlay Alpha"=255

                # Transparency of the overlay when blinded will be this alpha value, before eventually fading to 0 alpha.
                # Min: 0
                # Max: 2147483647
                I:"Overlay Fade Threshold"=40
                I:alphaFadeThresholdSynced=2147483647
                I:alphaOverlaySynced=255

                ##########################################################################################################
                # effect criteria
                #--------------------------------------------------------------------------------------------------------#
                # Criteria that determines the presence/absence and duration of the blinding effect.
                ##########################################################################################################

                "effect criteria" {
                    # Angle between the eye/looking direction and the eye/grenade direction must be no more than half this many degrees to have an effect.
                    # Min: 0.0
                    # Max: 360.0
                    D:"Angle Of Effect"=170.0

                    # After duration is attenuated by distance, it will be further attenuated depending on the angle (in degrees) between the eye/looking direction and the eye/grenade direction. This is done by multiplying it by 1 (no attenuation) if the angle is 0; and by this value if the angle is the maximum within the angle of effect.
                    # Min: 0.0
                    # Max: 1.0
                    D:"Max Attenuation By Angle"=0.75

                    # Effect will have this duration (in ticks) if the grenade is directly at the player's eyes while looking directly at it.
                    # Min: 0
                    # Max: 2147483647
                    I:"Max Duration"=220

                    # Effect will have this duration (in ticks) if the grenade is the maximum distance from the player's eyes while looking directly at it.
                    # Min: 0
                    # Max: 2147483647
                    I:"Min Duration By Distance"=10

                    # Grenade must be no more than this many meters away to have an effect.
                    # Min: 0.0
                    # Max: 1.7976931348623157E308
                    D:Radius=15.0

                    # If true, the effect is only applied if the line between the eyes and the grenade does not intersect any non-liquid blocks with an opacity greater than 0.
                    B:"Raytrace Opaque Blocks"=true
                }

            }

            ##########################################################################################################
            # deafen
            #--------------------------------------------------------------------------------------------------------#
            # Deafening properties of stun grenades.
            ##########################################################################################################

            deafen {
                # Volume of the ringing sound when deafened will play at this volume, before eventually fading to 0.
                # Min: 0.0
                # Max: 1.7976931348623157E308
                D:"Ring Volume"=1.0

                # After the duration drops to this many ticks, the ringing volume will gradually fade to 0 and other sound volumes will fade back to %100.
                # Min: 0
                # Max: 2147483647
                I:"Sound Fade Threshold"=90

                # Volume of most game sounds when deafened will play at this percent, before eventually fading back to %100.
                # Min: 0.0
                # Max: 1.0
                D:"Sound Percentage"=0.05
                D:ringVolumeSynced=1.0
                I:soundFadeThresholdSynced=2147483647
                D:soundPercentageSynced=0.0

                ##########################################################################################################
                # effect criteria
                #--------------------------------------------------------------------------------------------------------#
                # Criteria that determines the presence/absence and duration of the deafening effect.
                ##########################################################################################################

                "effect criteria" {
                    # Angle between the eye/looking direction and the eye/grenade direction must be no more than half this many degrees to have an effect.
                    # Min: 0.0
                    # Max: 360.0
                    D:"Angle Of Effect"=360.0

                    # After duration is attenuated by distance, it will be further attenuated depending on the angle (in degrees) between the eye/looking direction and the eye/grenade direction. This is done by multiplying it by 1 (no attenuation) if the angle is 0; and by this value if the angle is the maximum within the angle of effect.
                    # Min: 0.0
                    # Max: 1.0
                    D:"Max Attenuation By Angle"=0.75

                    # Effect will have this duration (in ticks) if the grenade is directly at the player's eyes while looking directly at it.
                    # Min: 0
                    # Max: 2147483647
                    I:"Max Duration"=280

                    # Effect will have this duration (in ticks) if the grenade is the maximum distance from the player's eyes while looking directly at it.
                    # Min: 0
                    # Max: 2147483647
                    I:"Min Duration By Distance"=100

                    # Grenade must be no more than this many meters away to have an effect.
                    # Min: 0.0
                    # Max: 1.7976931348623157E308
                    D:Radius=15.0

                    # If true, the effect is only applied if the line between the eyes and the grenade does not intersect any non-liquid blocks with an opacity greater than 0.
                    B:"Raytrace Opaque Blocks"=false
                }

            }

        }

        ##########################################################################################################
        # network
        #--------------------------------------------------------------------------------------------------------#
        # Properties relating to network
        ##########################################################################################################

        network {
            # The distance players need to be within to be able to track new projectiles trails. Higher values means you can see projectiles from that start from further away.
            # Min: 0.0
            # Max: 1.7976931348623157E308
            D:"Projectile Tracking Range"=200.0
        }

        ##########################################################################################################
        # missiles
        #--------------------------------------------------------------------------------------------------------#
        # Properties relating to missiles.
        ##########################################################################################################

        missiles {
            # The max distance which the explosion is effective to.
            # Min: 0.0
            # Max: 1.7976931348623157E308
            D:"Explosion Radius"=5.0
        }

        ##########################################################################################################
        # grenades
        #--------------------------------------------------------------------------------------------------------#
        # Properties relating to grenades.
        ##########################################################################################################

        grenades {
            # The max distance which the explosion is effective to.
            # Min: 0.0
            # Max: 1.7976931348623157E308
            D:"Explosion Radius"=5.0
        }

        ##########################################################################################################
        # projectile spread
        #--------------------------------------------------------------------------------------------------------#
        # Properties relating to projectile spread
        ##########################################################################################################

        "projectile spread" {
            # The amount of times a player has too shoot within the spread threshold before the maximum amount of spread is applied. Setting the value higher means it will take longer for the spread to be applied.
            # Min: 1
            # Max: 2147483647
            I:"Max Count"=10

            # The amount of time in milliseconds before logic to apply spread is skipped. The value indicates a reasonable amount of time before a weapon is considered stable again.
            # Min: 0
            # Max: 1000
            I:"Spread Threshold"=300
        }

    }

}


