Jump to content

[1.3.0] OPT Space Plane v2.0.1 - updated 29/07/2017


Recommended Posts

58 minutes ago, Lisias said:

IIRRC... I forgot the % on ratio and DrawGauge on the PROPELLANT thingy, and also the :FINAL. :( 

But that would not had helped. I didn't knew OPT Legacy has B9PartSwitch as dependency, so anything I did on that hack was ruled out.

I'm trying to workout a patch for this. B9PSW does not help by using nameless sections, so patching it is a bit different from what I'm used to do. I will edit this thing with a working patch as soon as I have one.

-- POST EDIT --

This patch did what I wanted. I'm currently firing up KSP to see if it solves something on the Sage

@PART[opt_sage]:FINAL
{
	%RESOURCE[LiquidFuel]
	{
		%amount = 1
		%maxAmount = 1
	}

	@MODULE[ModuleEnginesFX]
	{
		%PROPELLANT[LiquidFuel]
		{
			%ratio = 0
			%DrawGauge = False
		}
	}

	@MODULE[ModuleB9PartSwitch]
	{
		@SUBTYPE,*
		{
			@MODULE,*
			{
				@DATA,*
				{
					%PROPELLANT[LiquidFuel]
					{
						%ratio = 0
						%DrawGauge = False
					}
				}
			}
		}
	}
}

 

-- -- POST POST EDIT -- -- 

I didn't found any exception on my KSP.log, but didn't checked if it would have some without the hack (working time, I can come back to this at lunch if needed). @pmborg, let me know if something changed on your rig.

Cheers!

Updated:

K:\SteamLibrary\steamapps\common\Kerbal Space Program\GameData\__LOCAL>type hack.cfg
@PART[opt_sage]:FINAL
{
        %RESOURCE[LiquidFuel]
        {
                %amount = 1
                %maxAmount = 1
        }

        @MODULE[ModuleEnginesFX]
        {
                %PROPELLANT[LiquidFuel]
                {
                        %ratio = 0
                        %DrawGauge = False
                }
        }
K:\SteamLibrary\steamapps\common\Kerbal Space Program\GameData\__LOCAL>

 

KSP is loading...

 

10 minutes ago, pmborg said:

Updated:

K:\SteamLibrary\steamapps\common\Kerbal Space Program\GameData\__LOCAL>type hack.cfg
@PART[opt_sage]:FINAL
{
        %RESOURCE[LiquidFuel]
        {
                %amount = 1
                %maxAmount = 1
        }

        @MODULE[ModuleEnginesFX]
        {
                %PROPELLANT[LiquidFuel]
                {
                        %ratio = 0
                        %DrawGauge = False
                }
        }
K:\SteamLibrary\steamapps\common\Kerbal Space Program\GameData\__LOCAL>

 

KSP is loading...

 

The patch was applied:

[LOG 13:09:04.176] Log started at 2020-07-30 13:09:04.176
[LOG 13:09:19.508] Checking Cache
[LOG 13:09:21.755] SHA generated in 2.245s
[LOG 13:09:21.755]       SHA = 24-9F-2A-F4-54-C9-CC-B1-CD-18-D7-FB-08-8D-BE-73-39-72-64-E5-09-75-5B-09-21-2C-88-DC-43-5D-46-BA
[LOG 13:09:23.343] Changes :
Changed : __LOCAL/hack.cfg.cfg

...

[LOG 13:10:04.892] Applying update __LOCAL/hack/@PART[opt_sage]:FINAL to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 13:10:04.894] Done patching
[LOG 13:10:04.895] Saving Cache
[LOG 13:10:05.564] Saving cache
[LOG 13:10:07.082] ModuleManager: 23486 patches applied

...

[LOG 13:10:53.066] Config(@PART[opt_sage]:FINAL) __LOCAL/hack/@PART[opt_sage]:FINAL

 

 

Unfortunately the error remains:

[EXC 13:17:38.968] NullReferenceException: Object reference not set to an instance of an object
        ModuleEngines.UpdatePropellantGauge (Propellant p) (at <c1858a3f77504bd1aaa946fdccf84670>:0)
        ModuleEngines.UpdatePropellantStatus (System.Boolean doGauge) (at <c1858a3f77504bd1aaa946fdccf84670>:0)
        ModuleEngines.FixedUpdate () (at <c1858a3f77504bd1aaa946fdccf84670>:0)
        UnityEngine.DebugLogHandler:LogException(Exception, Object)
        ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
        UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)

 

Edited by pmborg
Link to post
Share on other sites

@pmborg @Lisias OPT SAGE is one of my engines which uses B9PS to change engine stats (in this case, Isp). The console problem is most likely an effect of Tweakscale not supporting such parts. A good means to confirm this is to either:

  1. Try tweakscaling any of the new VTOL series of OPT engines which can change propellants (IntakeAir + LF or IntakeAtm + LFO) (nearly al of them) or change Isp (any WarpJets except for SURGE)... So practically all of those engines.
  2. Remove all the tweakscaled SAGEs and add fresh ones (scaled if Tweakscale allows it), launch, and fire them just to see if the console doesn't spam.
  3. Delete the two "VIsp" config files at OPT_Legacy\MM_Patches\

If the problem is due to intakeAtm not having a DrainFX definition (unlikely, I think) then CRP's owners have some work to do.

Edited by JadeOfMaar
Link to post
Share on other sites
1 hour ago, JadeOfMaar said:

@pmborg @Lisias OPT SAGE is one of my engines which uses B9PS to change engine stats (in this case, Isp). The console problem is most likely an effect of Tweakscale not supporting such parts. A good means to confirm this is to either:

  1. Try tweakscaling any of new VTOL series of OPT engines which can change propellants (IntakeAir + LF or IntakeAtm + LFO) (nearly al of them) or change Isp... So practically all of those engines.
  2. Remove all the tweakscaled SAGEs and add fresh ones (scaled if Tweakscale allows it), launch, and fire them just to see if the console doesn't spam.
  3. Delete the two "VIsp" config files at OPT_Legacy\MM_Patches\

If the problem is due to intakeAtm not having a DrainFX definition (unlikely, I think) then CRP's owners have some work to do.

Hello @JadeOfMaar @Lisias!

OP-1: If I use for example the engine OPT-E SCOOP Rocker "ARI-73": even with tweakscale it works without any problem.

 

OP-2: Just removed the scale ones and add new ones (default size) no spam errors, the problem seams gone, but I need tweakscale :)

Uploaded a video still processing the HD:

 

@JadeOfMaar

Trying now the op-3, wihtout:

  • OPT_Other_VIsp.cfg_
  • OPT_SAGE_VIsp.cfg_

It's strange with this option, the error actually don't appear again, but the engines have power 0 kn! so don't take off.

Z6iiJTK.png

 

Edited by pmborg
Link to post
Share on other sites
3 hours ago, JadeOfMaar said:

@pmborg @Lisias OPT SAGE is one of my engines which uses B9PS to change engine stats (in this case, Isp). The console problem is most likely an effect of Tweakscale not supporting such parts.

It's something else (perhaps TweakScale is the trigger?). O installed OPT, OPT Legacy and OPT Reconfig, and I didn't managed to reproduce the issue on my side. However, I got something new now, after scaling up the SAGE:

(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

Uploading Crash Report
NullReferenceException
  at (wrapper managed-to-native) UnityEngine.Component.GetComponentFastPath(UnityEngine.Component,System.Type,intptr)
  at UnityEngine.Component.GetComponent[T] () [0x00020] in <7d9ec060e791409ab3eb85c61e312ed6>:0 
  at DialogCanvasUtil.get_DialogCanvasRect () [0x00027] in <610de40702034962a21710e37d23e4e7>:0 
  at CrewHatchController.get_CrewHatchTooltip () [0x00065] in <610de40702034962a21710e37d23e4e7>:0 
  at CrewHatchController.HideTooltip () [0x00000] in <610de40702034962a21710e37d23e4e7>:0 
  at CrewHatchController.DespawnUIs () [0x00006] in <610de40702034962a21710e37d23e4e7>:0 
  at CrewHatchController.OnDestroy () [0x00058] in <610de40702034962a21710e37d23e4e7>:0 

But it's certain that on the test craft, no crewed parts was scaled (so TweakScale can't be causing this one directly).

I'm building a clean KSP to test it again, and until further evidences, I think it's better to switch this troubleshooting to a private conversation to avoid polluting this thread - it's not related for sure to OPT, it's some Add'On (or a mix of them). I will edit this post later with any findings of mine!

-- -- -- POST EDIT -- -- -- 

The crash is unrelated. OPT 2.0.1 has an old Firespitter DLL on it, and I installed it by accident on KSP 1.10.1 - removing the old DLL fixed the crashes, at least, no more crashes happened since them! :)

Edited by Lisias
post edit
Link to post
Share on other sites
10 minutes ago, Lisias said:

It's something else (perhaps TweakScale is the trigger?). O installed OPT, OPT Legacy and OPT Reconfig, and I didn't managed to reproduce the issue on my side. However, I got something new now, after scaling up the SAGE:

(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

Uploading Crash Report
NullReferenceException
  at (wrapper managed-to-native) UnityEngine.Component.GetComponentFastPath(UnityEngine.Component,System.Type,intptr)
  at UnityEngine.Component.GetComponent[T] () [0x00020] in <7d9ec060e791409ab3eb85c61e312ed6>:0 
  at DialogCanvasUtil.get_DialogCanvasRect () [0x00027] in <610de40702034962a21710e37d23e4e7>:0 
  at CrewHatchController.get_CrewHatchTooltip () [0x00065] in <610de40702034962a21710e37d23e4e7>:0 
  at CrewHatchController.HideTooltip () [0x00000] in <610de40702034962a21710e37d23e4e7>:0 
  at CrewHatchController.DespawnUIs () [0x00006] in <610de40702034962a21710e37d23e4e7>:0 
  at CrewHatchController.OnDestroy () [0x00058] in <610de40702034962a21710e37d23e4e7>:0 

But it's certain that on the test craft, no crewed parts was scaled (so TweakScale can't be causing this one directly).

I'm building a clean KSP to test it again, and until further evidences, I think it's better to switch this troubleshooting to a private conversation to avoid polluting this thread - it's not related for sure to OPT, it's some Add'On (or a mix of them). I will edit this post later with any findings of mine!

Hello @Lisias,

You can download the craft here: https://kerbalx.com/pmborg/Space3D-KSP110B

And you can install all addons with this one shot: https://www.dropbox.com/s/z9qp84i9soxrhes/Install-ALL.zip?dl=0

 

The version  Space3D-KSP1.10C in addition to version B is that I added the parachutes to land on EVE.

 

Edited by pmborg
Link to post
Share on other sites
9 hours ago, pmborg said:

@pmborg @Lisias OPT SAGE is one of my engines which uses B9PS to change engine stats (in this case, Isp). The console problem is most likely an effect of Tweakscale not supporting such parts. A good means to confirm this is to either:

  1. Try tweakscaling any of new VTOL series of OPT engines which can change propellants (IntakeAir + LF or IntakeAtm + LFO) (nearly al of them) or change Isp... So practically all of those engines.
  2. Remove all the tweakscaled SAGEs and add fresh ones (scaled if Tweakscale allows it), launch, and fire them just to see if the console doesn't spam.
  3. Delete the two "VIsp" config files at OPT_Legacy\MM_Patches\

 

Hello @JadeOfMaar @Lisias!

OP-1: If I use for example the engine OPT-E SCOOP Rocker "ARI-73": even with tweakscale it works without any problem.

 

OP-2: Just removed the scale ones and add new ones (default size) no spam errors, the problem seams gone, but I need tweakscale :)

Uploaded a video still processing the HD:

 

@JadeOfMaar

Trying now the op-3, wihtout:

  • OPT_Other_VIsp.cfg_
  • OPT_SAGE_VIsp.cfg_

Actually this solve the problem! :)

Z6iiJTK.png

 

What do you think @JadeOfMaar ?

Correction the option 3 solve the problem!.

I still wondering what this engine have so special that is the only one that don't work well with Scaling :S

But with the option 3 all work well :) Thank you!

Edited by pmborg
Link to post
Share on other sites

@pmborg As I said, the root of the conflict is that the SAGE uses B9PS to change engine properties, specifically, propellant ratios and the Isp curve (it clears properties and re-initializes the stock module due to how it works). B9PS doesn't communicate that level of complexity to Tweakscale, and Tweakscale has to deal with prefabs being restored on quickload or whatever (as Lisias would say) which Tweakscale doesn't handle well or at all. This solution (delete those two files) applies not just to SAGE but to any other engines that say they can exchange thrust for Isp.

You may want to consider instead of WapJet SAGE, clipping in some WarpJet MARGE as they are compact and powerful near sea level. (These ones are actually scaled up a bit, I think)

o8PdaJj.jpg

Or use the form-fitting Wrapper WarpJet FVT-L for Humpback body (but be mindful that its intake gets blocked due to the aero shielding radius of Humpback's cargo bays, and their origins being in the center of the bays). And personally MM them to have the thrust that you need. That's why I made them. :) They're made to be used on crafts like yours.

3BI4KOt.jpg

 

Link to post
Share on other sites
3 hours ago, JadeOfMaar said:

B9PS doesn't communicate that level of complexity to Tweakscale, and Tweakscale has to deal with prefabs being restored on quickload or whatever (as Lisias would say) which Tweakscale doesn't handle well or at all.

Nope, TweakScale is working fine with SAGE and B9 on my test rig, I would had detect any problem at first glance - I'm reproducing the @pmborg instalent gradativelly to detect exactly what's going wrong. 

Sounds more like an (bad) interaction between B9 and some other fuel switch, as it already happened in the past. I will get into it in the exact instant I install the conflicting Add'On

Link to post
Share on other sites
3 minutes ago, Lisias said:

Nope, TweakScale is working fine with SAGE and B9 on my test rig, I would had detect any problem at first glance - I'm reproducing the @pmborg instalent gradativelly to detect exactly what's going wrong. 

That's a surprise. Well it's got to be something KSPI is doing. I know KSPI has its own propellant switch mechanism for engines, and pmborg's screenshot showed me that KSPI has attached stuff to the SAGE. But I dont know for sure if the actual KSPI propellant switcher is added to it (as KSPI has its own copy of that engine now). If not all that then my final guess is whatever bug is in the part config for my engine which causes two "Activate Engine" buttons to appear in its PAW. (When you have to engine modules and don't have the multimodeengine module.)

Link to post
Share on other sites
16 hours ago, JadeOfMaar said:

That's a surprise. Well it's got to be something KSPI is doing. I know KSPI has its own propellant switch mechanism for engines, and pmborg's screenshot showed me that KSPI has attached stuff to the SAGE. 

Yep, it handle resources its own way, but it also handles TweakScale events, so things just works - as long no other fuel switch is installed, when IFS waives the switching but still tries to scale the part when TS asks it. It's the reason TS yells when it finds more than one Fuel Switch on a part, as it can't know who is switching and who is scaling, with the net result of something borking on the Rescale and TS taking the blame.

Users of KSPI didn't needed the KSP-Recall exactly due this - it was not affected by the resource overwritting.

16 hours ago, JadeOfMaar said:

 If not all that then my final guess is whatever bug is in the part config for my engine which causes two "Activate Engine" buttons to appear in its PAW. (When you have to engine modules and don't have the multimodeengine module.)

On TS, this triggers the TweakScaleRogueDuplicated stunt, and until recently was due rogue patching - patches that blindly adds an additional TweakScale module on a part instead of modifiyng the existent one. But this can be verified by inspecting the MM ConfigCache, and on this case the MM ConfigCache was ok, no double TweakScale on it.....

Hummm...

I'm an idiot. I didn't checked if anything else was double patched. I will check that file again and see if I find anything else duplicated on opt.sage .

-- -- -- POST EDIT -- -- --

Yep. The opt_sage engine is double patched.

There're TWO ModuleEnginesFX modules working on this part, I found both on the MM ConfigCache, so this is a double patching for sure. At least on TweakScale, only the first copy is active - knowing it, TweakScale declares the second a RogueDuplicate and get rid of it.

But since you don't do it, the second module lingers around with incomplete data and when something tries to probe it, you have the NullReferenceException mentioned . [edit: Multiple ModuleEnginesFX are used by MultiModeEngine module. It's legit, it not the same as TweakScale]

This is the two copies of the module I found on the ConfigCache:

		MODULE
		{
			name = ModuleEnginesFX
			engineID = WJOpen
			thrustVectorTransformName = thrustTransform
			exhaustDamage = True
			ignitionThreshold = 0.03
			minThrust = 0
			maxThrust = 250
			heatProduction = 160
			useEngineResponseTime = True
			engineAccelerationSpeed = 0.7
			engineDecelerationSpeed = 0.35
			useVelocityCurve = False
			flameoutEffectName = flameout
			powerEffectName = running_open
			engageEffectName = engage
			disengageEffectName = disengage
			spoolEffectName = running_turbine
			engineSpoolIdle = 0.05
			engineSpoolTime = 1.0
			EngineType = LiquidFuel
			exhaustDamageMultiplier = 200
			exhaustDamageMaxRange = 10
			atmChangeFlow = True
			useVelCurve = False
			useAtmCurve = True
			PROPELLANT
			{
				name = ElectricCharge
				ratio = 3.1
				DrawGauge = True
			}
			PROPELLANT
			{
				name = IntakeAtm
				ratio = 1
				DrawGauge = True
			}
			atmosphereCurve
			{
				key = 0 300
				key = 1 240 -22.22222 -12.72055
				key = 10 190 -1.065011 0
			}
			atmCurve
			{
				key = 0 1.5 0 0
				key = 0.01 2 0 0
				key = 0.1 2 0 -2.810402
				key = 0.4 1.079561 -0.4394221 -0.4630589
				key = 1 1 8.414095E-07 -0.2883541
				key = 9 0 -0.1323353 0
			}
			PROPELLANT
			{
				name = LiquidFuel
				ratio = 0
				DrawGauge = False
			}
		}

---- copy two ----

		MODULE
		{
			name = ModuleEnginesFX
			engineID = WJClosed
			thrustVectorTransformName = thrustTransform
			exhaustDamage = True
			ignitionThreshold = 0.01
			minThrust = 0
			maxThrust = 375
			heatProduction = 190
			useVelocityCurve = False
			flameoutEffectName = flameout
			powerEffectName = running_closed
			engageEffectName = engage
			disengageEffectName = disengage
			engineSpoolIdle = 0.05
			engineSpoolTime = 1.0
			EngineType = Electric
			exhaustDamageMultiplier = 200
			exhaustDamageMaxRange = 20
			PROPELLANT
			{
				name = ElectricCharge
				ratio = 101.927
				DrawGauge = True
			}
			PROPELLANT
			{
				name = IntakeAtm
				ratio = 1
				DrawGauge = True
			}
			atmosphereCurve
			{
				key = 0.001 3000
				key = 1 30
				key = 1.05 0.001 0 0
			}
		}

Ignore that PROPELLANT[LiquidFuel] at the end of the first copy of the module, it looks like my hack. I asked a fresh copy from @pmborg to confirm thou.

This is the complete list of patches being applied to opt_sage:

[LOG 10:51:11.317] Applying update Jettison/ModuleManager_Jettison/@PART[*]:HAS[@RESOURCE,!RESOURCE[Ore],!RESOURCE[Ablator],!RESOURCE[SolidFuel],!RESOURCE[ElectricCharge],!RESOURCE[MonoPropellant]] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:12.474] Applying update OPT_Legacy/MM_Patches/OPT_SAGE_VIsp/@PART[opt_sage]:NEEDS[B9PartSwitch] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:12.564] Applying update OPT_Legacy/MM_Patches/OPT_TweakScale2/@PART[opt_sage|opt_egg|opt_vtol_egg]:NEEDS[TweakScale] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:12.565] Applying update OPT_Legacy/MM_Patches/OPT_TweakScale2/@PART[opt_sage|opt_egg|opt_vtol_egg]:NEEDS[TweakScale] to OPT_Legacy/Parts/Engines/VTOL/EnginesEggDog.cfg/PART[opt_vtol_egg]
[LOG 10:51:12.722] Applying update OPT_Legacy/MM_Patches/Category/Category/@PART:HAS[#manufacturer[OPT?Prop*Division]] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:12.852] Applying update OPT_Legacy/Parts/DepthMasks/Patches/@PART[opt_sage|J61] to OPT_Legacy/Parts/Engines/J61/OPT_J61.cfg/PART[J61]
[LOG 10:51:12.853] Applying update OPT_Legacy/Parts/DepthMasks/Patches/@PART[opt_sage|J61] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:13.778] Applying update OPT_Reconfig/OPT_CTT/@PART[opt_surge|opt_sage|j81turbojet|opt_vtol_wrap?2|opt_vtol_jumpa2] to OPT_Legacy/Parts/Engines/J81/j81turbo.cfg/PART[j81turbojet]
[LOG 10:51:13.778] Applying update OPT_Reconfig/OPT_CTT/@PART[opt_surge|opt_sage|j81turbojet|opt_vtol_wrap?2|opt_vtol_jumpa2] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:13.778] Applying update OPT_Reconfig/OPT_CTT/@PART[opt_surge|opt_sage|j81turbojet|opt_vtol_wrap?2|opt_vtol_jumpa2] to OPT_Legacy/Parts/Engines/SURGE/OPT_SURGE.cfg/PART[opt_surge]
[LOG 10:51:13.778] Applying update OPT_Reconfig/OPT_CTT/@PART[opt_surge|opt_sage|j81turbojet|opt_vtol_wrap?2|opt_vtol_jumpa2] to OPT_Legacy/Parts/Engines/VTOL/EnginesAT-WJ.cfg/PART[opt_vtol_jumpa2]
[LOG 10:51:13.778] Applying update OPT_Reconfig/OPT_CTT/@PART[opt_surge|opt_sage|j81turbojet|opt_vtol_wrap?2|opt_vtol_jumpa2] to OPT_Legacy/Parts/Engines/VTOL/EnginesWrapperWJ.cfg/PART[opt_vtol_wrapj2]
[LOG 10:51:13.778] Applying update OPT_Reconfig/OPT_CTT/@PART[opt_surge|opt_sage|j81turbojet|opt_vtol_wrap?2|opt_vtol_jumpa2] to OPT_Legacy/Parts/Engines/VTOL/EnginesWrapperWJ.cfg/PART[opt_vtol_wrapl2]
[LOG 10:51:13.778] Applying update OPT_Reconfig/OPT_CTT/@PART[opt_surge|opt_sage|j81turbojet|opt_vtol_wrap?2|opt_vtol_jumpa2] to OPT_Legacy/Parts/Engines/VTOL/EnginesWrapperWJ.cfg/PART[opt_vtol_wrapk2]
[LOG 10:51:14.178] Applying update OPT_Reconfig/OPT_LiftSurface/@PART:HAS[@MODULE[ModuleLiftingSurface]:HAS[#dragAtMinAoA[>0.1]],#manufacturer[OPT*Division]]:NEEDS[!FerramAerospaceResearch] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:14.221] Applying update OPT_Reconfig/OPT_LiftSurface/@PART:HAS[#title[OPT?*],#manufacturer[OPT*Division]]:NEEDS[!FerramAerospaceResearch] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:14.621] Applying update OPT_Reconfig/CRP/OPT_B9PS_Cryo/@PART:HAS[#manufacturer[OPT*Division],@MODULE[ModuleB9PartSwitch]]:NEEDS[B9PartSwitch,CryoEngines|KerbalAtomics,!Pathfinder,!ModularFuelTanks,!RealFuels] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:14.683] Applying update OPT_Reconfig/CRP/OPT_IntakeAtm/@PART:HAS[@RESOURCE[IntakeAir],!RESOURCE[IntakeAtm]]:NEEDS[CommunityResourcePack] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:14.831] Applying update OPT_Reconfig/CRP/OPT_RCS_toggles/@PART:HAS[#manufacturer[OPT*Division],@MODULE[ModuleB9PartSwitch]]:NEEDS[B9PartSwitch,!Pathfinder,!ModularFuelTanks,!RealFuels] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:26.816] Applying update __LOCAL/hack/@PART[opt_sage] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:33.013] Applying update OPT_Reconfig/CRP/OPT_IntakeAtm/@PART[opt_sage|opt_vtol_wrap?2|opt_vtol_jump?2]:NEEDS[CommunityResourcePack]:AFTER[OPT_Legacy] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:33.013] Applying update OPT_Reconfig/CRP/OPT_IntakeAtm/@PART[opt_sage|opt_vtol_wrap?2|opt_vtol_jump?2]:NEEDS[CommunityResourcePack]:AFTER[OPT_Legacy] to OPT_Legacy/Parts/Engines/VTOL/EnginesAT-WJ.cfg/PART[opt_vtol_jumpa2]
[LOG 10:51:33.014] Applying update OPT_Reconfig/CRP/OPT_IntakeAtm/@PART[opt_sage|opt_vtol_wrap?2|opt_vtol_jump?2]:NEEDS[CommunityResourcePack]:AFTER[OPT_Legacy] to OPT_Legacy/Parts/Engines/VTOL/EnginesWrapperWJ.cfg/PART[opt_vtol_wrapj2]
[LOG 10:51:33.015] Applying update OPT_Reconfig/CRP/OPT_IntakeAtm/@PART[opt_sage|opt_vtol_wrap?2|opt_vtol_jump?2]:NEEDS[CommunityResourcePack]:AFTER[OPT_Legacy] to OPT_Legacy/Parts/Engines/VTOL/EnginesWrapperWJ.cfg/PART[opt_vtol_wrapl2]
[LOG 10:51:33.015] Applying update OPT_Reconfig/CRP/OPT_IntakeAtm/@PART[opt_sage|opt_vtol_wrap?2|opt_vtol_jump?2]:NEEDS[CommunityResourcePack]:AFTER[OPT_Legacy] to OPT_Legacy/Parts/Engines/VTOL/EnginesWrapperWJ.cfg/PART[opt_vtol_wrapk2]
[LOG 10:51:33.053] Applying update OPT_Reconfig/OPT_00Clean/@PART:HAS[#manufacturer[OPT*Division]]:FOR[OPT_Reconfig] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:33.093] Applying update OPT_Reconfig/OPT_B9PS_TAC/@PART:HAS[#manufacturer[OPT*Division],@MODULE[ModuleB9PartSwitch]]:FOR[OPT_Reconfig]:NEEDS[TacLifeSupport,!ModularFuelTanks,!RealFuels] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:36.260] Applying update WarpPlugin/Patches/AtmosphericIntake/@PART[*]:HAS[!MODULE[AtmosphericIntake],@MODULE[ModuleResourceIntake]:HAS[#resourceName[IntakeAir]]]:FOR[WarpPlugin] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:36.364] Applying update WarpPlugin/Patches/AtmosphericIntake/@PART[*]:HAS[@MODULE[ModuleResourceIntake]:HAS[#resourceName[IntakeAir],#area]]:FOR[WarpPlugin] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:36.435] Applying update WarpPlugin/Patches/AtmosphericIntake/@PART[*]:HAS[@MODULE[ModuleResourceIntake]:HAS[#resourceName[IntakeAir],#intakeTransformName]]:FOR[WarpPlugin] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:36.529] Applying update WarpPlugin/Patches/AtmosphericIntake/@PART[*]:HAS[@MODULE[ModuleResourceIntake]:HAS[#resourceName[IntakeAir],#intakeSpeed]]:FOR[WarpPlugin] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:39.870] Applying update B9PartSwitch/PartInfo/@PART[*]:HAS[@MODULE[ModuleB9PartSwitch]]:FOR[zzzzzz-B9PartSwitch] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:40.167] Applying update InterstellarFuelSwitch/PatchManager/ActiveMMPatches/IntegratedDecoupler/@PART[*]:FINAL to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:42.297] Applying update PartInfo/PartInfo/@PART[*]:Final to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:43.173] Applying update WarpPlugin/Patches/OreTanksFix/@PART[*]:FINAL to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]

This is the exact patching log I have on my rig except by one extra patch:

[LOG 10:51:42.297] Applying update PartInfo/PartInfo/@PART[*]:Final to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]

That it's part info that I didn't installed. But this is harmless for sure.

Now the interesting part: my ConfigCache is also double patched for opt_sage, but my rig don't suffer of the NREs reported by @pmborg. Or this is something related to something else I didn't installed, or by some twist of fate the MacOS port of KSP is immune to this (the MacOS version is more resilient on some borderline situations related to multithreading).[nah, I managed to reproduce it. I was clicking on the right "wrong" button, instead of the wrong "right" button"]

So, this is not about finding who is borking anymore - given the "rogue duplicated" situation, I take for granted that sooner or later someone will try to fetch some data from the rogue and bork. The task is to search and destroy the rogue patch that it's shoving the duplicate, and this patch is on one of the patches I listed above.[It was not a rogue patch. It's a legit use of double Modules, the problem is somewhere else].

 

 

Edited by Lisias
post post edit (on brackets)
Link to post
Share on other sites
6 hours ago, Lisias said:

Yep, it handle resources its own way, but it also handles TweakScale events, so things just works - as long no other fuel switch is installed, when IFS waives the switching but still tries to scale the part when TS asks it. It's the reason TS yells when it finds more than one Fuel Switch on a part, as it can't know who is switching and who is scaling, with the net result of something borking on the Rescale and TS taking the blame.

Users of KSPI didn't needed the KSP-Recall exactly due this - it was not affected by the resource overwritting.

On TS, this triggers the TweakScaleRogueDuplicated stunt, and until recently was due rogue patching - patches that blindly adds an additional TweakScale module on a part instead of modifiyng the existent one. But this can be verified by inspecting the MM ConfigCache, and on this case the MM ConfigCache was ok, no double TweakScale on it.....

Hummm...

I'm an idiot. I didn't checked if anything else was double patched. I will check that file again and see if I find anything else duplicated on opt.sage .

-- -- -- POST EDIT -- -- --

Yep. The opt_sage engine is double patched.

There're TWO ModuleEnginesFX modules working on this part, I found both on the MM ConfigCache, so this is a double patching for sure. At least on TweakScale, only the first copy is active - knowing it, TweakScale declares the second a RogueDuplicate and get rid of it.

But since you don't do it, the second module lingers around with incomplete data and when something tries to probe it, you have the NullReferenceException mentioned .

This is the two copies of the module I found on the ConfigCache:

		MODULE
		{
			name = ModuleEnginesFX
			engineID = WJOpen
			thrustVectorTransformName = thrustTransform
			exhaustDamage = True
			ignitionThreshold = 0.03
			minThrust = 0
			maxThrust = 250
			heatProduction = 160
			useEngineResponseTime = True
			engineAccelerationSpeed = 0.7
			engineDecelerationSpeed = 0.35
			useVelocityCurve = False
			flameoutEffectName = flameout
			powerEffectName = running_open
			engageEffectName = engage
			disengageEffectName = disengage
			spoolEffectName = running_turbine
			engineSpoolIdle = 0.05
			engineSpoolTime = 1.0
			EngineType = LiquidFuel
			exhaustDamageMultiplier = 200
			exhaustDamageMaxRange = 10
			atmChangeFlow = True
			useVelCurve = False
			useAtmCurve = True
			PROPELLANT
			{
				name = ElectricCharge
				ratio = 3.1
				DrawGauge = True
			}
			PROPELLANT
			{
				name = IntakeAtm
				ratio = 1
				DrawGauge = True
			}
			atmosphereCurve
			{
				key = 0 300
				key = 1 240 -22.22222 -12.72055
				key = 10 190 -1.065011 0
			}
			atmCurve
			{
				key = 0 1.5 0 0
				key = 0.01 2 0 0
				key = 0.1 2 0 -2.810402
				key = 0.4 1.079561 -0.4394221 -0.4630589
				key = 1 1 8.414095E-07 -0.2883541
				key = 9 0 -0.1323353 0
			}
			PROPELLANT
			{
				name = LiquidFuel
				ratio = 0
				DrawGauge = False
			}
		}

---- copy two ----

		MODULE
		{
			name = ModuleEnginesFX
			engineID = WJClosed
			thrustVectorTransformName = thrustTransform
			exhaustDamage = True
			ignitionThreshold = 0.01
			minThrust = 0
			maxThrust = 375
			heatProduction = 190
			useVelocityCurve = False
			flameoutEffectName = flameout
			powerEffectName = running_closed
			engageEffectName = engage
			disengageEffectName = disengage
			engineSpoolIdle = 0.05
			engineSpoolTime = 1.0
			EngineType = Electric
			exhaustDamageMultiplier = 200
			exhaustDamageMaxRange = 20
			PROPELLANT
			{
				name = ElectricCharge
				ratio = 101.927
				DrawGauge = True
			}
			PROPELLANT
			{
				name = IntakeAtm
				ratio = 1
				DrawGauge = True
			}
			atmosphereCurve
			{
				key = 0.001 3000
				key = 1 30
				key = 1.05 0.001 0 0
			}
		}

Ignore that PROPELLANT[LiquidFuel] at the end of the first copy of the module, it looks like my hack. I asked a fresh copy from @pmborg to confirm thou.

This is the complete list of patches being applied to opt_sage:

[LOG 10:51:11.317] Applying update Jettison/ModuleManager_Jettison/@PART[*]:HAS[@RESOURCE,!RESOURCE[Ore],!RESOURCE[Ablator],!RESOURCE[SolidFuel],!RESOURCE[ElectricCharge],!RESOURCE[MonoPropellant]] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:12.474] Applying update OPT_Legacy/MM_Patches/OPT_SAGE_VIsp/@PART[opt_sage]:NEEDS[B9PartSwitch] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:12.564] Applying update OPT_Legacy/MM_Patches/OPT_TweakScale2/@PART[opt_sage|opt_egg|opt_vtol_egg]:NEEDS[TweakScale] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:12.565] Applying update OPT_Legacy/MM_Patches/OPT_TweakScale2/@PART[opt_sage|opt_egg|opt_vtol_egg]:NEEDS[TweakScale] to OPT_Legacy/Parts/Engines/VTOL/EnginesEggDog.cfg/PART[opt_vtol_egg]
[LOG 10:51:12.722] Applying update OPT_Legacy/MM_Patches/Category/Category/@PART:HAS[#manufacturer[OPT?Prop*Division]] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:12.852] Applying update OPT_Legacy/Parts/DepthMasks/Patches/@PART[opt_sage|J61] to OPT_Legacy/Parts/Engines/J61/OPT_J61.cfg/PART[J61]
[LOG 10:51:12.853] Applying update OPT_Legacy/Parts/DepthMasks/Patches/@PART[opt_sage|J61] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:13.778] Applying update OPT_Reconfig/OPT_CTT/@PART[opt_surge|opt_sage|j81turbojet|opt_vtol_wrap?2|opt_vtol_jumpa2] to OPT_Legacy/Parts/Engines/J81/j81turbo.cfg/PART[j81turbojet]
[LOG 10:51:13.778] Applying update OPT_Reconfig/OPT_CTT/@PART[opt_surge|opt_sage|j81turbojet|opt_vtol_wrap?2|opt_vtol_jumpa2] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:13.778] Applying update OPT_Reconfig/OPT_CTT/@PART[opt_surge|opt_sage|j81turbojet|opt_vtol_wrap?2|opt_vtol_jumpa2] to OPT_Legacy/Parts/Engines/SURGE/OPT_SURGE.cfg/PART[opt_surge]
[LOG 10:51:13.778] Applying update OPT_Reconfig/OPT_CTT/@PART[opt_surge|opt_sage|j81turbojet|opt_vtol_wrap?2|opt_vtol_jumpa2] to OPT_Legacy/Parts/Engines/VTOL/EnginesAT-WJ.cfg/PART[opt_vtol_jumpa2]
[LOG 10:51:13.778] Applying update OPT_Reconfig/OPT_CTT/@PART[opt_surge|opt_sage|j81turbojet|opt_vtol_wrap?2|opt_vtol_jumpa2] to OPT_Legacy/Parts/Engines/VTOL/EnginesWrapperWJ.cfg/PART[opt_vtol_wrapj2]
[LOG 10:51:13.778] Applying update OPT_Reconfig/OPT_CTT/@PART[opt_surge|opt_sage|j81turbojet|opt_vtol_wrap?2|opt_vtol_jumpa2] to OPT_Legacy/Parts/Engines/VTOL/EnginesWrapperWJ.cfg/PART[opt_vtol_wrapl2]
[LOG 10:51:13.778] Applying update OPT_Reconfig/OPT_CTT/@PART[opt_surge|opt_sage|j81turbojet|opt_vtol_wrap?2|opt_vtol_jumpa2] to OPT_Legacy/Parts/Engines/VTOL/EnginesWrapperWJ.cfg/PART[opt_vtol_wrapk2]
[LOG 10:51:14.178] Applying update OPT_Reconfig/OPT_LiftSurface/@PART:HAS[@MODULE[ModuleLiftingSurface]:HAS[#dragAtMinAoA[>0.1]],#manufacturer[OPT*Division]]:NEEDS[!FerramAerospaceResearch] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:14.221] Applying update OPT_Reconfig/OPT_LiftSurface/@PART:HAS[#title[OPT?*],#manufacturer[OPT*Division]]:NEEDS[!FerramAerospaceResearch] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:14.621] Applying update OPT_Reconfig/CRP/OPT_B9PS_Cryo/@PART:HAS[#manufacturer[OPT*Division],@MODULE[ModuleB9PartSwitch]]:NEEDS[B9PartSwitch,CryoEngines|KerbalAtomics,!Pathfinder,!ModularFuelTanks,!RealFuels] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:14.683] Applying update OPT_Reconfig/CRP/OPT_IntakeAtm/@PART:HAS[@RESOURCE[IntakeAir],!RESOURCE[IntakeAtm]]:NEEDS[CommunityResourcePack] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:14.831] Applying update OPT_Reconfig/CRP/OPT_RCS_toggles/@PART:HAS[#manufacturer[OPT*Division],@MODULE[ModuleB9PartSwitch]]:NEEDS[B9PartSwitch,!Pathfinder,!ModularFuelTanks,!RealFuels] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:26.816] Applying update __LOCAL/hack/@PART[opt_sage] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:33.013] Applying update OPT_Reconfig/CRP/OPT_IntakeAtm/@PART[opt_sage|opt_vtol_wrap?2|opt_vtol_jump?2]:NEEDS[CommunityResourcePack]:AFTER[OPT_Legacy] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:33.013] Applying update OPT_Reconfig/CRP/OPT_IntakeAtm/@PART[opt_sage|opt_vtol_wrap?2|opt_vtol_jump?2]:NEEDS[CommunityResourcePack]:AFTER[OPT_Legacy] to OPT_Legacy/Parts/Engines/VTOL/EnginesAT-WJ.cfg/PART[opt_vtol_jumpa2]
[LOG 10:51:33.014] Applying update OPT_Reconfig/CRP/OPT_IntakeAtm/@PART[opt_sage|opt_vtol_wrap?2|opt_vtol_jump?2]:NEEDS[CommunityResourcePack]:AFTER[OPT_Legacy] to OPT_Legacy/Parts/Engines/VTOL/EnginesWrapperWJ.cfg/PART[opt_vtol_wrapj2]
[LOG 10:51:33.015] Applying update OPT_Reconfig/CRP/OPT_IntakeAtm/@PART[opt_sage|opt_vtol_wrap?2|opt_vtol_jump?2]:NEEDS[CommunityResourcePack]:AFTER[OPT_Legacy] to OPT_Legacy/Parts/Engines/VTOL/EnginesWrapperWJ.cfg/PART[opt_vtol_wrapl2]
[LOG 10:51:33.015] Applying update OPT_Reconfig/CRP/OPT_IntakeAtm/@PART[opt_sage|opt_vtol_wrap?2|opt_vtol_jump?2]:NEEDS[CommunityResourcePack]:AFTER[OPT_Legacy] to OPT_Legacy/Parts/Engines/VTOL/EnginesWrapperWJ.cfg/PART[opt_vtol_wrapk2]
[LOG 10:51:33.053] Applying update OPT_Reconfig/OPT_00Clean/@PART:HAS[#manufacturer[OPT*Division]]:FOR[OPT_Reconfig] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:33.093] Applying update OPT_Reconfig/OPT_B9PS_TAC/@PART:HAS[#manufacturer[OPT*Division],@MODULE[ModuleB9PartSwitch]]:FOR[OPT_Reconfig]:NEEDS[TacLifeSupport,!ModularFuelTanks,!RealFuels] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:36.260] Applying update WarpPlugin/Patches/AtmosphericIntake/@PART[*]:HAS[!MODULE[AtmosphericIntake],@MODULE[ModuleResourceIntake]:HAS[#resourceName[IntakeAir]]]:FOR[WarpPlugin] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:36.364] Applying update WarpPlugin/Patches/AtmosphericIntake/@PART[*]:HAS[@MODULE[ModuleResourceIntake]:HAS[#resourceName[IntakeAir],#area]]:FOR[WarpPlugin] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:36.435] Applying update WarpPlugin/Patches/AtmosphericIntake/@PART[*]:HAS[@MODULE[ModuleResourceIntake]:HAS[#resourceName[IntakeAir],#intakeTransformName]]:FOR[WarpPlugin] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:36.529] Applying update WarpPlugin/Patches/AtmosphericIntake/@PART[*]:HAS[@MODULE[ModuleResourceIntake]:HAS[#resourceName[IntakeAir],#intakeSpeed]]:FOR[WarpPlugin] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:39.870] Applying update B9PartSwitch/PartInfo/@PART[*]:HAS[@MODULE[ModuleB9PartSwitch]]:FOR[zzzzzz-B9PartSwitch] to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:40.167] Applying update InterstellarFuelSwitch/PatchManager/ActiveMMPatches/IntegratedDecoupler/@PART[*]:FINAL to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:42.297] Applying update PartInfo/PartInfo/@PART[*]:Final to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]
[LOG 10:51:43.173] Applying update WarpPlugin/Patches/OreTanksFix/@PART[*]:FINAL to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]

This is the exact patching log I have on my rig except by one extra patch:

[LOG 10:51:42.297] Applying update PartInfo/PartInfo/@PART[*]:Final to OPT_Legacy/Parts/Engines/SAGE/OPT_SAGE.cfg/PART[opt_sage]

That it's part info that I didn't installed. But this is harmless for sure.

Now the interesting part: my ConfigCache is also double patched for opt_sage, but my rig don't suffer of the NREs reported by @pmborg. Or this is something related to something else I didn't installed, or by some twist of fate the MacOS port of KSP is immune to this (the MacOS version is more resilient on some borderline situations related to multithreading).[nah, I managed to reproduce it. I was clicking on the right "wrong" button, instead of the wrong "right" button"]

So, this is not about finding who is borking anymore - given the rogue duplicated situation, I take for granted that sooner or later someone will try to fetch some data from the rogue and bork. The task is to search and destroy the rogue patch that it's shoving the duplicate, and this patch is on one of the patches I listed above.

 

 

 

Hello @Lisias

Thank you so much you got it right!

Your proposed/fix solved all problems, no more huge logs that will crash KSP! No more B9 errors and so on...

It looks more a kind of magic but hey am I am truly happy!!

 

 

Edited by pmborg
Link to post
Share on other sites

@Lisias @pmborg The second engine module is not rogue. It's supposed to be there. That's the vac optimized engine mode that the B9 switch targets. All the OPT WarpJet engines except SURGE have that second engine mode and the B9 Isp config...but I don't think they have the duplicate "Activate Engine" PAW button problem.

Link to post
Share on other sites
11 minutes ago, JadeOfMaar said:

@Lisias @pmborg The second engine module is not rogue. It's supposed to be there. That's the vac optimized engine mode that the B9 switch targets. All the OPT WarpJet engines except SURGE have that second engine mode and the B9 Isp config...but I don't think they have the duplicate "Activate Engine" PAW button problem.

Hello @JadeOfMaar

What @Lisias wanted to say about that duplicated button, is that once it was applied the Bad Bug appeared like here on this video:

 

The duplcated that @Lisias mentioned is these ones (WJClosed ):

	MODULE
	{
		name = MultiModeEngine
		primaryEngineID = WJOpen
		secondaryEngineID = WJClosed
	}

and


	MODULE
	{
		name = ModuleEnginesFX
		engineID = WJClosed

 

 

But with the proposed fix:

PART
{
	// --- general parameters ---
	name = opt_sage
	module = Part
	author = K.Yeon, JadeOfMaar
	tags = opt mk2 deep sky magnet magneto surge plasma jet

	// --- asset parameters ---
	scale = 1
	rescaleFactor = 1

	MODEL
	{
		model = OPT_Legacy/Parts/Engines/SAGE/OPT_J61
	}

	// --- node definitions ---
	node_stack_top = 0.0, 0.17904, 0.0, 0.0, 1.0, 0.0, 3
	//node_attach = 1.25, 0.0, 0.0, 0.0, 1.0, 0.0, 4


	// --- editor parameters ---
	TechRequired = experimentalScience
    entryCost = 980000
    cost = 34000
	category = Engine
	subcategory = 0
	title = OPT-E WarpJet "S.A.G.E."
	manufacturer = OPT Propulsion Science Division
	description = With the positive reception from the creation of S.U.R.G.E., demand was quickly raised for a compact and economical version for smaller spaceplanes. The wildly popular J-61 engine frame was chosen but some design considerations have made it inadequate in thick atmosphere. As a result, this was named the S.A.G.E (Stratosphere Accentuated (Undulating) Gauss Engine).


	// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision
	attachRules = 1,1,1,1,0


	// --- standard part parameters ---
	mass = 2.7
	dragModelType = default
	maximum_drag = 0.2
	minimum_drag = 0.2
	angularDrag = 2
	crashTolerance = 12
	breakingForce = 400
	breakingTorque = 600
	maxTemp = 2700
	emissiveConstant = 0.8 // engine nozzles are good at radiating.
	bulkheadProfiles = mk2, srf

	MODULE
	{
		name = MultiModeEngine
		primaryEngineID = WJOpen
		secondaryEngineID = WJClosed
	}

	MODULE
	{
		name = ModuleEnginesFX
		engineID = WJOpen
		thrustVectorTransformName = thrustTransform
		exhaustDamage = True
		ignitionThreshold = 0.03
		minThrust = 0
		maxThrust = 250
		heatProduction = 160
		useEngineResponseTime = True
		engineAccelerationSpeed = 0.7 //0.1
		engineDecelerationSpeed = 0.35 //0.25
		useVelocityCurve = False
		flameoutEffectName = flameout
		powerEffectName = running_open
		engageEffectName = engage
		disengageEffectName = disengage
		spoolEffectName = running_turbine
		engineSpoolIdle = 0.05
		engineSpoolTime = 1.0
		EngineType = LiquidFuel
		exhaustDamageMultiplier = 200
		exhaustDamageMaxRange = 10
		PROPELLANT
		{
			name = ElectricCharge
			ratio = 3.1
			DrawGauge = True
		}
		PROPELLANT
		{
			name = IntakeAir
			ratio = 1
			DrawGauge = True
		}
		atmosphereCurve
		{
			// Isp
			key = 0 300
			key = 1 240 -22.22222 -12.72055
			key = 10 190 -1.065011 0
		}

		// Jet params
		atmChangeFlow = True
		useVelCurve = False
		useAtmCurve = True
		atmCurve
		{
			//Atm pressure vs thrust mult
			key = 0 1.5 0 0
			key = 0.01 2 0 0
			key = 0.1 2 0 -2.810402
			key = 0.4 1.079561 -0.4394221 -0.4630589
			key = 1 1 8.414095E-07 -0.2883541
			key = 9 0 -0.1323353 0
		}
	}

	MODULE
	{
		name = ModuleEnginesFX
		engineID = WJClosed
		enabled = false
		thrustVectorTransformName = thrustTransform
		exhaustDamage = True
		ignitionThreshold = 0.01
		minThrust = 0
		maxThrust = 375
		heatProduction = 190
		useVelocityCurve = False
		flameoutEffectName = flameout
		powerEffectName = running_closed
		engageEffectName = engage
		disengageEffectName = disengage
		engineSpoolIdle = 0.05
		engineSpoolTime = 1.0
		EngineType = Electric
		exhaustDamageMultiplier = 200
		exhaustDamageMaxRange = 20
		PROPELLANT
		{
			name = ElectricCharge
			ratio = 101.927
			DrawGauge = True
		}
		PROPELLANT
		{
			name = IntakeAir
			ratio = 1
			DrawGauge = True
		}
		atmosphereCurve
		{
			// Isp
			key = 0.001 3000
			key = 1 30
			key = 1.05 0.001 0 0
		}

		// Jet params
		// atmChangeFlow = True
	}

	MODULE
	{
		name = ModuleSurfaceFX
		thrustProviderModuleIndex = 0
		fxMax = 0.6
		maxDistance = 25
		falloff = 2
		thrustTransformName = thrustTransform
	}

	MODULE
	{
		name = ModuleGimbal
		gimbalTransformName = thrustTransform
		gimbalResponseSpeed = 8
		useGimbalResponseSpeed = true
		gimbalRangeXP = 10
		gimbalRangeXN = 10
		gimbalRangeYP = 0
		gimbalRangeYN = 0
		gimbalRangeZP = 0
		gimbalRangeZN = 0
	}

	EFFECTS
	{
		running_open
		{
			PREFAB_PARTICLE
			{
				prefabName = fx_smokeTrail_light
				transformName = thrustTransform
				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
				localRotation = 1, 0, 0, -90
			}
			MODEL_MULTI_PARTICLE
			{
				name = Blaze
				modelName = OPT_Reconfig/FX2/SAGEBlaze
				transformName = thrustTransform
				emission = 0.05 0
				emission = 0.1 1
				speed = 0 0.1
				speed = 1 0.2 0.312365 0.312365
				speed = 2 1
				energy = 1.5 1 0 0
				energy = 2 1.5
			}
			MODEL_MULTI_PARTICLE
			{
				name = Stream1
				modelName = OPT_Reconfig/FX2/SAGEStream
				transformName = thrustTransform
				emission = 0.05 0
				emission = 0.5 1
				energy = 0 0.2
				energy = 1 1 0 0
				energy = 1.5 1 0 0
				energy = 2 1.5
				localPosition = 0.3, 0, 0
			}
			MODEL_MULTI_PARTICLE
			{
				name = Stream2
				modelName = OPT_Reconfig/FX2/SAGEStream
				transformName = thrustTransform
				emission = 0.05 0
				emission = 0.5 1
				energy = 0 0.2
				energy = 1 1 0 0
				energy = 1.5 1 0 0
				energy = 2 1.5
				localPosition = -0.3, 0, 0
			}
			MODEL_MULTI_PARTICLE
			{
				name = ShockPulse
				modelName = OPT_Reconfig/FX2/s2ShockPulse
				transformName = thrustTransform
				emission = 1.1 0
				emission = 1.2 1
				energy = 1.2 0.2
				energy = 2 2
				localPosition = 0, 0, 1
				localScale = 0.75, 0.75, 0.75
			}
			AUDIO
			{
				name = ramp
				channel = Ship
				clip = OPT_Legacy/Sounds/engine_1
				volume = 0.5 0
				volume = 1.5 1.5
				pitch = 0.0 0.8
				pitch = 0.5 1
				pitch = 1.0 2.4
				loop = true
				speed = 0.0 1 0 0
				speed = 2.0 2 1.2 0
			}
			AUDIO
			{
				name = scream
				channel = Ship
				clip = OPT_Legacy/Sounds/engine_2
				volume = 1.2 0 0 0
				volume = 2 0.5 0 0
				pitch = 0.5 1.5
				pitch = 1.5 1.7
				pitch = 2 2.5
				loop = true
				speed = 1.5 1
				speed = 2 2
			}
		}
		running_closed
		{
			MODEL_MULTI_PARTICLE
			{
				name = Blaze
				modelName = OPT_Reconfig/FX2/SAGEBlaze
				transformName = thrustTransform
				emission = 0.05 0
				emission = 0.1 1
				speed = 0 0.1
				speed = 1 0.2
			}
			MODEL_MULTI_PARTICLE
			{
				name = Stream1
				modelName = OPT_Reconfig/FX2/SAGEStream
				transformName = thrustTransform
				emission = 0.05 0
				emission = 0.5 1
				energy = 0 0.2
				energy = 1 0.75 0 0
				speed = 0 1.5
				speed = 1 2
				localPosition = 0.3, 0, 0
			}
			MODEL_MULTI_PARTICLE
			{
				name = Stream2
				modelName = OPT_Reconfig/FX2/SAGEStream
				transformName = thrustTransform
				emission = 0.05 0
				emission = 0.5 1
				energy = 0 0.2
				energy = 1 0.75 0 0
				speed = 0 1.5
				speed = 1 2
				localPosition = -0.3, 0, 0
			}
			AUDIO
			{
				name = ramp
				channel = Ship
				clip = OPT_Legacy/Sounds/engine_1
				volume = 0.5 0
				volume = 1.5 1.5
				pitch = 0.0 0.8
				pitch = 0.5 1
				pitch = 1.0 2.4
				loop = true
				speed = 0.0 1 0 0
				speed = 2.0 2 1.2 0
			}
			AUDIO
			{
				name = scream
				channel = Ship
				clip = OPT_Legacy/Sounds/engine_2
				volume = 1.2 0 0 0
				volume = 2 0.5 0 0
				pitch = 0.5 1.5
				pitch = 1.5 1.7
				pitch = 2 2.5
				loop = true
				speed = 1.5 1
				speed = 2 2
			}
		}
		running_turbine
		{
			AUDIO
			{
				channel = Ship
				clip = OPT_Legacy/Sounds/engine_1
				volume = 0.0 0.0
				volume = 0.05 0.4
				volume = 1.0 0.7
				volume = 1.2 1.0
				pitch = 0.0 0.5
				pitch = 0.05 0.5
				pitch = 0.5 2
				pitch = 1.0 1
				loop = true
			}
		}
		engage
		{
			AUDIO
			{
				channel = Ship
				clip = OPT_Legacy/Sounds/seismiccharge
				volume = 0.5
				pitch = 1.0
				loop = false
			}
		}
		disengage
		{
			AUDIO
			{
				channel = Ship
				clip = OPT_Legacy/Sounds/seismiccharge
				volume = 0.35
				pitch = 1.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 = FXModuleAnimateThrottle
		animationName = engine_light
		responseSpeed = 0.01
		dependOnEngineState = True
		dependOnThrottle = True
		preferMultiMode = True // bind to the parent multimode module, not the actual engines.
	}

	MODULE
	{
		name = ModuleResourceIntake
		resourceName = IntakeAir
		checkForOxygen = True
		area = 0.002
		intakeSpeed = 30
		intakeTransformName = intake_transform
		machCurve
		{
			key = 3 1 0 0
			key = 6 3 0 0
		}
	}

	RESOURCE
	{
		name = IntakeAir
		amount = 10
		maxAmount = 10
	}

	MODULE
	{
		name = ModuleLiftingSurface
		useInternalDragModel = False
		deflectionLiftCoeff = 0.35
		dragAtMaxAoA = 0.3
		dragAtMinAoA = 2
	}
}

All problems were solved.

 

Link to post
Share on other sites

Hi, I was hoping that I could use TweakScale on OPT parts to make bigger jets. Is it possible by chance? When I rightclick on various OPT parts, it won't let me change their size like other modded objects I have (KSPI)

Specifically I was hoping to resize the main jet hulls and cockpits

Here's my gamedata folder: 9rOvIQp.png

Edited by Xithyl515
Link to post
Share on other sites
10 hours ago, JadeOfMaar said:

@Lisias @pmborg The second engine module is not rogue. It's supposed to be there. 

I know. I was trying to zero in on the problem - i was kinda tired too, and probably didn't expressed myself the best way.

(More than one ModuleEngineFX is used for MultiModeEngine support. It's legit, indeed)

But somehow opt_sage is behaving as TweaskScale when rogue patched.

Now we will work on detecting why this is happing. The Rapier engine also uses this same stunt, and at least me didn't noticed this behaviour on it (I will check on a few hours) [ a few hors later: NOPE. Rapier works as intended.]

 

10 hours ago, pmborg said:

But with the proposed fix:

All problems were solved.

What does not means that opt_sage is at faulty neither. Rapier engine also uses the same stunt, the second module does not have enabled = false, and yet it works fine, no duplicated buttons on PAW.

We have a toe stomping fest here. Something is overruling MultiModeEngine and re-enabling the second engine [or forgetting to disable it] - as a matter of curiosity, there's something disabling TweakScale on [some parts from] that craft on @pmborg instalment, so perhaps this problem is related.

 

9 hours ago, Xithyl515 said:

Hi, I was hoping that I could use TweakScale on OPT parts to make bigger jets. Is it possible by chance? When I rightclick on various OPT parts, it won't let me change their size like other modded objects I have (KSPI)

It's your lucky day, there's a TweakScale Companion for OPT on the works on this exact moment. :)

Give a look on the TweakScale Companion Program Thread now and then, I'm publishing what's being released there.

Spoiler:

Spoiler

I will tacked it down once I finish the HabTech2 support.

 

Edited by Lisias
brute force post merge and additional fixes (on brackets and italics)
Link to post
Share on other sites

"there's something disabling TweakScale on that craft on @pmborg instalment, so perhaps this problem is related. "

Hello @Lisias,

This engines have a kinda dual behavior because above 8.000m +-, they become a super charged ones...

Here on this image we can see tweakscale working well:

the small engine and big engine:

GVH0oJK.png

Link to post
Share on other sites
2 hours ago, pmborg said:

"there's something disabling TweakScale on that craft on @pmborg instalment, so perhaps this problem is related. "

<cut by me>

Here on this image we can see tweakscale working well:

the small engine and big engine:

I need to refrain myself from posting here before taking my coffee. :)

Some parts are getting TS disabled on your craft, not all. I will fix the original post too.

-- POST EDIT --

I found a new workaround that doesn't involves editing the OPT_SAGE.cfg to something non-conformal: on launch, and before hitting the STAGE the first time for the launch, click on the "Toggle Mode" button of the SAGE at least one time (two, to get it reset to the initial configuration).

I'm convinced this is something on B9PS.

Edited by Lisias
post edit
Link to post
Share on other sites
On 7/31/2020 at 7:54 PM, Xithyl515 said:

Specifically I was hoping to resize the main jet hulls and cockpits

There are no Tweakscale configs for those. Why?

  • I really don't like the idea of scaling crewed parts (especially, making them smaller).
  • Fuselage parts receive WBI tank modules (for WBI users) which are incompatible with Tweakscale.
Link to post
Share on other sites
17 hours ago, JadeOfMaar said:
  • Fuselage parts receive WBI tank modules (for WBI users) which are incompatible with Tweakscale.

Has not support (yet) is a better way of saying it. :) 

Link to post
Share on other sites
19 hours ago, JadeOfMaar said:

bTbsl9J.pngPNywtA0.png

OPT Spaceplane Continued 2.1

  • Now available for KSP 1.9.1 and later with CKAN.
  • No longer contains old plugin bundles.
  • Now requires OPT Reconfig.

DOWNLOAD OPT CONTINUED :: SPACEDOCK

DOWNLOAD RECONFIG :: SPACEDOCK :: GITHUB

 

- snippety snips-

Attention, everyone!

This is finally a thing. Especially the CKAN part.

Have a nice day.

Please take any further discussion or support requests to the new thread for this:

 

Link to post
Share on other sites
  • Geonovast locked and unlocked this topic
  • 3 months later...
Guest
This topic is now closed to further replies.
×
×
  • Create New...