Guns Plugin Spigot 1.5.2 Beta Wiki - Afterburner0128/Guns-Plugin-Spigot-1.10- GitHub Wiki

THIS PAGE IS INCOMPLETE

Table of Contents

Before You Get Started

This guns plugin uses a series of customizable YAML Configuration files to change, and customize a series of weapon parameters, to create the desired weapon of choice. Operation is fairly simple, however it does require knowledge of what each configuration file, and parameter of that configuration file consists of and does.

Commands

/guns give <WeaponID> Gives the player a the weapon specified by the ID. /guns list Shows the player all the possible weapons they can retrieve.

Item ID System

Item ID's are numerical values the game uses to determine which block is which. Item ID's also contain their data, or subitem value, how many items the game will give you, and if the item is breakable or not. Item ID's are set in this format: Item ID, Item Data, Item Amount, Unbreakable <true/false>. When setting the data value, if the item doesn't have a data value other than one, the data value will be ignored, and will return a value of 0. If the item has a durability bar, the item will be damaged to the extent of the data value (for example if an item has a durability of 60 hits, and the data value is equal to 1, the game will provide an item with a durability of 59). This is very useful for 3D resource packs, that have different item models for each durability value, these are called Item Predicates. When using an item with a durability bar, and setting a data value, the unbreakable setting must be set to true.

Sound Parameters

Sounds are always in this format Sound:<sound>, <volume>, <pitch>. the standard volume and pitch are set to one. This will make the sound as if it was coming straight from the audio file. The sound used is defined by the spigot docs, and each sound must equal that as stated in the spigot docs, if any different the plugin will not recognize the sound.
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html

Linking Configuration Files

This plugin uses several configuration files in order for every aspect of the weapon to function. Configuration files are linked by setting the ID of the configuration to that where it is required. This tells the plugin to search for the information in that section of the file.

Guns Configuration

M1Garand: <-- "ConfigurationSection" <-- Equal to the "ID"
  Item Parameters:
    ID: M1Garand <-- Equal to the "ConfigurationSection" name.
  Ammo Parameters:
    Projectile Set: M1GarandBullet <-- MUST be equal to the "Projectile Set Name" 
    //INCLUDES THE CUSTOM GUN DATA

Projectiles Database

M1GarandBullet: <-- "ConfigurationSection" <-- Equal to the "Projectile Set Name"  
   Projectile Set Name: M1GarandBullet <-- Equal to the "ConfigurationSection" name.
   //INCLUDES ALL OF THE CUSTOM PROJECTILE DATA

Reloading System

A gun can be reloaded whenever the player wants, usually when reloading the gun is out of ammo, and more ammo is required. The gun will not do anything if the player does not have the Ammo Item: <Item ID, Item Data> in their inventory. If the gun is reloaded while it still has ammo left the gun will remove all the ammo remaining in the gun, and create a new item storing the amount of ammo left in the gun. If the gun is reloaded again, the amount of ammo stored in the ammo item the gun had created will be added to the guns value. If the ammo item does not have a value stored in it, the gun will receive the amount of ammo it can carry. To reload press your drop key, commonly [Q]. The gun can never be dropped unless the player dies, dropping the weapon triggers a reload. As you can tell the "Projectile Set Name" is equal to the configuration section name "M1GarandBullet", and that name is used to identify the "Projectile Set" in the guns configuration.

Select Fire System

Guns can have multiple firing modes, when assigned such in the guns configuration. In order to enable select firing you must have multiple firing modes listed to the gun. In order to do this in game, try and set the gun to your off hand or left hand, default key is [F]. Because of this you can never set a gun into your off hand, however a select fire feature is much more cool anyways.

Configuration Files

To be able to use this plugin, you need to understand how to use the configuration files. The basis of this idea is very simple, the plugin sets a bunch of parameters, and values that need to be filled with either a discrete(one or the other value), or a continuous(a range of values) variable. However the problem arises, as config files don't contain descriptions of what each value does. Here I will explain what each value does.

Settings

This file is to set operation parameters for the whole plugin, and is not individual to one weapon, as the rest of the files are. For now the configuration only contains chat messages for weapon operation. These messages retain multiple variables, and can be configured for a different look, and feel of the plugin.

Messages:
  Shoot Message: 'Message'
  Out of Ammo: 'Message'
  Empty Weapon: 'Message'
  Weapon Jammed: 'Message'
  Reloading Message: 'Message'
  Received Weapon: 'Message'
  Ammo Item Display: 'Message'

Messages

Messages are capable of retaining multiple variables. Each messages is straight forward, and can be easily understood via the operation of the guns with original messages when the config is reset. Each value will be shown below.

Varaibles:
   %WeaponName% : Retrieves the weapons display name.
   %WeaponID% : Retrieves the weapons ID.
   %MaxAmmo% : Displays the weapons max capacity.
   %Firemode% : Displays the weapons current firing mode
   %CurrentAmmo% : Displays the amount of ammo the weapon currently holds.
 
   Beta 1.1.5 Below:
   %GunID% : Retrieves the guns ID. (Only works with the "Received Weapon" message, %WeaponID% will not work).
   %GunName% : Retrieves the guns display name. (Only works with the "Received Weapon", and "Ammo Item Display" message, %WeaponName% will not work).
   %AmmoAmount% : Displays the amount of ammo the weapon currently holds. (Only works with the "Ammo Item Display" message, %CurrentAmount% will not work).

   *Messages*     *Operation*                       *Variables*
   Shoot Message: 'Run whenever the weapon is shot' [%WeaponName%, %MaxAmmo%, %CurrentAmmo%]
   Out of Ammo: 'Run whenever the gun is reloaded, but the player has no ammo in inventory' [%WeaponName%, %MaxAmmo%, %CurrentAmmo%]
   Empty Weapon: 'Run whenever the gun is reloaded, but the player does have ammo in inventory' [%WeaponName%, %MaxAmmo%, %CurrentAmmo%]
   Weapon Jammed: 'Run whenever the weapon has jammed see "Guns Configuration", under "Jamming"' [%WeaponName%]
   Reloading Message: 'Run whenever the player reloads the weapon (Is triggered before the reload delay)' [%WeaponName%, %MaxAmmo%]
   Received Weapon: 'Run whenever the player receives a weapon via command line' [%WeaponName%, %WeaponID%]
   Ammo Item Display: 'The display name of the ammo item if "GunsConfiguration", under "RemoveAmmoIndividually" is set to false' [%WeaponName%, %MaxAmmo%, %CurrentAmmo%]

Guns Configuration

This configuration is where you store all of the data for your guns. Think of it as the core component that all the other parameters connect to, sort of like a motherboard. Multiple configurations have to connect to this configuration in order for the plugin to function properly.

ConfigurationSection:
  Item Parameters:
    Name: <Weapon Name>
    ID: <WeaponID>
    Weapon Item: <Item ID, Item Data, Item Amount, Unbreakable<true/false>>
    Weapon Description: <Line1,Line2,Line3,And so forth>
  Ammunition Parameters:
    Ammo Item: <Item ID, Item Data>
    Ammo Capacity: <value>
    Remove Ammo Individually:<true/false>
    Projectile Set: <Projectile Set ID>
  Weapon Operation:
    Attachment: <true/false>, <Attachment ID>
    Shoot Delay: <ticks>
    Reload Delay: <ticks>
    Firearm Type: <SEMI-AUTOMATIC/AUTOMATIC/MANUAL-ACTION,BURST,SAFE>
    Damage Set:<Damage Set ID>
    Automatic Reload:<true/false>
    Right Click to Shoot: <true/false>
    Jamming: <true/false>,<value>
    Scope:<true/false>
    Zoom Level: <value>
    Weight: <value>
    Crafting: <true/false>,<Crafting Set ID>
    Shift Weapon Drop: <true/false>
  Sound Parameters:
    Shoot Sound:<sound>, <volume>, <pitch>
    Reload Sound: <sound>, <volume>, <pitch>
    Hammer Sound: <sound>, <volume>, <pitch>

Item Display Name

Name: <Weapon Name>
Sets the weapons display name. To add colour to the name use the standard formatting code text "§".

ID

ID: <WeaponID>
This is the string the plugin looks for whenever the guns command, and any other event requiring data from the config. This string must be the exact same as the Configuration Section the weapon data is stored. The Configuration Section, and the ID, cannot have spaces, commas, semicolons, colour codes, etc.

For example:

M1Garand: <-- "ConfigurationSection" <-- Must be that same as the ID.
  Item Parameters:
    Name: §eM1 Garand
    ID: M1Garand <-- Must be the same as the Configuration Section.

Weapon Item

Weapon Item: <Item ID, Item Data, Item Amount, Unbreakable<true/false>>
Sets the item that acts as the weapon. For example if you set the Weapon Item as Weapon Item: 292, 1, 1, true. Whenever you right click this item (so long as the item was obtained using the /guns give command), the weapon will shoot. For more information on the Weapon Item values see the Getting Started section, under Item ID System.

Weapon Description:

Weapon Description: <What ever your want>
The Weapon Description sets the text under the Weapon Items display name. The text is separated by "%" symbols, and the text also uses the "§" symbol to set the colour of the text. Whenever setting white text the symbol "§r" must be used, otherwise the text will be purple, and italicized.

Ammo Item

Ammo Item: <Item ID, Item Data>
This is the item the plugin looks for whenever the gun is reloaded. Variables for the amount of items removed can be set via the Remove Ammo Individually: <true/false> parameter. For more information on the Ammo Item values see the Getting Started section, under Item ID System.

Ammo Capacity

Ammo Capacity: <value>
The Ammo Capacity sets how many times the gun can be shot before it has to be reloaded. The gun can be forced to reload half empty, and with a half empty magazine/cartridge/clip whatever. For more information on the reloading system see the Getting Started section under Reloading System.

Ammo Crafting

Ammo Crafting: <true/false>, CraftingDatabaseID
This section references the ability to craft your own ammunition. The CraftingDatabaseID references the CraftingDatabase.yml

Remove Ammo Individually

Remove Ammo Individually: <true/false>
If the parameter is set true, one item (the item set by the Ammo Item parameter) will be equal to one bullet. When reloading the gun will remove and place however many rounds the gun requires, or are left in the gun with the number equal to the amount of ammo items. If the parameter is set to false, the gun will remove one item for however many rounds the gun needs, and or can hold. For example my gun requires 8 rounds of ammo, if set to false the plugin will remove one ammo item per reload. If set to true, the plugin will remove 8 ammo items to fill the gun.

Projectile Set

Projectile Set: <Projectile ID>
This parameter sets all of the data for the projectile that is shot from the weapon. The Projectile Set requires a Projectile Set Name(see ProjectileDatabase) from the ProjectileDatabase to obtain all the information for the gun to shoot anything. For Example.

Guns Configuration

M1Garand:  
  Ammo Parameters:
    Projectile Set: M1GarandBullet <-- MUST be equal to the "Projectile Set Name" 
    //INCLUDES THE REST OF THE GUN DATA

Projectiles Database

M1GarandBullet: <-- "ConfigurationSection" <-- Equal to the "Projectile Set Name"  
   Projectile Set Name: M1GarandBullet <-- Equal to the "ConfigurationSection" name.
   //INCLUDES ALL OF THE CUSTOM PROJECTILE DATA

Shoot Delay

Shoot Delay: <ticks>
The time it takes for the gun to shoot. This parameter is measured in ticks. For AUTOMATIC guns, the best delay settings is Shoot Delay: 3, therefore the mechanics of the gun don't seem off. This delay is effective for AUTOMATIC, and BOLT-ACTION rifles. It is suggested that the delay not go above 5 ticks.

Reload Delay

Reload Delay: <ticks>
The time it takes for the gun to reload. This parameter is measured in ticks. Please note that it is recommended if custom sounds are being used, that the reload sound matches the time it takes to reload.
`Amount of time it takes for the sound to complete x 20 = Reload Delay'

Recoil

Recoil Amount: <value>
Everytime the weapon fires, the players crosshair will be moved by a randomly picked value between zero and the value chosen. Sometimes the recoil will be small, other times the recoil will be large. This is especially noticeable in automatic weapons, where the player must constantly be working to maintain their sights on target.

Firearm Type

Firearm Type: <SEMI-AUTOMATIC/AUTOMATIC/MANUAL-ACTION,BURST,SAFE>
Sets the mode the gun uses. You can have multiple firing types with variables spaced with a comma. This will enable the select fire setting. The parameters are straight foreword, however the for MANUAL_ACTION weapons, the weapon cannot fire again until the shoot delay is complete, the shoot delay occurs after the gun is shot. For example the delay is 56 ticks, and I shoot the gun, I must wait 56 ticks before I can shoot again. These parameters can be used for anything other than what the parameter is specified for. For example I want a missile launcher where I want to have a delay at the end, I could use the MANUAL-ACTION parameter. In short the <SEMI-AUTOMATIC/AUTOMATIC/MANUAL-ACTION,BURST,SAFE> parameters are just different ways the weapon can fire, they do not hold any true value to what the weapons type.

Damage Set

Damage Set:<Damage Set ID>
The parameters the gun uses whenever a projectile hits the ground, or damages an entity. Requires the DamageDatabase to be linked. For example:

Guns Configuration

M1Garand:  
  Ammo Parameters:
    Damage Set: M1GarandDamage <-- MUST be equal to the "Set ID" 
    //INCLUDES THE REST OF THE GUN DATA

Damage Database

M1GarandDamage: <-- "ConfigurationSection" <-- Equal to the "Set ID"  
   Set ID: M1GarandDamage <-- Equal to the "ConfigurationSection" name.
   //INCLUDES ALL OF THE CUSTOM DAMAGE DATA

Automatic Reload

Automatic Reload:<true/false>
If set to true when the last round is fired the gun will automatically reload. The weapon can still be manually reloaded so long as that the gun still has some ammo left. To reload manually press your drop key, most commonly [Q]. If set to false, when the last round is fired, the drop key must be pressed to reload the gun manually.

Right Click to Shoot

Right Click to Shoot: <true/false>
If set to true, whenever the player right clicks the gun will shoot, dan left clicking will trigger the secondary functions. If set to false, whenever the player left clicks the weapon will shoot, and right clicking will trigger secondary functions.

Jamming

Jamming: <true/false>,<value>
When the gun jams it cannot be used any longer, and must be replaced by an other weapon. If set to false the gun will never jam. Setting the parameter to true, requires the value to be set. The higher the value the less likely the gun will jam. ###Crafting Crafting: <true/false>, CraftingDatabaseID
This section references the ability to craft your own guns. The CraftingDatabaseID references the CraftingDatabase.yml

Shift Weapon Drop

Shift Weapon Drop: <true/false>
If set to true, you can drop the weapon by holding shift and your drop key, this will not trigger the reload. IF set to false, the weapon cannot be dropped without triggering the reload

Projectiles Database

This configuration component, is what sets the data, and how each projectile functions when being shot form any sort of weapon. This component must be linked to the GunsConfiguration, and is optional for the AttachmentsConfiguration.

ConfigurationSection:
  Projectile Set Name: <Projectile ID>
  Projectile Type: <Projectile Type>
  Projectile Velocity: <value>
  Projectile Spread: <value>
  Projectile Amount: <value>
  Particle Trail:<true/false>,<Particle ID>
  Remove Arrow on Hit: <true/false>
  Projectile Bounce: <true/false>
  Cancel Enderpearl Teleport: <true/false>
  Cancel Egg Spawn: <true/false>
  Entity Hit Sound: <sound>, <volume>, <pitch>

Projectile Set Name

Projectile Set Name: <Projectile ID>
This is the value that is used to link the projectile set with one of the guns in the Guns Configuration. The information gathered from this config links to one of the guns specified in the Guns Configuration. For example:

M1Garand:  
  Ammo Parameters:
    Projectile Set: M1GarandBullet <-- MUST be equal to the "Projectile Set Name" 
    //INCLUDES THE REST OF THE GUN DATA

Projectiles Database

M1GarandBullet: <-- "ConfigurationSection" <-- Equal to the "Projectile Set Name"  
   Projectile Set Name: M1GarandBullet <-- Equal to the "ConfigurationSection" name.
   //INCLUDES ALL OF THE CUSTOM PROJECTILE DATA

Projectile Type

Projectile Type: <Projectile Type>
Sets what the projectile is going to be once shot from any sort of weapon. The value specified in this parameter will be what is shot from the weapon. Only specific projectiles can be used with this plugin, as others will return an error. These projectiles include:

ARROW  
TIPPED_ARROW  
SPECTRAL_ARROW  
EGG  
FIREBALL  
SMALL_FIREBALL  
SPLASH_POTION  
DRAGON_FIREBALL  
ENDERPEARL  
THROWN_EXP_BOTTLE  
WITHER_SKULL  
SNOWBALL  

Projectile Velocity

Projectile Velocity: <value>
Sets the speed of the projectile when shot. The higher the value the greater the speed. Any value greater than 10 will result in a rendering issue, where the projectile appears to be off course, but still hits the target. Please also not that gravity effects the projectile so the lower the speed the faster the projectile will drop to the ground.

Projectile Spread

Projectile Spread: <value>
Sets how wide the projectile is off target. The greater the value the more the projectile will spread. Any value greater than 75 will reach CSGO levels of accuracy. The greater the Projectile Velocity the less effect the projectile spread has. For example, the projectile velocity is 5, and the spread is 50. to reach the same amount of spread with a velocity of 10, the projectile spread must be 100

Projectile Amount

Projectile Amount: <value>
This parameter sets how many projectile are shot at once. The greater the value the more projectile are shot. For example if the value is 8, whenever the weapon is fired, 8 projectile will be shot, achieving a shotgun effect. This value does not effect how much ammo is removed. No matter the value only one round/bullet will be removed.

Projectile Trail

Particle Trail:<true/false>,<Particle ID>
If set to true a trail of particles will be created behind the projectile. This requires a ConfigurationSection from the ParticlesDatabase to be linked. Particles are spawned one every tick, this parameter cannot be changed yet. For example: Projectiles Database

M1GarandBullet:
   Projectile Set Name: M1GarandBullet
   Particle Trail: true, M1GarandTrail <-- MUST be equal to the "Effect ID"
   //INCLUDES ALL OF THE CUSTOM PROJECTILE DATA

Particles Database

M1GarandTrail: <-- "ConfigurationSection" <-- Equal to the "Effect ID" 
  Effect ID: M1GarandTrail <-- Equal to the "ConfigurationSection".

Remove Arrow on Hit

Remove Arrow on Hit: <true/false>
If the projectile is an arrow, and this parameter is set to true, the arrow will be removed once it hits the ground.

Projectile Bounce

Projectile Bounce: <true/false>
If set to true, the projectile will have a chance of bouncing off its target. This only works for ARROW, TIPPED_ARROW, and SPECTRAL_ARROWs.

Cancel Enderpearl Teleport

Cancel Enderpearl Teleport: <true/false>
If the projectile being used is an Enderpearl, and this parameter is set to true, the enderpearl will not teleport the player once it lands.

Cancel Egg Spawn

Cancel Egg Spawn: <true/false>
If set to true, and the projectile is an Egg, the egg will not hatch once it hits the ground.

Entity Hit Sound

Entity Hit Sound: <sound>, <volume>, <pitch>
The sound that is played if the projectile hits an entity. (I wish could add hit markers instead).

Particles Database

This component set all of the data the plugin uses to spawn particles, wherever needed. Particles in spigot have gotten more advanced, than its bucket predecessor and therefore requires a database of their own for maximum customization.

ConfigurationSection:
  Effect ID: ParticleSetID
  Particles:
  - ParticleName, OffsetX, OffsetY, OffsetZ, ParticleSpeed, ParticleAmount
  Block ID: <value>
  Block Data: <value>

Effect ID

Effect ID: ParticleSetID
This is the value the plugin looks for whenever the particles option is called. This option requires linking configuration files. Once linked the plugin will retrieve the rest of the data from the configuration section. For example:

Projectiles Database

M1GarandBullet:
  Projectile Set Name: M1GarandBullet
  Particle Trail: true, M1GarandParticleTrail <-- MUST be equal to the "Effect ID"
  //CONTAINS THE REST OF THE PROJECTILE DATA

Particles Database

M1GarandParticleTrail: <-- ConfigurationSection <-- MUST be equal to the "Effect ID"
  Effect ID: M1GarandParticleTrail <-- MUST be equal to the "ConfigurationSection" 
  //CONTAINS THE REST OF THE PARTICLE DATA

Particles:

Particles:
  - ParticleName, OffsetX, OffsetY, OffsetZ, ParticleSpeed, ParticleAmount

The particles field calls off of the particle effects to be used, and groups the as one big particle set. This allows the plugin to generate multiple particle effects at once to create better effects than having the entire ConfigurationSection represent only one particle effect. The rest of the data consists of particle settings to tweak how particles behave and interact with the game. Particles are not mandatory and are optional to use. To turn off particles, there should be a true/false value there the configurations are linked, set the value to false to remove particles. Particles when used in heavy numbers may also cause lag, this cannot be fixed as it is the way Minecraft generates particles that causes lag. Particles will also no longer be created once a projectile hits an entity, or the ground.

Particle Name

Particles:
  - ParticleName, OffsetX, OffsetY, OffsetZ, ParticleSpeed, ParticleAmount

Sets the type of particle to be used. To see a list of the usable particles, visit this page: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html Please note that the particles must be in capital letters, and must state exactly what the Spigot Docs page states, otherwise the plugin will not know what particles to use.

Offset X, Y, Z

Particles:
  - ParticleName, OffsetX, OffsetY, OffsetZ, ParticleSpeed, ParticleAmount

When particles spawn they are spawned at a central point. This point is commonly at the location of an item, or projectile. off setting the particles moves it up, down, left or right from the particles original spawn location. This allows a the particles to cover a large area while only having the plugin to use one location to generate the particles. For parties to follow a straight path when using projectiles set all three offsets to 0, there the particles will spawn where the projectile is located at any point during flight.

Particle Speed

Particles:
  - ParticleName, OffsetX, OffsetY, OffsetZ, ParticleSpeed, ParticleAmount

Sets how fast the particles fly/moves from its location to any random nearby location.

Particle Amount

Particles:
  - ParticleName, OffsetX, OffsetY, OffsetZ, ParticleSpeed, ParticleAmount

Sets the amount of particles that are spawned in at once. This parameter may increase lag.

Block ID

Block ID: <value>
If the ParticleName in one of the Particles list is set to BLOCK_DUST, the particle will take up the block represented by the Block ID, for example if the ParticleName is set to BLOCK_DUST, and the Block ID is set to 17, the particles will retain the texture of Oak Logs, and look like an Oak Log has been broken.

Block Data

Block Data: <value>
This parameter adds a data value to the the BLOCK_DUST effect where if the Block ID parameter contains a value the block data will add a sub value. For example if the ParticleName is set to BLOCK_DUST, and the Block ID is set to 17, and The Block Data is set to 1, the particles will not retain the texture of Oak Logs (ID 17: Data 0), but will retain the texture of Spruce Logs (ID 17: Data 1).

Damage Database

This configuration file set all of the events that occur then the projectile hits the ground or an entity. Multiple instances can be triggered when the projectile hits, allowing for maximum customization of the plugin. The data is gathered whenever any projectile from the gun hits something, no matter how many projectiles hit, the game will run the data for each projectile. This can cause some major lag if the events are too resource intensive.

ConfigurationSection:
  Set Parameters:
    Name: <DamageSetName>
    Set ID:<DamageSetID>
    Damage: <value>
    Headshot Modifier: <value>
    Repeat Effects: <true/false>, <ticks>, <ticks>
    Delay Effects: <true/false>, <Delay>
    Use Effect Radius: <true/false>, <RadiusX>, <RadiusY>, <RadiusZ>
    Experience Gained: <true/false>, <value>
  Potions Parameters:
    Potion Effects: <true/false>
    Potions:
    - <PotionEffectType>, <ticks>, <value>
  Particle Parameters:
    Particle Effects: <true/false>
    Particles: <Effect ID>
  Explosive Parameters:
    Explosive: <true/false>
    Explosive Size: <value>
    Incendiary: <true/false>
    Block Damage: <true/false>
  Set Block Parameters:
    Set Block: <true/false>
    Block Type: <ItemID>, <ItemData>
    Remove Blocks: <true/false>, <Delay>, <Speed>
    Effect Shape:<Shape>
    Hollow: <true/false>
  Firework Parameters:
    Firework: <true/false>, <FireworkType>, <FireworkTrail>, <DetonateOnSpawn>, <LaunchOnHit>
    Firework Colors:
    - <Colour>
    - <Colour>
  Lightning Parameters:
    Strike Lightning: <true/false>

Name

Name: <DamageSetName>
Sets the name of the damage set.

Set ID

Set ID:<DamageSetID>
This is the value that is used to link the projectile set with one of the guns in the Guns Configuration. The information gathered from this config links to one of the guns specified in the Guns Configuration. For example:

M1Garand:  
  Weapon Operation:
    Damage Set: M1GarandDamage <-- MUST be equal to the "Projectile Set Name" 
    //INCLUDES THE REST OF THE GUN DATA

Damage Database

M1GarandDamage: <-- "ConfigurationSection" <-- Equal to the "Projectile Set Name"  
   Set Name: M1GarandDamage <-- Equal to the "ConfigurationSection" name.
   //INCLUDES ALL OF THE CUSTOM PROJECTILE DATA

Damage

Damage: <value>
Replacing the value sets how much damage an entity will take when hit by a projectile. The value is measured in half hearts whereas if the value is set to 1, only half a heart will be removed, if the value is set to 2, a full heart will be removed. A player without armour will contain 20 values of health.

Headshot Modifier

Headshot Modifier: <value>
Takes the damage value and multiplies it by the modifier value whenever the projectile hits the head of a target. This system is setup for players, however when non player entity is hit, depending on the height of that entity, the modifier will ether always be applies, or is never applied.

Repeat Effects

Repeat Effects: <true/false>, <Duration>, <Delay>
Repeat effects if set to true, will cause the plugin to trigger the hit events repeatedly until the duration is met. The duration sets how many times the event will repeat until it will stop. The delay sets the time difference between each time the event is triggered, and is measured in ticks. For example a duration of 5, with a delay of 20 will repeat the event 5 times every 20 seconds.

Delay Effects

Delay Effects: <true/false>, <Delay>
Setting the value to true, will force the projectile event to wait before it is fired. the delay is measured in ticks, and also works with Repeat Effects whereas after the delay is complete all other parameters will run normally.

Use Effect Radius

Use Effect Radius: <true/false>, <RadiusX>, <RadiusY>, <RadiusZ>
The effect radius will effect all entities with any of the projectile hit events within a specific radius. For example if the radius is set to 5, and Explosive: true all entities within that 5 block radius will explode. Each variable controls how tall, and wide the radius is set. This is not adjacent to the players direction, but the games coordinates.

Experience Gained

Experience Gained: <true/false>, <value>
This sets the amount of experience the player will receive when an entity is hit. The player will receive experience even though that entity is not dead.

Potion Effects

Potion Effects: <true/false>
Allows the plugin to effect hit/nearby entities with any potion effect set int the Potions: parameter. If set to false, any potion effects in the Potions: parameter will not register.

Potions

Potions:
    - <PotionEffectType>, <ticks>, <value>

The potions field calls for all the potions listed, and affects nearby/hit entities with the Potion Effects: parameter. If the Potion Effects: parameter is set to false none of these potions will be registered. This list style system allows the user to create as many potion effects as the user likes, each containing their own set values for maximum customization. Potion effects do not create any form of lag, unlike their particle counterparts. If potion effects do create lag, please let me know.

Potion Effect Type

Potions:
    - <PotionEffectType>, <ticks>, <value>

This field sets the potion effect the game will look for when looping through the list of potions. The name must be in all capital letters, and is derived from the spigot PotionEffectType enumeration. The name of the potion effect is set in this field. If the name is unrealizable, the plugin will return an error. List of potion effects: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html For a cool potion effect which acts as the best hit marker substitute, add this to your potions list - GLOWING, 5, 1. This will cause the entity to glow for a brief time, indicating you have hit the target, however Effect Radius must be set to false. The variable ticks represents how long the effect lasts whereas 1 tick is equal to 1/20th of a second. The value represents the strength of the potion.

Particle Effects

Particle Effects: false If set to true, the plugin will run particle effects when the projectile hits, or the damage events are run. Otherwise the plugin will not run particle effects.

Particles

Particles: <Effect ID>
This requires linking configuration files, and is retrieved from the particles database. The Effect ID of the particles database. For example: Damage Database

M1GarandDamage:  
  Particle Paramaters:
    Particles: M1GarandParticles <-- MUST be equal to the "Effect ID" 
    //INCLUDES THE REST OF THE DAMAGE DATA

Particles Database

M1GarandParticles: <-- "ConfigurationSection" <-- Equal to the "Effect ID"  
   Effect ID: M1GarandDamage <-- Equal to the "ConfigurationSection" name.
   //INCLUDES ALL OF THE CUSTOM PARTICLE DATA

Explosive

Explosive: <true/false>
Allows the projectile will explode on impact.

Explosive Size

Explosive Size: <value>
Sets the size, and strength of the explosion, whereas the size, or blast radius in measured with a radius of blocks.

Incendiary

Incendiary: <true/false>
If set to true, the explosion will produce fire, around the exploded area.

Block Damage

Block Damage: <true/false>
If set to true, the explosion will break blocks.v

Set Block

Set Block: <true/false>
This places a set of blocks where the projectile lands. The shape, size and the type of block can all be customized, this parameter is not compatible with Repeat Effects, and is overridden when Repeat Effects is enabled. If the parameter is to function it is advised that Repeat Effects be turned off. This parameter was developed to produce smoke grenades whereas the block would be set to a portal block, and that would affect the player as they walked through a sphere of portal blocks. The radius, or size of the structure is set by the Effect Radius.

Block Type

Block Type: <ItemID>, <ItemData>
Sets the type of block generated when the event is fired. All values are to be numerical. The ItemID sets what type of block is to be generated, and the ItemData sets the subtype of item to be generated. For example if the ItemID is set to 35 [Wool], and the ItemData is set to 1 the plugin will generate a structure comprised of orange wool.

Remove Blocks

Remove Blocks: <true/false>, <Delay>, <Speed>
If set to true the plugin will slowly remove the block generated, and return the area back to what it previously was. The delay sets how long the structure stays before it will begin to degenerate, and the speed sets how fast the structure degenerates. Both are measured in ticks, the greater the delay the longer it takes before the structure degenerated. The greater the speed, the longer it takes for the structure to completely despawn.

Effect Shape

Effect Shape: <Shape>
This sets the shape of the structure what will be generated. So far there are two shapes that can be generated. This is the SQUARE, and the CIRCLE. Both values must be printed exactly as specified. For example Effect Shape: CIRCLE.

Hollow

Hollow: <true/false>
Does not work

Firework

Firework: <true/false>, <FireworkType>, <FireworkTrail>, <DetonateOnSpawn>, <LaunchOnHit>
The first parameter enables fireworks to explode whenever the projectile hits anything. The second parameter sets the type of explosion the firework will generate, the type is relative to the spigot firework type enum: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/FireworkEffect.Type.html. Setting the firework trail to true, or false allows the firework to produce a particle trail behind it. DetonateOnSpawn will force the firework to explode once spawned. The last parameter sets the firework launch event. If the LaunchOnHit it set to true, the firework will only trigger if the projectile hits an entity. If set to false the firework will trigger whenever it hits anything. However if this parameter is set to false, and the projectile hits an entity, two fireworks will be launched. One at the hit entities location, and the other at the projectiles last known location.

Firework Colours

Firework Colors:
- <Colour>

This sets the colour of the launched firework. There can be multiple colours. All colours must derive from the spigot colours enumeration. https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Color.html

Strike Lightning

Strike Lightning: <true/false>
If set to true the plugin will strike lightning whenever a projectile hits an entity.

Crafting Database

This configuration sets allows the user to craft any weapon within the Guns Configuration, or the Grenades Configuration. In order for this config to be read by the plugin, it has to be linked with one of the configs specified above. This config requires some knowledge on how Minecraft created crafting recipes, therefore a tutorial on Bukkit/Spigot crafting recipes may be necessary.

Configuration Section:
  Crafting Name: <RecipeName>
  ID: <RecipeID> 
  Item Abbreviations:
  - <ItemID>, <ItemData>, <Abbreviation>
  Item Amount: <Amount>
  Crafting Row 1: <Abbreviations>
  Crafting Row 2: <Abbreviations>
  Crafting Row 3: <Abbreviations>

Examples:

Copy these examples into their respective files to test features and functions!

Settings.yml

Permissions:
  Require Command Permissions: true
  Command Permission: guns.commands.use
Messages:
  Shoot Message: §6§l%WeaponName% §6§l[§b§l%Firemode%§6§l] [§b§l%AmmoAmount%§6§l/§b§l%MaxAmmo%§6§l]
  Out of Ammo: §6§l%WeaponName% §6§l[§b§l%Firemode%§6§l] [§4§lOUT OF AMMO§6§l]
  Empty Weapon: §6§l%WeaponName% §6§l[§b§l%Firemode%§6§l] [§4§lWEAPON EMPTY§6§l]
  Weapon Jammed: §6§l%WeaponName% §6§l[§4§lJAMMED§6§l]
  Weapon Safe: §6§l%WeaponName% §6§l[§b§lSAFE§6§l]
  Reloading Message: §6§l%WeaponName% §6§l[§a§lRELOADING§6§l]
  Received Weapon: §eYou have recieved the %WeaponID%, %WeaponName%
  Ammo Item Display: §r%WeaponName%§r Ammo «%AmmoAmount%/%MaxAmmo%»
  Permissions:
    Weapon Use: §cYou lack the required permissions to use this weapon.

GunsDatabase.yml

M1Garand:
  Item Parameters:
    Name: §eM1 Garand
    ID: M1Garand
    Weapon Item: CROSSBOW, 1, 1, true
    Weapon Description: '§aStandard U.S Infantry Rifle During,§aWW2 and the Korean
      War.,§cADMIN WEAPON ONLY, ,§aCaliber: §e7.62 x 56 NATO,§aWeapon Capacity: §e8
      Rounds,§aRange: §e1000 [Blocks],§aAccuracy: §e0.0 [Degrees/100 Blocks],§aDamage:
      §e100 [Half Hearts],§aRate of Fire: §e56 [Rounds/Min]'
    Permission: true, guns.use.m1garand
  Ammunition Parameters:
    Ammo Item: IRON_HOE, 60, true
    Ammo Capacity: 8
    Ammo Crafting: true, M1GarandAmmo
    Remove Ammo Individually: false
    Projectile Set: M1GarandBullet
  Weapon Operation:
    Attachment: true, M7GrenadeLauncher
    Shoot Delay: 3
    Reload Delay: 56
    Recoil Amount: 1.2
    Firearm Type: SEMI-AUTOMATIC,SAFE
    Damage Set: M1GarandDamage
    Automatic Reload: true
    Right Click to Shoot: true
    Jamming: false, 1000
    Scope: false
    Zoom Level: 2
    Weight: 0
    Crafting: true, M1GarandCrafting
    Shift Weapon Drop: true
  Sound Parameters:
    Shoot Sound: ENTITY_BLAZE_DEATH, 10, 1
    Reload Sound: BLOCK_CHORUS_FLOWER_GROW, 1, 1
    Hammer Sound: UI_BUTTON_CLICK, 2, 1
M16A4:
  Item Parameters:
    Name: §eM16A4
    ID: m16a4
    Weapon Item: CROSSBOW, 2, 1, true
    Weapon Description: '§aCurrent modern U.S Service Rifle,§adeveloped during the
      1960s, ,§aCaliber: §e5.56 x 45 NATO,§aWeapon Capacity: §e30 Rounds,§aRange:
      §e500 [Blocks],§aAccuracy: §e2.8 [Degrees/100 Blocks],§aDamage: §e10 [Half Hearts],§aRate
      of Fire: §e650 [Rounds/Min]'
    Permission: false, guns.use.m16a4
  Ammunition Parameters:
    Ammo Item: IRON_HOE, 69, true
    Ammo Capacity: 30
    Ammo Crafting: false, M1GarandAmmo
    Remove Ammo Individually: false
    Projectile Set: M16Bullet
  Weapon Operation:
    Attachment: false, M7GrenadeLauncher
    Shoot Delay: 3
    Reload Delay: 56
    Recoil Amount: 0.5
    Firearm Type: AUTOMATIC,BURST,SEMI-AUTOMATIC,SAFE
    Damage Set: M16Damage
    Automatic Reload: false
    Right Click to Shoot: true
    Jamming: false, 1000
    Scope: false
    Zoom Level: 2
    Weight: 0
    Crafting: false, M1GarandCrafting
    Shift Weapon Drop: true
  Sound Parameters:
    Shoot Sound: ENTITY_BAT_DEATH, 10, 2
    Reload Sound: ENTITY_BAT_LOOP, 1, 1
    Hammer Sound: UI_BUTTON_CLICK, 2, 1
MP40:
  Item Parameters:
    Name: §eMp-40
    ID: mp40
    Weapon Item: CROSSBOW, 3, 1, true
    Weapon Description: '§aEarly WW2 German Sub-Machine Gun, ,§aCaliber: §e9 x 19
      Parabellum,§aWeapon Capacity: §e32 Rounds,§aRange: §e75 [Blocks],§aAccuracy:
      §e2.8 [Degrees/100 Blocks],§aDamage: §e7 [Half Hearts],§aRate of Fire: §e500
      [Rounds/Min]'
    Permission: false, guns.use.mp40
  Ammunition Parameters:
    Ammo Item: BOWL, 0, true
    Ammo Capacity: 30
    Ammo Crafting: false, M1GarandAmmo
    Remove Ammo Individually: false
    Projectile Set: M16Bullet
  Weapon Operation:
    Attachment: false, M7GrenadeLauncher
    Shoot Delay: 3
    Reload Delay: 56
    Recoil Amount: 0.3
    Firearm Type: AUTOMATIC,SAFE
    Damage Set: M1GarandDamage
    Automatic Reload: false
    Right Click to Shoot: true
    Jamming: false, 1000
    Scope: false
    Zoom Level: 2
    Weight: 0
    Crafting: false, M1GarandCrafting
    Shift Weapon Drop: true
  Sound Parameters:
    Shoot Sound: ENTITY_BLAZE_SHOOT, 10, 1
    Reload Sound: ENTITY_BAT_TAKEOFF, 1, 1
    Hammer Sound: UI_BUTTON_CLICK, 2, 1
LeeEnfield:
  Item Parameters:
    Name: §eLee-Enfield SMLE No.4
    ID: leeenfield
    Weapon Item: CROSSBOW, 4, 1, true
    Weapon Description: '§aStandard Commonwealth Infantry Rifle,§aused from 1942 to
      the present day, ,§aCaliber: §e7.7 x 56 NATO,§aWeapon Capacity: §e10 Rounds,§aRange:
      §e700 [Blocks],§aAccuracy: §e1.2 [Degrees/100 Blocks],§aDamage: §e20 [Half Hearts],§aRate
      of Fire: §e30 [Rounds/Min]'
    Permission: false, guns.use.leeenfield
  Ammunition Parameters:
    Ammo Item: SCUTE, 0, true
    Ammo Capacity: 10
    Ammo Crafting: false, M1GarandAmmo
    Remove Ammo Individually: false
    Projectile Set: M1GarandBullet
  Weapon Operation:
    Attachment: false, M7GrenadeLauncher
    Shoot Delay: 20
    Reload Delay: 56
    Recoil Amount: 2
    Firearm Type: MANUAL-ACTION,SAFE
    Damage Set: LeeEnfieldDamage
    Automatic Reload: false
    Right Click to Shoot: true
    Jamming: false, 1000
    Scope: false
    Zoom Level: 2
    Weight: 0
    Crafting: false, M1GarandCrafting
    Shift Weapon Drop: true
  Sound Parameters:
    Shoot Sound: ENTITY_CAT_PURR, 10, 1
    Reload Sound: ENTITY_CAT_PURREOW, 1, 1
    Hammer Sound: UI_BUTTON_CLICK, 2, 1
G3:
  Item Parameters:
    Name: §eG3 Rifle
    ID: g3
    Weapon Item: CROSSBOW, 5, 1, true
    Weapon Description: '§aCold War West German Infantry Rifle,§aalso referred to
      as the HK-98, ,§aCaliber: §e7.62 x 51 NATO,§aWeapon Capacity: §e20 Rounds,§aRange:
      §e400 [Blocks],§aAccuracy: §e2.8 [Degrees/100 Blocks],§aDamage: §e7 [Half Hearts],§aRate
      of Fire: §e500 [Rounds/Min]'
    Permission: false, guns.use.g3
  Ammunition Parameters:
    Ammo Item: IRON_HOE, 58, true
    Ammo Capacity: 20
    Ammo Crafting: false, M1GarandAmmo
    Remove Ammo Individually: false
    Projectile Set: M16Bullet
  Weapon Operation:
    Attachment: true, M7GrenadeLauncher
    Shoot Delay: 3
    Reload Delay: 56
    Recoil Amount: 0.7
    Firearm Type: SEMI-AUTOMATIC,SAFE
    Damage Set: G3Damage
    Automatic Reload: false
    Right Click to Shoot: true
    Jamming: false, 1000
    Scope: false
    Zoom Level: 2
    Weight: 0
    Crafting: false, M1GarandCrafting
    Shift Weapon Drop: true
  Sound Parameters:
    Shoot Sound: ENTITY_BAT_HURT, 10, 1
    Reload Sound: ENTITY_BAT_LOOP, 1, 1
    Hammer Sound: UI_BUTTON_CLICK, 2, 1
AK47:
  Item Parameters:
    Name: §eAK-47
    ID: ak47
    Weapon Item: CROSSBOW, 6, 1, true
    Weapon Description: '§aStandard Russian Assault Rifle,§acommonly used by small
      militaries,§aand terrorist organizations, ,§aCaliber: §e7.62 x 39 NATO,§aWeapon
      Capacity: §e30 Rounds,§aRange: §e300 [Blocks],§aAccuracy: §e5.2 [Degrees/100
      Blocks],§aDamage: §e15 [Half Hearts],§aRate of Fire: §e500 [Rounds/Min]'
    Permission: false, guns.use.ak47
  Ammunition Parameters:
    Ammo Item: IRON_HOE, 46, true
    Ammo Capacity: 30
    Ammo Crafting: false, M1GarandAmmo
    Remove Ammo Individually: false
    Projectile Set: AK47Bullet
  Weapon Operation:
    Attachment: false, M7GrenadeLauncher
    Shoot Delay: 3
    Reload Delay: 56
    Recoil Amount: 1.2
    Firearm Type: AUTOMATIC,SEMI-AUTOMATIC,SAFE
    Damage Set: AK47Damage
    Automatic Reload: false
    Right Click to Shoot: true
    Jamming: false, 1000
    Scope: false
    Zoom Level: 2
    Weight: 0
    Crafting: false, M1GarandCrafting
    Shift Weapon Drop: true
  Sound Parameters:
    Shoot Sound: ENTITY_BAT_DEATH, 10, 1
    Reload Sound: ENTITY_BAT_LOOP, 1, 1
    Hammer Sound: UI_BUTTON_CLICK, 2, 1
M1Carbine:
  Item Parameters:
    Name: §eM1 Carbine
    ID: m1carbine
    Weapon Item: CROSSBOW, 7, 1, true
    Weapon Description: '§aU.S Officer weapon during,§aWW2 and the Korean War, ,§aCaliber:
      §e.30 Carbine,§aWeapon Capacity: §e15 Rounds,§aRange: §e100 [Blocks],§aAccuracy:
      §e2.8 [Degrees/100 Blocks],§aDamage: §e7 [Half Hearts],§aRate of Fire: §e400
      [Rounds/Min]'
    Permission: false, guns.use.m1carbine
  Ammunition Parameters:
    Ammo Item: IRON_HOE, 45, true
    Ammo Capacity: 15
    Ammo Crafting: false, M1GarandAmmo
    Remove Ammo Individually: false
    Projectile Set: M1CarbineBullet
  Weapon Operation:
    Attachment: false, M7GrenadeLauncher
    Shoot Delay: 3
    Reload Delay: 56
    Recoil Amount: 0.3
    Firearm Type: SEMI-AUTOMATIC,SAFE
    Damage Set: M1CarbineDamage
    Automatic Reload: false
    Right Click to Shoot: true
    Jamming: false, 1000
    Scope: false
    Zoom Level: 2
    Weight: 0
    Crafting: false, M1GarandCrafting
    Shift Weapon Drop: true
  Sound Parameters:
    Shoot Sound: ENTITY_BLAZE_DEATH, 10, 2
    Reload Sound: ENTITY_BAT_TAKEOFF, 1, 1
    Hammer Sound: UI_BUTTON_CLICK, 2, 1
FnScar:
  Item Parameters:
    Name: §eFn-Scar
    ID: fnscar
    Weapon Item: CROSSBOW, 8, 1, true
    Weapon Description: '§aPrototype M16 replacement for,§athe U.S Military, ,§aCaliber:
      §e5.56 x 45 NATO,§aWeapon Capacity: §e30 Rounds,§aRange: §e430 [Blocks],§aAccuracy:
      §e3.2 [Degrees/100 Blocks],§aDamage: §e10 [Half Hearts],§aRate of Fire: §e500
      [Rounds/Min]'
    Permission: false, guns.use.fnscar
  Ammunition Parameters:
    Ammo Item: IRON_HOE, 1, true
    Ammo Capacity: 30
    Ammo Crafting: false, M1GarandAmmo
    Remove Ammo Individually: false
    Projectile Set: FnScarBullet
  Weapon Operation:
    Attachment: false, M7GrenadeLauncher
    Shoot Delay: 3
    Reload Delay: 56
    Recoil Amount: 0.7
    Firearm Type: AUTOMATIC,SEMI-AUTOMATIC,SAFE
    Damage Set: M16Damage
    Automatic Reload: false
    Right Click to Shoot: true
    Jamming: false, 1000
    Scope: false
    Zoom Level: 2
    Weight: 0
    Crafting: false, M1GarandCrafting
    Shift Weapon Drop: true
  Sound Parameters:
    Shoot Sound: ENTITY_BAT_DEATH, 10, 1
    Reload Sound: ENTITY_BAT_LOOP, 1, 1
    Hammer Sound: UI_BUTTON_CLICK, 2, 1
TrenchGun:
  Item Parameters:
    Name: §eModel 1897 Trench Gun
    ID: trenchgun
    Weapon Item: CROSSBOW, 9, 1, true
    Weapon Description: '§aU.S Army Shotgun during WW1 and WW2, ,§aCaliber: §e12 Guage
      Leadshot,§aWeapon Capacity: §e6 Rounds,§aRange: §e65 [Blocks],§aAccuracy: §e10.4
      [Degrees/100 Blocks],§aDamage: §e5 [Half Hearts],§aRate of Fire: §e15 [Rounds/Min]'
    Permission: false, guns.use.trenchgun
  Ammunition Parameters:
    Ammo Item: IRON_HOE, 44, true
    Ammo Capacity: 6
    Ammo Crafting: false, M1GarandAmmo
    Remove Ammo Individually: false
    Projectile Set: TrenchGunBullet
  Weapon Operation:
    Attachment: false, M7GrenadeLauncher
    Shoot Delay: 28
    Reload Delay: 120
    Recoil Amount: 10
    Firearm Type: MANUAL-ACTION,SAFE
    Damage Set: TrenchGunDamage
    Automatic Reload: false
    Right Click to Shoot: true
    Jamming: false, 1000
    Scope: false
    Zoom Level: 2
    Weight: 0
    Crafting: false, M1GarandCrafting
    Shift Weapon Drop: true
  Sound Parameters:
    Shoot Sound: ENTITY_WITHER_HURT, 10, 1
    Reload Sound: ENTITY_WITHER_SHOOT, 1, 1
    Hammer Sound: UI_BUTTON_CLICK, 2, 1

ProjectilesDatabase.yml

M1GarandBullet:
  Projectile Set Name: M1GarandBullet
  Projectile Type: ARROW
  Projectile Velocity: 10
  Projectile Spread: 0
  Hipfire Spread: 0.2
  Projectile Amount: 1
  Particle Trail: false, M1GarandParticleTrail
  Ride Projectile: false
  Remove Arrow on Hit: false
  Projectile Bounce: false
  Cancel Enderpearl Teleport: true
  Cancel Egg Spawn: true
  Entity Hit Sound: ENTITY_EXPERIENCE_ORB_PICKUP, 2, 1
M16Bullet:
  Projectile Set Name: M16Bullet
  Projectile Type: ARROW
  Projectile Velocity: 10
  Projectile Spread: 0.2
  Hipfire Spread: 1
  Projectile Amount: 1
  Particle Trail: false, M1GarandParticleTrail
  Ride Projectile: false
  Remove Arrow on Hit: false
  Projectile Bounce: false
  Cancel Enderpearl Teleport: true
  Cancel Egg Spawn: true
  Entity Hit Sound: ENTITY_EXPERIENCE_ORB_PICKUP, 2, 1
AK47Bullet:
  Projectile Set Name: AK47Bullet
  Projectile Type: ARROW
  Projectile Velocity: 10
  Projectile Spread: 0.4
  Hipfire Spread: 0.6
  Projectile Amount: 1
  Particle Trail: false, M1GarandParticleTrail
  Ride Projectile: false
  Remove Arrow on Hit: false
  Projectile Bounce: false
  Cancel Enderpearl Teleport: true
  Cancel Egg Spawn: true
  Entity Hit Sound: ENTITY_EXPERIENCE_ORB_PICKUP, 2, 1
M1CarbineBullet:
  Projectile Set Name: M1CarbineBullet
  Projectile Type: ARROW
  Projectile Velocity: 8
  Projectile Spread: 0.15
  Hipfire Spread: 0.3
  Projectile Amount: 1
  Particle Trail: false, M1GarandParticleTrail
  Ride Projectile: false
  Remove Arrow on Hit: false
  Projectile Bounce: false
  Cancel Enderpearl Teleport: true
  Cancel Egg Spawn: true
  Entity Hit Sound: ENTITY_EXPERIENCE_ORB_PICKUP, 2, 1
FnScarBullet:
  Projectile Set Name: FnScarBullet
  Projectile Type: ARROW
  Projectile Velocity: 10
  Projectile Spread: 0.2
  Hipfire Spread: 0.4
  Projectile Amount: 1
  Particle Trail: false, M1GarandParticleTrail
  Ride Projectile: false
  Remove Arrow on Hit: false
  Projectile Bounce: false
  Cancel Enderpearl Teleport: true
  Cancel Egg Spawn: true
  Entity Hit Sound: ENTITY_EXPERIENCE_ORB_PICKUP, 2, 1
TrenchGunBullet:
  Projectile Set Name: TrenchGunBullet
  Projectile Type: ARROW
  Projectile Velocity: 7
  Projectile Spread: 0.7
  Hipfire Spread: 0.7
  Projectile Amount: 12
  Particle Trail: false, M1GarandParticleTrail
  Ride Projectile: false
  Remove Arrow on Hit: false
  Projectile Bounce: false
  Cancel Enderpearl Teleport: true
  Cancel Egg Spawn: true
  Entity Hit Sound: ENTITY_EXPERIENCE_ORB_PICKUP, 2, 1

DamageDatabase.yml

M1GarandDamage:
  Set Parameters:
    Name: M1Garand Damage
    Set ID: M1GarandDamage
    Damage: 100
    Headshot Modifier: 2.5
    Repeat Effects: false, 0, 20
    Delay Effects: false, 100
    Use Effect Radius: false, 5, 5 ,5
    Experience Gained: true, 10
    Run on Projectile Hit: false
  Potions Parameters:
    Potion Effects: false
    Potions:
    - SLOWNESS, 150, 2
    - BLINDNESS, 100, 2
  Particle Parameters:
    Particle Effects: false
    Particles: M1GarandTrailParticle
  Explosive Parameters:
    Explosive: false
    Explosive Size: 20
    Incendiary: true
    Block Damage: true
  Set Block Parameters:
    Set Block: false
    Block Type: 35,1
    Remove Blocks: false, 100, 1
    Effect Shape: SQUARE
    Hollow: true
  Firework Parameters:
    Firework: false, BALL, false, false
    Firework Colors:
    - RED
    - GREEN
  Lightning Parameters:
    Strike Lightning: false
M16Damage:
  Set Parameters:
    Name: M16Damage
    Set ID: M16Damage
    Damage: 10
    Headshot Modifier: 2.5
    Repeat Effects: false, 0, 20
    Delay Effects: false, 100
    Use Effect Radius: false, 5, 5 ,5
    Experience Gained: true, 10
    Run on Projectile Hit: false
  Potions Parameters:
    Potion Effects: false
    Potions:
    - SLOWNESS, 150, 2
    - BLINDNESS, 100, 2
  Particle Parameters:
    Particle Effects: false
    Particles: M1GarandTrailParticle
  Explosive Parameters:
    Explosive: false
    Explosive Size: 4
    Incendiary: true
    Block Damage: true
  Set Block Parameters:
    Set Block: false
    Block Type: 35,1
    Remove Blocks: false, 100, 1
    Effect Shape: SQUARE
    Hollow: true
  Firework Parameters:
    Firework: false, BALL, false, false
    Firework Colors:
    - RED
    - GREEN
  Lightning Parameters:
    Strike Lightning: false
AK47Damage:
  Set Parameters:
    Name: AK47Damage
    Set ID: AK47Damage
    Damage: 15
    Headshot Modifier: 2.5
    Repeat Effects: false, 0, 20
    Delay Effects: false, 100
    Use Effect Radius: false, 5, 5 ,5
    Experience Gained: true, 10
    Run on Projectile Hit: false
  Potions Parameters:
    Potion Effects: false
    Potions:
    - SLOWNESS, 150, 2
    - BLINDNESS, 100, 2
  Particle Parameters:
    Particle Effects: false
    Particles: M1GarandTrailParticle
  Explosive Parameters:
    Explosive: false
    Explosive Size: 4
    Incendiary: true
    Block Damage: true
  Set Block Parameters:
    Set Block: false
    Block Type: 35,1
    Remove Blocks: false, 100, 1
    Effect Shape: SQUARE
    Hollow: true
  Firework Parameters:
    Firework: false, BALL, false, false
    Firework Colors:
    - RED
    - GREEN
  Lightning Parameters:
    Strike Lightning: false
LeeEnfieldDamage:
  Set Parameters:
    Name: LeeEnfieldDamage
    Set ID: LeeEnfieldDamage
    Damage: 20
    Headshot Modifier: 2.5
    Repeat Effects: false, 0, 20
    Delay Effects: false, 100
    Use Effect Radius: false, 5, 5 ,5
    Experience Gained: true, 10
    Run on Projectile Hit: false
  Potions Parameters:
    Potion Effects: false
    Potions:
    - SLOWNESS, 150, 2
    - BLINDNESS, 100, 2
  Particle Parameters:
    Particle Effects: false
    Particles: M1GarandTrailParticle
  Explosive Parameters:
    Explosive: false
    Explosive Size: 4
    Incendiary: true
    Block Damage: true
  Set Block Parameters:
    Set Block: false
    Block Type: 35,1
    Remove Blocks: false, 100, 1
    Effect Shape: SQUARE
    Hollow: true
  Firework Parameters:
    Firework: false, BALL, false, false
    Firework Colors:
    - RED
    - GREEN
  Lightning Parameters:
    Strike Lightning: false
G3Damage:
  Set Parameters:
    Name: G3Damage
    Set ID: G3Damage
    Damage: 7
    Headshot Modifier: 2.5
    Repeat Effects: false, 0, 20
    Delay Effects: false, 100
    Use Effect Radius: false, 5, 5 ,5
    Experience Gained: true, 10
    Run on Projectile Hit: false
  Potions Parameters:
    Potion Effects: false
    Potions:
    - SLOWNESS, 150, 2
    - BLINDNESS, 100, 2
  Particle Parameters:
    Particle Effects: false
    Particles: M1GarandTrailParticle
  Explosive Parameters:
    Explosive: false
    Explosive Size: 4
    Incendiary: true
    Block Damage: true
  Set Block Parameters:
    Set Block: false
    Block Type: 35,1
    Remove Blocks: false, 100, 1
    Effect Shape: SQUARE
    Hollow: true
  Firework Parameters:
    Firework: false, BALL, false, false
    Firework Colors:
    - RED
    - GREEN
  Lightning Parameters:
    Strike Lightning: false
M1CarbineDamage:
  Set Parameters:
    Name: M1CarbineDamage
    Set ID: M1CarbineDamage
    Damage: 7
    Headshot Modifier: 2.5
    Repeat Effects: false, 0, 20
    Delay Effects: false, 100
    Use Effect Radius: false, 5, 5 ,5
    Experience Gained: true, 10
    Run on Projectile Hit: false
  Potions Parameters:
    Potion Effects: false
    Potions:
    - SLOWNESS, 150, 2
    - BLINDNESS, 100, 2
  Particle Parameters:
    Particle Effects: false
    Particles: M1GarandTrailParticle
  Explosive Parameters:
    Explosive: false
    Explosive Size: 4
    Incendiary: true
    Block Damage: true
  Set Block Parameters:
    Set Block: false
    Block Type: 35,1
    Remove Blocks: false, 100, 1
    Effect Shape: SQUARE
    Hollow: true
  Firework Parameters:
    Firework: false, BALL, false, false
    Firework Colors:
    - RED
    - GREEN
  Lightning Parameters:
    Strike Lightning: false
TrenchGunDamage:
  Set Parameters:
    Name: TrenchGunDamage
    Set ID: TrenchGunDamage
    Damage: 10
    Headshot Modifier: 2.5
    Repeat Effects: false, 0, 20
    Delay Effects: false, 100
    Use Effect Radius: false, 5, 5 ,5
    Experience Gained: true, 10
    Run on Projectile Hit: false
  Potions Parameters:
    Potion Effects: false
    Potions:
    - SLOWNESS, 150, 2
    - BLINDNESS, 100, 2
  Particle Parameters:
    Particle Effects: false
    Particles: M1GarandTrailParticle
  Explosive Parameters:
    Explosive: false
    Explosive Size: 10
    Incendiary: true
    Block Damage: true
  Set Block Parameters:
    Set Block: false
    Block Type: 35,1
    Remove Blocks: false, 100, 1
    Effect Shape: SQUARE
    Hollow: true
  Firework Parameters:
    Firework: false, BALL, false, false
    Firework Colors:
    - RED
    - GREEN
  Lightning Parameters:
    Strike Lightning: false
⚠️ **GitHub.com Fallback** ⚠️