R part

From FTE
Jump to: navigation, search


Syntax: r_part <effectname> { <effectfields> }

Defines a particle effect with given properties defined in effectfields. This command will wipe all particles/beams in use for an existing particle effect and all previous properties with it.

<effectname> is the name of the particle effect to assign
<particlefields> is the list of properties to assign to named particle effect

Special Particle Names

Point effects

Assigning to these names control point effects, which are effects with a start point and possibly a direction, such as gunshot impacts.

  • te_blob: TE_TAREXPLOSION (Tar baby explosion)
  • te_blood: QuakeWorld TE_BLOOD and DP_TE_BLOOD (blood from damage)
  • te_explosion: TE_EXPLOSION (rocket and grenade explosion)
  • te_gunshot: TE_GUNSHOT (shotgun wall impacts)
  • te_knightspike: TE_KNIGHTSPIKE (Hell Knight projectile impact)
  • te_lavasplash: TE_LAVASPLASH (Chthon lava splash)
  • te_lightningblood: QuakeWorld TE_LIGHTNINGBLOOD (lightning damage)
  • te_spike: TE_SPIKE (nailgun nail impact)
  • te_superspike: TE_SUPERSPIKE (super nailgun nail impact)
  • te_teleportsplash: TE_TELEPORT (teleport and respawn)
  • te_wizspike: TE_WIZSPIKE (Scrag projectile impact)
  • te_bullet: FTE_PEXT_TE_BULLET's TE_BULLET
  • te_superbullet: FTE_PEXT_TE_BULLET's TE_SUPERBULLET
  • te_bigexplosion: DarkPlaces TE_BIGEXPLOSION
  • te_bloodshower: DP_TE_BLOODSHOWER
  • te_cube[_g][_<c>]: DP_TE_PARTICLECUBE, [_g] is with/without gravity from call, c is specific color which is optional
  • te_explosionquad: DP_TE_QUADEFFECTS1's TE_EXPLOSIONQUAD
  • te_flamejet: DP_TE_FLAMEJET
  • te_gunshotquad: DP_TE_QUADEFFECTS1's TE_GUNSHOTQUAD
  • te_plasma: DarkPlaces TE_PLASMA
  • te_rain[_<c>]: DP_TE_PARTICLERAIN, c is specific color from call which is optional
  • te_smoke: DarkPlaces TE_SMOKE
  • te_snow[_<c>]: DP_TE_PARTICLESNOW, c is specific color from call which is optional
  • te_spark: DP_TE_SPARK
  • te_spikequad: DP_TE_QUADEFFECTS1's TE_SPIKEQUAD
  • te_superspikequad: DP_TE_QUADEFFECTS1's TE_SUPERSPIKEQUAD
  • te_bfg_bigexplosion: Quake 2's TE_BFG_BIGEXPLOSION (BFG core explosion)
  • te_blasterparticles: Quake 2's TE_BLASTER (blaster projectile impact)
  • te_blaster2: Quake 2's TE_BLASTER2 and TE_FLECHETTE
  • te_greenblood: Quake 2's TE_GREENBLOOD
  • te_moreblood: Quake 2's TE_MOREBLOOD
  • te_tracker_explosion: Quake 2's TE_TRACKER_EXPLOSION
  • te_widowsplash: Quake 2's TE_WIDOWSPLASH

Beams

Assigning to these names will control beam effects, which are effects with a given start and end point.

  • te_beam: TE_BEAM (Rogue expansion effect)
  • te_lightning1: TE_LIGHTNING1 (Shambler lightning)
  • te_lightning2: TE_LIGHTNING2 (player shaft lightning)
  • te_lightning3: TE_LIGHTNING3 (Chthon trap lightning)
  • te_nexbeam: DarkPlaces TE_TEI_G3 (Nexuiz Nex weapon)
  • te_plasmaburn: DP_TE_PLASMABURN
  • te_bubbletrail: Quake 2 TE_BUBBLETRAIL (bullet underwater bubble trails)
  • te_debugtrail: Quake 2 TE_DEBUGTRAIL
  • te_grapple_cable: Quake 2 TE_GRAPPLE_CABLE (CTF grapple weapon)
  • te_parasite_attack_end: Quake 2 TE_PARASITE_ATTACK (parasite monster attack)
  • te_railtrail: Quake 2 TE_RAILTRAIL or ZQuake's rail trails (railgun)
  • te_stream_icechunks: Hexen 2 TE_STREAM_ICECHUNKS
  • te_stream_sunstaff: Hexen 2 TE_STREAM_SUNSTAFF (Crusader's Sunstaff weapon)
  • te_stream_sunstaff2: Hexen 2 TE_STREAM_SUNSTAFF2 (Crusader's Sunstaff weapon)

Beam end points

Assigning to these names will add effects at the ends of beam point much like point effects.

  • te_beam_end: TE_BEAM end point
  • te_lightning1_end: TE_LIGHTNING1 end point
  • te_lightning2_end: TE_LIGHTNING2 end point
  • te_lightning3_end: TE_LIGHTNING3 end point
  • te_grapple_cable_end: Quake 2 TE_GRAPPLE_CABLE end point
  • te_parasite_attack_end: Quake 2 TE_PARASITE_ATTACK end point

Trails

Assigning to these names will control model effects and gamecode trails.

  • t_altrocket: Alternate rocket trail, see r_rockettrail
  • t_gib: EF_GIB model flag (Gib)
  • t_grenade: EF_GRENADE model flag (Grenade)
  • t_rocket: EF_ROCKET model flag (Rocket)
  • t_tracer: EF_TRACER model flag (Scrag projectile)
  • t_tracer2: EF_TRACER2 model flag (Knight projectile)
  • t_tracer3: EF_TRACER3 model flag (Vore projectile)
  • t_zomgib: EF_ZOMGIB model flag (Zombie gib)
  • t_blastertrail: Quake 2 EF_BLASTER effect (blaster projectile)
  • t_acidball: Hexen 2 EF_ACIDBALL model flag
  • t_bloodshot: Hexen 2 EF_BLOODSHOT model flag
  • t_boneshard: Hexen 2 EF_BONESHARD model flag (Necromancer bone shard projectiles)
  • t_fireball: Hexen 2 EF_FIREBALL model flag
  • t_ice: Hexen 2 EF_ICE model flag
  • t_magicmissile: Hexen 2 EF_MAGICMISSILE model flag (Necromancer magic missiles)
  • t_scarab: Hexen 2 EF_SCARAB model flag (Assassin scarab weapon projectile)
  • t_setstaff: Hexen 2 EF_SETSTAFF model flag
  • t_spit: Hexen 2 EF_SPIT model flag
  • t_spell: Hexen 2 EF_SPELL model flag
  • t_vorpmissile: Hexen 2 EF_VORPMISSILE model flag

Emitters

Assigning to these names controls fixed emitted effects.

  • ef_entityparticles: NetQuake EF_BRIGHTFIELD

Miscellaneous

  • pe_pointfile: used with pointfile
  • pe_default: default inherited effect for point effects
  • pe_defaulttrail: default inherited effect for trail and beam effects
  • pe_size2: inherited effect for effects with a called count > 20
  • pe_size3: inherited effect for effects with a called count > 130
  • pe_<c>: NetQuake particle call, c is specific color from call
  • pe2[_<e>]_<c>: Hexen 2 particle2 call, e is specific effect number from call which is optional, c is specific color
  • pe3[_<e>]_<c>: Hexen 2 particle3 call, e is specific effect number from call which is optional, c is specific color
  • pe4[_<e>]_<c>: Hexen 2 particle4 call, e is specific effect number from call which is optional, c is specific color


Particle Fields

Fields are in the format of <fieldname> <fieldparam1> ... <fieldparamn> and are seperated by new lines.

Example:

r_part t_grenade
{
   die 0.8
   diesubrand 0.4
   texture "particles/quake"
   step 5
   scale 4
   alpha 0.7
   rgb 192 192 192
   rgbdelta -128 -128 -128
   spawnorg 4
   gravity -40
}

See Particle Field List for a list of fields usable with particle effects.

Special Case Field Inheritance

Associating Effects

Creating effects that call other effects is very simple.

Example:

r_part coolsmokeeffect {
   ...
}
r_part te_explosion {
   ...
   assoc sparksandstuff
}
r_part sparksandstuff {
   ...
   assoc coolsmokeeffect
}

This example calls te_explosion, then sparksandstuff, then coolsmokeeffect with an explosion effect is triggered in the client.

You do not need to define associated effects in any special order. However, the associated chain can not be a loop.

Example:

r_part invalid {
   assoc invalid2
}
r_part invalid2 {
   assoc invalid
}

FTE will reject this.

Associated effects inherit origin, direction, and a count from the original particle call, and not from fields in the parent particle effect.

Spawn Modes

Point effects

  • ball: sphere of particles, filled
  • box (default): square box of particles
  • circle: sphere of particles, empty in middle
  • distball: sphere of particles with a specific distribution
  • field: positioned particle with a specific distribution over time, like Quake 2 files effect
  • lavasplash: a box of particles spread uniformly with unique spawn velocities, like the standard Quake 1 lava splash
  • telebox: a squarish box of particles with unique spawn velocities, like the standard Quake 1 teleporter effect
  • unicircle: like the circle effect except uniformly distributed, x/y plane only

Beam/Trail effects

  • ball: a line of particles with spawns going outward from the center within a circle
  • box (default): a line of particles with spawns going outward from the center within a box
  • circle: a line of particles with spawns going outward from the center in a circle
  • distball: a line of particles with spawns going outward from the center within a distributed circle
  • spiral: spiral trail
    spawnparam1 is the distance per spiral wavelength
  • tracer: a line of particles splitting by alternating between two sides, like the Quake 1 Scrag trail

Particle Types

  • normal, blob: generic textured particle
  • beam: beam particle with two connected points
  • spark: line particle, length changes with velocity
  • sparkfan: triangular spark, size changes with velocity, similar to QMB's sparks
  • texturedspark: uses a texture to create a similar spark to the other two types
  • decal: wall decal (restricted in features compared to other types) EXPERIMENTAL

Creating Ramps

The rampmode field is used to select the ramp type.
The life of the particle is divided into an even segment for every ramp or rampindex field.

Absolute

Absolute ramps change properties to an exact value depending on the current life of the particle.

Example:

r_part absoluteramp
{
   die 5
   count 1
   rampmode absolute
   ramp 255   0   0 1.0 30 // Particle starts with color = red, alpha = 1, scale = 30
   ramp   0 255   0 1.0 20 // After 1 second, color = green, alpha = 1, scale = 20
   ramp   0   0 255 0.5 40 // After 2 seconds, color = blue, alpha = 0.5, scale = 40
   ramp 255 255 255 1.0 50 // After 3 seconds, color = white, alpha = 1, scale = 50
   ramp   0   0   0 0.5 10 // After 4 seconds, color = black, alpha = 0.5, scale = 10
}

Delta

Delta ramps change the rate of change depending on the current life of the particle.

Example:

r_part deltaramp
{
   die 3
   count 1
   rampmode delta
   alpha 1
   scale 30
   rgb 255 255 255
   // The particle starts out white, with full alpha and a scale of 30
   ramp   0    0    0 0 -10 // The particle starts with drop of 10 scale per second
   ramp   0 -255    0 0   0 // After 1 second, there is a drop of 255 green per second
   ramp   0    0    0 1   0 // After 2 seconds, there is a drop of 1 alpha per second
}

That's not a typo with the ramp alpha change. Blame Spike for that.

Using Emitters

To emit particles, use the emit field to name the particle effect to emit. Set emitinterval, emitinvervalrand, and emitstart properties to control how often and when to emit particles.