Table of Contents

Summary

Overview

An effect element is an element that defines how to paint something on the screen. For example, weapons use an <Effect> element to define how to paint a projectile. Not all effect elements are called <Effect>. For example, weapons also have a <FireEffect> element that describes how to paint the muzzle-flash for the weapon.

In all cases, an effect element contains 0 or more sub-elements called painters. Each painter defines a particular type of paint effect. For example, an <Image> painter is used to paint a bitmap. If more than one painter is specified, they are painted in order, one of top of the other.

Suggesstion for laser colors.

The following painters exist:

new in 1.06
<Beam>

<Beam>

Version: 1.06 and above.

beamType= Choose from one of many styles (list taken from TSE\SFXBeam.cpp)

primaryColor= Hexidecimal for the primary color.

secondaryColor= Hexidecimal for the secondary color.

intensity= Increases beam width (discovered by Hatsya)

<Bolt>

length= The length of the bolt in pixels.

width= The width of the bolt in pixels.

primaryColor= The primary color.

secondaryColor= The secondary color.

<Flare>

style= One of the following:

radius= The radius in pixels.

lifetime= The lifetime of the effect in ticks.

<Image>

imageID= UNID of the image to use.

imageX= X-coordinate of the upper-left of the image to use.

imageY= Y-coordinate of the upper-left of the image to use.

imageWidth= Width of the image in pixels.

imageHeight= Height of the image in pixels.

lifetime= Ticks to show image.

imageFrameCount= Number of animation frames in the image. If the effect lasts longer than the number of frames then the animation starts again from the beginning.

imageTicksPerFrame= Ticks to show each frame (valid only if imageFrameCount is non-zero).

randomStartFrame= If true, then start at a random frame (valid only if imageFrameCount is non-zero).

rotationCount= Number of rotation frames.

<ImageAndTail>

Same attributes as <Image> plus the following additional attributes:

length= Length of the tail in pixels.

width= Width of the tail in pixels.

primaryColor= Primary color of the tail.

secondaryColor= Secondary color of the tail.

<MoltenBolt>

length= Length of the bolt in pixels.

width= Width of the bolt in pixels.

growth= If non-zero, the length of the bolt will increase by this number of pixels on each tick (up to a maximum of 8 ticks).

primaryColor= Primary color of bolt.

secondaryColor= Secondary color of bolt.

<Particle>

This painter is used for weapons of type=particles.

style= One of:

minWidth= The minimum width of the particle in pixels.

maxWidth= The maximum width of the particle in pixels.

primaryColor= The primary color of the particle.

secondaryColor= The secondary color of the particle.

<ParticleCloud>

Version: 1.08 and above.

This painter creates a cloud of particles with various shapes and behaviors.

style= One of:

lifetime= The lifetime of the effect in ticks (expressed as a dice range). The value -1 means that the effect is immortal (lasts forever).

emitDuration= The amount of time during which the effect will create new particles. For immortal effects this is expressed as a number of ticks. For effects with a limited lifetime, this is expressed as a % of the total lifetime.

emitRate= The number of new particles to create per tick (expressed as a dice range).

emitSpeed= The speed of a newly created particle (as a percent of light speed, expressed as a dice range).

particleCount= The number of particles initially created; these will appear immediately when the effect starts. The position and velocity of the initially created particles depends on the style. This property is a dice range.

particleLifetime= The lifetime a particle in the cloud in ticks. A value of -1 means that particles live forever. This property is a dice range.

radius= For cloud effects, this is the maximum radius of the cloud. For ring effects this is the radius of the ring. (expressed in pixels).

ringWidth= For ring effects, this is the radius of the ring in pixels.

cohesion= This is a value from 0 to 100 specifying the cohesion of the particles. Higher values accelerate the particles towards the center of the effect.

viscosity= This is a value from 0 to 100 specifying the tendency of the particles to move out of their designated shape (either cloud or ring). With higher values, particles tend to stay within the effect's shape.

wakePotential= This is a value from 0 to 100 specifying the tendency of the particles to be affected by objects (such as ships) moving through them.

<ParticleEffect> This sub-element defines the effect to use to paint each particle. You may use any valid painter (or set of painters), but the <Particle> painter is the most efficient.

<ParticleComet>

width= Width of the comet in pixels.

length= Length of the comet in pixels.

particleCount= Number of particles in the comet.

primaryColor= Primary color of the particles.

<ParticleExplosion>

particleCount= The number of particles in the explosion (this is a dice range).

particleSpeed= The speed of each particle in % of light-speed.

particleLifetime= The lifetime of each particle (in ticks).

lifetime= The lifetime of the effect (expressed as a dice range).

<Image> A sub-element that defines the image to use for each particle.

<PlasmaSphere>

spikeCount= The number of spikes, expressed as a dice range. The number of spikes is computed on each frame.

spikeLength= The length of each spike, in pixels, expressed as a dice range. Each spike's length is computed independently on each frame.

primaryColor= The primary color of the sphere.

secondaryColor= The secondary color of the sphere.

<Polyflash>

This painter paints a muzzle-flash. It has no attributes.

<Shape>

This painter draws a filled polygon defined by the <Point> sub-elements.

width= The width of the polygon in pixels

length= The length of the polygon in pixels.

widthInc= Each tick, the width is increased by this number of pixels.

lengthInc= Each tick, the length is increased by this number of pixels.

color= The color of the polygon.

opacity= The opacity of the polygon (0 = transparent; 255 = opaque).

directional= If true, then the polygon is oriented along the appropriate direction (e.g., the direction in which the projectile was fired).

<Point>

The <Point> sub-element determines a corner of the shape you are making. It consists only of an x and y value. Negative values are declared by placing a minus (-) sign before the value; the game will treat the value as positive otherwise.

x= The vertical location of the point. Positive value: up; negative value: down.

y= The horizontal location of the point. Positive value: left; negative value: right.

<Point x="0" y="0"/>
<Point x="-35" y="50"/>
<Point x="-100" y="0"/>
<Point x="-35" y="-50"/>

The <Point> sub-elements must be declared in clockwise or anti-clockwise order for the shape to look right. In the above example, the <Point> sub-elements are declared in a clockwise manner, creating a diamond shape.

<Shockwave>

style= One of the following:

speed= The speed with which the shockwave expands (as % of light-speed).

lifetime= The lifetime of the shockwave in ticks.

fadeStart= The point at which the shockwave begins to fade (expressed as a percent of lifetime).

style=glowRing

This style paints an expanding, glowing ring. It includes the following attributes:

primaryColor= The primary color of the ring.

secondaryColor= The secondary color of the ring.

width= The width of the ring in pixels (i.e., the thickness of the ring).

glowWidth= The width of the glowing part of the ring in pixels (generally greater than the width).

style=image

This style using an image to paint the shockwave.

<Image> An element describing the image to use.

<SmokeTrail>

lifetime= The lifetime of the effect in ticks.

spread= The width of the particle spray (expressed as units proportional to the angular spread). This is a dice range.

emitDuration= The amount of time that new particles are being emitted (expressed as a percentage of total lifetime).

emitRate= The number of particles emitted on each tick. This is a dice range.

emitSpeed= The speed of each particle, as a percent of light-speed. This is a dice range.

particleLifetime= The lifetime (in ticks) of an individual particle expressed as a dice range.

<ParticleEffect> This sub-element defines the effect to use to paint each particle. You may use any valid painter (or set of painters), but the <Particle> painter is the most efficient.

<Starburst>

style= One of the following:

lifetime= The lifetime of the effect in ticks.

spikeCount= The number of spikes to paint (this is a dice range computed on every tick).

spikeLength= The length of each spike in pixels (this is a dice range computed for each spike on every tick).

primaryColor= The primary color.

secondaryColor= The secondary color.

Suggested Colors

(Taken from here)
Lasers: red, green, or purple (in ascending order of strength)
Kinetic: gray
Particle: green, with particulate texture
Blast: flame
Ion: cyan
Thermo: flame/orange
Positron: yellow, with particulate texture
Plasma: yellow
Antimatter: yellow
Nano: various (gray/green/etc) but with complex texture
Graviton: purple/violet
Singularity: black/white/violet
Dark Acid: teal
Dark Steel: gray-green
Dark Lightning: blue
Dark Fire: red

For lasers, we should probably avoid yellow and blue (to avoid confusion with positron/antimatter and ion). If you want to create new laser styles I recommend mixing in more white (to make the beam whiter). For example, I imagine a gamma-ray laser could be white with fringes of violet/purple.

API 20 (1.3 Beta 1 )

From wolfy's post.
Beam types

lightning
lightningBolt
heavyblaster
greenparticle
blueparticle
blaster
starblaster
greenlightning
jaggedBolt

Ray types

fade
diamond
oval
straight
tapered
cone
wavy
smooth
jagged
grainy

No Hiteffects

Source: http://forums.kronosaur.com/viewtopic.php?f=3&t=6731&p=59534#p59526

<HitEffect>
   <Null/>
</HitEffect>