Jump to content

Tonas1997

Members
  • Posts

    276
  • Joined

  • Last visited

Posts posted by Tonas1997

  1. Sorry, I didn't phrase it correctly. Kerbalism experiments use a "toggle" animation rather than separate open/close ones; somehow, I got it to work with a telescope from another mod by referencing its TSTSpaceTelescope module's baseTransformName field, so I thought about trying to use the same solution on the TST advanced space telescope. Since that field doesn't exist on the part, I wanted to know if baseTransformName has a default value.

  2. 8 hours ago, JPLRepo said:

    [KSPField] public string animationClipNameClose = "close";
    [KSPField] public string animationClipNameOpen = "open";

    Thanks! Would "open" be the equivalent to the Telescope transform found on the other space telescope? I reckon that one is more of toggle, which is what I need.

    MODULE
    {
    	name = TSTSpaceTelescope
    	maxZoom = 4
    	xmitDataScalar = 0.5
    	labBoostScalar = 1.2 
    	baseTransformName = Telescope	
    	cameraTransformName = CameraTransform	
    	lookTransformName = LookTransform
    }

     

  3. Is anyone having issues getting this mod to work with bipropellant engines in 1.10? Weirdly enough, ion engines work just fine and generate thrust during time warp, but other ones don't: the PAW shows them as not having their fuel requirements met (even if they work just fine if I uninstall Persistent Thrust) and I can "ignite" them, but no thrust is generated and I can't see the Waterfall exhaust effects. The engine does appear to emit light as predicted by Engine Lightning, so something's acting up :/ 

    For reference, this is happening in an RO modpack.

  4. Is it possible to use ElectricEngineControllerFX to allow ion engines from other mods or stock to work during time warp? Most of them work quite simply (just regular engines accepting xenon and electric charge as propellants), but I can't find any documentation for this module :/

    Ideally I would be using PersistentThrust, but the mod seems a bit broken in 1.10...

  5. Getting a weird error in the orbit MFD screen (which doesn't show the orbit diagram with the blue ellipse, for some reason):

    [EXC 13:42:42.815] MissingMethodException: Vector3d Orbit.Up(double)
    	JSI.MonitorPage.RenderBackground (UnityEngine.RenderTexture screen) (at <05eb104d0dd24f118b48a18639af1146>:0)
    	JSI.RasterPropMonitor.RenderScreen () (at <05eb104d0dd24f118b48a18639af1146>:0)
    	JSI.RasterPropMonitor.OnUpdate () (at <05eb104d0dd24f118b48a18639af1146>:0)
    	InternalProp.OnUpdate () (at <c1858a3f77504bd1aaa946fdccf84670>:0)
    	InternalModel.OnUpdate () (at <c1858a3f77504bd1aaa946fdccf84670>:0)
    	Part.InternalOnUpdate () (at <c1858a3f77504bd1aaa946fdccf84670>:0)
    	Part.Update () (at <c1858a3f77504bd1aaa946fdccf84670>:0)
    	UnityEngine.DebugLogHandler:LogException(Exception, Object)
    	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    	UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)

     

  6. How do I get this to work with RPM? I have both mods installed, but I get blank screens on the MFD and a couple of errors:

    [ERR 20:23:23.940] Matrix stack full depth reached
    
    [ERR 20:23:23.940] Matrix stack full depth reached
    
    [EXC 20:23:23.948] MissingMethodException: Vector3d Orbit.Up(double)
    	JSI.MonitorPage.RenderBackground (UnityEngine.RenderTexture screen) (at <05eb104d0dd24f118b48a18639af1146>:0)
    	JSI.RasterPropMonitor.RenderScreen () (at <05eb104d0dd24f118b48a18639af1146>:0)
    	JSI.RasterPropMonitor.OnUpdate () (at <05eb104d0dd24f118b48a18639af1146>:0)
    	InternalProp.OnUpdate () (at <c1858a3f77504bd1aaa946fdccf84670>:0)
    	InternalModel.OnUpdate () (at <c1858a3f77504bd1aaa946fdccf84670>:0)
    	Part.InternalOnUpdate () (at <c1858a3f77504bd1aaa946fdccf84670>:0)
    	Part.Update () (at <c1858a3f77504bd1aaa946fdccf84670>:0)
    	UnityEngine.DebugLogHandler:LogException(Exception, Object)
    	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    	UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)

     

  7. There's something weird going on with random parameters... I have a "launch satellite" contract of which there can be a few simultaneous instances. The contract type has a random resource requirement parameter that seems to work fine when the contracts are generated, but after a while they all end up requiring the exact same resource amount :/

    EDIT: I was snooping through the persistent.sfs file and came across one of these glitched contracts; the parameter node delegate kept the random resource quantity the contract was generated with (710 units of ComSatPayload):

    PARAM
    {
      name = HasResource
      id = HasComSatPayload
      state = Incomplete
      disableOnStateChange = False
      values = 0,0,0,0,0
      ContractIdentifier = AdvSatellites.RepeatComSats
      title = 
      notes = 
      completedMessage = 
      hideChildren = True
      allowStateReset = True
      capacity = False
      RESOURCE
      {
        resource = ComSatPayload
        minQuantity = 1040
      }
      PARAM
      {
        name = ParameterDelegate`1
        state = Incomplete
        disableOnStateChange = False
        values = 0,0,0,0,0
        title = Resource: ComSatPayload: At least 710 units
        notes = 
        completedMessage = 
      }
    }

    Why did the minQuantity field change to something else? One of the contract instances was firstly generated with a 1040 unit requirement, so did CC assign that value to the rest of them? For reference, here's the actual contract definition:

    Spoiler
    CONTRACT_TYPE
    {
    	name = RepeatComSats
    	title = Commercial Communications Satellite
    	group = AdvSatellites
    	agent = Satellites
    
    	description = We have a customer requesting a new Communications Satellite. Design a satellite within their specs and launch into an orbit with the proper orbital parameters as outlined in the contract.&br;&br;This contract can be completed as many times as you would like. The orbits will be chosen randomly from Tundra, Geostationary, Molniya and Geosynchronous orbits.&br;&br;<b><color=red>NOTE: The satellite will be destroyed upon completion of the contract. This simulates transfer of the payload back to the customer.</color></b>&br;&br;<b>Number of Contracts Completed: $RepeatComSats_Count</b>
    	genericDescription = Put a satellite into the requested orbit.
    
    	synopsis = Launch a new Commercial Communications Satellite
    
    	completedMessage = Congratulations! The customer has reported the satellite is in the proper orbit.
    
    	sortKey = 900
    
    	cancellable = true
    	declinable = true
    	autoAccept = false
    	minExpiry = 5
    	maxExpiry = 10
    	maxCompletions = 0
    	maxSimultaneous = 5
    	deadline = 1095  // 3 years
    
    	targetBody = HomeWorld()
    
    	prestige = Trivial       // 1.0x
    	advanceFunds =  (12000 + (@AdvComSat/HasComSatPayload/minQuantity *2)) * (1 + @AdvComSat/ReachSpecificOrbit/index * 0.4) * 3.6
    	rewardScience = 0
    	rewardReputation = Round((@advanceFunds / 1000),1)
    	rewardFunds = (@advanceFunds * 1.5)
    	failureReputation = @rewardReputation * 1.5
    	failureFunds = @advanceFunds
    
    	// ************ REQUIREMENTS ************
    
    	REQUIREMENT
    	{
    		name = CompleteContract
    		type = CompleteContract
    		contractType = FirstMolniyaSat
    		title = Complete @contractType Contract
    	}
    	REQUIREMENT
    	{
    		name = CompleteContract
    		type = CompleteContract
    		contractType = FirstTundraSat
    		title = Complete @contractType Contract
    	}
    	REQUIREMENT
    	{
    		name = CompleteContract
    		type = CompleteContract
    		contractType = first_GEOUncrewed
    		title = Complete @contractType Contract
    	}
    	REQUIREMENT
    	{
    		name = CompleteContract
    		type = CompleteContract
    		contractType = EarlyComSat
    		minCount = 3
    		title = Complete @contractType Contract at least 3 times
    	}
    
    	BEHAVIOUR
    	{
    		name = OrbitGenerator
    		type = OrbitGenerator
    
    		RANDOM_ORBIT
    		{
    			type = KOLNIYA  // index = 0
    		}
    
    		RANDOM_ORBIT
    		{
    			type = STATIONARY  // index = 1
    		}
    
    		RANDOM_ORBIT
    		{
    			type = TUNDRA  // index = 2
    		}
    	}
    	
    	BEHAVIOUR
    	{
    		name = IncrementTheCount
    		type = Expression
    		
    		CONTRACT_COMPLETED_SUCCESS
            {
                RepeatComSats_Count = $RepeatComSats_Count + 1
            }
    	}
    
    	// ************ PARAMETERS ************
    
    	PARAMETER
    	{
    		name = AdvComSat
    		type = VesselParameterGroup
    		define = AdvComSatellite
    		dissassociateVesselsOnContractCompletion = true
    		title = Commercial Communications Satellite
    
    		PARAMETER
    		{
    			name = NewVessel
    			type = NewVessel
    			title = Launch a New Vessel
    			hideChildren = true
    		}
    		PARAMETER
    		{
    			name = Crewmembers
    			type = HasCrew
    			minCrew = 0
    			maxCrew = 0
    			title = Uncrewed
    			hideChildren = true
    		}
    		PARAMETER
    		{
    			name = HasComSatPayload
    			type = HasResource
    			resource = ComSatPayload
    			minQuantity = Round(UnlockedTech().Count() * 25 * Random(0.5,1.2),10) // for 20 nodes, 200 ~ 480
    			
    			//Round((Pow(Random(0.5,1.5) * (0.3 + UnlockedTech().Count() / 100),2)*2500)/2,100) // for 10 nodes, 78~703 kg
    			//title = Have a ComSatPayload of at least @minQuantity units on the craft
    		}
    		PARAMETER
    		{
    			name = ReachSpecificOrbit
    			type = ReachSpecificOrbit
    			displayNotes = true
    			index = int(Min(2, Random(0, 3)))
    			deviationWindow = 4
    			
    			PARAMETER
    			{
    				name = Duration
    				type = Duration
    
    				duration = 2m
    
    				preWaitText = Check for Stable Orbit
    				waitingText = Checking for Stable Orbit
    				completionText = Stable Orbit: Confirmed
    			}
    		}
    	}
      BEHAVIOUR
      {
        name = TransferVessel
        type = DestroyVessel
        onState = CONTRACT_SUCCESS
        vessel = AdvComSatellite
      }
      BEHAVIOUR
      {
    	name = VesselDestroyed
    	type = DialogBox
    	DIALOG_BOX
    	{
    	  title = Vessel Ownership Transferred
    	  condition = CONTRACT_SUCCESS
    	  position = CENTER
    	  width = 0.5
    	  TEXT
    	  {
    		text = The contract has been completed successfully and the satellite has been transferred back to the customer.
    	  }
    	}
      }
    }

     

     

  8. Hello! Two questions:

    • Is the config MM-tweakable? It would be nice for us to be able to add in new patches like this
    @CIT_BAM_SETTINGS:FINAL
    {
    	// Standard bipropellants
    	@resdef ^=:$:;Kerosene,0.001:
    	@resdef ^=:$:;LqdMethane,0.00064:
    	@resdef ^=:$:;LqdHydrogen,0.00271:
    	
    	// hypergols
    	@resdef ^=:$:;Hydrazine,0.00526:
    	
    	// intert gasses (absorb explosions)
    	@resdef ^=:$:;Nitrogen,-0.0005:
    	@resdef ^=:$:;Helium,-0.0003:
    	
    	// others
    	@resdef ^=:$:;Antimatter,24.289:
    }

    but I can't see this node anywhere on the cache :/ 

    • Does the mod provide a default configuration for non-patched resources? I jumped in game and parts that aren't explicitely configured don't produce any explosions
  9. On 10/11/2018 at 3:28 PM, Shadowmage said:

    @Apaseall I'm enjoying the conversation :)

    Correct -- I designed the wheel collider system entirely in the Unity editor, where I don't have access to any of the KSP classes (source files), so there is no such thing as a 'Vessel', or a 'Part', etc.  These wheel colliders actually work far, far, better in the Unity Editor as compared to KSP; but tests revealed this was almost entirely due to the joints used to link different parts together -- joints cause all sorts of instabilities in the simulation (as the joints are, basically, just another spring-damper system that holds the parts together).

    That is not to say that having more information couldn't make the simulation better (it can), but I wanted to start from a 'realism' perspective before jumping into hacky-land.  In real world physics, an individual wheels suspension knows absolutely nothing about the other wheels on the vehicle, or how much the vehicle weighs -- they for the most part, function entirely independently (anti-roll bars excluded).

    But also... knowing the vessel mass by itself does me little good.  I also need to know the distribution of mass (moment of inertia? inertia tensors for the various axis? idk the term for it...), so that I could effectively 'predict' how the vessel would react to specific forces being applied.  Which is all fine in theory for a single-rigidbody setup; but again the Unity joints and 'each part is a rigidbody' setup completely remove any potential for that simulation to be entirely accurate.  It -might- still be a viable addition to the simulation, and I'm thinking that the additional information I could get out of it would likely be close enough to work in all but the most noodley of craft designs (sim would assume joints are rigid, so if someone was 'abusing' the terrible joints.... it would play havok with that part of the sim).  Something to investigate for the future when I have time and feel like learning some new physics concepts (rigidbody dynamics).

     

    Good news on this front -- I did add in the code for this last night, and you can grab a .dll with the functions enabled from the dev branch on the KSPWheel repo -- (d/l link for dll --  https://github.com/shadowmage45/KSPWheel/raw/dev/GameData/KSPWheel/Plugin/KSPWheel.dll ).  More good news is that the new curve does increase effective friction -- so much that I was unable to spin out in a standard 4-wheeled vehicle no matter how I tried.  Drift a bit at high-speeds.. sure.  Tip over if CG was too high.. yep... more-so than before.  So perhaps the new curve was a bit 'too far'.... but was a good initial testing point.

    I didn't implement it as a full 'float curve' setup, but rather it has the chance to input values for the three important points of the simulation (extremum, asymptote, and tail).  An example of the patch/config I was using for testing is below.  Replace the .dll in your KSPWheel folder with the one from the link above, and drop the patch in your GameData folder somewhere, and it'll patch all KSPWheel using parts with the new curve.

     

    @PART[*]:HAS[@MODULE[KSPWheelBase]]
    {
    	@MODULE[KSPWheelBase]
    	{
    		//point = 'time' along the curve  (the x coordinate)
    		//value = value at that time in the curve (the y coordinate)
    		
    		//there is no starting slip point or value, it is always 0, 0
    		%asSlipPoint = 0.06
    		%asSlipVal = 1
    		%exSlipPoint = 0.35
    		%exSlipVal = 1
    		//there is no 'tail slip point' -- it is always 1.0
    		%tailSlipVal = 1
    	}
    }

     

    Do the latest DLLs for version 1.8.1 allow me to configure the friction curves like this?

  10. On 10/6/2021 at 1:08 PM, linuxgurugamer said:

    I'm working on adopting this, have contacted @CarnationRED about it.

    While it is bug-free, I'll be adding a whole bunch of textures, and maybe a few QOL if I find any

    Neat! Small QoL suggestion: the colors aren't that accurate (e.g. it's impossible to get a pitch black texture on the sides to blend in with TPS - and yes, I'm making a lifting body :)) 

  11. Roger! I did manage to find the old log somewhere else but it didn't show anything out of the ordinary: the experiment was correctly registered by Bureaucracy. Here's the player-prev.log, if you want to take a look. The experience is called "RP0RPWS1@SunInSpaceLowNoBiome".

    In the meanwhile, my probe entered another SOI, started recording the same experiment and now Bureaucracy promply displayed it as being researched, so it could have been a one-time thing lol

    Also, would it be easy/possible/not-much-of-a-bother to backport the UI fixes to 1.4? When I have a lot of queued experiences it's impossible to read the research window - and I can't imagine the nightmare it will be once my astronaut roster grows past its own as well! :D

  12. 49 minutes ago, severedsolo said:

    If Kerbalism has generated the science then it should show in the research panel. Can I get a log from the time the experiment completed (and thus should have been passed to Bureaucracy).

    Hmm, sadly I restarted the game after that playthough :/ 

    Oh well, I'll write that experiment to the Bureaucracy scenario in my persistent.sfs file and look out for any further problems.

    EDIT: for reference, I'm still playing on 1.4 as my modpack runs on KSP version 1.10 rip

  13. 2 hours ago, Arrowstar said:

    Can you check your KSP and KSPTOT log files to see if any errors show up when you push the Create Bodies File menu?

    Hmm, I just checked out both logs and the former doesn't accuse any error, while KSP.log doesn't indicate anything malfunctioning after

    [LOG 15:25:25.676] [KSPTOT Connect] message from [0]: GetCelestialBodyData n 0

    HOWEVER, after a while my log did start getting flooded with this message:

    [EXC 15:30:19.387] InvalidOperationException: The operation is not allowed on non-connected sockets.
    	System.Net.Sockets.TcpClient.GetStream () (at <376e8c39bbab4f1193a569c8dbe4305c>:0)
    	KSPTOTConnect.TMMinorFrame.cleanTCPClientsStreamsDTs () (at <32f0b1b7ad6440dbb09c1a58f9dd41db>:0)
    	KSPTOTConnect.TMMinorFrameManager.cleanTCPClientsStreamsDTs () (at <32f0b1b7ad6440dbb09c1a58f9dd41db>:0)
    	KSPTOTConnect.KSPTOTVesselTMTransmitter.cleanTCPClientsStreamsDTs () (at <32f0b1b7ad6440dbb09c1a58f9dd41db>:0)
    	KSPTOTConnect.KSPTOTVesselTMTransmitter.transmitTM () (at <32f0b1b7ad6440dbb09c1a58f9dd41db>:0)
    	KSPTOTConnect.KSPTOTConnect.Update () (at <32f0b1b7ad6440dbb09c1a58f9dd41db>:0)
    	UnityEngine.DebugLogHandler:LogException(Exception, Object)
    	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    	UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)

    and ended up at around 140Mb :D. Now, at some point I tried using the MCC Real Time System, but I can't tell if the spam was caused by it.

×
×
  • Create New...