Skip to content

Outer Planets Mod Parallax is incompatible with Kcalbeloh #26

@Mjrlun

Description

@Mjrlun

This issue may not be directly related to OPM's Parallax, and more likely a general issue for parallax addons' load order. It may not even be fundamentally Kcalbeloh's fault. If you can't find anything, I'll report this to Parallax directly.

The particular source of the issue is mysterious, although is directly involved with the load order (see the temporary solutions below). This issue is independent of home switch, although changing to a Kcalbeloh planet as the home will allow for in game testing as opposed to an infinite startup loading screen.

The direct effects of this appear to be very broad. ALL vanilla bodies' surfaces will refuse to render, and generate an infinite loading screen on game launch if any of them were used as the location for the KSC.

Sample error for Kerbin/"Nibrek" (homeswitch is not related to the issue, and the first line of this error will not be present w/o it):

[WRN 17:48:24.236] Cannot find preset 'High' for pqs 'Nibrek'
[EXC 17:48:24.261] KeyNotFoundException: The given key was not present in the dictionary.
	System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) (at <9577ac7a62ef43179789031239ba8798>:0)
	ParallaxOptimized.SubdivisionData.DetermineMaterial () (at <40e34d3c09734e828597afb2f90e2e92>:0)
	ParallaxOptimized.SubdivisionData..ctor (PQ quad, System.Int32 subdivisionLevel, System.Single subdivisionRadius, System.Boolean subdividable) (at <40e34d3c09734e828597afb2f90e2e92>:0)
	ParallaxOptimized.PQSMod_Subdivide.OnQuadBuilt (PQ quad) (at <40e34d3c09734e828597afb2f90e2e92>:0)
	PQS.Mod_OnQuadBuilt (PQ quad) (at <4b449f2841f84227adfaad3149c8fdba>:0)
	PQS.BuildQuad (PQ quad) (at <4b449f2841f84227adfaad3149c8fdba>:0)
	PQ.Build () (at <4b449f2841f84227adfaad3149c8fdba>:0)
	PQ.SetVisible () (at <4b449f2841f84227adfaad3149c8fdba>:0)
	PQ.UpdateVisibility () (at <4b449f2841f84227adfaad3149c8fdba>:0)
	PQ.UpdateSubdivision () (at <4b449f2841f84227adfaad3149c8fdba>:0)
	PQ.UpdateSubdivision () (at <4b449f2841f84227adfaad3149c8fdba>:0)
	PQ.UpdateSubdivision () (at <4b449f2841f84227adfaad3149c8fdba>:0)
	PQ.UpdateSubdivision () (at <4b449f2841f84227adfaad3149c8fdba>:0)
	PQS.UpdateQuadsInit () (at <4b449f2841f84227adfaad3149c8fdba>:0)
	(wrapper dynamic-method) PQS.PQS.StartSphere_Patch0(PQS,bool)
	PQS.RebuildSphere () (at <4b449f2841f84227adfaad3149c8fdba>:0)
	PQS.Update () (at <4b449f2841f84227adfaad3149c8fdba>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)

All other bodies will have the same "EXC" KeyNotFoundException, resulting in no surface being rendered besides that of the map-view heightmap.

Here's a temporary fix which works:
If all OPM Parallax config files are merged into the Stock Parallax configs/folders, the game will load and run with no issue.
By this I mean: append Scatters/ParallaxTerrain/ParallaxSubdivision into their Stock config files Scatters/ParallaxTerrain/IncreaseSubdivisionCount respectively (preserving syntax), and then move the planet configs in the _Scatters folder into the same relative folder in the stock config.

A second equivalent solution is to simply rename the OPM_Parallax folder to be loaded after Parallax_StockTextures, such as ZOPM_Parallax

Implementing this fix causes a change in the load order which can be seen below. It obviously creates the fix, but I'm not sure how it is related to Kcalbeloh:

SEPARATED (OPM_Parallax in separate directories) ORDER
[LOG 19:12:05.998] Config(Parallax) OPM_Parallax/ParallaxTerrain/Parallax
[LOG 19:12:05.998] Config(@Kopernicus:FOR[ParallaxStock]) OPM_Parallax/_Configs/IncreaseSubdivisionCount/@Kopernicus:FOR[ParallaxStock]
[LOG 19:12:05.998] Config(@Kopernicus:FOR[ParallaxStock]) OPM_Parallax/_Configs/Scatters/@Kopernicus:FOR[ParallaxStock]
[LOG 19:12:05.998] Config(ParallaxScatters) OPM_Parallax/_Scatters/Configs/Hale/ParallaxScatters
[LOG 19:12:05.998] Config(ParallaxScatters) OPM_Parallax/_Scatters/Configs/Karen/ParallaxScatters
[LOG 19:12:05.998] Config(ParallaxScatters) OPM_Parallax/_Scatters/Configs/Nissee/ParallaxScatters
[LOG 19:12:05.998] Config(ParallaxScatters) OPM_Parallax/_Scatters/Configs/Plock/ParallaxScatters
[LOG 19:12:05.998] Config(ParallaxScatters) OPM_Parallax/_Scatters/Configs/Polta/ParallaxScatters
[LOG 19:12:05.998] Config(ParallaxScatters) OPM_Parallax/_Scatters/Configs/Priax/ParallaxScatters
[LOG 19:12:05.998] Config(ParallaxScatters) OPM_Parallax/_Scatters/Configs/Slate/ParallaxScatters
[LOG 19:12:05.998] Config(ParallaxScatters) OPM_Parallax/_Scatters/Configs/Tal/ParallaxScatters
[LOG 19:12:05.998] Config(ParallaxScatters) OPM_Parallax/_Scatters/Configs/Tekto/ParallaxScatters
[LOG 19:12:05.998] Config(ParallaxScatters) OPM_Parallax/_Scatters/Configs/Thatmo/ParallaxScatters
[LOG 19:12:05.998] Config(ParallaxScatters) OPM_Parallax/_Scatters/Configs/Wal/ParallaxScatters
[LOG 19:12:05.998] Config(@Kopernicus:FOR[ParallaxStock]) Parallax/Config/AllowKSCScatter/@Kopernicus:FOR[ParallaxStock]
[LOG 19:12:05.998] Config(ParallaxGlobalConfig) Parallax/Config/ParallaxGlobal/ParallaxGlobalConfig
[LOG 19:12:05.999] Config(ParallaxScatters-EXPORTED) Parallax/Exports/Dres/ParallaxScatters-EXPORTED
[LOG 19:12:05.999] Config(ParallaxScatters-EXPORTED) Parallax/Exports/Eeloo/ParallaxScatters-EXPORTED
[LOG 19:12:05.999] Config(ParallaxScatters-EXPORTED) Parallax/Exports/Gilly/ParallaxScatters-EXPORTED
[LOG 19:12:05.999] Config(ParallaxScatters-EXPORTED) Parallax/Exports/Kerbin/ParallaxScatters-EXPORTED
[LOG 19:12:05.999] Config(ParallaxScatters-EXPORTED) Parallax/Exports/Laythe/ParallaxScatters-EXPORTED
[LOG 19:12:05.999] Config(ParallaxScatters-EXR) Parallax/Exports/Mun/ParallaxScatters-EXR
[LOG 19:12:05.999] Config(ParallaxUIDefault) Parallax/ScatterUI/DefaultUIScatter/ParallaxUIDefault
[LOG 19:12:05.999] Config(@PART[PotatoRoid]) Parallax_StockTextures/AsteroidPartModule/@PART[PotatoRoid]
[LOG 19:12:05.999] Config(Parallax) Parallax_StockTextures/ParallaxTerrain/Parallax
[LOG 19:12:05.999] Config(@Kopernicus:FOR[ParallaxStock]) Parallax_StockTextures/_Configs/IncreaseSubdivisionCount/@Kopernicus:FOR[ParallaxStock]
[LOG 19:12:05.999] Config(@Kopernicus:FOR[ParallaxStock]) Parallax_StockTextures/_Configs/Scatters/@Kopernicus:FOR[ParallaxStock]
[LOG 19:12:05.999] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/InstancedIndirectColor
[LOG 19:12:05.999] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/InstancedCutout
[LOG 19:12:05.999] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/InstancedCutoutBillboard
[LOG 19:12:05.999] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/Bubble2
[LOG 19:12:05.999] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/ParallaxInstanced
[LOG 19:12:05.999] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/ParallaxInstancedUV
[LOG 19:12:05.999] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/ParallaxInstancedIce
[LOG 19:12:05.999] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/ParallaxInstancedIceUV
[LOG 19:12:05.999] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Bop/ParallaxScatters
[LOG 19:12:05.999] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Dres/ParallaxScatters
[LOG 19:12:05.999] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Duna/ParallaxScatters
[LOG 19:12:05.999] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Eeloo/ParallaxScatters
[LOG 19:12:05.999] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Eve/ParallaxScatters
[LOG 19:12:05.999] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Gilly/ParallaxScatters
[LOG 19:12:05.999] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Ike/ParallaxScatters
[LOG 19:12:05.999] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Kerbin/ParallaxScatters
[LOG 19:12:05.999] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Laythe/ParallaxScatters
[LOG 19:12:05.999] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Minmus/ParallaxScatters
[LOG 19:12:05.999] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Moho/ParallaxScatters
[LOG 19:12:05.999] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Mun/ParallaxScatters
[LOG 19:12:05.999] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Pol/ParallaxScatters
[LOG 19:12:05.999] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Tylo/ParallaxScatters
[LOG 19:12:05.999] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Vall/ParallaxScatters

MERGED ORDER (All inside Parallax_StockTextures directory)
[LOG 19:20:01.068] Config(ParallaxScatters-EXPORTED) Parallax/Exports/Dres/ParallaxScatters-EXPORTED
[LOG 19:20:01.068] Config(ParallaxScatters-EXPORTED) Parallax/Exports/Eeloo/ParallaxScatters-EXPORTED
[LOG 19:20:01.068] Config(ParallaxScatters-EXPORTED) Parallax/Exports/Gilly/ParallaxScatters-EXPORTED
[LOG 19:20:01.068] Config(ParallaxScatters-EXPORTED) Parallax/Exports/Kerbin/ParallaxScatters-EXPORTED
[LOG 19:20:01.068] Config(ParallaxScatters-EXPORTED) Parallax/Exports/Laythe/ParallaxScatters-EXPORTED
[LOG 19:20:01.068] Config(ParallaxScatters-EXR) Parallax/Exports/Mun/ParallaxScatters-EXR
[LOG 19:20:01.068] Config(ParallaxUIDefault) Parallax/ScatterUI/DefaultUIScatter/ParallaxUIDefault
[LOG 19:20:01.068] Config(@PART[PotatoRoid]) Parallax_StockTextures/AsteroidPartModule/@PART[PotatoRoid]
[LOG 19:20:01.068] Config(Parallax) Parallax_StockTextures/ParallaxTerrain/Parallax
[LOG 19:20:01.068] Config(@Kopernicus:FOR[ParallaxStock]) Parallax_StockTextures/_Configs/IncreaseSubdivisionCount/@Kopernicus:FOR[ParallaxStock]
[LOG 19:20:01.068] Config(@Kopernicus:FOR[ParallaxStock]) Parallax_StockTextures/_Configs/Scatters/@Kopernicus:FOR[ParallaxStock]
[LOG 19:20:01.069] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/InstancedIndirectColor
[LOG 19:20:01.069] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/InstancedCutout
[LOG 19:20:01.069] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/InstancedCutoutBillboard
[LOG 19:20:01.069] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/Bubble2
[LOG 19:20:01.069] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/ParallaxInstanced
[LOG 19:20:01.069] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/ParallaxInstancedUV
[LOG 19:20:01.069] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/ParallaxInstancedIce
[LOG 19:20:01.069] Config(ScatterShader) Parallax_StockTextures/_Scatters/ShaderBank/Custom/ParallaxInstancedIceUV
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Bop/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Dres/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Duna/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Eeloo/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Eve/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Gilly/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Hale/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Ike/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Karen/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Kerbin/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Laythe/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Minmus/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Moho/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Mun/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Nissee/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Plock/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Pol/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Polta/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Priax/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Slate/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Tal/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Tekto/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Thatmo/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Tylo/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Vall/ParallaxScatters
[LOG 19:20:01.069] Config(ParallaxScatters) Parallax_StockTextures/_Scatters/Configs/Wal/ParallaxScatters

A few notes on this fix:
Changing the directories and names of the OPM Parallax configs has no effect on the outcome.
In doing this, it forces OPM's parallax to load after the vanilla Parallax.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions