ObjectType = ParticleEmitter
{
    Vec3 ConstantForce
    {
        float X = 0;
        
        float Y = 0;
        
        float Z = 0;
    }
    
    float EmissionRate = 0.05;
    
    unsigned int ParticlesPerEmission = 1;
    
    bool UniformScaling = true;
    
    unsigned int ParticlesPerEmissionMod = 1;
    
    float Rotation = 0;
    
    Vec3 Position
    {
        float X = 0;
        
        float Y = 0;
        
        float Z = 0;
    }
    
    bool FaceEmitter = false;
    
    bool UseLocalTransform = true;
    
    bool Visible = true;
    
    bool RotationalVelocity = true;
    
    float AttrValMod = 1;
    
    unsigned int ParticleAmount = 4;
    
    unsigned int RenderingType = 0;
    
    std::pair<float, float> InitialLifeRange
    {
        float First = 2;
        
        float Second = 2;
    }
    
    char* ParticleTexture = "Radar_BlurPing";
    
    unsigned int EmitterType = 2;
    
    float Ring_InnerRadius = 0;
    
    float Ring_OuterRadius = 2;
    
    float Ring_StartingAngle = 0;
    
    float Ring_EndingAngle = 360;
    
    float Rectangle_InnerWidth = 0;
    
    float Rectangle_OuterWidth = 10;
    
    ParticleAttribute ParticleAttributes
    [
        Element = "ScaleX"
        {
            std::pair<float, float> StartingRange
            {
                float First = 0;
                
                float Second = 0;
            }
            
            std::pair<float, float> EndingRange
            {
                float First = 40;
                
                float Second = 40;
            }
            
            bool EndingRangeEnabled = true;
            
            float ValueModifier = 1;
            
            unsigned int m_AttributeType = 0;
        }
        
        Element = "ScaleY"
        {
            std::pair<float, float> StartingRange
            {
                float First = -5;
                
                float Second = 5;
            }
            
            std::pair<float, float> EndingRange
            {
                float First = -5;
                
                float Second = 5;
            }
            
            bool EndingRangeEnabled = false;
            
            float ValueModifier = 1;
            
            unsigned int m_AttributeType = 0;
        }
        
        Element = "Rotation"
        {
            std::pair<float, float> StartingRange
            {
                float First = -6.28319;
                
                float Second = 6.28319;
            }
            
            std::pair<float, float> EndingRange
            {
                float First = -6.28319;
                
                float Second = 6.28319;
            }
            
            bool EndingRangeEnabled = false;
            
            float ValueModifier = 1;
            
            unsigned int m_AttributeType = 0;
        }
        
        Element = "LinVelDirX"
        {
            std::pair<float, float> StartingRange
            {
                float First = -1;
                
                float Second = 1;
            }
            
            std::pair<float, float> EndingRange
            {
                float First = -1;
                
                float Second = 1;
            }
            
            bool EndingRangeEnabled = false;
            
            float ValueModifier = 1;
            
            unsigned int m_AttributeType = 0;
        }
        
        Element = "LinVelDirY"
        {
            std::pair<float, float> StartingRange
            {
                float First = -1;
                
                float Second = 1;
            }
            
            std::pair<float, float> EndingRange
            {
                float First = -1;
                
                float Second = 1;
            }
            
            bool EndingRangeEnabled = false;
            
            float ValueModifier = 1;
            
            unsigned int m_AttributeType = 0;
        }
        
        Element = "LinVelDirZ"
        {
            std::pair<float, float> StartingRange
            {
                float First = -1;
                
                float Second = 1;
            }
            
            std::pair<float, float> EndingRange
            {
                float First = -1;
                
                float Second = 1;
            }
            
            bool EndingRangeEnabled = false;
            
            float ValueModifier = 1;
            
            unsigned int m_AttributeType = 0;
        }
        
        Element = "LinVelSpeed"
        {
            std::pair<float, float> StartingRange
            {
                float First = 0;
                
                float Second = 0;
            }
            
            std::pair<float, float> EndingRange
            {
                float First = -100;
                
                float Second = 100;
            }
            
            bool EndingRangeEnabled = false;
            
            float ValueModifier = 1;
            
            unsigned int m_AttributeType = 0;
        }
        
        Element = "ColorR"
        {
            std::pair<float, float> StartingRange
            {
                float First = 255;
                
                float Second = 255;
            }
            
            std::pair<float, float> EndingRange
            {
                float First = 0;
                
                float Second = 255;
            }
            
            bool EndingRangeEnabled = false;
            
            float ValueModifier = 1;
            
            unsigned int m_AttributeType = 2;
        }
        
        Element = "ColorG"
        {
            std::pair<float, float> StartingRange
            {
                float First = 255;
                
                float Second = 255;
            }
            
            std::pair<float, float> EndingRange
            {
                float First = 0;
                
                float Second = 255;
            }
            
            bool EndingRangeEnabled = false;
            
            float ValueModifier = 1;
            
            unsigned int m_AttributeType = 2;
        }
        
        Element = "ColorB"
        {
            std::pair<float, float> StartingRange
            {
                float First = 255;
                
                float Second = 255;
            }
            
            std::pair<float, float> EndingRange
            {
                float First = 0;
                
                float Second = 255;
            }
            
            bool EndingRangeEnabled = false;
            
            float ValueModifier = 1;
            
            unsigned int m_AttributeType = 2;
        }
        
        Element = "ColorIntensity"
        {
            std::pair<float, float> StartingRange
            {
                float First = 1;
                
                float Second = 1;
            }
            
            std::pair<float, float> EndingRange
            {
                float First = 0;
                
                float Second = 1;
            }
            
            bool EndingRangeEnabled = false;
            
            float ValueModifier = 1;
            
            unsigned int m_AttributeType = 0;
        }
        
        Element = "Alpha"
        {
            std::pair<float, float> StartingRange
            {
                float First = 1;
                
                float Second = 1;
            }
            
            std::pair<float, float> EndingRange
            {
                float First = 0;
                
                float Second = 0;
            }
            
            bool EndingRangeEnabled = true;
            
            float ValueModifier = 1;
            
            unsigned int m_AttributeType = 0;
        }
    ]
    
    float Rectangle_InnerHeight = 0;
    
    float Rectangle_OuterHeight = 10;
    
    unsigned int RenderingLayer = 0;
}

