Skip to main content

Projectiles

gameresources\generated\decls\projectile\projectile\player\chaingun_turret.decl

Add the following to fix the Mobile Turret infinite sound loop bug.

{
	inherit = "projectile/base/bullet";
	edit = {
		fireSoundStart = "play_pistol_hand_cannon_fire"; // fireSoundLoopStart & fireSoundStop are replaced
		impactEffectTable = "impacteffect/projectiles/weapons/chaingun";
		damageDecl = "damage/firearm/chaingun_turret";
		spawnCount = 4;
		impactEffectSpawnCount = 1;
		tracerInfo = {
			tracerMtr = NULL;
			doRandomTracers = true;
			randomTracerType = "TRACERRANDOM_VARIABLE";
			randomTracerNum = 2;
			tracerLength = 2.477;
			sndTracer = "projectile/mp_bullet_passby";
			ribbon2Decls = {
				num = 3;
				item[0] = {
					ribbonDecl = "chaingun_tracer_base";
					offset = {
						x = -0.324999988;
					}
					thirdPersonOffset = {
						x = -0.324999988;
					}
				}
				item[1] = {
					ribbonDecl = "chaingun_tracer_base_90";
					offset = {
						x = -0.324999988;
					}
					thirdPersonOffset = {
						x = -0.324999988;
					}
				}
				item[2] = {
					ribbonDecl = "chaingun_tracer_base_solid";
				}
			}
		}
	}
}
gameresources\generated\decls\projectile\projectile\player\double_barrel_flame_meat_hook.decl

Add the following to enable a flame FX for the host player whenever they use the Meathook.

{
	inherit = "projectile/player/double_barrel_meat_hook";
	edit = {
		fireSoundStart = "play_wpn_shotgun_double_meathook_master_fire";
		fxDecl = "weapon/meathook/meathook_projectile_mastery";
		notHitscanInfo = {
			entityDef = "projectile_ent/throwable/player/flaming_meat_hook";
			clientAuthoritative = false; // set to false
		}
		projectilePlaysFireSound = true; // set to true
	}
}
gameresources\generated\decls\projectile\projectile\player\shotgun_pop_rocket.decl

Add the following to fix some network issues with Sticky Bombs.

{
	inherit = "projectile/player/assault_rifle_assaultrifle_secondary";
	edit = {
		fireSoundStart = "play_shotgun_pop_rocket_fire";
		impactEffectTable = "impacteffect/projectiles/weapons/shotgun_poprocket";
		fxDecl = "weapon/combat_shotgun/sticky_bomb_projectile";
		notHitscanInfo = {
			entityDef = "projectile_ent/player/shotgun_pop_rocket";
			physicsProperties = {
				bounciness = 0;
				actorClipRadius = 0.400000006;
			}
			explodeSound = "play_sticky_bomb_explosion";
			flySound = "play_rocket_fly_loop";
			whizBySound = "play_sfx_rocket_passby";
			whizByDist = 5.71500015;
			isRetrievable = false;
			clientAuthoritative = true; // set to true
			adjustFireAngle = -4;
			grenadeInfo = {
				minDetonationDelay = 500;
				maxDetonationDelay = 500;
				countDownOnThrow = false;
				bouncesBeforeDetonationTimerStart = 1;
				warningSound = "play_cs_sticky_bomb_timer_1_mono";
				minSpeed = 52.3880043;
				maxSpeed = 52.3880043;
				useSimplePhysics = false;
			}
			swallowInfo = {
				canBeSwallowed = true;
				explodeDamageDelayMS = 1500;
				swallowStat = "STAT_WEAKPOINT_CACODEMON_MOUTH";
			}
		}
		damageDecl = "damage/firearm/pop_rocket";
		splashDamageDecl = "damage/firearm/pop_rocket_splash";
		splashDoesntIgnoreDirectHitTarget = true;
		projectilePlaysFireSound = true;
	}
}