Scripted Effects (quick help)

I know how to make scripted entities and scripted weapons, but how do I make scripted effects?? Just looking for how I set up the table and client, server, and shared files.

This would be a shared script that you throw into entities/effects/ as myeffectname.lua. (Not in its own folder)

Effects don’t have to be particle emitters, they can be used to draw models and all sorts of stuff.

[lua]
function EFFECT:Init( Data )

local vPos = Data:GetOrigin();
local iParticles = 32;
local fSpeed = 512;

-- Create dat emitter
local Emitter = ParticleEmitter( vPos, true );

-- Emit dem particles yo.
for i = 0, iParticles do

	-- Create da particaul
	local Particle = Emitter:Add( "particles/balloon_bit", vPos );
	
	-- If it wer created success
	if ( Particle ) then
	
		local vDir = Vector( math.Rand( -1, 1 ), math.Rand( -1, 1 ), math.Rand( -1, 1 ) );
		
		Particle:SetVelocity( vDir * fSpeed );
		Particle:SetLifeTime( 0 );
		Particle:SetDieTime( 10 );
		Particle:SetStartAlpha( 255 );
		Particle:SetEndAlpha( 255 );
		Particle:SetStartSize( 1 );
		Particle:SetEndSize( 1 );
		Particle:SetRoll( math.Rand( 0, 360 ) );
		Particle:SetRollDelta( math.Rand( 0.8, 1.0 ) );
		
		-- They're rainbow particles.
		Particle:SetColor( math.random( 255 ), math.random( 255 ), math.random( 255 ) );
		
		-- The balloon bits quickly lose speed and fall to the ground.
		Particle:SetAirResistance( 50 );
		Particle:SetGravity( Vector( 0, 0, -300 ) );
		
		-- They run into solid objects.
		Particle:SetCollide( true );
		
		-- Other stuffffs
		Particle:SetBounce( 1 );
		Particle:SetLighting( true );
	
	end
	
end

-- After we emit the particles, we should destroy the emitter.
Emitter:Finish();

end

function EFFECT:Think()
return false; – No thinking for this particle.
end

function EFFECT:Render()
– In-case you made an effect that did other things like render a laser or model then
– you could put that shit right in here and WAH-BAM. pootis
end
[/lua]

Thanks!! :smiley: