diff --git a/modular_skyrat/master_files/code/_globalvars/maint_loot_uncommon.dm b/modular_skyrat/master_files/code/_globalvars/maint_loot_uncommon.dm
index 81221234712..ae256f04384 100644
--- a/modular_skyrat/master_files/code/_globalvars/maint_loot_uncommon.dm
+++ b/modular_skyrat/master_files/code/_globalvars/maint_loot_uncommon.dm
@@ -143,9 +143,9 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items
/obj/item/ammo_casing/a762 = 25,
/obj/item/ammo_casing/c10mm = 25,
/obj/item/ammo_casing/c32 = 50,
- /obj/item/ammo_casing/c32_ap = 10,
+ /obj/item/ammo_casing/c32/ap = 10,
/obj/item/ammo_casing/c32_incendiary = 10,
- /obj/item/ammo_casing/c32_rubber = 50,
+ /obj/item/ammo_casing/c32/rubber = 50,
/obj/item/ammo_casing/c38 = 100,
/obj/item/ammo_casing/c38/dumdum = 20,
/obj/item/ammo_casing/c38/hotshot = 20,
diff --git a/modular_skyrat/modules/faction/code/mapping/mapping_helpers.dm b/modular_skyrat/modules/faction/code/mapping/mapping_helpers.dm
index edacbcc08ad..8eaf9aa4a8b 100644
--- a/modular_skyrat/modules/faction/code/mapping/mapping_helpers.dm
+++ b/modular_skyrat/modules/faction/code/mapping/mapping_helpers.dm
@@ -170,8 +170,8 @@
new /obj/item/gun/ballistic/automatic/cfa_wildcat(src)
new /obj/item/gun/ballistic/automatic/cfa_wildcat(src)
for(var/i in 1 to 2)
- new /obj/item/ammo_box/magazine/smg32(src)
- new /obj/item/ammo_box/magazine/smg32/rubber(src)
+ new /obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat(src)
+ new /obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat(src)
new /obj/item/gun/ballistic/automatic/assault_rifle/akm(src)
for(var/i in 1 to 2)
new /obj/item/ammo_box/magazine/akm(src)
diff --git a/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/automatic.dm b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/automatic.dm
index 689cbef66ca..6fcc50adde2 100644
--- a/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/automatic.dm
+++ b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/automatic.dm
@@ -4,46 +4,45 @@
// Magazines
-/obj/item/ammo_box/magazine/smg32
- name = "smg magazine (.32)"
- desc = "A .32 magazine with a 30-rnd capacity. An economically friendly but low damage calibre, even low-end autolathes can print .32 bullets."
+/obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat
+ name = "CFA Wildcat Magazine (.32)"
+ desc = "Magazines taking .32 ammunition; it fits in the CFA Wildcat. Alt+click to reskin it."
icon = 'modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi'
icon_state = "smg32"
+ possible_types = list(AMMO_TYPE_LETHAL, AMMO_TYPE_AP, AMMO_TYPE_RUBBER, AMMO_TYPE_INCENDIARY)
ammo_type = /obj/item/ammo_casing/c32
caliber = "c32acp"
max_ammo = 30
- multiple_sprites = 2
+ multiple_sprites = AMMO_BOX_FULL_EMPTY_BASIC
-/obj/item/ammo_box/magazine/smg32/rubber
- name = "smg magazine (.32 rubber)"
- icon_state = "smg32"
- ammo_type = /obj/item/ammo_casing/c32_rubber
+/obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat/ap
+ ammo_type = /obj/item/ammo_casing/c32/ap
+ round_type = AMMO_TYPE_AP
-/obj/item/ammo_box/magazine/smg32/ap
- name = "smg magazine (.32 armor-piercing)"
- icon_state = "smg32"
- ammo_type = /obj/item/ammo_casing/c32_ap
+/obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat/rubber
+ ammo_type = /obj/item/ammo_casing/c32/rubber
+ round_type = AMMO_TYPE_RUBBER
-/obj/item/ammo_box/magazine/smg32/incendiary
- name = "smg magazine (.32 incendiary)"
- icon_state = "smg32"
+/obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat/incendiary
ammo_type = /obj/item/ammo_casing/c32_incendiary
+ round_type = AMMO_TYPE_INCENDIARY
-/obj/item/ammo_box/magazine/smg32/empty
+/obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat/empty
start_empty = 1
-///////////
-// SMG //
-///////////
-
+///////////////
+// Wildcat //
+///////////////
+// 3rnd burst .32 calibre, 15 damage.
+// Fills the role of a low damage, high magazine capacity secondary.
/obj/item/gun/ballistic/automatic/cfa_wildcat
name = "\improper CFA Wildcat"
- desc = "An old SMG, this one is chambered in .32, a very common and dirt-cheap cartridge."
+ desc = "An old SMG, this one is chambered in .32, a very common and dirt-cheap cartridge. It has Cantalan Federal Arms etched above the magazine well."
icon = 'modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile40x32.dmi'
icon_state = "mp5"
inhand_icon_state = "arg"
selector_switch_icon = TRUE
- mag_type = /obj/item/ammo_box/magazine/smg32
+ mag_type = /obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat
can_suppress = FALSE
burst_size = 3
fire_delay = 1.25
@@ -57,3 +56,55 @@
/obj/item/gun/ballistic/automatic/cfa_wildcat/no_mag
spawnwithmagazine = FALSE
+
+///////////////
+// MP7 //
+///////////////
+
+/obj/item/gun/ballistic/automatic/cfa_lynx
+ name = "\improper CFA Lynx"
+ desc = "A carbine with a high magazine capacity. Chambered in 4.6x30mm. It has Cantalan Federal Arms etched above the magazine well."
+ icon = 'modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile.dmi'
+ icon_state = "mp7"
+ inhand_icon_state = "arg"
+ selector_switch_icon = FALSE
+ mag_type = /obj/item/ammo_box/magazine/multi_sprite/cfa_lynx
+ can_suppress = FALSE
+ burst_size = 3
+ fire_delay = 0.5
+ spread = 2
+ mag_display = TRUE
+ empty_indicator = FALSE
+ fire_sound = 'sound/weapons/gun/smg/shot_alt.ogg'
+ weapon_weight = WEAPON_MEDIUM
+ has_gun_safety = FALSE
+ w_class = WEIGHT_CLASS_NORMAL
+
+/obj/item/gun/ballistic/automatic/cfa_lynx/no_mag
+ spawnwithmagazine = FALSE
+
+/obj/item/ammo_box/magazine/multi_sprite/cfa_lynx
+ name = "CFA Lynx Magazine (4.6x30mm)"
+ desc = "A magazine for the CFA Lynx. It has a small inscription on the base, '4.6x30mm'. Alt+click to reskin it."
+ icon = 'modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi'
+ icon_state = "lynx"
+ possible_types = list(AMMO_TYPE_LETHAL, AMMO_TYPE_AP, AMMO_TYPE_RUBBER, AMMO_TYPE_INCENDIARY)
+ ammo_type = /obj/item/ammo_casing/c46x30mm
+ caliber = CALIBER_46X30MM
+ max_ammo = 40
+ multiple_sprites = AMMO_BOX_FULL_EMPTY_BASIC
+
+/obj/item/ammo_box/magazine/multi_sprite/cfa_lynx/ap
+ ammo_type = /obj/item/ammo_casing/c46x30mm/ap
+ round_type = AMMO_TYPE_AP
+
+/obj/item/ammo_box/magazine/multi_sprite/cfa_lynx/rubber
+ ammo_type = /obj/item/ammo_casing/c46x30mm/rubber
+ round_type = AMMO_TYPE_RUBBER
+
+/obj/item/ammo_box/magazine/multi_sprite/cfa_lynx/incendiary
+ ammo_type = /obj/item/ammo_casing/c46x30mm/inc
+ round_type = AMMO_TYPE_INCENDIARY
+
+/obj/item/ammo_box/magazine/multi_sprite/cfa_lynx/empty
+ start_empty = TRUE
diff --git a/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/pistol.dm b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/pistol.dm
index d20f698391e..27a92c9c257 100644
--- a/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/pistol.dm
+++ b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/pistol.dm
@@ -40,7 +40,7 @@
/obj/item/ammo_box/magazine/multi_sprite/cfa_snub
name = "CFA Snub Magazine (4.6x30mm)"
desc = "An advanced magazine with smart type displays. Alt+click to reskin it."
- icon = 'modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi'
+ icon = 'modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi'
icon_state = "m46x30"
possible_types = list(AMMO_TYPE_LETHAL, AMMO_TYPE_AP, AMMO_TYPE_RUBBER, AMMO_TYPE_INCENDIARY)
ammo_type = /obj/item/ammo_casing/c46x30mm
@@ -66,7 +66,7 @@
/obj/item/ammo_box/magazine/multi_sprite/cfa_ruby
name = "CFA Ruby Magazine (10mm Magnum)"
desc = "An advanced magazine with smart type displays. Alt+click to reskin it."
- icon = 'modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi'
+ icon = 'modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi'
icon_state = "m10mm"
possible_types = list(AMMO_TYPE_LETHAL, AMMO_TYPE_AP, AMMO_TYPE_RUBBER, AMMO_TYPE_HOLLOWPOINT, AMMO_TYPE_INCENDIARY)
ammo_type = /obj/item/ammo_casing/c10mm
diff --git a/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/energy/energy.dm b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/energy/energy.dm
new file mode 100644
index 00000000000..94784ae6296
--- /dev/null
+++ b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/energy/energy.dm
@@ -0,0 +1,229 @@
+//////////////////////
+// CFA Defender //
+//////////////////////
+// A mini disabler with 12 shot capacity in comparison to the normal disabler's 20.
+
+/obj/item/gun/energy/disabler/cfa_disabler
+ name = "CFA Responder"
+ desc = "A pocket-sized self-defense weapon popular with law enforcement due to its safe non-lethal payload that physically exhausts organic targets and cheap pricetag. The size makes it popular with smaller species, however, gives the obvious drawback of a smaller battery. It has Cantalan Federal Arms eteched into the grip."
+ icon = 'modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile.dmi'
+ icon_state = "cfa-disabler"
+ inhand_icon_state = null
+ ammo_type = list(/obj/item/ammo_casing/energy/disabler)
+ ammo_x_offset = 2
+ w_class = WEIGHT_CLASS_SMALL
+ cell_type = /obj/item/stock_parts/cell/mini_egun
+ ammo_x_offset = 2
+ charge_sections = 3
+ can_flashlight = FALSE // Can't attach or detach the flashlight, and override it's icon update
+ gunlight_state = "cfa-disabler-light"
+ has_gun_safety = FALSE
+
+/obj/item/gun/energy/disabler/cfa_disabler/Initialize()
+ set_gun_light(new /obj/item/flashlight/seclite(src))
+ return ..()
+
+//////////////////////
+// CFA Phalanx //
+//////////////////////
+// Similar to the HoS's laser. Fires a bouncing non-lethal, lethal and knockdown projectile.
+
+/obj/item/gun/energy/e_gun/cfa_phalanx
+ name = "\improper Mk.II Phalanx Plasma Carbine"
+ desc = "Fires a disabling and lethal bouncing projectile, as well as a special muscle-seizing projectile that knocks targets down. It has Cantalan Federal Arms etched into the grip."
+ icon = 'modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile.dmi'
+ icon_state = "phalanx"
+ w_class = WEIGHT_CLASS_NORMAL
+ force = 10
+ ammo_type = list(/obj/item/ammo_casing/energy/disabler/bounce, /obj/item/ammo_casing/energy/laser/bounce, /obj/item/ammo_casing/energy/electrode/knockdown)
+ ammo_x_offset = 1
+ charge_sections = 5
+ has_gun_safety = FALSE
+ cell_type = /obj/item/stock_parts/cell/hos_gun
+
+//////////////////////
+// CFA Paladin //
+//////////////////////
+// Identical to a heavy laser.
+
+/obj/item/gun/energy/laser/cfa_paladin
+ name = "\improper Mk.IV Paladin Plasma Carbine"
+ desc = "Essentially a handheld laser cannon. This is solely for killing, and it's dual-laser system reflects that. It has Cantalan Federal Arms etched into the grip."
+ icon = 'modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile.dmi'
+ icon_state = "paladin"
+ force = 10
+ ammo_type = list(/obj/item/ammo_casing/energy/laser/double)
+ charge_sections = 5
+ has_gun_safety = FALSE
+
+//////////////////////
+// Bounce Disabler //
+//////////////////////
+// It's a disabler that will always ricochet.
+
+/obj/item/ammo_casing/energy/disabler/bounce
+ projectile_type = /obj/projectile/beam/disabler/bounce
+ select_name = "disable"
+ e_cost = 60
+ fire_sound = 'sound/weapons/taser2.ogg'
+ harmful = FALSE
+
+/obj/effect/projectile/tracer/disabler/bounce
+ name = "disabler"
+ icon = 'modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi'
+ icon_state = "bouncebeam"
+
+/obj/projectile/beam/disabler/bounce
+ name = "disabler arc"
+ icon = 'modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi'
+ icon_state = "bouncebeam"
+ damage = 30
+ damage_type = STAMINA
+ flag = ENERGY
+ eyeblur = 1
+ tracer_type = /obj/effect/projectile/tracer/disabler/bounce
+ light_range = 5
+ light_power = 0.75
+ speed = 1.4
+ ricochets_max = 6
+ ricochet_incidence_leeway = 170
+ ricochet_chance = 130
+ ricochet_decay_damage = 0.9
+
+/obj/projectile/beam/disabler/bounce/check_ricochet_flag(atom/A)
+ return TRUE
+// Allows the projectile to reflect on walls like how bullets ricochet.
+
+//////////////////////
+// Bounce Laser //
+//////////////////////
+// It's a laser that will always ricochet.
+
+/obj/item/ammo_casing/energy/laser/bounce
+ projectile_type = /obj/projectile/beam/laser/bounce
+ select_name = "lethal"
+ e_cost = 100
+
+/obj/projectile/beam/laser/bounce
+ name = "energy arc"
+ icon = 'modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi'
+ icon_state = "bouncebeam_red"
+ damage = 20
+ damage_type = BURN
+ flag = LASER
+ light_range = 5
+ light_power = 0.75
+ speed = 1.4
+ ricochets_max = 6
+ ricochet_incidence_leeway = 170
+ ricochet_chance = 130
+ ricochet_decay_damage = 0.9
+
+/obj/projectile/beam/laser/bounce/check_ricochet_flag(atom/A)
+ return TRUE
+// Allows the projectile to reflect on walls like how bullets ricochet.
+
+//////////////////////
+// Knockdown Bolt //
+//////////////////////
+// A taser that had the same stamina impact as a disabler, but a five-second knockdown and taser hitter effects.
+
+/obj/item/ammo_casing/energy/electrode/knockdown
+ projectile_type = /obj/projectile/energy/electrode/knockdown
+ select_name = "knockdown"
+ fire_sound = 'sound/weapons/taser.ogg'
+ e_cost = 200
+ harmful = FALSE
+
+/obj/projectile/energy/electrode/knockdown
+ name = "electrobolt"
+ icon = 'modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi'
+ icon_state = "electro_bolt"
+ knockdown = 50
+ stamina = 30
+ range = 6
+
+//////////////////////
+// Single Laser //
+//////////////////////
+// Has an unique sprite, it's a low-powered laser for rapid fire. Pea-shooter tier.
+
+/obj/item/ammo_casing/energy/laser/single
+ projectile_type = /obj/projectile/beam/laser/single
+ e_cost = 50
+ select_name = "lethal"
+
+/obj/projectile/beam/laser/single
+ name = "laser bolt"
+ icon = 'modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi'
+ icon_state = "single_laser"
+ damage = 15
+ eyeblur = 1
+ light_range = 5
+ light_power = 0.75
+ speed = 0.5
+ armour_penetration = 10
+
+//////////////////////
+// Double Laser //
+//////////////////////
+// Visually, this fires two lasers. In code, it's just one. It's fast and great for turrets.
+
+/obj/item/ammo_casing/energy/laser/double
+ projectile_type = /obj/projectile/beam/laser/double
+ e_cost = 150
+ select_name = "lethal"
+ fire_sound = 'sound/weapons/lasercannonfire.ogg'
+
+/obj/projectile/beam/laser/double
+ name = "laser bolt"
+ icon = 'modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi'
+ icon_state = "double_laser"
+ damage = 40
+ eyeblur = 1
+ light_range = 5
+ light_power = 0.75
+ speed = 0.5
+ armour_penetration = 10
+
+//////////////////////
+// Energy Bullets //
+//////////////////////
+// Ballistic gunplay but it allows us to target a different part of the armour block.
+// Also allows the benefits of lasers (blobs strains, xenos) over bullets to be used with ballistic gunplay.
+
+/obj/item/ammo_casing/caseless/laser
+ name = "Type I Plasma Projectile"
+ desc = "A chemical mixture that once triggered, creates a deadly projectile, melting it's own casing in the process."
+ icon = 'modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi'
+ icon_state = "plasma_shell"
+ worn_icon_state = "shell"
+ caliber = "Beam Shell"
+ custom_materials = list(/datum/material/iron=4000,/datum/material/plasma=250)
+ projectile_type = /obj/projectile/beam/laser/single
+
+/obj/item/ammo_casing/caseless/laser/double
+ name = "Type II Plasma Projectile"
+ desc = "A chemical mixture that once triggered, creates a deadly projectile, melting it's own casing in the process."
+ icon_state = "plasma_shell2"
+ worn_icon_state = "shell"
+ caliber = "Beam Shell"
+ custom_materials = list(/datum/material/iron=4000,/datum/material/plasma=500)
+ projectile_type = /obj/projectile/beam/laser/double
+
+/obj/item/ammo_casing/caseless/laser/bounce
+ name = "Type III Reflective Projectile (Lethal)"
+ desc = "A chemical mixture that once triggered, creates a deadly bouncing projectile, melting it's own casing in the process."
+ icon_state = "bounce_shell"
+ worn_icon_state = "shell"
+ caliber = "Beam Shell"
+ custom_materials = list(/datum/material/iron=4000,/datum/material/plasma=250)
+ projectile_type = /obj/projectile/beam/laser/bounce
+
+/obj/item/ammo_casing/caseless/laser/bounce/disabler
+ name = "Type III Reflective Projectile (Disabler)"
+ desc = "A chemical mixture that once triggered, creates bouncing disabler projectile, melting it's own casing in the process."
+ icon_state = "disabler_shell"
+ projectile_type = /obj/projectile/beam/disabler/bounce
+
+
diff --git a/modular_skyrat/modules/modular_weapons/code/modules/projectiles/projectile/bullets/modular_projectiles.dm b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/projectile/bullets/modular_projectiles.dm
index d84e5b8024f..af4f1198fa5 100644
--- a/modular_skyrat/modules/modular_weapons/code/modules/projectiles/projectile/bullets/modular_projectiles.dm
+++ b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/projectile/bullets/modular_projectiles.dm
@@ -14,31 +14,31 @@
/obj/projectile/bullet/c32
name = ".32 bullet"
damage = 15
- wound_bonus = -50
+ wound_bonus = 0
-/obj/item/ammo_casing/c32_rubber
+/obj/item/ammo_casing/c32/rubber
name = ".32 rubber bullet casing"
desc = "A .32 rubber bullet casing."
caliber = "c32acp"
- projectile_type = /obj/projectile/bullet/c32_rubber
+ projectile_type = /obj/projectile/bullet/c32/rubber
-/obj/projectile/bullet/c32_rubber
+/obj/projectile/bullet/c32/rubber
name = ".32 rubber bullet"
damage = 5
stamina = 20
wound_bonus = -75
-/obj/item/ammo_casing/c32_ap
+/obj/item/ammo_casing/c32/ap
name = ".32 armor-piercing bullet"
desc = "A .32 armor-piercing bullet casing."
caliber = "c32acp"
- projectile_type = /obj/projectile/bullet/c32_ap
+ projectile_type = /obj/projectile/bullet/c32/ap
-/obj/projectile/bullet/c32_ap
+/obj/projectile/bullet/c32/ap
name = ".32 armor-piercing bullet"
- damage = 10
+ damage = 15
armour_penetration = 40
- wound_bonus = -10
+ wound_bonus = -75
/obj/item/ammo_casing/c32_incendiary
name = ".32 incendiary bullet"
@@ -174,3 +174,29 @@
shrapnel_type = null
sharpness = NONE
embedding = null
+
+////// 7.62 //////
+////////////////////////
+///// 5.56x45mm /////
+// Very good at piercing armour at short range, not as good at going through armour at over 100m. But this is SS13...
+
+/// The 5.56 you see pretty much everyone under NATO use.
+#define CALIBER_A556x45 "a556x45"
+/obj/item/ammo_casing/a556x45
+ name = "5.56x45mm bullet casing"
+ desc = "A 5.56mm rubber bullet casing."
+ caliber = CALIBER_A556x45
+ projectile_type = /obj/projectile/bullet/a556x45
+
+/obj/projectile/bullet/a556x45
+ name = "5.56x45mm bullet"
+ damage = 50
+ armour_penetration = 20
+ stamina = 10
+ speed = 0.2
+ wound_bonus = 20
+ bare_wound_bonus = 10
+
+///// 5.56x45mm /////
+////////////////////////
+////// 7.62 //////
diff --git a/modular_skyrat/modules/modular_weapons/code/modules/research/designs/autolathe_designs.dm b/modular_skyrat/modules/modular_weapons/code/modules/research/designs/autolathe_designs.dm
index 1d203e1b865..c15904ce885 100644
--- a/modular_skyrat/modules/modular_weapons/code/modules/research/designs/autolathe_designs.dm
+++ b/modular_skyrat/modules/modular_weapons/code/modules/research/designs/autolathe_designs.dm
@@ -16,20 +16,20 @@
build_path = /obj/item/ammo_casing/c32
category = list("hacked", "Security")
-/datum/design/c32_rubber
+/datum/design/c32/rubber
name = ".32 Rubber Bullet"
- id = "c32_rubber"
+ id = "c32/rubber"
build_type = AUTOLATHE
materials = list(/datum/material/iron = 1000)
- build_path = /obj/item/ammo_casing/c32_rubber
+ build_path = /obj/item/ammo_casing/c32/rubber
category = list("initial", "Security")
-/datum/design/c32_ap
+/datum/design/c32/ap
name = ".32 Armor-Piercing Bullet"
- id = "c32_ap"
+ id = "c32/ap"
build_type = AUTOLATHE
materials = list(/datum/material/iron = 2000)
- build_path = /obj/item/ammo_casing/c32_ap
+ build_path = /obj/item/ammo_casing/c32/ap
category = list("hacked", "Security")
/datum/design/c32_incendiary
@@ -45,7 +45,7 @@
id = "smg32acp"
build_type = AUTOLATHE
materials = list(/datum/material/iron = 3000)
- build_path = /obj/item/ammo_box/magazine/smg32/empty
+ build_path = /obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat/empty
category = list("hacked", "Security")
/datum/design/a762
diff --git a/modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi b/modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi
index 0eff5f4e4a6..b6badfba294 100644
Binary files a/modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi and b/modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi differ
diff --git a/modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile.dmi b/modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile.dmi
index 36f186d4d44..4e108e276ab 100644
Binary files a/modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile.dmi and b/modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile.dmi differ
diff --git a/modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile40x32.dmi b/modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile40x32.dmi
index 5c1690dbe7f..2e3c0b4e5a3 100644
Binary files a/modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile40x32.dmi and b/modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile40x32.dmi differ
diff --git a/modular_skyrat/modules/modular_weapons/icons/obj/gunsets.dmi b/modular_skyrat/modules/modular_weapons/icons/obj/gunsets.dmi
new file mode 100644
index 00000000000..bc5b963bd5c
Binary files /dev/null and b/modular_skyrat/modules/modular_weapons/icons/obj/gunsets.dmi differ
diff --git a/modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi b/modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi
new file mode 100644
index 00000000000..11b8155ff19
Binary files /dev/null and b/modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi differ
diff --git a/modular_skyrat/modules/modular_weapons/icons/obj/vending.dmi b/modular_skyrat/modules/modular_weapons/icons/obj/vending.dmi
new file mode 100644
index 00000000000..e3751ad0770
Binary files /dev/null and b/modular_skyrat/modules/modular_weapons/icons/obj/vending.dmi differ
diff --git a/modular_skyrat/modules/modular_weapons/sounds/laser_fire.ogg b/modular_skyrat/modules/modular_weapons/sounds/laser_fire.ogg
new file mode 100644
index 00000000000..7b003b8cc8b
Binary files /dev/null and b/modular_skyrat/modules/modular_weapons/sounds/laser_fire.ogg differ
diff --git a/tgstation.dme b/tgstation.dme
index 5d9d13d7932..bcf553bd94b 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -4173,6 +4173,7 @@
#include "modular_skyrat\modules\modular_weapons\code\modules\projectiles\guns\ballistic\pistol.dm"
#include "modular_skyrat\modules\modular_weapons\code\modules\projectiles\guns\ballistic\revolver.dm"
#include "modular_skyrat\modules\modular_weapons\code\modules\projectiles\guns\ballistic\rifle.dm"
+#include "modular_skyrat\modules\modular_weapons\code\modules\projectiles\guns\energy\energy.dm"
#include "modular_skyrat\modules\modular_weapons\code\modules\projectiles\projectile\bullets\modular_projectiles.dm"
#include "modular_skyrat\modules\modular_weapons\code\modules\research\designs\autolathe_designs.dm"
#include "modular_skyrat\modules\morenarcotics\chemistry\reagents\cocaine.dm"