Installation - Torque3D-Resources/IPS-Lite-for-T3D GitHub Wiki

You will need to add a float to the particle struct in T3D/fx/Particle.h.

The float should be called relPos and should be of type F32

After compiling here is the steps you need to take if you want the emitters to show up in the world editor: In gametools/worldEditor/gui/objectBuilderGui.ed.gui

Add:

function ObjectBuilderGui::buildGraphEmitterNode(%this)
{
   %this.objectClassName = "GraphEmitterNode";
   %this.addField("dataBlock", "TypeDataBlock", "datablock", "GraphEmitterNodeData");
   %this.addField("emitter",   "TypeDataBlock", "Particle data", "GraphEmitterData");
   %this.process();
}

function ObjectBuilderGui::buildMeshEmitter(%this)
{
   %this.objectClassName = "MeshEmitter";
   %this.addField("dataBlock", "TypeDataBlock", "datablock", "MeshEmitterData");
   %this.process();
}

function ObjectBuilderGui::buildRadiusMeshEmitter(%this)
{
   %this.objectClassName = "RadiusMeshEmitter";
   %this.addField("dataBlock", "TypeDataBlock", "datablock", "RadiusMeshEmitterData");
   %this.process();
}

function ObjectBuilderGui::buildGroundEmitterNode(%this)
{
   %this.objectClassName = "GroundEmitterNode";
   %this.addField("dataBlock", "TypeDataBlock", "datablock", "GroundEmitterNodeData");
   %this.addField("emitter",   "TypeDataBlock", "Particle data", "GroundEmitterData");
   %this.process();
}

function ObjectBuilderGui::buildMaskEmitterNode(%this)
{
   %this.objectClassName = "MaskEmitterNode";
   %this.addField("dataBlock", "TypeDataBlock", "datablock", "MaskEmitterNodeData");
   %this.addField("emitter",   "TypeDataBlock", "Particle data", "MaskEmitterData");
   %this.process();
}

function ObjectBuilderGui::buildParticleEffect(%this)
{
   %this.objectClassName = "ParticleEffect";
   %this.addField("dataBlock", "TypeDataBlock", "datablock", "ParticleEffectData");
   %this.process();
}

After:

function ObjectBuilderGui::buildParticleEmitterNode(%this)

And in gametools/worldEditor/scripts/editors/creator.ed.cs

Remove this line from Environment group:

%this.registerMissionObject( "ParticleEmitterNode", "Particle Emitter" );  

And add this block before %this.beginGroup( "Level" );

   %this.beginGroup( "ParticleSystem" );
      
   %this.registerMissionObject( "ParticleEmitterNode", "Particle Emitter" );
   %this.registerMissionObject( "GraphEmitterNode", "Graph Emitter" );
   %this.registerMissionObject( "GroundEmitterNode", "Ground Emitter" );
   %this.registerMissionObject( "MeshEmitter", "Mesh Emitter" );
   %this.registerMissionObject( "radiusMeshEmitter", "Radius Mesh Emitter" );
   %this.registerMissionObject( "MaskEmitterNode", "Mask Emitter" );
   %this.registerMissionObject( "ParticleEffect", "Particle Effect" );
   
   %this.endGroup();