Gun Balancing (#2279)

* some things

* I'm tiredxs

* yea

* gun

* retexture i think

* soresm ore

* op

* Create TACZ_CHANGELOG.md

* surely final stuff

* iuh
This commit is contained in:
GameStar 2025-11-24 14:06:12 -06:00 committed by GitHub
parent 1ea9ac623d
commit 8add3f93f5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 449 additions and 37 deletions

View file

@ -18,6 +18,7 @@ const ammoIndexLogic = (event) => {
switch(id) {
case "tacz:45_70": json.stack_size = 64; break;
case "tacz:12g": json.stack_size = 64; break;
case "tacz:30_06": json.stack_size = 64; break;
case "create_armorer:40mmhe": json.stack_size = 16; break;
case "create_armorer:rbapb": json.stack_size = 64; break;
@ -99,6 +100,12 @@ const gunIndexLogic = (event) => {
return event.removeGun();
}
if (id === "create_armorer:sniper_semi_clockwork"){
const json = JSON.parse(event.getStdJson());
json.type = "rifle";
return event.setJson(JSON.stringify(json));
}
}
const attachmentDataLogic = (event) => {
@ -109,6 +116,7 @@ const gunDataLogic = (event) => {
const id = event.getId().toString();
const json = JSON.parse(event.getStdJson());
//Pistols
if (id === "ulv_guns:flintlock_data"){
json.bullet.damage = 14;
json.bullet.extra_damage.damage_adjust =
@ -121,36 +129,168 @@ const gunDataLogic = (event) => {
}
if(id === "create_armorer:pistol_revolver_torque_data"){
json.ammo = "create_armorer:rbapb";
json.bullet.pierce = 2;
json.bullet.damage = 12;
json.bullet.extra_damage.armor_ignore = 0.25;
json.bullet.extra_damage.head_shot_multiplier = 1.5;
json.bullet.extra_damage.damage_adjust =
[
{"distance": 25, "damage": 12},
{"distance": 50, "damage": 11},
{"distance": 75, "damage": 9},
{"distance": "infinite", "damage": 7}
]
}
if(id === "create_armorer:pistol_auto_stress_data"){
json.ammo = "create_armorer:rbapb";
json.ammo_amount = 10;
json.extended_mag_ammo_amount =
[
14,
18,
22
]
json.fire_mode =
[
"semi"
]
json.bullet.damage = 8;
json.bullet.extra_damage.armor_ignore = 0.25;
json.bullet.extra_damage.damage_adjust =
[
{"distance": 32, "damage": 8},
{"distance": 64, "damage": 7},
{"distance": "infinite", "damage": 6}
]
}
if(id === "applied_armorer:niklas_pistol_semi_pride_data"){
json.bullet.extra_damage.armor_ignore = 0.25;
}
if(id === "applied_armorer:niklas_pistol_double_win_win_data"){
json.bullet.damage = 10;
json.bullet.extra_damage.armor_ignore = 0.25;
json.bullet.extra_damage.head_shot_multiplier = 1.5;
json.bullet.extra_damage.damage_adjust =
[
{"distance": 15, "damage": 10},
{"distance": 35, "damage": 9},
{"distance": "infinite", "damage": 8}
]
}
//Snipers
if(id === "tacz:springfield1873_data") {
json.bullet.damage = 25;
json.bullet.extra_damage.damage_adjust =
[
{"distance": 40, "damage": 25},
{"distance": 70, "damage": 21},
{"distance": 100, "damage": 17},
{"distance": "infinite", "damage": 12}
]
}
if(id === "tacz:m700_data"){
json.ammo_amount = 2;
json.extended_mag_ammo_amount =
[
4,
6,
9
]
json.bullet.damage = 32;
json.bullet.extra_damage.head_shot_multiplier = 1.75;
json.bullet.extra_damage.damage_adjust =
[
{"distance": 48, "damage": 32},
{"distance": 96, "damage": 28},
{"distance": 128, "damage": 23},
{"distance": "infinite", "damage": 18}
]
}
if(id === "applied_armorer:moritz_sniper_semi_k30_data") {
json.bullet.pierce = 4;
json.bullet.damage = 40;
json.bullet.extra_damage.armor_ignore = 0.55;
json.bullet.extra_damage.damage_adjust =
[
{"distance": 100, "damage": 40},
{"distance": 200, "damage": 35},
{"distance": "infinite", "damage": 30}
]
}
//Rifles
if(id === "create_armorer:sniper_semi_clockwork_data"){
json.ammo = "create_armorer:slap";
json.ammo_amount = 10;
json.extended_mag_ammo_amount =
[
13,
16,
20
]
json.bullet.extra_damage.armor_ignore = 0.30;
json.bullet.damage = 22;
json.bullet.extra_damage.head_shot_multiplier = 1.50;
json.bullet.extra_damage.damage_adjust =
[
{"distance": 60, "damage": 22},
{"distance": 120, "damage": 19},
{"distance": "infinite", "damage": 17}
]
json.builtin_attachments = {};
json.builtin_attachments.scope = "create_armorer:sight_simple";
}
if(id === "create_armorer:rifle_assult_crane_data"){
json.ammo_amount = 20;
json.extended_mag_ammo_amount =
[
28,
36,
44
]
}
if(id === "applied_armorer:moritz_rifle_ar77_data") {
json.ammo = "applied_armorer:hard_core_quartz_bullet";
json.bullet.damage = 13;
json.ammo_amount = 25;
json.extended_mag_ammo_amount =
[
36,
45,
52
]
json.bullet.damage = 14;
json.bullet.extra_damage.armor_ignore = 0.35;
json.bullet.extra_damage.head_shot_multiplier = 1.75;
json.bullet.extra_damage.damage_adjust =
[
{"distance": 80, "damage": 13},
{"distance": 120, "damage": 11},
{"distance": "infinite", "damage": 9}
{"distance": 80, "damage": 14},
{"distance": 120, "damage": 12},
{"distance": "infinite", "damage": 10}
]
}
//Shotguns
if(id === "tacz:db_long_data"){
json.bullet.extra_damage.armor_ignore = 0.22;
}
@ -159,6 +299,71 @@ const gunDataLogic = (event) => {
json.bullet.extra_damage.armor_ignore = 0.22;
}
//SMGs
if(id === "create_armorer:smg_auto_crank_data"){
json.ammo = "create_armorer:rbapb";
json.ammo_amount = 25;
json.extended_mag_ammo_amount =
[
35,
45,
55
]
json.bullet.damage = 8;
json.bullet.extra_damage.armor_ignore = 0.25;
json.bullet.extra_damage.head_shot_multiplier = 1.2;
json.bullet.extra_damage.damage_adjust =
[
{"distance": 24, "damage": 8},
{"distance": 48, "damage": 7},
{"distance": 72, "damage": 6},
{"distance": "infinite", "damage": 5}
]
}
if(id === "applied_armorer:niklas_smg_freedom_data"){
json.ammo_amount = 35;
json.extended_mag_ammo_amount =
[
45,
55,
65
]
json.bullet.damage = 10;
json.bullet.extra_damage.armor_ignore = 0.25;
json.bullet.extra_damage.damage_adjust =
[
{"distance": 24, "damage": 10},
{"distance": 48, "damage": 9},
{"distance": 72, "damage": 8},
{"distance": "infinite", "damage": 7}
]
}
//Heavy
if(id === "create_armorer:mg_platemag_flywheel_data") {
json.ammo_amount = 40;
json.extended_mag_ammo_amount =
[
55,
80,
115
]
json.rpm = 640;
json.bullet.damage = 12;
json.bullet.extra_damage.damage_adjust =
[
{"distance": 32, "damage": 12},
{"distance": 64, "damage": 11},
{"distance": "infinite", "damage": 10}
]
}
if(id === "create_armorer:cannon_40mm_salamander_data"){
json.bullet.damage = 50;
json.bullet.extra_damage.damage_adjust =
@ -166,6 +371,7 @@ const gunDataLogic = (event) => {
{"distance": 200, "damage": 50},
{"distance": "infinite", "damage": 45}
]
json.builtin_attachments = {};
json.builtin_attachments.scope = "create_armorer:sight_simple";
}

View file

@ -93,6 +93,13 @@ function registerTACZAmmoRecipes(event){
.duration(20)
//Clockwork era
event.recipes.gtceu.assembler('tfg_tacz:rb_small_lv')
.itemInputs('4x #forge:nuggets/lead','2x #forge:foils/copper', '#forge:ingots/brass',
'#forge:dusts/gunpowder')
.itemOutputs(Item.of('tacz:ammo', 4,
'{AmmoId:"create_armorer:rbapb"}'))
.EUt(GTValues.VA[GTValues.LV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:rb_small')
.itemInputs('4x #forge:nuggets/lead','2x #forge:foils/copper', '4x tfg:small_bullet_casing',
'#forge:dusts/gunpowder')
@ -107,20 +114,36 @@ function registerTACZAmmoRecipes(event){
'{AmmoId:"create_armorer:rbapb"}'))
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:slap_large')
.itemInputs('4x #forge:nuggets/lead','4x #forge:foils/copper', '4x tfg:large_bullet_casing',
.itemInputs('4x #forge:bolts/lead','4x #forge:foils/copper', '4x tfg:large_bullet_casing',
'#forge:dusts/gunpowder')
.itemOutputs(Item.of('tacz:ammo', 4,
'{AmmoId:"create_armorer:slap"}'))
.EUt(GTValues.VA[GTValues.MV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:slap_large_nc')
.itemInputs('8x #forge:nuggets/lead','8x #forge:foils/copper', '8x tfg:large_bullet_casing',
.itemInputs('8x #forge:bolts/lead','8x #forge:foils/copper', '8x tfg:large_bullet_casing',
'tfg:nitrocellulose')
.itemOutputs(Item.of('tacz:ammo', 8,
'{AmmoId:"create_armorer:slap"}'))
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:3006_large')
.itemInputs('4x #forge:rods/annealed_copper','4x #forge:foils/copper', '4x tfg:large_bullet_casing',
'#forge:dusts/gunpowder')
.itemOutputs(Item.of('tacz:ammo', 4,
'{AmmoId:"tacz:30_06"}'))
.EUt(GTValues.VA[GTValues.MV])
.duration(20)
event.recipes.gtceu.assembler('tfg_tacz:3006_large_nc')
.itemInputs('8x #forge:rods/annealed_copper','8x #forge:foils/copper', '8x tfg:large_bullet_casing',
'tfg:nitrocellulose')
.itemOutputs(Item.of('tacz:ammo', 8,
'{AmmoId:"tacz:30_06"}'))
.EUt(GTValues.VA[GTValues.EV])
.duration(20)
//Certus era

View file

@ -70,66 +70,85 @@ function registerTACZGunRecipes(event){
//Region clockwork era
event.recipes.gtceu.assembler('tfg_tacz:ca_torque_revo')
.itemInputs('gtceu:steel_small_fluid_pipe', '4x #forge:ingots/aluminium', '2x #forge:plates/brass',
.itemInputs('gtceu:steel_small_fluid_pipe', '4x #forge:ingots/black_steel', '2x #forge:plates/brass',
'6x #forge:rings/brass', '2x gtceu:treated_wood_planks', '8x #forge:screws/black_steel',
'tfg:advanced_clockwork_mechanism')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 288))
'3x greate:steel_cogwheel')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 256))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"create_armorer:pistol_revolver_torque",HasBulletInBarrel:1b}'))
.circuit(1)
.EUt(GTValues.VA[GTValues.LV])
.duration(80)
event.recipes.gtceu.assembler('tfg_tacz:ca_stress_pistol')
.itemInputs('gtceu:steel_small_fluid_pipe', '4x #forge:ingots/black_steel', '2x #forge:ingots/aluminium',
'3x #forge:plates/brass', 'gtceu:treated_wood_planks', '12x #forge:screws/black_steel',
'4x #forge:screws/brass', 'tfg:advanced_clockwork_mechanism')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 468))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"create_armorer:pistol_auto_stress",HasBulletInBarrel:1b}'))
.circuit(2)
.EUt(GTValues.VA[GTValues.MV])
.duration(80)
event.recipes.gtceu.assembler('tfg_tacz:ca_crane')
.itemInputs('gtceu:steel_small_fluid_pipe', '7x #forge:ingots/aluminium', '2x #forge:ingots/black_steel',
'4x #forge:plates/brass','2x gtceu:copper_tiny_fluid_pipe', '2x gtceu:treated_wood_planks',
'2x #forge:small_gears/steel', '14x #forge:screws/black_steel', 'tfg:advanced_clockwork_mechanism')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 540))
.inputFluids(Fluid.of('gtceu:soldering_alloy', 684))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"AUTO",GunId:"create_armorer:rifle_assult_crane",HasBulletInBarrel:1b}'))
.EUt(GTValues.VA[GTValues.MV])
.duration(100)
event.recipes.gtceu.assembler('tfg_tacz:ca_crank_smg')
.itemInputs('gtceu:steel_small_fluid_pipe', '5x #forge:ingots/aluminium', '5x #forge:plates/brass',
'6x gtceu:steel_tiny_fluid_pipe', '2x gtceu:treated_wood_planks', '2x #forge:small_gears/steel',
'16x #forge:screws/black_steel', 'tfg:advanced_clockwork_mechanism')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 612))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"AUTO",GunId:"create_armorer:smg_auto_crank",HasBulletInBarrel:1b}'))
.circuit(3)
.EUt(GTValues.VA[GTValues.MV])
.duration(100)
event.recipes.gtceu.assembler('tfg_tacz:ca_pump_bearing')
.itemInputs('2x gtceu:steel_small_fluid_pipe', '4x #forge:ingots/aluminium', '4x #forge:plates/brass',
'8x gtceu:treated_wood_planks', '#forge:small_gears/steel', '#forge:gears/steel',
'16x #forge:screws/black_steel', 'tfg:advanced_clockwork_mechanism')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 432))
.inputFluids(Fluid.of('gtceu:soldering_alloy', 504))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"create_armorer:shotgun_pump_bearing",HasBulletInBarrel:0b}'))
.EUt(GTValues.VA[GTValues.MV])
.circuit(3)
.circuit(4)
.duration(100)
event.recipes.gtceu.assembler('tfg_tacz:ca_clockwork_sniper')
.itemInputs('gtceu:steel_normal_fluid_pipe', '7x #forge:ingots/aluminium', '7x #forge:ingots/black_steel',
.itemInputs('gtceu:steel_normal_fluid_pipe', '6x #forge:ingots/aluminium', '3x #forge:ingots/black_steel',
'4x #forge:plates/brass','6x gtceu:copper_tiny_fluid_pipe', '2x gtceu:treated_wood_planks',
'14x #forge:screws/black_steel', 'tfg:advanced_clockwork_mechanism')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 792))
'12x #forge:screws/black_steel', 'tfg:advanced_clockwork_mechanism')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 684))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"create_armorer:sniper_semi_clockwork",HasBulletInBarrel:1b}'))
.EUt(GTValues.VA[GTValues.MV])
.circuit(4)
.circuit(5)
.duration(120)
event.recipes.gtceu.assembler('tfg_tacz:ca_flywheel_mg')
.itemInputs('gtceu:steel_normal_fluid_pipe', '10x #forge:ingots/aluminium', '6x #forge:ingots/black_steel',
'6x #forge:plates/brass', 'create:steam_engine', '3x gtceu:steel_tiny_fluid_pipe',
'2x gtceu:treated_wood_planks','20x #forge:screws/black_steel', '2x tfg:advanced_clockwork_mechanism')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 936))
.inputFluids(Fluid.of('gtceu:soldering_alloy', 1008))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"AUTO",GunId:"create_armorer:mg_platemag_flywheel",HasBulletInBarrel:1b}'))
.EUt(GTValues.VA[GTValues.MV])
.duration(160)
event.recipes.gtceu.assembler('tfg_tacz:tacz_m700')
.itemInputs('3x gtceu:steel_small_fluid_pipe', '5x #forge:ingots/aluminium', '4x #forge:plates/black_steel',
'16x gtceu:treated_wood_planks', '16x #forge:screws/black_steel', 'tfg:advanced_clockwork_mechanism')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 768))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"tacz:m700",HasBulletInBarrel:0b}'))
.EUt(GTValues.VA[GTValues.MV])
.circuit(6)
.duration(120)
//Region certus era
event.recipes.gtceu.assembler('tfg_tacz:aa_pride')
.itemInputs('gtceu:titanium_small_fluid_pipe', '4x #forge:ingots/titanium', '2x #forge:plates/stainless_steel',
'2x #forge:rods/long/titanium', '8x #forge:screws/hsla_steel', 'tfg:certus_mechanism')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1152))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"applied_armorer:niklas_pistol_semi_pride",HasBulletInBarrel:0b}'))
.circuit(2)
.EUt(GTValues.VA[GTValues.EV])
.duration(80)
event.recipes.gtceu.assembler('tfg_tacz:aa_right')
.itemInputs('gtceu:titanium_small_fluid_pipe', '5x #forge:ingots/titanium', '3x #forge:plates/stainless_steel',
'#forge:rods/long/titanium', '10x #forge:screws/hsla_steel', 'tfg:certus_mechanism')
@ -139,6 +158,16 @@ function registerTACZGunRecipes(event){
.circuit(1)
.EUt(GTValues.VA[GTValues.EV])
.duration(80)
event.recipes.gtceu.assembler('tfg_tacz:aa_pride')
.itemInputs('gtceu:titanium_small_fluid_pipe', '4x #forge:ingots/titanium', '2x #forge:plates/stainless_steel',
'2x #forge:rods/long/titanium', '8x #forge:screws/hsla_steel', 'tfg:certus_mechanism')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1152))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"applied_armorer:niklas_pistol_semi_pride",HasBulletInBarrel:0b}'))
.circuit(2)
.EUt(GTValues.VA[GTValues.EV])
.duration(80)
event.recipes.gtceu.assembler('tfg_tacz:aa_win_win')
.itemInputs('2x gtceu:titanium_small_fluid_pipe', '10x #forge:ingots/titanium', '6x #forge:plates/stainless_steel',
@ -150,6 +179,17 @@ function registerTACZGunRecipes(event){
.EUt(GTValues.VA[GTValues.EV])
.duration(120)
event.recipes.gtceu.assembler('tfg_tacz:aa_k30')
.itemInputs('2x gtceu:titanium_small_fluid_pipe', '8x #forge:ingots/titanium', '2x #forge:ingots/magnalium',
'8x #forge:plates/stainless_steel', '3x #forge:rods/long/hsla_steel', '2x tfc:lens',
'24x #forge:screws/hsla_steel', 'tfg:certus_mechanism')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1728))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"applied_armorer:moritz_sniper_semi_k30",HasBulletInBarrel:0b}'))
.circuit(4)
.EUt(GTValues.VA[GTValues.EV])
.duration(220)
event.recipes.gtceu.assembler('tfg_tacz:aa_ar')
.itemInputs('gtceu:titanium_small_fluid_pipe', '10x #forge:ingots/titanium', '5x #forge:plates/stainless_steel',
'2x #forge:rods/long/hsla_steel', '2x tfc:lens', '20x #forge:screws/hsla_steel',
@ -172,16 +212,16 @@ function registerTACZGunRecipes(event){
.EUt(GTValues.VA[GTValues.EV])
.duration(180)
event.recipes.gtceu.assembler('tfg_tacz:aa_k30')
.itemInputs('2x gtceu:titanium_small_fluid_pipe', '8x #forge:ingots/titanium', '2x #forge:ingots/magnalium',
'8x #forge:plates/stainless_steel', '3x #forge:rods/long/hsla_steel', '2x tfc:lens',
'24x #forge:screws/hsla_steel', 'tfg:certus_mechanism')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 1728))
event.recipes.gtceu.assembler('tfg_tacz:aa_freedom')
.itemInputs('gtceu:titanium_small_fluid_pipe', '7x #forge:ingots/titanium', '4x #forge:plates/stainless_steel',
'2x #forge:rods/long/hsla_steel', '2x tfc:lens', '16x #forge:screws/hsla_steel',
'tfg:certus_mechanism')
.inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 2160))
.itemOutputs(Item.of('tacz:modern_kinetic_gun',
'{GunCurrentAmmoCount:0,GunFireMode:"SEMI",GunId:"applied_armorer:moritz_sniper_semi_k30",HasBulletInBarrel:0b}'))
.circuit(4)
'{GunCurrentAmmoCount:0,GunFireMode:"AUTO",GunId:"applied_armorer:niklas_smg_freedom",HasBulletInBarrel:1b}'))
.circuit(7)
.EUt(GTValues.VA[GTValues.EV])
.duration(220)
.duration(160)
event.recipes.gtceu.assembler('tfg_tacz:aa_gl')
.itemInputs('gtceu:tungsten_steel_normal_fluid_pipe', '12x #forge:ingots/titanium', '6x #forge:plates/stainless_steel',