Jump to content

HotRockets! Particle FX Replacement + Tutorial


Nazari1382

Recommended Posts

Hi. I m trying to make a MM patch for my engine with these cool effects. But I m having troubles with the ModuleEnginesFX. I managed to get the effect to work but only after the first ignition. If I leave the craft and come back to it, the effect doesn't work anymore. Is that a common problem with ModuleEnginesFX or my configs are bad? Seeing the stock engines with ModuleEnginesFX don't have a HotRocket config I can't make sure of it. Below are my configs, Thanks for having a look. Also I don't understand the offset parameters. Right now the effect is too far away from the thrustTransform gizmo and I can't seem to get it closer.

Spoiler

MM patch for one engine:


@PART[OctoSat_Pr_Nuclear]:NEEDS[HotRockets] // OctoSat - Nervette
{
	!EFFECTS {}
	EFFECTS
	{
		powerflame
		{
			MODEL_MULTI_PARTICLE_PERSIST
			{
				name = flamethrust
				modelName = MP_Nazari/FX/flamenuke
				transformName = thrustTransform
				offset = 0.0 -2.0
				offset = 1.0 -2.0
				size = 0.0 0.1
				size = 1.0 0.25
				emission = 0.0 0.0
				emission = 0.05 0.99
				emission = 0.75 1.21
				emission = 1.0 1.25
				speed = 0.0 1.7
				speed = 1.0 1.1
				energy = 0.0 0.15 // Same for energy
				energy = 1.0 0.5 // Same for energy
				fixedEmissions = false
			}
			AUDIO
			{
				channel = Ship
				clip = sound_rocket_hard
				volume = 0.0 0.0
				volume = 1.0 1.0
				pitch = 0.0 0.2
				pitch = 1.0 1.0
				loop = true
			}
		}
		engage
		{
			AUDIO
			{
				channel = Ship
				clip = sound_vent_medium
				volume = 1.0
				pitch = 2.0
				loop = false
			}
		}
		disengage
		{
			AUDIO
			{
				channel = Ship
				clip = sound_vent_soft
				volume = 1.0
				pitch = 2.0
				loop = false
			}
		}
		flameout
		{
			AUDIO
			{
				channel = Ship
				clip = sound_explosion_low
				volume = 1.0
				pitch = 2.0
				loop = false
			}
		}
	}
	@MODULE[ModuleEnginesFX]
	{
		%powerEffectName = powerflame
	}
	@MODULE[ModuleEngineConfigs]
	{
		%type = ModuleEnginesFX
	}
}

So this works after the first ignition but not when you come back to the craft. And I ran out of ideas and understanding of all this to try other stuff.

And as a reference these are the engines' standard modules:


	EFFECTS
	{
		running
		{
			AUDIO
			{
				channel = Ship
				clip = sound_rocket_mini
				volume = 0.0 0.0
				volume = 1.0 1.0
				pitch = 0.0 0.75
				pitch = 1.0 0.95
				loop = true
			}
			PREFAB_PARTICLE
			{
				prefabName = fx_exhaustFlame_yellow_tiny_Z
				transformName = thrustTransform
				emission = 0.0 0.0
				emission = 1.0 1.0
				speed = 0.0 0.8
				speed = 1.0 1.0
			}
		}
		engage
		{
			AUDIO
			{
				channel = Ship
				clip = sound_vent_medium
				loop = false
			}
		}
		disengage
		{
			AUDIO
			{
				channel = Ship
				clip = sound_vent_soft
				loop = false
			}
		}
	}
	MODULE
	{
		name = ModuleEnginesFX
		thrustVectorTransformName = thrustTransform
		exhaustDamage = True
		ignitionThreshold = 0.1
		minThrust = 0
		maxThrust = 7
		heatProduction = 1150
//		fxOffset = 0, 0, 1.6
		EngineType = Nuclear
		PROPELLANT
		{
			name = LiquidFuel
			ratio = 0.9
			DrawGauge = True
		}
		atmosphereCurve
		{
			key = 0 650
			key = 1 85
			key = 2 0.001
		}
	}

 

It works perfectly with my other engine using ModuleEngines. Thanks for the great work!

Edited by Nookos
Link to comment
Share on other sites

  • 5 weeks later...
1 hour ago, davidtman said:

It appears all of my rockets have the new particle effect except for the Poodle. The Poodle emits smoke but to effects.  How do I change this?

None at all ? The Poodle isn't for atmosphere launches it just has a small plum and if you try a atmosphere launch you do get alot of smoke but you can see that it has a plum but be quick before you can't see through all the smoke :)

Link to comment
Share on other sites

18 hours ago, MeCripp said:

None at all ? The Poodle isn't for atmosphere launches it just has a small plum and if you try a atmosphere launch you do get alot of smoke but you can see that it has a plum but be quick before you can't see through all the smoke :)

In a vacuum it has no flame. Very sad since the Poodle is my main second stage. I just installed hot rockets a couple of weeks ago on the latest version of KSP.

Link to comment
Share on other sites

4 hours ago, davidtman said:

In a vacuum it has no flame. Very sad since the Poodle is my main second stage. I just installed hot rockets a couple of weeks ago on the latest version of KSP.

Can you post a screen shot ? I just tested it and it works just fine.

Link to comment
Share on other sites

1 hour ago, davidtman said:

Well I have the screen shot, but for some reason cannot paste it. Believe me there is no flame. 

We're beating a dead kerbal here but to make you happy, I run a test real quick and then send you a PM with a new cfg that might make you happy and, I leave it at that

Link to comment
Share on other sites

1 hour ago, the_machemer said:

Can anyone tell me how to remove the particle effects from the J-33 Wheesley Turbofan engine? Since they changed the way it looks, it seems kind of inappropriate for it to be shooting flames out the back.

Open the squad hotrockets cfg and found

@PART[JetEngine]:FOR[HotRockets] //Basic Jet Engine             <--------------   you can take the @ out or change it to //@PART  or delete
{

	!EFFECTS
	EFFECTS
	{
		powerflame
		{
			MODEL_MULTI_PARTICLE_PERSIST
			{
				name = flamejet3
				modelName = MP_Nazari/FX/flamejet3
				transformName = thrustTransform
				emission = 0.0 0.0
				emission = 0.42 0.0
				emission = 0.54 1.55
				emission = 1.0 1.78
				speed = 0.0 1.45
				speed = 1.0 0.55
				energy = 0.0 0.05 // Same for energy
				energy = 0.5 0.77 // Same for energy
				energy = 1.0 0.99 // Same for energy
				fixedEmissions = false
			}
		}
		powersmoke
		{
			AUDIO
			{
				name = sndjet1
				channel = Ship
				clip = sound_jet_low
				volume = 0.0 0.0
				volume = 0.0001 1.12
				volume = 1.0 1.32
				pitch = 0.0 0.3
				pitch = 1.0 1.0
				loop = true
			}
			AUDIO
			{
				name = sndjet2
				channel = Ship
				clip = sound_jet_deep
				volume = 0.1 0.0
				volume = 0.3 1.12
				volume = 1.0 1.25
				pitch = 0.0 0.3
				pitch = 1.0 1.0
				loop = true
			}
			MODEL_MULTI_PARTICLE_PERSIST
			{
				name = smokethrust
				modelName = MP_Nazari/FX/smokejet
				transformName = thrustTransform
				emission = 0.0 0.0  // Curve for emission like stock
				emission = 0.2 0.0  // Curve for emission like stock
				emission = 0.4 0.4  // Curve for emission like stock
				emission = 1.0 1.1  // Curve for emission like stock
				energy = 0.0 0.0 // Same for energy
				energy = 1.0 3.2 // Same for energy
				speed = 0.0 1.0  // And speed
				speed = 1.0 0.8  // And speed
				grow = 0.0 0.0 // Grow the particles at 0% per seconds ( 0.02 would be 2% )
				grow = 1.0 0.15 // Grow the particles at 0% per seconds ( 0.02 would be 2% )
				scale = 0.0 1.0 // Rescale the emitters to +0%
				scale = 1.0 1.0 // Rescale the emitters to +0%
				offset = 0.0 0.0  // Move the particle emitter away from its default position by x meters
				offset = 1.0 0.5  // Move the particle emitter away from its default position by x meters	
				size = 0.0 1.0 // Rescale the particles to +0%
				size = 1.0 1.1 // Rescale the particles to +0%
				
				renderMode = "Billboard"  // Render mode : Billboard / SortedBillboard / HorizontalBillboard / VerticalBillboard / Stretch
				collide = false // Collision active or not
				collideRatio = 0 // how the particles react on collision. 1 is a mirror bounce, 0 is go parallel to the hit surface
				fixedScale = 1.0 // Fixed rescale of the particle emitter (for when you rescale the model)
				
				sizeClamp = 50 // Limits particle size. Default to 50
				// ***************
				// From here the value are not the default anymore. 
				// ***************
				angle = 0.0 1.0 // Display if the angle between the emitter transform and camera is lower than 45° 	
				angle = 45.0 1.0
				angle = 50.0 1.0
				distance = 0.0 1.0 // Display if the distance to camera is higher than 110
				distance = 100.0 1.0
				distance = 110.0 1.0
				
				energy  // Modulate energy from mach and density curve. 
				{

					density = 1.0 1.0
					density = 0.4 1.0 // don't display over .4 atmo
					density = 0.3 1.0 
					density = 0.002 1.0
					density = 0.001 0.0 // and stop under .001
				}		
			}
		}
	}
	@MODULE[ModuleEnginesFX]
	{
		//@name = ModuleEnginesFX
		//engineID = rocketengine
		//flameoutEffectName = flameout
		%powerEffectName = powerflame
		//engageEffectName = engage
		//disengageEffectName = disengage
		%spoolEffectName = powersmoke
		// old effect names
		//runningEffectName = powersmoke
		//directThrottleEffectName = powerflame
		!fxOffset
		
	}
	@MODULE[ModuleEngineConfigs]
	{
		%type = ModuleEnginesFX
	}
}

 

Link to comment
Share on other sites

  • 2 weeks later...

EDIT: I figured out the problem, but when I switch modes the FX doesn't display.

 

I followed the tutorial and this keeps happening. Also the engine is not on...  :huh:

What did I do wrong?

 

jtPGy03.png

 

Hm5kFyh.png

 

PART
{
	name = EHI_NODACHI
	module = Part
	author = Eskandare
	mesh = nodachi.mu
	scale = 1.0
        rescaleFactor = 1.0
	
	node_stack_top = 0.0,1.0,0.0 , 0.0, 1.0, 0.0
        // node_stack_bottom = 0.0, -1.731957, 0.0, 0.0, -1.0, 0.0


	CoMOffset = 0.0, 3.2, 0.0

	mass = 6.0
	// heatConductivity = 0.06 // half default
	emissiveConstant = 0.89 // engine nozzles are good at radiating.
        skinInternalConductionMult = 4.0
	dragModelType = default
	maximum_drag = 0.2
	minimum_drag = 0.2
	angularDrag = 2
	crashTolerance = 20
	maxTemp = 2000 // = 3000
        TechRequired = nuclearPropulsion
	entryCost = 82500
	cost = 9000
	category = Engine
	subcategory = 0
	title = MX-02X N.O.D.A.C.H.I.
	manufacturer = E.H.I. Atomic Energy Division
	description = TO DO
	attachRules = 1,0,0,0,1
	bulkheadProfiles = size2

// --- Engine Setup ---

EFFECTS
	{
		running_closed
		{
			AUDIO
			{
				channel = Ship
				clip = sound_rocket_hard
				volume = 0.0 0.0
				volume = 1.0 1.0
				pitch = 0.0 0.2
				pitch = 1.0 1.0
				loop = true
			}
			PREFAB_PARTICLE
			{
				prefabName = fx_smokeTrail_aeroSpike
				transformName = smokePoint
				emission = 0.0 0.0
				emission = 0.05 0.0
				emission = 0.075 0.25
				emission = 1.0 1.25
				speed = 0.0 0.25
				speed = 1.0 1.0
				localOffset = 0, 0, 1
			}
			MODEL_MULTI_PARTICLE_PERSIST
			{
				name = flamethrust
				modelName = Eskandare_Heavy_Industries/Thermal_Nuclear/FX/FX_rocket2
				transformName = thrustTransform
				emission = 0.0 0.0
				emission = 0.05 0.99
				emission = 0.75 1.21
				emission = 1.0 1.25
				speed = 0.0 1.98
				speed = 1.0 1.22
				energy = 0.0 0.33 // Same for energy
				energy = 1.0 0.99 // Same for energy
				fixedEmissions = false
			}
			

		}
		power_open
        {
            MODEL_MULTI_PARTICLE
            {
                name = flamejet
                modelName = Eskandare_Heavy_Industries/Thermal_Nuclear/FX/FX_jet2
                transformName = thrustTransform
                emission = 0.0 0.0
                emission = 0.93 0.0
                emission = 0.95 1.1
                emission = 1.0 1.2
                speed = 0.0 1.0
                speed = 1.0 1.0
            }
			
            //MODEL_MULTI_PARTICLE
            //{
            //    name = flamejet2
            //    modelName = Eskandare_Heavy_Industries/Thermal_Nuclear/effects/engineFX2
            //    transformName = thrustTransform
            //    emission = 0.0 0.0
            //    emission = 0.93 0.0
            //    emission = 0.95 1.1
            //    emission = 1.0 1.2
            //    speed = 0.0 1.0
            //    speed = 1.0 1.0
            //}
			AUDIO
            {
                channel = Ship
                clip = Eskandare_Heavy_Industries/Thermal_Nuclear/sounds/afterburner
                volume = 0.0 0.0
				volume = 0.25 0.0
				volume = 0.26 0.5
				volume = 0.93 0.55
				volume = 0.935 1	
                volume = 1.0 1
                pitch = 0.0 0.7
				pitch = 0.93 0.8
				pitch = 0.95 1.0
                pitch = 1.0 1.0
                loop = true
            }
        }
		running_open
		{
			PREFAB_PARTICLE
            {
                name = flamethrust2
                prefabName = fx_smokeTrail_light 
                transformName = smokePoint
                emission = 0.0 0.0
                emission = 0.05 0.0
                emission = 0.075 0.25
                emission = 1.0 1.25
                speed = 0.0 0.25
                speed = 1.0 1.0
                localOffset = 0, 0, 1
            }
			AUDIO
            {
                channel = Ship
                clip = Eskandare_Heavy_Industries/Thermal_Nuclear/sounds/jet
                volume = 0.0 0.0
				volume = 0.05 0.3
                volume = 1.0 0.4
                pitch = 0.0 0.0
				pitch = 0.1 0.4
				pitch = 0.93 1.2
				pitch = 0.95 1.5
                pitch = 1.0 1.52
                loop = true
            }

        }
        engage
        {
            AUDIO
            {
                channel = Ship
                clip = sound_vent_medium
                volume = 1.0
                pitch = 2.0
                loop = false
            }
        }
        disengage
        {
            AUDIO
            {
                channel = Ship
                clip = sound_vent_soft
                volume = 1.0
                pitch = 2.0
                loop = false
            }
        }
        flameout
		{
			PREFAB_PARTICLE
			{
				prefabName = fx_exhaustSparks_flameout_2
				transformName = thrustTransform
				oneShot = true
			}
			AUDIO
			{
				channel = Ship
				clip = sound_explosion_low
				volume = 1.0
				pitch = 2.0
				loop = false
			}
		}
	}
	MODULE
	{
		name = MultiModeEngine
		primaryEngineID = AirBreathing
		secondaryEngineID = ClosedCycle
	}
	
	MODULE
	{
		name = ModuleEnginesFX
		engineID = AirBreathing
		flameoutEffectName = flameout
		spoolEffectName = power_open
		powerEffectName = running_open
		engageEffectName = engage
		disengageEffectName = disengage
		//powerEffectName = power_open
		//runningEffectName = running_open
		thrustVectorTransformName = thrustTransform
		exhaustDamage = True
		ignitionThreshold = 0.33
		minThrust = 0
		maxThrust = 155
		heatProduction = 180
		useEngineResponseTime = True
		engineAccelerationSpeed = 0.27
		engineDecelerationSpeed = 0.35
		useVelocityCurve = False		
		//spoolEffectName = running_open
		engineSpoolIdle = 0.05
		engineSpoolTime = 2.0
		EngineType = Nuclear
		PROPELLANT
        {
             name = IntakeAtm
             ratio = 1
		     DrawGauge = True
        }
		atmosphereCurve
		{
			key = 0 6400 0 0
		}
		// Jet params
		atmChangeFlow = True
		useVelCurve = True
		useAtmCurve = True
		// no mach limit
		velCurve
		{
			key = 0 1 0 0.08333334
			key = 0.2 0.98 0.42074 0.42074
			key = 0.7 1.8 2.290406 2.290406
			key = 1.4 4.00 3.887193 3.887193
			key = 3.75 8.5 0 0
			key = 4.5 7.3 -2.831749 -2.831749
			key = 5.5 3 -5.260566 -5.260566
			key = 6 0 -0.02420209 0
		}
		atmCurve
		{
			// higher thrust at altitude than even TRJ
			key = 0 0 0 0
			key = 0.018 0.09 7.914787 7.914787
			key = 0.08 0.3 1.051923 1.051923
			key = 0.35 0.5 0.3927226 0.3927226
			key = 1 1 1.055097 0
		}
	}
	MODULE
	{
		name = ModuleEnginesFX
		engineID = ClosedCycle
		runningEffectName = running_closed
		thrustVectorTransformName = thrustTransform
		exhaustDamage = True
		ignitionThreshold = 0.1
		minThrust = 0
		maxThrust = 110
		heatProduction = 200
		fxOffset = 0, 0, 0.25
		EngineType = Nuclear
		PROPELLANT
		{
			name = LiquidFuel
			resourceFlowMode = STAGE_PRIORITY_FLOW
			ratio = 0.9
			DrawGauge = True
		}
		
		atmosphereCurve
		{
			key = 0 800
			key = 1 185
			key = 2 0.001
		}
	}
	MODULE
	{
		name = ModuleAnimateHeat
		ThermalAnim = engine_heat
	}
	
	MODULE
	{
		name = AnimatedThrust
		ThrustAnimationName = animateThrust
		disableGimbalToggle = true
	}
	
	MODULE
	{
		name = ModuleGimbal
		gimbalTransformName = Gimbal
		gimbalRange = 10
	}

	//MODULE
    //{
	//     name = FSplanePropellerSpinner
	//     propellerName = Turbine_spin	
	//     rotationSpeed = -400
	//     //windmillRPM = 0.01
	//     spinUpTime = 2.1 //15.0
	//     useRotorDiscSwap = 0
	//     //rotorDiscFadeInStart = 0.55
	//     //rotorDiscFadeInEnd = .95
	//     //rotorDiscSpeed = 30
    //}
	
	//MODULE
	//{
	//	name = ModuleTestSubject
	//	environments = 15
	//	useStaging = True
	//	useEvent = True
	//}

	//MODULE
    //{
    //     name = FSengineSounds
    //     engage = Eskandare_Heavy_Industries/Thermal_Nuclear/sounds/turbine_start
    //     disengage = Eskandare_Heavy_Industries/Thermal_Nuclear/sounds/turbine_off
    //     flameout = Eskandare_Heavy_Industries/Thermal_Nuclear/sounds/turbine_off
    //     power = Eskandare_Heavy_Industries/Thermal_Nuclear/sounds/jet
    //     powerPitchBase = 0.9
    //     thrustAddedToPitch = 0.20
    //     powerFadeInSpeed = 0.003
    //     powerFadeInDelay = 25.0
    //     powerLowerThreshold = 0.0
    //     powerVolume = 0.4
    //     engageVolume = 0.3
    //     disengageVolume = 0.4
    //     //warningSoundThreshold = 0.8
    //     //warningCooldownTime = 2.0
    //     randomStartDelay = 1.0 //for playing engines slightly out of sync
    //}
	
	//MODULE
	//{
	//	name = ModuleSurfaceFX
	//	thrustProviderModuleIndex = 1
	//	fxMax = 0.5
	//	maxDistance = 20
	//	falloff = 2
	//	thrustTransformName = thrustTransform
	//}
	//MODULE
	//{
	//	 name = ModuleSurfaceFX
	//	 thrustProviderModuleIndex = 2
	//	 fxMax = 0.6
	//	 maxDistance = 30
	//	 falloff = 1.6
	//	 thrustTransformName = thrustTransform
	//}

	//MODULE
    //{
    //     name = ModuleResourceIntake
    //     resourceName = IntakeAir
    //     checkForOxygen = false
    //     area = 0.01
    //     intakeSpeed = 10
    //     intakeTransformName = Intake
    //}

    // RESOURCE
    //{
    // name = IntakeAir
    // amount = 0
    // maxAmount = 1
    //}	
	
}

 

Edited by Eskandare
Link to comment
Share on other sites

  • 2 weeks later...

For the people with flameless poodles (there's a bad joke in there somewhere...) I can confirm that there is a case where a small engine, probably the poodle (I don't build rockets very often, so i'm pretty clueless) that has never had a proper effect attached to it.  It's rather disappointing when every other engine, even non-atmospheric ones, contain proper effects and this one little engine just has what looks like the cartoon-style puffing effect... except much better quality than a cartoon variant.  It's very sad.

Link to comment
Share on other sites

On 3/5/2016 at 0:18 AM, Gnoyze said:

Is there an up-to-date version of this? The download link and community configs link dont work right now.

I recommend using RealPlume now. It is regularly updated, and works like a charm for me. Here are the links:

RealPlume Core Mod: https://github.com/KSP-RO/RealPlume/releases

RealPlume Stock Configs (including many, many mods):

Note that the RealPlume Stock Configs download includes the core RealPlume, so you don't need to download that from the top link in my post.

Link to comment
Share on other sites

  • 3 weeks later...
  • 3 weeks later...
This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...