Jump to content

[1.12.x] Waterfall - a framework for continuous, mesh-driven engine effects (October 9)


Nertea

Recommended Posts

So I had the idea that i'd like to add waterfall support to my current favourite small shuttle mod A.P.U.S. The main engine is basically a half size vector, using a pretty simple ModuleEngines config. After poking around stock-waterwall effects and reading the wiki I came to the conclusion that I needed ModuleEnginesFX to work with waterfall. Naturally I borrowed the necessary bits from the vector and came up with a working waterfall config in pretty short order. A tribute to how well laid out waterfall is, I'm no modding expert.

Then I had the idea that it's only a couple more steps to come up with a patch to update the og plume to the new stock FX for those not using waterfall, while I'm at it, add a real plume one to. Famous last words. Here's the kink, the new hotness is methane right? The vectors stats never made sense as RS25's not even on the kerbal scale, hence neither does a half size 'RS15' But they are really not far a sensible kerbal scale raptor in my opinion. (Sort of Given the early game engines inspired by RP1 are buffeed in to what would be Kscaled CH4 ISP ranges) So I tried very hard to come up with a methane real plume and couldn't get it to work, whatever not using realplume anyway. But in the process of of cleaning that up I broke the stock config I had working, I can't figure out what I broke.  I know it's not strictly speaking waterfall support, but if I could get a hint about these errors I'd be grateful.

[ERR 10:13:49.830] [ModuleSrfFX]: No IThrustProvider module found at index 0!

[ERR 10:13:50.046] PrefabParticleFX: Cannot find transform of name 'smokePoint'

[ERR 10:13:50.047] ParticleModelFX: Cannot find transform of name 'thrustPoint'

[ERR 10:13:50.047] PrefabParticleFX: Cannot find transform of name 'thrustTransformYup'

The engine works config tweaks, sound, flameout. Just no stock plume. I had it once.

This is the config I'm patching.

Spoiler

PART
{
	name = nesdMS-Eng150
	module = Part
	author = NESD
	rescaleFactor = 1.0
	node_stack_top = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0
	node_stack_bottom = 0.0, -0.65, 0.0, 0.0, -1.0, 0.0, 0
	node_attach = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0
	CoLOffset = 0, 0, 0
	CoPOffset = 0, 0, 0
	CoMOffset = 0, 0, 0
	fx_exhaustFlame_blue = 0.0, -7.0, 0.0, 0.0, 1.0, 0.0, running
	fx_exhaustLight_blue = 0.0, -7.0, 0.0, 0.0, 0.0, 1.0, running
	fx_smokeTrail_light = 0.0, -7.0, 0.0, 0.0, 1.0, 0.0, running
	fx_exhaustSparks_flameout = 0.0, -7.0, 0.0, 0.0, 1.0, 0.0, flameout
	sound_vent_medium = engage
	sound_rocket_hard = running
	sound_vent_soft = disengage
	sound_explosion_low = flameout
	TechRequired = advRocketry
	entryCost = 5000
	cost = 960
	category = Engine
	subcategory = 0
	title = A.P.U.S. BBQ-150 Liquid Fuel Engine
	manufacturer = #autoLOC_501624  //C7
	description = 
	attachRules = 1,1,1,1,0
	mass = 0.75
	heatConductivity = 0.06
	skinInternalConductionMult = 4.0
	emissiveConstant = 0.8
	dragModelType = default
	maximum_drag = 0.2
	minimum_drag = 0.2
	angularDrag = 2
	crashTolerance = 15
	maxTemp = 2000 // = 2900
	breakingForce = 50
	breakingTorque = 50
	stagingIcon = LIQUID_ENGINE
	bulkheadProfiles = size0, srf
	tags = nesd engine propulsion thrust fuel rocket oxidizer liquidfuel tank fueltank
	
	MODEL
	{
		model = APUS_Shuttle/Parts/Engines/Eng1/Eng150
	}
	
	MODULE
	{
		name = ModuleEngines
		thrustVectorTransformName = thrustTransform
		exhaustDamage = True
		ignitionThreshold = 0.1
		minThrust = 0
		maxThrust = 150
		heatProduction = 100
		fxOffset = 0, 0, 0.7
		EngineType = LiquidFuel
		exhaustDamageDistanceOffset = 0.75
		PROPELLANT
		{
			name = LiquidFuel
			ratio = 0.9
			DrawGauge = True
		}
		PROPELLANT
		{
			name = Oxidizer
			ratio = 1.1
		}
		atmosphereCurve
		{
			key = 0 315
			key = 1 260
			key = 8 0.001
		}
	}

	MODULE
	{
		name = ModuleGimbal
		gimbalTransformName = thrustTransform
		gimbalRange = 6
 		useGimbalResponseSpeed = false
	}
	
		MODULE
	{
		name = ModuleJettison
		jettisonName = fairing
		bottomNodeName = bottom
		isFairing = True
		jettisonedObjectMass = 0.1
		jettisonForce = 5
		jettisonDirection = 0 0 1
	}
	
	MODULE
	{
		name = FXModuleAnimateThrottle
		animationName = E150
		responseSpeed = 0.002
		dependOnEngineState = True
		dependOnThrottle = True
	}
		
		MODULE
	{
		name = ModuleSurfaceFX
		thrustProviderModuleIndex = 0
		fxMax = 0.5
		maxDistance = 30
		falloff = 1.5
		thrustTransformName = thrustTransform
	}
	
}

 

This is my stock patch. I've tied KS25 and basicEngine and nothing for the engine ID. E150 is it's animate id, it was a shot in the dark. no change.

Spoiler

// Update APU_SHuttle parts to ModuleEnginesFX
// Author: Snkiz

@PART[nesdMS-Eng150]:NEEDS[APUS_Shuttle]:FINAL
{
  // Removes the old effects
  !fx_exhaustFlame_blue = DELETE
  !fx_exhaustLight_blue = DELETE
  !fx_smokeTrail_light = DELETE
  !fx_exhaustSparks_flameout = DELETE
  !sound_vent_medium = DELETE
  !sound_rocket_hard = DELETE
  !sound_vent_soft = DELETE
  !sound_explosion_low = DELETE
  @description ^= :$: Updates & tweaks by Snkiz. Update to new engineFX, denerfed SL ISP, added an alternator.:
  //Covered by new effects
  !heatConductivity = DELETE 

  //Add New effects block
	EFFECTS
	{
		running_closed
		{
			AUDIO
			{
				channel = Ship
				clip = sound_rocket_hard
				volume = 0.0 0.0
				volume = 0.05 0.6
				volume = 1.0 1.5
				pitch = 0.0 1.2
				pitch = 1.0 2.0
				loop = true
			}
			PREFAB_PARTICLE
			{
				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, 0
			}
			MODEL_MULTI_PARTICLE
			{
				//modelName = Squad/FX/ks25_Exhaust
				modelName = Squad/FX/hydroLOXFlame
				transformName = thrustPoint
				emission = 0.0 0.0
				emission = 0.1 0.5
				emission = 1.0 1.0
				speed = 0.0 0.8
				speed = 1.0 1.0
				localPosition = 0, 0, 0.08
			}
		}
		shockDiamond
		{

//			MODEL_MULTI_PARTICLE
//			{
//				modelName = Squad/FX/diamondBlue
//				transformName = thrustTransform
//				emission = 0.0 0.0
//				//emission = 0.05 0.0
//				//emission = 0.075 0.5
//				emission = 1.0 1.0
//				speed = 0.0 0.2
//				speed = 1.0 1.0
//			}
			PREFAB_PARTICLE
			{
				prefabName = fx_exhaustFlame_blue_small
				transformName = thrustTransformYup
				emission = 0.0 0.0
				emission = 0.05 1.0
				emission = 0.5 3.5
				emission = 1.0 5.0
				speed = 0.0 0.5
				speed = 1.0 0.8
				localOffset = 0, 0, 0
			}
		}
		engage
		{
			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[ModuleEngines] {}
	MODULE
	{
		name = ModuleEnginesFX
		engineID = E150
		runningEffectName = running_closed
		thrustVectorTransformName = thrustTransform
		powerEffectName = shockDiamond
		exhaustDamage = True
		ignitionThreshold = 0.1
		minThrust = 0
		maxThrust = 150
		heatProduction = 125 //Was a little low.
		fxOffset = 0, 0, 0.7
		EngineType = LiquidFuel
		exhaustDamageDistanceOffset = 1.0
		PROPELLANT
		{
			name = LiquidFuel
			ratio = 0.9
			DrawGauge = True
		}
		PROPELLANT
		{
			name = Oxidizer
			ratio = 1.1
		}
		atmosphereCurve
		{
			key = 0 315
			key = 1 290
			key = 10 0.001
		}
	}

  
  MODULE
  {
      name = ModuleAlternator //There was no alternator, let's fix that.
      RESOURCE
 	{
	    name = ElectricCharge
	    rate = 2.0
	}
  }

  @MODULE[ModuleGimbal]
  {
      @gimbalRange = 8 //Moar Gimbal!
  }
//  @MODULE[ModuleSurfaceFX]
//  {
//      @thrustProviderModuleIndex = 0
//  {
}

 

For completeness this is my functioning waterfall config. 

Spoiler

// Add WaterfallFX to APU_SHuttle parts
// Author: Snkiz
@PART[nesdMS-Eng150]:NEEDS[Waterfall&APUS_Shuttle]:FINAL
{
  // Removes the old effects
  !fx_exhaustFlame_blue = DELETE
  !fx_exhaustLight_blue = DELETE
  !fx_smokeTrail_light = DELETE
  !fx_exhaustSparks_flameout = DELETE
  !sound_vent_medium = DELETE
  !sound_rocket_hard = DELETE
  !sound_vent_soft = DELETE
  !sound_explosion_low = DELETE
   //change to make a kebal scale half 'micro'raptor out of it with RS dynamic nozzle. Just becuase.
    @description ^= :$: Updates & tweaks by Snkiz. Since the orignal stats were already closer to a kerbalized 'microraptor' rather then an 'RS12'. I tweaked the stats and gave it a raptor plume and added an alternator. Plume by Waterfall.:
    @mass = 0.7
  //Covered by new effects
  !heatConductivity = DELETE 

  // Removes the stock effect block, and replace it with one that has no particles and Rrrr! sounds.
  !EFFECTS {}
  EFFECTS
  {
    engage
    {
      AUDIO
      {
        channel = Ship
        clip = Waterfall/Sounds/ZorgSounds/engage_raptor
        volume = 0.8
        pitch = 1.1
        loop = false
      }
    }
    disengage
    {
        AUDIO
        {
          channel = Ship
          clip = sound_vent_soft
          volume = 0.7
          pitch = 2.2
          loop = false
        }
    }
    flameout
    {
      AUDIO
      {
        channel = Ship
        clip = sound_explosion_low
        volume = 0.9
        pitch = 2.2
        loop = false
      }
    }
    fx-microraptor-running
    {
     AUDIO
      {
        channel = Ship
        clip = Waterfall/Sounds/ZorgSounds/loop_raptor_sealevel
        volume = 0.0 0.0
        volume = 1.0 0.8
        pitch = 0.0 1.1
        pitch = 1.1 1.1
        loop = true
      }
    }
  }

  !MODULE[ModuleEngines*] {}
  MODULE
  {
    name = ModuleEnginesFX
     engineID = KS25
     runningEffectName = fx-microraptor-running
     thrustVectorTransformName = thrustTransform
     exhaustDamage = True
     ignitionThreshold = 0.1
     //Ajusted thrust to slighty better then half a raptor. (after scaling to kerbal MH.) 
     //Smaller engine, higher pressure tolerance.
     minThrust = 0
     maxThrust = 125
     heatProduction = 125 //was a little to low.
     fxOffset = 0, 0, 0.7
     EngineType = LiquidFuel
     exhaustDamageDistanceOffset = 1.0
     atmosphereCurve
     	{
		key = 0 330 //Here's the thing just shrinking it using sane kebal values (380~305 for the 
			    //record) doesn't work because Keralox based engines in ksp are buffed. Methane 
			    //should be inbetwwen RP1 and H2(295/310 & 320/355 in ksp. The vector is just
			    //bad) So here we are.
		key = 1 280 //It's the same here. Kerbal values (330~264) won't work for sl-raptor. This 				    //number is a little more padded, the magic of varible nozzles a-la RS-25. 
		key = 10 0.001
	}
  }

    MODULE
  {
    name = ModuleWaterfallFX
    // This is a custom name and should be unique in the config. 
    // It will also be used for UI display
    moduleID = microraptorFX
       CONTROLLER
    {
      name = atmosphereDepth
      linkedTo = atmosphere_density
    }
    CONTROLLER
    {
      name = throttle
      linkedTo = throttle
	  // This links the effects to a given ModuleEngines. 
    	  // If not found or not specified, it will use the first one it finds
    	  engineID = basicEngine
	  responseRateUp = 0.03
      responseRateDown = 0.2
    }
	CONTROLLER
    {
      name = randomshock1
      linkedTo = random
	  noiseType = perlin
	  scale = 1
	  speed = 5
	  seed = 1
    }
	CONTROLLER
    {
      name = randomshock2
      linkedTo = random
	  noiseType = perlin
	  scale = 1
	  speed = 8
	  seed = 10
    }
	CONTROLLER
    {
      name = randomshock3
      linkedTo = random
	  noiseType = perlin
	  scale = 1
	  speed = 5
	  seed = 100
    }
   
    TEMPLATE
    {
      templateName = waterfall-methalox-lower-raptor-1
      overrideParentTransform = thrustTransform
      scale = 0.48,0.48,0.42
      rotation = 0,0,0
      position = 0,0,0.72
    }
	
    TEMPLATE
    {
      templateName = waterfall-methalox-upper-raptor-1
      overrideParentTransform = thrustTransform
      scale = 0.46,0.46,0.4
      rotation = 0,0,0
      position = 0,0,0.71
    }

  }
  
    MODULE
  {
      name = ModuleAlternator //There was no alternator, let's fix that.
      RESOURCE
 	{
	    name = ElectricCharge
	    rate = 2.0
	}
  }

  @MODULE[ModuleGimbal]
  {
      @gimbalRange = 8 //Moar Gimbal!
  }

  @MODULE[FXModuleAnimateThrottle]
  {
      @responseSpeed = 0.0025
  }
    
}

 

 

Link to comment
Share on other sites

I have not seen any comments complaining about lag, so I have to believe that this is a problem on my end. Supposedly, this is more performance friendly than normal? But when I fire the engines with this mod, the game slows to an absolute crawl, and even worse the more I zoom in. As soon as I turn the engines off its back to normal. If I remove waterfall and just use real plume, performance is fine. I have a Ryzen 1600 and a GTX 1060 6gb. Is this just, normal?

Link to comment
Share on other sites

13 hours ago, Admiral Yu said:

I have not seen any comments complaining about lag, so I have to believe that this is a problem on my end. Supposedly, this is more performance friendly than normal? But when I fire the engines with this mod, the game slows to an absolute crawl, and even worse the more I zoom in. As soon as I turn the engines off its back to normal. If I remove waterfall and just use real plume, performance is fine. I have a Ryzen 1600 and a GTX 1060 6gb. Is this just, normal?

It shouldn't be, my laptop has an i5-8250U and an MX150 and notice no lag from engines at all

Link to comment
Share on other sites

Could these effects be converted into a mod for re-entry effects?  The tail end of some of the plumes in a vacuum remind me a lot of real re-entry plasma.

Link to comment
Share on other sites

1 hour ago, Probus said:

Could these effects be converted into a mod for re-entry effects?  The tail end of some of the plumes in a vacuum remind me a lot of real re-entry plasma.

I was thinking about that, waterfall could entirely replace almost every fx system ingame if it is implemented carefully. Waterfall works on a part by part basis whereas the aerodynamics fx are dynamic and change constantly.

Link to comment
Share on other sites

15 minutes ago, SpaceFace545 said:

every fx

That’s a bit of an overstatement. 

I don’t think it could replace atmospheres or planet surfaces :sticktongue:

Although I bet it could make a good water shader..... in another timeline

 

Link to comment
Share on other sites

1 minute ago, Spaceman.Spiff said:

That’s a bit of an overstatement. 

I don’t think it could replace atmospheres or planet surfaces :sticktongue:

Although I bet it could make a good water shader..... in another timeline

 

I guess I forgot about those, just meant aero fx

Link to comment
Share on other sites

16 hours ago, Admiral Yu said:

I have not seen any comments complaining about lag, so I have to believe that this is a problem on my end. Supposedly, this is more performance friendly than normal? But when I fire the engines with this mod, the game slows to an absolute crawl, and even worse the more I zoom in. As soon as I turn the engines off its back to normal. If I remove waterfall and just use real plume, performance is fine. I have a Ryzen 1600 and a GTX 1060 6gb. Is this just, normal?

What engine(s)? How many? Performance is generally good in my experience, but if you have an entire N-1's worth of engines (Soyuz/R-7 is a notable offender too in this regard) then fps is going to suffer for sure.

RealPlume has a cap on how many particles can be rendered at once, so if you have too many engines, instead of tanking FPS, the plumes will just look worse because they're starved of particles.

Edited by Al2Me6
Link to comment
Share on other sites

On 5/2/2021 at 11:56 AM, snkiz said:

So I had the idea that i'd like to add waterfall support to my current favourite small shuttle mod A.P.U.S. The main engine is basically a half size vector, using a pretty simple ModuleEngines config. After poking around stock-waterwall effects and reading the wiki I came to the conclusion that I needed ModuleEnginesFX to work with waterfall. Naturally I borrowed the necessary bits from the vector and came up with a working waterfall config in pretty short order. A tribute to how well laid out waterfall is, I'm no modding expert.

Then I had the idea that it's only a couple more steps to come up with a patch to update the og plume to the new stock FX for those not using waterfall, while I'm at it, add a real plume one to. Famous last words. Here's the kink, the new hotness is methane right? The vectors stats never made sense as RS25's not even on the kerbal scale, hence neither does a half size 'RS15' But they are really not far a sensible kerbal scale raptor in my opinion. (Sort of Given the early game engines inspired by RP1 are buffeed in to what would be Kscaled CH4 ISP ranges) So I tried very hard to come up with a methane real plume and couldn't get it to work, whatever not using realplume anyway. But in the process of of cleaning that up I broke the stock config I had working, I can't figure out what I broke.  I know it's not strictly speaking waterfall support, but if I could get a hint about these errors I'd be grateful.


[ERR 10:13:49.830] [ModuleSrfFX]: No IThrustProvider module found at index 0!

[ERR 10:13:50.046] PrefabParticleFX: Cannot find transform of name 'smokePoint'

[ERR 10:13:50.047] ParticleModelFX: Cannot find transform of name 'thrustPoint'

[ERR 10:13:50.047] PrefabParticleFX: Cannot find transform of name 'thrustTransformYup'

 

The errors are pretty clear about what is wrong: The effects in your new EFFECTS block have the wrong transform names. They should all be "thrustTransform", but right now you have variously "thrustTransform", "smokePoint", "thrustPoint", and "thrustTransformYup". Evidently, the latter three don't exist.

Also, FWIW, there are already methalox RealPlume templates: ex. https://github.com/KSP-RO/RealPlume/blob/master/GameData/RealPlume/000_Generic_Plumes/Methalox_LowerShock.cfg.

Link to comment
Share on other sites

34 minutes ago, Al2Me6 said:

What engine(s)? How many? Performance is generally good in my experience, but if you have an entire N-1's worth of engines (Soyuz/R-7 is a notable offender too in this regard) then fps is going to suffer for sure.

RealPlume has a cap on how many particles can be rendered at once, so if you have too many engines, instead of tanking FPS, the plumes will just look worse because they're starved of particles.

I tried multiple engines and they were all the same, I know I was using 19 of them at the time, but even with just one engine there is a noticeable performance drop, so I think there might actually be something broken for me. Regardless,  I'm a big fan of clustering over using single engines, so I guess I'll just have to stick with Real Plume for now.

Link to comment
Share on other sites

1 hour ago, Al2Me6 said:

The errors are pretty clear about what is wrong...

Ty I just figured out what I did a couple hours ago. Not exactly clear if you don't know the transformName is an anchor point built into the model. I'm not what you'd call a modding expert. Thanks for pointing me to the real plume config though. I tried for a while to find a working example, the hard way. By looking through mods. Then failed at making one from scratch. I was tired what can I say.

Link to comment
Share on other sites

Hello there,

I've donwloaded this mod a few days ago along with the Restock mod (and the needed WaterfallRestock and StockWaterfallEffects configs).
While playing around with those amazing effects, I have noticed that the twin Boar engine has no visual- or sound effects. I've also tried getting rid of the StockWaterfallEffects config but that didn't change anything.

Does anyone know what might be the issue and how I could fix it?

Link to comment
Share on other sites

On 5/3/2021 at 3:16 AM, Admiral Yu said:

I have not seen any comments complaining about lag, so I have to believe that this is a problem on my end. Supposedly, this is more performance friendly than normal? But when I fire the engines with this mod, the game slows to an absolute crawl, and even worse the more I zoom in. As soon as I turn the engines off its back to normal. If I remove waterfall and just use real plume, performance is fine. I have a Ryzen 1600 and a GTX 1060 6gb. Is this just, normal?

Yeah I personally get a significant amount of FPS improvement with this mod on both my systems (medium-end laptop with crappy mobile GPU and decently high end desktop). I believe the laptop is slightly worse than your system there. 

16 hours ago, Probus said:

Could these effects be converted into a mod for re-entry effects?  The tail end of some of the plumes in a vacuum remind me a lot of real re-entry plasma.

Nope. There is more complexity in generating the shape of the reentry effects that this mod could not handle. This comes up enough that I should put in the FAQ though. 

4 hours ago, SovPenguin said:

Hello there,

I've donwloaded this mod a few days ago along with the Restock mod (and the needed WaterfallRestock and StockWaterfallEffects configs).
While playing around with those amazing effects, I have noticed that the twin Boar engine has no visual- or sound effects. I've also tried getting rid of the StockWaterfallEffects config but that didn't change anything.

Does anyone know what might be the issue and how I could fix it?

It does for me, it's possible you are using the 'old' twin boar that squad deprecated. 

Link to comment
Share on other sites

Nope. There is more complexity in generating the shape of the reentry effects that this mod could not handle. This comes up enough that I should put in the FAQ though. 

That's too bad. But technically someone could use this system to reproduce, let's say generic, reentry effects, just not using this specific waterfall mod?  Just a generic trail/plume of plasma scaled to the size of the largest part (2.5, 3.75, etc...). Maybe using altitude and velocity as color and brightness modifiers respectfully. 

Link to comment
Share on other sites

I sorted my plume issues out. See this post In the APUS thread, and this one in the NESD's Warehouse thread (InternalRCS). They now have support for WaterfallReStock, and StockWaterfallEffects.

In The process of that I needed an LF RCS jet. I took the hydrazine-rcs plume, reassigned its control to RCS and recoloured it to look like a methane Hot Gas Thruster. While I as at it I noticed The Vernier didn't have a plume in WFRS. I applied the just reassigned(not recoloured.) hydrazine  plume to it. @Nertea I don't know if you had plans for those two plumes, but your welcome to mine. Is there a way to  reassign control of a plume without creating a new template? 

Picture and files below.

jY4ZYMr.png

The plumes on the right are the ones I adapted from the included hydrazine-rcs plume.

Files;

Spoiler

//vernier-WFRS.cfg

// Add Waterfall/ReStock support to the Vernier Engine. It is safe to have with StockWaterfallEffects.
// Author: Snkiz

@PART[vernierEngine]:NEEDS[ReStock]:FOR[Waterfall]
{
  {
  @description ^= :$:. Tweaks by Snkiz. Adapted from StockWaterfallEffects. Plume by Waterfall.:
  }
  // Removes the stock effect block, and replace it with one that has no particles
  !EFFECTS {}
  EFFECTS
  {
		running
		{
			AUDIO
			{
				channel = Ship
				clip = Waterfall/Sounds/Beale_Sounds/Sound_RocketStentor
				volume = 0.0 0.0
				volume = 0.1 0.0
				volume = 0.5 0.05
				volume = 1.0 0.5
				pitch = 0.0 1
				pitch = 1.0 1.5
				loop = true
			}
		}
  }
  MODULE
  {
    name = ModuleWaterfallFX
    moduleID = RCSVernierFX
    engineID = basicEngine

    CONTROLLER
    {
      name = atmosphereDepth
      linkedTo = atmosphere_density
    }
    CONTROLLER
    {
      name = rcs
      linkedTo = rcs
    }
	
    TEMPLATE
    {
      templateName = waterfall-hydrazine-rcs-jet-1
      overrideParentTransform = RCSthruster
	  position = 0,0.005,0
	  rotation = 180, 0, 0
	  scale = 1.25, 0.9, 1.25
    }
  }   
}

 

Spoiler


//waterfall-methalox-rcs-jet-1.cfg

EFFECTTEMPLATE
{
	templateName = waterfall-methalox-rcs-jet-1
	EFFECT
	{
		name = plume
		parentName = RCSthruster
		MODEL
		{
			path = Waterfall/FX/fx-cylinder
			positionOffset = 0,0,0
			rotationOffset = 0,0,0
			scaleOffset = 0.0500000007,1.29999995,0.0500000007
			MATERIAL
			{
				transform = Cylinder
				shader = Waterfall/Additive (Dynamic)
				randomizeSeed = True
				COLOR
				{
					colorName = _StartTint
					colorValue = 0.945098042,0.388235301,0.0901960805,1
				}
				COLOR
				{
					colorName = _EndTint
					colorValue = 1,1,1,1
				}
				FLOAT
				{
					floatName = _Falloff
					value = 5.66221333
				}
				FLOAT
				{
					floatName = _Fresnel
					value = 6.06665754
				}
				FLOAT
				{
					floatName = _Noise
					value = 3.26082826
				}
				FLOAT
				{
					floatName = _ExpandLinear
					value = 1.71888626
				}
				FLOAT
				{
					floatName = _SpeedY
					value = 137.499786
				}
				FLOAT
				{
					floatName = _TileX
					value = 5
				}
				FLOAT
				{
					floatName = _Brightness
					value = 0.545000732
				}
				FLOAT
				{
					floatName = _TintFalloff
					value = 0.707776666
				}
				FLOAT
				{
					floatName = _FadeIn
					value = 0.00999999978
				}
			}
		}
		FLOATMODIFIER
		{
			name = brightNess
			controllerName = rcs
			transformName = Cylinder
			combinationType = REPLACE
			useRandomness = False
			randomnessController = random
			randomnessScale = 1
			floatName = _Brightness
			floatCurve
			{
				key = 0 0 0 0
				key = 1 0.5 0 0
			}
		}
		FLOATMODIFIER
		{
			name = expando
			controllerName = atmosphereDepth
			transformName = Cylinder
			combinationType = REPLACE
			useRandomness = False
			randomnessController = random
			randomnessScale = 1
			floatName = _ExpandLinear
			floatCurve
			{
				key = 0 8 0 0
				key = 1 1 0 0
			}
		}
	}
	EFFECT
	{
		name = core
		parentName = RCSthruster
		MODEL
		{
			path = Waterfall/FX/fx-cylinder
			positionOffset = 0,0,0
			rotationOffset = 0,0,0
			scaleOffset = 0.0500000007,1.29999995,0.0500000007
			MATERIAL
			{
				transform = Cylinder
				shader = Waterfall/Additive (Dynamic)
				randomizeSeed = True
				COLOR
				{
					colorName = _StartTint
					colorValue = 0.90196079,0.800000012,0.678431392,1
				}
				COLOR
				{
					colorName = _EndTint
					colorValue = 0.541176498,0.129411772,0.654901981,1
				}
				FLOAT
				{
					floatName = _Falloff
					value = 5.66221333
				}
				FLOAT
				{
					floatName = _Fresnel
					value = 4.65110397
				}
				FLOAT
				{
					floatName = _Noise
					value = 3.26082826
				}
				FLOAT
				{
					floatName = _ExpandLinear
					value = 1.71888626
				}
				FLOAT
				{
					floatName = _SpeedY
					value = 128.399796
				}
				FLOAT
				{
					floatName = _TileX
					value = 4
				}
				FLOAT
				{
					floatName = _Brightness
					value = 0.545000732
				}
				FLOAT
				{
					floatName = _ExpandOffset
					value = -1.01110959
				}
				FLOAT
				{
					floatName = _FresnelInvert
					value = 0.783609867
				}
				FLOAT
				{
					floatName = _TintFalloff
					value = 0.556110263
				}
			}
		}
		FLOATMODIFIER
		{
			name = brightNess
			controllerName = rcs
			transformName = Cylinder
			combinationType = REPLACE
			useRandomness = False
			randomnessController = random
			randomnessScale = 1
			floatName = _Brightness
			floatCurve
			{
				key = 0 0 0 0
				key = 1 0.5 0 0
			}
		}
		FLOATMODIFIER
		{
			name = expando
			controllerName = atmosphereDepth
			transformName = Cylinder
			combinationType = REPLACE
			useRandomness = False
			randomnessController = random
			randomnessScale = 1
			floatName = _ExpandLinear
			floatCurve
			{
				key = 0 5 0 0
				key = 1 1 0 0
			}
		}
	}
	EFFECT
	{
		name = plume2
		parentName = RCSthruster
		MODEL
		{
			path = Waterfall/FX/fx-cylinder
			positionOffset = 0,0,0
			rotationOffset = 0,0,0
			scaleOffset = 0.0700000003,2,0.0700000003
			MATERIAL
			{
				transform = Cylinder
				shader = Waterfall/Additive (Dynamic)
				randomizeSeed = True
				COLOR
				{
					colorName = _StartTint
					colorValue = 0.298039228,0.337254912,0.792156875,1
				}
				COLOR
				{
					colorName = _EndTint
					colorValue = 0.431372553,0.0745098069,0.384313732,1
				}
				FLOAT
				{
					floatName = _Falloff
					value = 5.66221333
				}
				FLOAT
				{
					floatName = _Fresnel
					value = 2.02221918
				}
				FLOAT
				{
					floatName = _Noise
					value = 3.86000562
				}
				FLOAT
				{
					floatName = _ExpandLinear
					value = 5.30333281
				}
				FLOAT
				{
					floatName = _SpeedY
					value = 132.444244
				}
				FLOAT
				{
					floatName = _TileX
					value = 6
				}
				FLOAT
				{
					floatName = _Brightness
					value = 0.545000732
				}
				FLOAT
				{
					floatName = _ExpandOffset
					value = -0.80777669
				}
				FLOAT
				{
					floatName = _FresnelInvert
					value = 0.101110943
				}
				FLOAT
				{
					floatName = _FadeIn
					value = 0.0353888348
				}
				FLOAT
				{
					floatName = _ExpandBounded
					value = 2.62888479
				}
				FLOAT
				{
					floatName = _TintFalloff
					value = 2.60111094
				}
			}
		}
		FLOATMODIFIER
		{
			name = brightNess
			controllerName = rcs
			transformName = Cylinder
			combinationType = REPLACE
			useRandomness = False
			randomnessController = random
			randomnessScale = 1
			floatName = _Brightness
			floatCurve
			{
				key = 0 0 0 0
				key = 1 0.5 0 0
			}
		}
		FLOATMODIFIER
		{
			name = expando
			controllerName = atmosphereDepth
			transformName = Cylinder
			combinationType = REPLACE
			useRandomness = False
			randomnessController = random
			randomnessScale = 1
			floatName = _ExpandLinear
			floatCurve
			{
				key = 0 5 0 0
				key = 1 1 0 0
			}
		}
	}
}

 

Spoiler


//waterfall-hydrazine-rcs-jet-1.cfg

EFFECTTEMPLATE
{
	templateName = waterfall-hydrazine-rcs-jet-1
	EFFECT
	{
		name = plume
		parentName = RCSthruster
		MODEL
		{
			path = Waterfall/FX/fx-cylinder
			positionOffset = 0,0,0
			rotationOffset = 0,0,0
			scaleOffset = 0.05,1.3,0.05
			MATERIAL
			{
				transform = Cylinder
				shader = Waterfall/Additive (Dynamic)
				randomizeSeed = True
				COLOR
				{
					colorName = _StartTint
					colorValue = 0.933333337,0.709803939,0.709803939,1
				}
				COLOR
				{
					colorName = _EndTint
					colorValue = 1,1,1,1
				}
				FLOAT
				{
					floatName = _Falloff
					value = 5.66221333
				}
				FLOAT
				{
					floatName = _Fresnel
					value = 6.06665754
				}
				FLOAT
				{
					floatName = _Noise
					value = 3.26082826
				}
				FLOAT
				{
					floatName = _ExpandLinear
					value = 1.71888626
				}
				FLOAT
				{
					floatName = _SpeedY
					value = 137.499786
				}
				FLOAT
				{
					floatName = _TileX
					value = 5
				}
				FLOAT
				{
					floatName = _Brightness
					value = 0.545000732
				}
				FLOAT
				{
					floatName = _TintFalloff
					value = 0.707776666
				}
				FLOAT
				{
					floatName = _FadeIn
					value = 0.00999999978
				}
			}
		}
		FLOATMODIFIER
		{
			name = brightNess
			controllerName = rcs
			transformName = Cylinder
			combinationType = REPLACE
			useRandomness = False
			randomnessController = random
			randomnessScale = 1
			floatName = _Brightness
			floatCurve
			{
				key = 0 0 0 0
				key = 1 0.5 0 0
			}
		}
		FLOATMODIFIER
		{
			name = expando
			controllerName = atmosphereDepth
			transformName = Cylinder
			combinationType = REPLACE
			useRandomness = False
			randomnessController = random
			randomnessScale = 1
			floatName = _ExpandLinear
			floatCurve
			{
				key = 0 8 0 0
				key = 1 1 0 0
			}
		}
	}
	EFFECT
	{
		name = core
		parentName = RCSthruster
		MODEL
		{
			path = Waterfall/FX/fx-cylinder
			positionOffset = 0,0,0
			rotationOffset = 0,0,0
			scaleOffset = 0.05,1.3,0.05
			MATERIAL
			{
				transform = Cylinder
				shader = Waterfall/Additive (Dynamic)
				randomizeSeed = True
				COLOR
				{
					colorName = _StartTint
					colorValue = 0.913725495,0.701960802,0.701960802,1
				}
				COLOR
				{
					colorName = _EndTint
					colorValue = 1,1,1,1
				}
				FLOAT
				{
					floatName = _Falloff
					value = 5.66221333
				}
				FLOAT
				{
					floatName = _Fresnel
					value = 4.65110397
				}
				FLOAT
				{
					floatName = _Noise
					value = 3.26082826
				}
				FLOAT
				{
					floatName = _ExpandLinear
					value = 1.71888626
				}
				FLOAT
				{
					floatName = _SpeedY
					value = 128.399796
				}
				FLOAT
				{
					floatName = _TileX
					value = 4
				}
				FLOAT
				{
					floatName = _Brightness
					value = 0.545000732
				}
				FLOAT
				{
					floatName = _ExpandOffset
					value = -1.01110959
				}
				FLOAT
				{
					floatName = _FresnelInvert
					value = 0.783609867
				}
				FLOAT
				{
					floatName = _TintFalloff
					value = 0.556110263
				}
			}
		}
		FLOATMODIFIER
		{
			name = brightNess
			controllerName = rcs
			transformName = Cylinder
			combinationType = REPLACE
			useRandomness = False
			randomnessController = random
			randomnessScale = 1
			floatName = _Brightness
			floatCurve
			{
				key = 0 0 0 0
				key = 1 0.5 0 0
			}
		}
		FLOATMODIFIER
		{
			name = expando
			controllerName = atmosphereDepth
			transformName = Cylinder
			combinationType = REPLACE
			useRandomness = False
			randomnessController = random
			randomnessScale = 1
			floatName = _ExpandLinear
			floatCurve
			{
				key = 0 5 0 0
				key = 1 1 0 0
			}
		}
	}
	EFFECT
	{
		name = plume2
		parentName = RCSthruster
		MODEL
		{
			path = Waterfall/FX/fx-cylinder
			positionOffset = 0,0,0
			rotationOffset = 0,0,0
			scaleOffset = 0.0700000003,2,0.0700000003
			MATERIAL
			{
				transform = Cylinder
				shader = Waterfall/Additive (Dynamic)
				randomizeSeed = True
				COLOR
				{
					colorName = _StartTint
					colorValue = 0.90196079,0.760784328,0.592156887,1
				}
				COLOR
				{
					colorName = _EndTint
					colorValue = 1,1,1,1
				}
				FLOAT
				{
					floatName = _Falloff
					value = 5.66221333
				}
				FLOAT
				{
					floatName = _Fresnel
					value = 2.02221918
				}
				FLOAT
				{
					floatName = _Noise
					value = 3.86000562
				}
				FLOAT
				{
					floatName = _ExpandLinear
					value = 5.30333281
				}
				FLOAT
				{
					floatName = _SpeedY
					value = 132.444244
				}
				FLOAT
				{
					floatName = _TileX
					value = 6
				}
				FLOAT
				{
					floatName = _Brightness
					value = 0.545000732
				}
				FLOAT
				{
					floatName = _ExpandOffset
					value = -0.80777669
				}
				FLOAT
				{
					floatName = _FresnelInvert
					value = 0.101110943
				}
				FLOAT
				{
					floatName = _FadeIn
					value = 0.0353888348
				}
				FLOAT
				{
					floatName = _ExpandBounded
					value = 2.62888479
				}
				FLOAT
				{
					floatName = _TintFalloff
					value = 2.60111094
				}
			}
		}
		FLOATMODIFIER
		{
			name = brightNess
			controllerName = rcs
			transformName = Cylinder
			combinationType = REPLACE
			useRandomness = False
			randomnessController = random
			randomnessScale = 1
			floatName = _Brightness
			floatCurve
			{
				key = 0 0 0 0
				key = 1 0.5 0 0
			}
		}
		FLOATMODIFIER
		{
			name = expando
			controllerName = atmosphereDepth
			transformName = Cylinder
			combinationType = REPLACE
			useRandomness = False
			randomnessController = random
			randomnessScale = 1
			floatName = _ExpandLinear
			floatCurve
			{
				key = 0 5 0 0
				key = 1 1 0 0
			}
		}
	}
}

 

 

Edited by snkiz
Link to comment
Share on other sites

10 hours ago, Probus said:

Nope. There is more complexity in generating the shape of the reentry effects that this mod could not handle. This comes up enough that I should put in the FAQ though. 

That's too bad. But technically someone could use this system to reproduce, let's say generic, reentry effects, just not using this specific waterfall mod?  Just a generic trail/plume of plasma scaled to the size of the largest part (2.5, 3.75, etc...). Maybe using altitude and velocity as color and brightness modifiers respectfully. 

The thing that you are looking for is  Re-entry Particle Effect (Renewed). It's been a while since I read up on it. But if I remember, it uses an existing unity particle effect that isn't that resource intensive and you can customize. 

Edited by snkiz
Link to comment
Share on other sites

53 minutes ago, snkiz said:

The thing that you are looking for is  Re-entry Particle Effect (Renewed). It's been a while since I read up on it. But if I remember, it uses an existing unity particle effect that isn't that resource intensive and you can customize. 

That is what I use currently.  Its a great improvement over stock but Waterfall would be even better IMHO if it could be adapted to work.

Link to comment
Share on other sites

12 hours ago, snkiz said:

Is there a way to  reassign control of a plume without creating a new template? 

The lazy way is to twiddle with the controllers, since the template only cares about the name. Something like this:

CONTROLLER
{
	name = throttle // what the template expects
	linkedTo = rcs // but actually link it to RCS
}

BTW, your description edit is missing a colon at the end.

Edited by Al2Me6
Link to comment
Share on other sites

1 hour ago, Let it burn said:

Hello guys I just installed this and I keep getting a message saying no modules to add effects

Did you remember to get the Waterfall packs? The waterfall is only the mod that enables the effects, you need to add the extra mod packs to add the plumes. Look on the first post for the links.

Link to comment
Share on other sites

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...