//model "name" framestart= frames= framerate= alpha= trail= orient additive transparent fullbright shadow noshadow r_part namespace q2part r_part pe_default { texture "classicparticle" tcoords 0 0 16 16 32 count 1 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 } r_part placeholder { //FIXME: fix the things that assoc this! texture "classicparticle" tcoords 0 0 16 16 32 count 1 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0 255 //something that makes it obviously a placeholder. } r_part te_splashsparks { texture "classicparticle" tcoords 0 0 16 16 32 count 1 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0xe0 } r_part te_splashunknown { assoc te_splashsparks } r_part teq2_sparks { texture "classicparticle" tcoords 0 0 16 16 32 count 6 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0xe0 } r_part te_splashbluewater { texture "classicparticle" tcoords 0 0 16 16 32 count 1 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0xb0 } r_part te_splashbrownwater { texture "classicparticle" tcoords 0 0 16 16 32 count 1 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0x50 } r_part te_splashslime { texture "classicparticle" tcoords 0 0 16 16 32 count 1 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0xd0 } r_part te_splashlava { texture "classicparticle" tcoords 0 0 16 16 32 count 1 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0xe0 } r_part te_splashblood { texture "classicparticle" tcoords 0 0 16 16 32 count 1 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0xe8 } r_part teq2_laser_sparks { texture "classicparticle" tcoords 0 0 16 16 32 count 1 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 7 spawnorg 4 gravity 40 scalefactor 0.8 } r_part teq2_welding_sparks { //identical to teq2_laser_sparks, except for the +form that adds in some extra mesh+lighting effect. texture "classicparticle" tcoords 0 0 16 16 32 count 1 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 7 spawnorg 4 gravity 40 scalefactor 0.8 } r_part +teq2_welding_sparks { count 0 0 1 model "models/objects/flash/tris.md2" framestart=0 frameend=2 framerate=10 alpha=-1 fullbright lightradius 100 175 lightradiusfade 400 lightrgb 1 1 0.3 } r_part teq2_tunnel_sparks { //this is apparently identical to teq2_laser_sparks... either way the protocol provides a palette colour (particle system provides a customised variation) texture "classicparticle" tcoords 0 0 16 16 32 count 1 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 7 spawnorg 4 gravity 40 scalefactor 0.8 } r_part teq2_shield_sparks { texture "classicparticle" tcoords 0 0 16 16 32 count 40 colorindex 0xb0 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 } r_part teq2_screen_sparks { texture "classicparticle" tcoords 0 0 16 16 32 count 40 colorindex 0xd0 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 } r_part teq2_bullet_sparks { texture "classicparticle" tcoords 0 0 16 16 32 count 6 colorindex 0xe0 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 } r_part q2_smoke { count 0 0 1 model "models/objects/smoke/tris.md2" framestart=0 frameend=4 framerate=10 alpha=1 } r_part q2_smokeandflash { count 0 0 1 model "models/objects/flash/tris.md2" framestart=0 frameend=2 framerate=10 alpha=-1 fullbright assoc q2_smoke } r_part teq2_gunshot /*machinegun*/ { texture "classicparticle" tcoords 0 0 16 16 32 count 40 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0 7 /*smoke puff models*/ assoc q2_smokeandflash /*low chance of various sounds*/ sound world/ric1.wav 1 1 0 0 1 sound world/ric2.wav 1 1 0 0 1 sound world/ric3.wav 1 1 0 0 1 sound "" 1 1 0 0 12 } r_part teq2_shotgun /*shotgun... duh*/ { texture "classicparticle" tcoords 0 0 16 16 32 count 20 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0 7 /*smoke puff models*/ assoc q2_smokeandflash } r_part teq2_blood { texture "classicparticle" tcoords 0 0 16 16 32 count 60 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 232 7 } r_part teq2_moreblood { //teq2_blood, but with count 250 instead of 60. texture "classicparticle" tcoords 0 0 16 16 32 count 250 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 232 7 } r_part teq2_greenblood { texture "classicparticle" tcoords 0 0 16 16 32 count 30 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0xdf 7 } r_part teq2_electric_sparks { texture "classicparticle" tcoords 0 0 16 16 32 count 40 scale 1 alpha 1 die 0.3 0.8 randomvel 20 orgadd 0 31 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0x75 7 sound "weapons/lashit.wav" 1 1 0 0 } r_part q2_blasterpuff { count 0 0 1 model "models/objects/explode/tris.md2" framestart=0 frameend=4 framerate=10 alpha=1 orient additive fullbright noshadow skin=0 } r_part q2_blaster2puff { count 0 0 1 model "models/objects/explode/tris.md2" framestart=0 frameend=4 framerate=10 alpha=1 orient additive fullbright noshadow skin=1 } r_part q2_flechettepuff { count 0 0 1 model "models/objects/explode/tris.md2" framestart=0 frameend=4 framerate=10 alpha=1 orient additive fullbright noshadow skin=2 } r_part teq2_blaster { texture "classicparticle" tcoords 0 0 16 16 32 count 60 scale 1 alpha 1 die 0.3 0.8 randomvel 40 orgadd 0 15 veladd 30 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0xe0 7 assoc q2_blasterpuff /*the model*/ lightradius 150 lightradiusfade 400 lightrgb 1 1 0 lightshadows 1 sound "weapons/lashit.wav" 1 1 0 0 } r_part teq2_blaster2 { //green version. texture "classicparticle" tcoords 0 0 16 16 32 count 60 scale 1 alpha 1 die 0.3 0.8 randomvel 40 orgadd 0 15 veladd 30 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0xd0 7 assoc q2_blaster2puff /*the model*/ lightradius 150 lightradiusfade 400 lightrgb 0.05 1.0 0.05 lightshadows 1 sound "weapons/lashit.wav" 1 1 0 0 } r_part teq2_flechette { //grey version. texture "classicparticle" tcoords 0 0 16 16 32 count 60 scale 1 alpha 1 die 0.3 0.8 randomvel 40 orgadd 0 15 veladd 30 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0x6f 7 assoc q2_flechettepuff /*the model*/ lightradius 150 lightradiusfade 400 lightrgb 0.19 0.41 0.75 lightshadows 1 sound "weapons/lashit.wav" 1 1 0 0 } r_part teq2_bluehyperblaster { //misnamed - just the regular orangey particles without sound/puff texture "classicparticle" tcoords 0 0 16 16 32 count 60 scale 1 alpha 1 die 0.3 0.8 randomvel 40 orgadd 0 15 veladd 30 spawnorg 4 gravity 40 scalefactor 0.8 colorindex 0xe0 7 } r_part TR_BLASTERTRAIL { texture "classicparticle" tcoords 0 0 16 16 32 scale 0.5 alpha 1 scalefactor 0.8 step 5 spawnorg 1 randomvel 5 die 0.3 0.5 colorindex 0xe0 lightradius 200 lightradiusfade 400 lightrgb 1.0 1.0 0.0 lightshadows 1 } //green version r_part TR_BLASTERTRAIL2 { texture "classicparticle" tcoords 0 0 16 16 32 scale 0.5 alpha 1 scalefactor 0.8 step 5 spawnorg 1 randomvel 5 die 0.3 0.5 colorindex 0xd0 lightradius 200 lightradiusfade 400 lightrgb 0.0 1.0 0.0 lightshadows 1 } r_part teq2_bubbletrail { texture "classicparticle" tcoords 0 0 16 16 32 scale 0.5 alpha 1 scalefactor 0.8 step 32 spawnorg 2 spawnvel 5 die 1 1.2 colorindex 4 7 velbias 0 0 6 } r_part teq2_bubbletrail2 { texture "classicparticle" tcoords 0 0 16 16 32 scale 0.5 alpha 1 scalefactor 0.8 step 8 spawnorg 2 spawnvel 10 die 1 1.1 colorindex 4 7 velbias 0 0 20 sound "weapons/lashit.wav" 1 1 0 0 } r_part teq2_railtrail { //blue spiral texture "classicparticle" tcoords 0 0 16 16 32 scale 0.5 alpha 1 scalefactor 0.8 step 1 spawnmode spiral 64 spawnorg 3 spawnvel 6 die 1 1.2 colorindex 116 7 sound "weapons/railgf1a.wav" 1 1 0 0 } r_part +teq2_railtrail { //grey filler texture "classicparticle" tcoords 0 0 16 16 32 scale 0.5 alpha 1 scalefactor 0.8 step 0.75 spawnorg 3 spawnvel 3 die 0.6 0.8 colorindex 0 15 } r_part teq2_railtrail2 { //This is not implemented in vanilla, so we've no idea what it should really look like. //we just use the blue spiral with no core. //blue spiral texture "classicparticle" tcoords 0 0 16 16 32 scale 0.5 alpha 1 scalefactor 0.8 step 1 spawnmode spiral 64 spawnorg 3 spawnvel 6 die 1 1.2 colorindex 116 7 sound "weapons/railgf1a.wav" 1 1 0 0 } //regular explosion particles r_part std_explosion_particles { texture "classicparticle" tcoords 0 0 16 16 32 count 256 scale 4 alpha 0.4 die 1 0.625 spawnmode ball spawnorg 16 spawnvel 192 scalefactor 0.8 gravity 40 colorindex 0xe0 7 } r_part teq2_explosion1_big { lighttime 0.5 lightradius 350 lightradiusfade 300 lightrgb 1.0 0.5 0.4 lightrgbfade 0.36 0.19 0.19 sound "weapons/rocklx1a.wav" 1 1 0 0 model "models/objects/r_explode2/tris.md2" framestart=0 frames=15 skin=-1 transparent fullbright noshadow model "models/objects/r_explode2/tris.md2" framestart=15 frames=15 skin=-1 transparent fullbright noshadow } r_part teq2_explosion1_np { lighttime 0.5 lightradius 350 lightradiusfade 300 lightrgb 1.0 0.5 0.4 lightrgbfade 0.36 0.19 0.19 sound "weapons/rocklx1a.wav" 1 1 0 0 model "models/objects/r_explode/tris.md2" framestart=0 frames=15 skin=-1 fullbright noshadow model "models/objects/r_explode/tris.md2" framestart=15 frames=150 skin=-1 fullbright noshadow } r_part teq2_explosion1 { assoc teq2_rocket_explosion } r_part teq2_rocket_explosion { assoc std_explosion_particles lighttime 0.5 lightradius 350 lightradiusfade 300 lightrgb 1.0 0.5 0.4 lightrgbfade 0.36 0.19 0.19 sound "weapons/rocklx1a.wav" 1 1 0 0 model "models/objects/r_explode/tris.md2" framestart=0 frames=15 skin=-1 fullbright noshadow model "models/objects/r_explode/tris.md2" framestart=15 frames=15 skin=-1 fullbright noshadow } r_part teq2_rocket_explosion_water { assoc std_explosion_particles lighttime 0.5 lightradius 350 lightradiusfade 300 lightrgb 1.0 0.5 0.4 lightrgbfade 0.36 0.19 0.19 sound "weapons/xpld_wat.wav" 1 1 0 0 model "models/objects/r_explode/tris.md2" framestart=0 frames=15 skin=-1 fullbright noshadow model "models/objects/r_explode/tris.md2" framestart=15 frames=15 skin=-1 fullbright noshadow } r_part teq2_explosion2 { assoc teq2_grenade_explosion } r_part teq2_grenade_explosion { assoc std_explosion_particles lighttime 0.5 lightradius 350 lightradiusfade 300 lightrgb 1.0 0.5 0.4 lightrgbfade 0.36 0.19 0.19 sound "weapons/grenlx1a.wav" 1 1 0 0 model "models/objects/r_explode/tris.md2" framestart=30 frames=19 skin=-1 fullbright noshadow } r_part teq2_grenade_explosion_water { assoc std_explosion_particles lighttime 0.5 lightradius 350 lightradiusfade 300 lightrgb 1.0 0.5 0.4 lightrgbfade 0.36 0.19 0.19 sound "weapons/xpld_wat.wav" 1 1 0 0 model "models/objects/r_explode/tris.md2" framestart=30 frames=19 skin=-1 fullbright noshadow } r_part teq2_plain_explosion { //basically like regular explosions, but with no particle effect. lighttime 0.5 lightradius 350 lightradiusfade 300 lightrgb 1.0 0.5 0.4 lightrgbfade 0.36 0.19 0.19 sound "weapons/rocklx1a.wav" 1 1 0 0 model "models/objects/r_explode/tris.md2" framestart=0 frames=15 skin=-1 fullbright noshadow model "models/objects/r_explode/tris.md2" framestart=15 frames=15 skin=-1 fullbright noshadow } r_part teq2_plasma_explosion { //not actually any different assoc teq2_explosion1 } r_part teq2_tracker_explosion { texture "classicparticle" tcoords 0 0 16 16 32 count 128 scale 1 alpha 1 die 1.5 2 randomvel 128 orgadd 0 31 spawnorg 16 gravity 40 scalefactor 0.8 colorindex 0 1 lighttime 0.1 //this is kinda too short. lightradius 150 lightradiusfade 300 lightrgb -1.0 -1.0 -1.0 sound "weapons/disrupthit.wav" 1 1 0 0 } r_part teq2_teleport_effect { //FIXME assoc placeholder } r_part teq2_dball_goal { //FIXME assoc placeholder } r_part teq2_widowsplash { //FIXME assoc placeholder } r_part teq2_debugtrail { //FIXME assoc placeholder } r_part teq2_chainfist_smoke { texture "classicparticle" tcoords 0 0 16 16 32 count 20 scale 1 alpha 1 die 0.5 0.8 spawnorg 2 randomvel 6.66 20 gravity 40 scalefactor 0.8 colorindex 0 7 } r_part teq2_flashlight { //JUST a light. lightradius 400 lighttime 0.15 lightrgb 1.0 1.0 1.0 lightshadows 1 } r_part trq2_rocket { texture "particles/quake" step 8 scale 4 die 1.0 1.2 colorindex 0xdc 3 spawnorg 1 spawnvel 20 gravity 40 assoc trq2_grenade } r_part trq2_grenade { texture "particles/quake" step 3 scale 4 die 1.0 1.2 colorindex 0x4 7 spawnorg 1 spawnvel 5 gravity -20 } r_part trq2_gib { texture "particles/quake" step 3 scale 4 die 1.0 1.4 colorindex 0xe8 7 spawnorg 1 spawnvel 5 gravity -20 } r_part trq2_greengib { texture "particles/quake" step 3 scale 4 die 1.0 1.4 colorindex 0xdb 7 spawnorg 1 spawnvel 5 gravity -20 } r_part TR_PLASMA { assoc TR_BLASTERTRAIL } r_part tr_ionripper { texture "classicparticle" tcoords 0 0 16 16 32 step 3 scale 1 alpha 0.5 die 0.15 0.25 colorindex 0xe4 3 spawnmode tracer spawnorg 0 spawnvel 10 lighttime 0 lightradius 100 lightrgb 1.0 0.5 0.5 } r_part tr_tracker { //FIXME: doesn't match vanilla. works well enough though I guess. texture "classicparticle" tcoords 0 0 16 16 32 step 3 scale 1 alpha 1 die 0.5 spawnmode spiral 8.34 spawnorg 1 spawnvel 32 veladd 32 scalefactor 0 colorindex 0 lighttime 0 lightradius 200 lightrgb -1.0 -1.0 -1.0 } r_part tr_tagtrail { texture "classicparticle" tcoords 0 0 16 16 32 step 5 scale 1 alpha 1 die 1.0 0.8 spawnorg 16 spawnvel 5 scalefactor 0 colorindex 220 lighttime 0 lightradius 225 lightrgb 1.0 1.0 0.0 } r_part tr_trap { //FIXME: add particles lighttime 0 lightradius 100 200 lightrgb 1.0 0.8 0.25 assoc placeholder } //flags do NOT use coronas, because it obscures the holding player's skin colour r_part tr_flag1 { texture "classicparticle" tcoords 0 0 16 16 32 step 5 scale 1 alpha 1 die 1.0 0.8 spawnorg 16 spawnvel 5 veladd 32 scalefactor 0 colorindex 0xf2 lighttime 0 lightcorona 0.0 0.0 lightradius 225 lightrgb 1.0 0.25 0.25 } r_part tr_flag2 { texture "classicparticle" tcoords 0 0 16 16 32 step 5 scale 1 alpha 1 die 1.0 0.8 spawnorg 16 spawnvel 5 veladd 32 scalefactor 0 colorindex 0x73 lighttime 0 lightcorona 0.0 0.0 lightradius 225 lightrgb 0.25 0.25 1.0 } r_part EF_FLIES { texture "classicparticle" tcoords 0 0 16 16 32 count 1 scale 0.5 alpha 1 die 0 spawnmode syncfield 16 64 spawnorg 0 scalefactor 0 colorindex 0 } r_part EF_BFGPARTICLES { texture "classicparticle" tcoords 0 0 16 16 32 count 0 0 162 scale 0.5 alpha 1 die 0 spawnmode syncfield 16 64 spawnorg 0 scalefactor 0 colorindex 0xd0 7 } r_part ev_item_respawn { sound "items/respawn1.wav" 1 2 0 0 1 texture "classicparticle" tcoords 0 0 16 16 32 count 64 scale 1 alpha 1 die 1.3 1 randomvel 8 orgadd 0 31 spawnorg 8 gravity 8 scalefactor 0.8 colorindex 0xd4 3 } r_part ev_player_teleport { sound "misc/tele1.wav" 1 2 0 0 1 texture "classicparticle" tcoords 0 0 16 16 32 count 96 scale 1 alpha 1 die 0.3 0.4 randomvel 8 orgadd 0 31 spawnmode telebox 0 4 spawnorg 32 48 gravity 40 scalefactor 0.8 colorindex 0x07 7 } r_part ev_footstep { sound "player/step1.wav" 1 1 0 0 1 sound "player/step2.wav" 1 1 0 0 1 sound "player/step3.wav" 1 1 0 0 1 sound "player/step4.wav" 1 1 0 0 1 } //central explosion r_part teq2_bfg_bigexplosion { texture "classicparticle" tcoords 0 0 16 16 32 count 256 scale 1 alpha 1 die 0.625 1 spawnmode ball spawnorg 16 spawnvel 192 scalefactor 0.8 gravity 40 colorindex 0xd0 7 } //splashed onto an entity r_part teq2_bfg_explosion { lighttime 0.5 lightradius 350 lightradiusfade 300 lightrgb 0.0 1.0 0.0 lightrgbfade 0.0 0.0 0.0 sound "weapons/xpld_wat.wav" 1 1 0 0 model "sprites/s_bfg2.sp2" framestart=0 frameend=4 alpha=0.3 transparent fullbright noshadow } //31qu cylinder, 8-98 high //should look like its sucked up into some thingie above r_part TEQ2_BOSSTPORT { texture "classicparticle" tcoords 0 0 16 16 32 count 800 scale 1 alpha 1 die 0.5 0.8 orgadd 8 -98 veladd 100 200 spawnmode circle spawnorg 48 0 spawnvel -50 30 randomvel 32 31 gravity -800 rgbf 1 1 1 scalefactor 0.8 sound "misc/bigtele.wav" 1 0 0 0 1 } r_part teq2_heatbeam_sparks { //FIXME assoc placeholder } r_part teq2_heatbeam_steam { //FIXME assoc placeholder } //r_part teq2_heatbeam_steam //{ // count 20 // colorindex 0xe0 7 //// magnitude 60 // texture "classicparticle" // tcoords 0 0 16 16 32 // scale 1 // alpha 1 // die 0.3 0.8 // randomvel 20 magnitude/3 // veladd magnitude // orgadd magnitude/10 // spawnorg 4 // gravity -400 // scalefactor 0.8 //} //this is apparently just a trail effect (palette index specified by netcode) r_part teq2_forcewall { texture "classicparticle" tcoords 0 0 16 16 32 scale 0.5 alpha 1 scalefactor 0.8 step 5 spawnorg 3 randomvel 5 die 3 3.5 }