Jump to content

[1.8.x] KSPWheel - Physics Based Alternate Wheel Collider [API Only]


Shadowmage

Recommended Posts

21 minutes ago, siklidkid said:

It doesn't work for 1.9 or 1.8  It freezes when it gets to the end on "Verifying expansion breaking ground serenity."

If you have Mechjeb and Fireslitter  first remove Firespitter and try see how it goes, KSPWheel works fine here for me on 1.9.1

If it still lock up start removing Mod by Mod (every one that has a *.dll) rinse and repeat

Link to comment
Share on other sites

  • 2 weeks later...
On 2/13/2020 at 4:03 AM, lo-fi said:

Awww shucks! It was worth losing a year to KSP modding, I still get a kick out of seeing stuff I had a hand in creating getting used and enjoyed. 

Big thanks to @Shadowmage as ever for picking up the torch.

Doing great thanks, working with wheels in the real world leading a team overhauling a steam locomotive. Keeps me just as busy! 

Indeed, our new fearless leader has kept up the mod really well despite other more demanding projects he has up his sleeve.

You and your locomotives... it's gonna take you out of this world someday.  Mark my words.

On 12/13/2019 at 7:33 AM, Dundrogen said:

@Shadowmage you did say my imagination was the limit to wheel rigs lol

just to give you some context of why i was asking to alternate wheel rotation positions earlier. quite self explanatory from the rig. i realised during testing that steering changes the esthetic rpm so just turning the wheel changed its' rotational position to make the rig more believable. God damn i love KSPwheel.

 

Ah ha!  I see what's going on here... the "legs" are just wheels that have their "turning" animation tuned to a sequence that imitates "walking" across the landscape.  Well played!  Almost had me fooled.

Link to comment
Share on other sites

  • 1 month later...

I was wondering if I could get a bit of help with a patch I'm writing to add KSPWheels to stock (and a few other mods). Seems to work great on the ones I've done so far, except the stock fixed gear. The gear itself performs great, but the rolling animation flops around oddly. It's hard to show on a static image but you can sort of see the ghosting as the wheel wobbles here:

xoVrw8L.jpg

Basically it oscillates as if the axle is off centre. I noticed that the "wheelcollider" and "wheelpivot" are not aligned in the model. There's a wheelColliderOffset field in the KSPWheelBase which I thought might fix it but seems to have no effect. So I was wondering if anyone had any ideas or could point me in the right direction?

Link to comment
Share on other sites

If the issue is the wheel axis is misaligned, maybe just disable the rolling animation? You don’t see much of the wheel after all. Otherwise it might be possible to provide a “fixed” replacement .mu file

Link to comment
Share on other sites

5 hours ago, Rodger said:

If the issue is the wheel axis is misaligned, maybe just disable the rolling animation? You don’t see much of the wheel after all. Otherwise it might be possible to provide a “fixed” replacement .mu file

Turning off the roll animation didn't seem to do anything, but setting suspension travel to 0 seemed to fix it. But that makes the brakes have virtually no effect... I'm trying to fine tune to see if I can get working brakes and wheels that don't flop around at the moment.

Thanks.

EDIT:

Ha, I was using the wrong object for wheel rotation. Genius with a capital J.

Edited by Citizen247
Link to comment
Share on other sites

  • 3 weeks later...
On 5/9/2020 at 9:25 AM, Citizen247 said:

Turning off the roll animation didn't seem to do anything, but setting suspension travel to 0 seemed to fix it. But that makes the brakes have virtually no effect... I'm trying to fine tune to see if I can get working brakes and wheels that don't flop around at the moment.

Thanks.

EDIT:

Ha, I was using the wrong object for wheel rotation. Genius with a capital J.

Have you had any luck with the stock patches? I've tried the ones I found on the Kerbal Foundris github, and they don't seem to function. Meanwhile, I've tried rewriting them myself, but I can't get the retractable landing gear to , well... retract, or steer/sit on the surface of the ground/rotate... Ugh.

Edited by AccidentalDisassembly
Link to comment
Share on other sites

Just now, 0111narwhalz said:

Stock packages are no longer supported.

Not sure what you're referring to; I am aware that the stock patches on the github repository aren't supported, hence they don't work, hence why I tried rewriting them myself. @Citizen247 indicated in his post that s/he was writing patches for the stock parts, and I was curious to know if he had has luck with the stock patches s/he was writing or already wrote.

Link to comment
Share on other sites

4 minutes ago, AccidentalDisassembly said:

Not sure what you're referring to; I am aware that the stock patches on the github repository aren't supported, hence they don't work, hence why I tried rewriting them myself. @Citizen247 indicated in his post that s/he was writing patches for the stock parts, and I was curious to know if he had has luck with the stock patches s/he was writing or already wrote.

I misunderstood. Carry on.

Link to comment
Share on other sites

On 5/28/2020 at 3:56 AM, AccidentalDisassembly said:

Have you had any luck with the stock patches? I've tried the ones I found on the Kerbal Foundris github, and they don't seem to function. Meanwhile, I've tried rewriting them myself, but I can't get the retractable landing gear to , well... retract, or steer/sit on the surface of the ground/rotate... Ugh.

I've only really been looking at landing gear, but I have got patches that appear to work. Though TBH with a few exceptions most of them are pretty much identical to the Foundries patches so YMMV. Anyway you can try the following in a cfg:
 

 //LY-05 Steerable Landing Gear
@PART[GearFree]:FOR[ZZZ-MoS-Tweaks]:NEEDS[KSPWheel]
{
	-MODULE[ModuleWheelBase]{}
	-MODULE[ModuleWheelSuspension]{}
	-MODULE[ModuleWheelSteering]{}
	-MODULE[ModuleWheelDamage]{}
	
	MODULE
	{
		name = KSPWheelBase
		wheelColliderName = WheelCollider
		wheelColliderOffset = -0.075
		wheelRadius = 0.198
		wheelMass = 0.04
		suspensionTravel = 0.05
		maxLoadRating = 5
		maxSpeed = 300
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = wheel
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelSuspension
		suspensionName = suspension
		suspensionOffset = -0.18
		suspensionAxis = 0, 1, 0
	}
	MODULE
	{
		name = KSPWheelSteering
		steeringName = SteeringPivot
		maxSteeringAngle = 20
		steeringAxis = 0, 1, 0
	}
	MODULE
	{
		name = KSPWheelBrakes
		maxBrakeTorque = 12
	}
	MODULE
	{
		name = KSPWheelDamage
		wheelName = wheel
		bustedWheelName = bustedwheel
	}
	MODULE
	{
		name = KSPWheelDustEffects
	}
	
 	-MODULE[TweakScale],* {}
}

 //LY-01 Fixed Landing Gear
@PART[GearFixed]:FOR[ZZZ-MoS-Tweaks]:NEEDS[KSPWheel]
{
	-MODULE[ModuleWheelBase]{}
	-MODULE[ModuleWheelSuspension]{}
	-MODULE[ModuleWheelBrakes]{}
	-MODULE[ModuleWheelDamage]{}

	MODULE
	{
		name = KSPWheelBase
		wheelColliderName = WheelCollider
		wheelColliderOffset = 0.065
		wheelRadius = 0.2
		wheelMass = 0.04
		suspensionTravel = 0.09
		maxLoadRating = 8
		maxSpeed = 300
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = WheelPivot //WheelCollider //WheelPivot
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelSuspension
		//suspensionName = WheelPivot
		wheelColliderName = WheelCollider
		suspensionOffset = 0
		suspensionAxis = 0, 1, 0
	}
	MODULE
	{
		name = KSPWheelBrakes
		wheelColliderName = WheelCollider
		maxBrakeTorque = 12
	}
	MODULE
	{
		name = KSPWheelDamage
		wheelColliderName = WheelCollider
		wheelName = WheelPivot
		//bustedWheelName = bustedwheel
	}
	MODULE
	{
		name = KSPWheelDustEffects
	}
	
 	-MODULE[TweakScale],* {}
}

 //this is actually the 'small' gear
@PART[SmallGearBay]:FOR[ZZZ-MoS-Tweaks]:NEEDS[KSPWheel]
{
	-MODULE[ModuleWheelBase]{}
	-MODULE[ModuleWheelSuspension]{}
	-MODULE[ModuleWheelSteering]{}
	-MODULE[ModuleWheelBrakes]{}
	-MODULE[ModuleWheelDeployment]{}
	-MODULE[ModuleWheelDamage]{}
	
	MODULE
	{
		name = KSPWheelBase
		wheelColliderName = WheelCollider
		wheelColliderOffset = 0.12
		wheelRadius = 0.18
		wheelMass = 0.1
		suspensionTravel = 0.12
		maxLoadRating = 8
		maxSpeed = 300
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = WheelPivot
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelSuspension
		suspensionName = SuspensionPivot
		suspensionOffset = -0.10
		suspensionAxis = 0,1,0
	}
	MODULE
	{
		name = KSPWheelSteering
		steeringName = SteeringPivot
		maxSteeringAngle = 25
		steeringAxis = 0, 1, 0
	}
	MODULE
	{
		name = KSPWheelBrakes
		maxBrakeTorque = 12
	}
	MODULE
	{
		name = KSPWheelDeployment
		animationName = LandingGearSmallDeploy
		tempColliderName = deployTgt
		tempColliderOffset = 0.10
		retractEffect = retract
		retractedEffect = retracted
		deployEffect = deploy
		deployedEffect = deployed
	}
	MODULE
	{
		name = KSPWheelDamage
		wheelName = wheel
		bustedWheelName = bustedwheel
	}
	MODULE
	{
		name = KSPWheelDustEffects
	}
	
 	-MODULE[TweakScale],* {}
}

 //this is actually the 'medium' gear
@PART[GearSmall]:FOR[ZZZ-MoS-Tweaks]:NEEDS[KSPWheel]
{
	-MODULE[ModuleWheelBase]{}
	-MODULE[ModuleWheelSuspension]{}
	-MODULE[ModuleWheelSteering]{}
	-MODULE[ModuleWheelDeployment]{}
	-MODULE[ModuleWheelBrakes]{}
	-MODULE[ModuleWheelDamage]{}
	
	MODULE
	{
		name = KSPWheelBase
		wheelColliderName = WheelCollider
		wheelColliderOffset = 0.2
		wheelRadius = 0.2375
		wheelMass = 0.15
		suspensionTravel = 0.2
		maxLoadRating = 10
		maxSpeed = 300
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = WheelPivot
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelSuspension
		suspensionName = SuspensionPivot
		suspensionOffset = -0.1875
		suspensionAxis = 0,1,0
	}
	MODULE
	{
		name = KSPWheelSteering
		steeringName = SteeringPivot
		maxSteeringAngle = 25
		steeringAxis = 0, 1, 0
	}
	MODULE
	{
		name = KSPWheelBrakes
		maxBrakeTorque = 12
	}
	MODULE
	{
		name = KSPWheelDeployment
		animationName = LandingGearMediumDeploy
		tempColliderName = deployTgt
		tempColliderOffset = 0.275
		retractEffect = retract
		retractedEffect = retracted
		deployEffect = deploy
		deployedEffect = deployed
	}
	MODULE
	{
		name = KSPWheelDamage
		wheelName = wheel
		bustedWheelName = bustedwheel
	}
	MODULE
	{
		name = KSPWheelDustEffects
	}
	
 	-MODULE[TweakScale],* {}
}

 //this is actually the 'large' gear
@PART[GearMedium]:FOR[ZZZ-MoS-Tweaks]:NEEDS[KSPWheel]
{
	-MODULE[ModuleWheelBase]{}
	-MODULE[ModuleWheelSuspension]{}
	-MODULE[ModuleWheelBrakes]{}
	-MODULE[ModuleWheelDeployment]{}
	-MODULE[ModuleWheelBogey]{}
	-MODULE[ModuleWheelDamage]{}
	
	MODULE
	{
		name = KSPWheelBase
		wheelColliderName = WheelCollider
		wheelColliderOffset = -0.277
		wheelRadius = 0.3
		wheelMass = 0.2
		suspensionTravel = 0.25
		maxLoadRating = 20
		maxSpeed = 300
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = wheels1
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = wheels2
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelSuspension
		suspensionName = SuspensionPivot
		suspensionOffset = -0.25
		suspensionAxis = 0,1,0
	}
	MODULE
	{
		name = KSPWheelBrakes
		maxBrakeTorque = 12
	}
	MODULE
	{
		name = KSPWheelDeployment
		animationName = LandingGearLargeDeploy
		tempColliderName = deployTgt
		tempColliderOffset = -0.25
		retractEffect = retract
		retractedEffect = retracted
		deployEffect = deploy
		deployedEffect = deployed
	}
	MODULE
	{
		name = KSPWheelBogey
		bogeyName = WheelBogey
		bogeyRotAxis = 1, 0, 0
		bogeyUpAxis = 0, 1, 0
		bogeyFwdAxis = 0, 0, 1
		restingRotation = -25
	}
	MODULE
	{
		name = KSPWheelDamage
		wheelName = wheel
		bustedWheelName = bustedwheel
	}
	MODULE
	{
		name = KSPWheelDustEffects
	}
	
 	-MODULE[TweakScale],* {}
}

 //this is actually the 'extra-large' gear
@PART[GearLarge]:FOR[ZZZ-MoS-Tweaks]:NEEDS[KSPWheel]
{
	-MODULE[ModuleWheelBase]{}
	-MODULE[ModuleWheelSuspension]{}
	-MODULE[ModuleWheelBrakes]{}
	-MODULE[ModuleWheelDeployment]{}
	-MODULE[ModuleWheelBogey]{}
	-MODULE[ModuleWheelDamage]{}
	
	MODULE
	{
		name = KSPWheelBase
		wheelColliderName = WheelCollider
		wheelColliderOffset = 0
		wheelRadius = 0.3
		wheelMass = 0.3
		suspensionTravel = 0.527
		maxLoadRating = 20
		maxSpeed = 300
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = wheels1
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = wheels2
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = wheels3
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelSuspension
		suspensionName = SuspensionPivot
		suspensionOffset = -0.50
		suspensionAxis = 0,1,0
	}
	MODULE
	{
		name = KSPWheelBrakes
		maxBrakeTorque = 12
	}
	MODULE
	{
		name = KSPWheelDeployment
		animationName = LandingGearExtraLargeDeploy2
		tempColliderName = deployTgt
		tempColliderOffset = 0
		retractEffect = retract
		retractedEffect = retracted
		deployEffect = deploy
		deployedEffect = deployed
	}
	MODULE
	{
		name = KSPWheelBogey
		bogeyName = WheelBogey
		bogeyRotAxis = 1, 0, 0
		bogeyUpAxis = 0, 1, 0
		bogeyFwdAxis = 0, 0, 1
		restingRotation = -25
	}
	MODULE
	{
		name = KSPWheelDamage
		wheelName = wheel
		bustedWheelName = bustedwheel
	}
	MODULE
	{
		name = KSPWheelDustEffects
	}
	
 	-MODULE[TweakScale],* {}
}

 

Link to comment
Share on other sites

20 hours ago, Citizen247 said:

I've only really been looking at landing gear, but I have got patches that appear to work. Though TBH with a few exceptions most of them are pretty much identical to the Foundries patches so YMMV. Anyway you can try the following in a cfg:
 


 //LY-05 Steerable Landing Gear
@PART[GearFree]:FOR[ZZZ-MoS-Tweaks]:NEEDS[KSPWheel]
{
	-MODULE[ModuleWheelBase]{}
	-MODULE[ModuleWheelSuspension]{}
	-MODULE[ModuleWheelSteering]{}
	-MODULE[ModuleWheelDamage]{}
	
	MODULE
	{
		name = KSPWheelBase
		wheelColliderName = WheelCollider
		wheelColliderOffset = -0.075
		wheelRadius = 0.198
		wheelMass = 0.04
		suspensionTravel = 0.05
		maxLoadRating = 5
		maxSpeed = 300
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = wheel
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelSuspension
		suspensionName = suspension
		suspensionOffset = -0.18
		suspensionAxis = 0, 1, 0
	}
	MODULE
	{
		name = KSPWheelSteering
		steeringName = SteeringPivot
		maxSteeringAngle = 20
		steeringAxis = 0, 1, 0
	}
	MODULE
	{
		name = KSPWheelBrakes
		maxBrakeTorque = 12
	}
	MODULE
	{
		name = KSPWheelDamage
		wheelName = wheel
		bustedWheelName = bustedwheel
	}
	MODULE
	{
		name = KSPWheelDustEffects
	}
	
 	-MODULE[TweakScale],* {}
}

 //LY-01 Fixed Landing Gear
@PART[GearFixed]:FOR[ZZZ-MoS-Tweaks]:NEEDS[KSPWheel]
{
	-MODULE[ModuleWheelBase]{}
	-MODULE[ModuleWheelSuspension]{}
	-MODULE[ModuleWheelBrakes]{}
	-MODULE[ModuleWheelDamage]{}

	MODULE
	{
		name = KSPWheelBase
		wheelColliderName = WheelCollider
		wheelColliderOffset = 0.065
		wheelRadius = 0.2
		wheelMass = 0.04
		suspensionTravel = 0.09
		maxLoadRating = 8
		maxSpeed = 300
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = WheelPivot //WheelCollider //WheelPivot
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelSuspension
		//suspensionName = WheelPivot
		wheelColliderName = WheelCollider
		suspensionOffset = 0
		suspensionAxis = 0, 1, 0
	}
	MODULE
	{
		name = KSPWheelBrakes
		wheelColliderName = WheelCollider
		maxBrakeTorque = 12
	}
	MODULE
	{
		name = KSPWheelDamage
		wheelColliderName = WheelCollider
		wheelName = WheelPivot
		//bustedWheelName = bustedwheel
	}
	MODULE
	{
		name = KSPWheelDustEffects
	}
	
 	-MODULE[TweakScale],* {}
}

 //this is actually the 'small' gear
@PART[SmallGearBay]:FOR[ZZZ-MoS-Tweaks]:NEEDS[KSPWheel]
{
	-MODULE[ModuleWheelBase]{}
	-MODULE[ModuleWheelSuspension]{}
	-MODULE[ModuleWheelSteering]{}
	-MODULE[ModuleWheelBrakes]{}
	-MODULE[ModuleWheelDeployment]{}
	-MODULE[ModuleWheelDamage]{}
	
	MODULE
	{
		name = KSPWheelBase
		wheelColliderName = WheelCollider
		wheelColliderOffset = 0.12
		wheelRadius = 0.18
		wheelMass = 0.1
		suspensionTravel = 0.12
		maxLoadRating = 8
		maxSpeed = 300
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = WheelPivot
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelSuspension
		suspensionName = SuspensionPivot
		suspensionOffset = -0.10
		suspensionAxis = 0,1,0
	}
	MODULE
	{
		name = KSPWheelSteering
		steeringName = SteeringPivot
		maxSteeringAngle = 25
		steeringAxis = 0, 1, 0
	}
	MODULE
	{
		name = KSPWheelBrakes
		maxBrakeTorque = 12
	}
	MODULE
	{
		name = KSPWheelDeployment
		animationName = LandingGearSmallDeploy
		tempColliderName = deployTgt
		tempColliderOffset = 0.10
		retractEffect = retract
		retractedEffect = retracted
		deployEffect = deploy
		deployedEffect = deployed
	}
	MODULE
	{
		name = KSPWheelDamage
		wheelName = wheel
		bustedWheelName = bustedwheel
	}
	MODULE
	{
		name = KSPWheelDustEffects
	}
	
 	-MODULE[TweakScale],* {}
}

 //this is actually the 'medium' gear
@PART[GearSmall]:FOR[ZZZ-MoS-Tweaks]:NEEDS[KSPWheel]
{
	-MODULE[ModuleWheelBase]{}
	-MODULE[ModuleWheelSuspension]{}
	-MODULE[ModuleWheelSteering]{}
	-MODULE[ModuleWheelDeployment]{}
	-MODULE[ModuleWheelBrakes]{}
	-MODULE[ModuleWheelDamage]{}
	
	MODULE
	{
		name = KSPWheelBase
		wheelColliderName = WheelCollider
		wheelColliderOffset = 0.2
		wheelRadius = 0.2375
		wheelMass = 0.15
		suspensionTravel = 0.2
		maxLoadRating = 10
		maxSpeed = 300
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = WheelPivot
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelSuspension
		suspensionName = SuspensionPivot
		suspensionOffset = -0.1875
		suspensionAxis = 0,1,0
	}
	MODULE
	{
		name = KSPWheelSteering
		steeringName = SteeringPivot
		maxSteeringAngle = 25
		steeringAxis = 0, 1, 0
	}
	MODULE
	{
		name = KSPWheelBrakes
		maxBrakeTorque = 12
	}
	MODULE
	{
		name = KSPWheelDeployment
		animationName = LandingGearMediumDeploy
		tempColliderName = deployTgt
		tempColliderOffset = 0.275
		retractEffect = retract
		retractedEffect = retracted
		deployEffect = deploy
		deployedEffect = deployed
	}
	MODULE
	{
		name = KSPWheelDamage
		wheelName = wheel
		bustedWheelName = bustedwheel
	}
	MODULE
	{
		name = KSPWheelDustEffects
	}
	
 	-MODULE[TweakScale],* {}
}

 //this is actually the 'large' gear
@PART[GearMedium]:FOR[ZZZ-MoS-Tweaks]:NEEDS[KSPWheel]
{
	-MODULE[ModuleWheelBase]{}
	-MODULE[ModuleWheelSuspension]{}
	-MODULE[ModuleWheelBrakes]{}
	-MODULE[ModuleWheelDeployment]{}
	-MODULE[ModuleWheelBogey]{}
	-MODULE[ModuleWheelDamage]{}
	
	MODULE
	{
		name = KSPWheelBase
		wheelColliderName = WheelCollider
		wheelColliderOffset = -0.277
		wheelRadius = 0.3
		wheelMass = 0.2
		suspensionTravel = 0.25
		maxLoadRating = 20
		maxSpeed = 300
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = wheels1
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = wheels2
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelSuspension
		suspensionName = SuspensionPivot
		suspensionOffset = -0.25
		suspensionAxis = 0,1,0
	}
	MODULE
	{
		name = KSPWheelBrakes
		maxBrakeTorque = 12
	}
	MODULE
	{
		name = KSPWheelDeployment
		animationName = LandingGearLargeDeploy
		tempColliderName = deployTgt
		tempColliderOffset = -0.25
		retractEffect = retract
		retractedEffect = retracted
		deployEffect = deploy
		deployedEffect = deployed
	}
	MODULE
	{
		name = KSPWheelBogey
		bogeyName = WheelBogey
		bogeyRotAxis = 1, 0, 0
		bogeyUpAxis = 0, 1, 0
		bogeyFwdAxis = 0, 0, 1
		restingRotation = -25
	}
	MODULE
	{
		name = KSPWheelDamage
		wheelName = wheel
		bustedWheelName = bustedwheel
	}
	MODULE
	{
		name = KSPWheelDustEffects
	}
	
 	-MODULE[TweakScale],* {}
}

 //this is actually the 'extra-large' gear
@PART[GearLarge]:FOR[ZZZ-MoS-Tweaks]:NEEDS[KSPWheel]
{
	-MODULE[ModuleWheelBase]{}
	-MODULE[ModuleWheelSuspension]{}
	-MODULE[ModuleWheelBrakes]{}
	-MODULE[ModuleWheelDeployment]{}
	-MODULE[ModuleWheelBogey]{}
	-MODULE[ModuleWheelDamage]{}
	
	MODULE
	{
		name = KSPWheelBase
		wheelColliderName = WheelCollider
		wheelColliderOffset = 0
		wheelRadius = 0.3
		wheelMass = 0.3
		suspensionTravel = 0.527
		maxLoadRating = 20
		maxSpeed = 300
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = wheels1
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = wheels2
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelRotation
		wheelMeshName = wheels3
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelSuspension
		suspensionName = SuspensionPivot
		suspensionOffset = -0.50
		suspensionAxis = 0,1,0
	}
	MODULE
	{
		name = KSPWheelBrakes
		maxBrakeTorque = 12
	}
	MODULE
	{
		name = KSPWheelDeployment
		animationName = LandingGearExtraLargeDeploy2
		tempColliderName = deployTgt
		tempColliderOffset = 0
		retractEffect = retract
		retractedEffect = retracted
		deployEffect = deploy
		deployedEffect = deployed
	}
	MODULE
	{
		name = KSPWheelBogey
		bogeyName = WheelBogey
		bogeyRotAxis = 1, 0, 0
		bogeyUpAxis = 0, 1, 0
		bogeyFwdAxis = 0, 0, 1
		restingRotation = -25
	}
	MODULE
	{
		name = KSPWheelDamage
		wheelName = wheel
		bustedWheelName = bustedwheel
	}
	MODULE
	{
		name = KSPWheelDustEffects
	}
	
 	-MODULE[TweakScale],* {}
}

 

Well, these work 100% better than the ones I tried - maybe I goofed by not removing TweakScale or something.

One thing I do notice is that the patched stock gear jitter and bounce around quite a lot (under certain circumstance I can't figure out, but not all the time) while stationary or moving, have you noticed this as well?

EDIT: For kicks, tried patching the RoveMax XL3 - results in the image. No clue why the top suspension part thing is scaled down due to the KF patch (unpatched stock part on the left for reference). Mysteries.

G0ujbeS.png 

Edited by AccidentalDisassembly
Link to comment
Share on other sites

  • 1 month later...

Is it possible to update the CKAN description of this mod to include "This is not a parts mod. It is used by Mod developers." With respect. I am building to asking CKAN team to implement catagories, and may find it's underway, but have seen this mod as very popular and I am curious how you submit to CKAN, and the description process. I'm learning and open to suggestions, thanks.

Link to comment
Share on other sites

16 hours ago, ViciousStarFish said:

Is it possible to update the CKAN description of this mod to include "This is not a parts mod. It is used by Mod developers." With respect. I am building to asking CKAN team to implement catagories, and may find it's underway, but have seen this mod as very popular and I am curious how you submit to CKAN, and the description process. I'm learning and open to suggestions, thanks.

Shadowmage does not handle CKAN registration (and has in the past been somewhat adverse to it). Go to the CKAN team instead.

Edited by 0111narwhalz
Link to comment
Share on other sites

  • 3 weeks later...
  • 4 months later...
  • 1 month later...

@Shadowmage

Having a small problem.  I'm looking at the REKT mod, and I am seeing the following error:

In the Editor and entering the Flight scene, upon creating the part with the wheels:

93172 Module KSPWheelDeployment threw during OnStart: System.IndexOutOfRangeException: Index was outside the bounds of the array.
93173   at KSPWheel.KSPWheelDeployment.postControllerSetup () [0x000bb] in <a7d74310cb9149c3813872450a43f727>:0 
93174   at KSPWheel.KSPWheelSubmodule.initializeController () [0x00057] in <a7d74310cb9149c3813872450a43f727>:0 
93175   at KSPWheel.KSPWheelSubmodule.OnStart (PartModule+StartState state) [0x00016] in <a7d74310cb9149c3813872450a43f727>:0 
93176   at KSPWheel.KSPWheelDeployment.OnStart (PartModule+StartState state) [0x00000] in <a7d74310cb9149c3813872450a43f727>:0 
93177   at Part.ModulesOnStart () [0x00120] in <c1858a3f77504bd1aaa946fdccf84670>:0 

Other than that, it seems to work, the wheels deploy and retract normally.

Is this a problem, and even if not, how do I stop it from happening?

Thanks

Link to comment
Share on other sites

38 minutes ago, linuxgurugamer said:

@Shadowmage

Having a small problem.  I'm looking at the REKT mod, and I am seeing the following error:

In the Editor and entering the Flight scene, upon creating the part with the wheels:


93172 Module KSPWheelDeployment threw during OnStart: System.IndexOutOfRangeException: Index was outside the bounds of the array.
93173   at KSPWheel.KSPWheelDeployment.postControllerSetup () [0x000bb] in <a7d74310cb9149c3813872450a43f727>:0 
93174   at KSPWheel.KSPWheelSubmodule.initializeController () [0x00057] in <a7d74310cb9149c3813872450a43f727>:0 
93175   at KSPWheel.KSPWheelSubmodule.OnStart (PartModule+StartState state) [0x00016] in <a7d74310cb9149c3813872450a43f727>:0 
93176   at KSPWheel.KSPWheelDeployment.OnStart (PartModule+StartState state) [0x00000] in <a7d74310cb9149c3813872450a43f727>:0 
93177   at Part.ModulesOnStart () [0x00120] in <c1858a3f77504bd1aaa946fdccf84670>:0 

Other than that, it seems to work, the wheels deploy and retract normally.

Is this a problem, and even if not, how do I stop it from happening?

Thanks

Hmm.. the array that is having the issue is likely the array of wheel colliders.  Quite possibly an incorrect wheel collider index specified in the configs.  Would you mind posting those up so that I could take a peek?

In general if one of my mods throws a null-ref or out-of-bounds exception, it is a problem, and is likely to cascade to other issues especially if it happens during initialization such as this.  I think the only way to 'fix' it will be to find out what is causing it and correct it (likely an incorrect config, but could be some obscure and as-yet-undiscovered issue with the code).

Link to comment
Share on other sites

59 minutes ago, Shadowmage said:

Hmm.. the array that is having the issue is likely the array of wheel colliders.  Quite possibly an incorrect wheel collider index specified in the configs.  Would you mind posting those up so that I could take a peek?

In general if one of my mods throws a null-ref or out-of-bounds exception, it is a problem, and is likely to cascade to other issues especially if it happens during initialization such as this.  I think the only way to 'fix' it will be to find out what is causing it and correct it (likely an incorrect config, but could be some obscure and as-yet-undiscovered issue with the code).

This is from the REKT mod, the part is the OTAV Core.

Here you go:

Spoiler

PART
{

    // --- general parameters ---
    name = rektOTAVcore2
    module = Part
    author = steedcrugeon, CobaltWolf, Dboi88

    // --- asset parameters ---
    MODEL
	{
		model = SHED/REKT/Parts/OTAV/OTAVmain/rektOTAVcore2
	}
    scale = 1
    rescaleFactor = 1

    // --- node definitions ---
    // definition format is Position X, Position Y, Position Z, Up X, Up Y, Up Z
    //node_stack_bottom = 0.0, -1.05, 0.0, 0.0, -1.0, 0.0, 1
    //node_stack_top = 0.0, 1.2, 0.0, 0.0, 1.0, 0.0, 0
    NODE
	{
		name = bottomNode
		transform = bottomNode
		size = 1
		method = FIXED_JOINT
	}
    NODE
	{
		name = doorNode
		transform = dockPoint
		size = 0
		method = FIXED_JOINT
	}
    NODE
	{
		name = brakeNode
		transform = upperNode
		size = 0
		method = FIXED_JOINT
	}
    NODE
	{
		name = rocketNode
		transform = rocketNodeB
		size = 0
		method = FIXED_JOINT
	}
    NODE
	{
		name = portWing1Node
		transform = portNode1
		size = 0
		method = FIXED_JOINT
	}
//NODE
//	{
//		name = portWing2Node
//		transform = portNode2
//		size = 0
//		method = FIXED_JOINT
//	}
    NODE
	{
		name = stbdWing1Node
		transform = stbdNode1
		size = 0
		method = FIXED_JOINT
	}
//NODE
//	{
//		name = stbdWing2Node
//		transform = stbdNode2
//		size = 0
//		method = FIXED_JOINT
//	}
    NODE
	{
		name = flapNode1
		transform = flapNodeStbdA
		size = 0
		method = FIXED_JOINT
	}
    NODE
	{
		name = flapNode2
		transform = flapNodePortA
		size = 0
		method = FIXED_JOINT
	}


    bulkheadProfiles = size1
    CoPOffset = 0.0, 0.15, -0.175
    CoLOffset = 0.0, -0.25, -0.25
    //CenterOfBuoyancy = 0.0, 0.5, 0.0
    //CenterOfDisplacement = 0.0, -0.3, 0.0
    buoyancy = 1.8
    buoyancyUseSine = False

    // --- FX definitions ---
        
        
    // --- Sound FX Definitions ---
        

    // --- editor parameters ---
    TechRequired = survivability
    entryCost = 50000
    cost = 15000
    category = Pods
    subcategory = 0
    title = #autoLOC_OTAV_0000
    manufacturer = #autoLOC_REKT_0000
    description = #autoLOC_OTAV_0001

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

    // --- standard part parameters ---
    mass = 1.05

    dragModelType = default
    //maximum_drag = 0.2
    //minimum_drag = 0.15
    angularDrag = 2
    crashTolerance = 30
    maxTemp = 1800
    skinMaxTemp = 2400

    skinInternalConductionMult = 0.625
    heatConductivity = 0.1 // 5/6ths default

    vesselType = Ship

    // --- internal setup ---
    CrewCapacity = 1
    tags = capsule cmg control ?eva fly gyro ?iva moment pilot react rocket space stab steer torque otav rekt

    INTERNAL
    {
        name = OTAVinternal
    }


    // - - - MANNED POD STUFF - - -
    MODULE
    {
        name = ModuleCommand
        minimumCrew = 1	
    }


    MODULE
    {
        name = ModuleReactionWheel
        
        PitchTorque = 3
        YawTorque = 3
        RollTorque = 3
        
        RESOURCE
        {
            name = ElectricCharge
            rate = 0.35
        }
    }

    MODULE
    {
        name = ModuleScienceExperiment	
        
        experimentID = crewReport
        
        experimentActionName = #autoLOC_502009
        resetActionName = #autoLOC_502010
        reviewActionName = #autoLOC_502200
        
        useStaging = False	
        useActionGroups = False
        hideUIwhenUnavailable = True	
        rerunnable = True
        
        xmitDataScalar = 1.0
        
        usageReqMaskInternal = 5
        usageReqMaskExternal = -1
    }
    MODULE
    {
        name = ModuleScienceContainer
        
        reviewActionName = #autoLOC_502201
        storeActionName = #autoLOC_502202
        evaOnlyStorage = True
        storageRange = 1.3
    }

    // - - - LIFTING SURFACE - - - 

    MODULE
	{
		name = ModuleLiftingSurface
		useInternalDragModel = False
		deflectionLiftCoeff = 0.78
		omnidirectional = false
		dragAtMaxAoA = 0.1
		dragAtMinAoA = 0.03
	}

    // - - - RESORCES - - -

    RESOURCE
    {
        name = ElectricCharge
        amount = 80
        maxAmount = 80
    }

    RESOURCE
    {
        name = MonoPropellant
        amount = 15
        maxAmount = 15
    }

    RESOURCE
	{
		name = LiquidFuel
		amount = 45
		maxAmount = 45
	}
	RESOURCE
	{
		name = Oxidizer
		amount = 55
		maxAmount = 55
	}
    // - - - DOCKING HATCH - - -

    MODULE
	{
		name = ModuleDockingNode
		nodeTransformName = dockPoint
		nodeType = sizeEP
		stagingEnabled = False
	}

    // - - - KSPWheel - - -

    MODULE
	{
		name = KSPWheelBase
		WHEEL
		{
			colliderName = colliderPort	
			radius = 0.02
			mass = 0.04
			travel = 0.1
		}
		WHEEL
		{
			colliderName = colliderStbd	
			radius = 0.02
			mass = 0.04
			travel = 0.1
		}
        suspensionTarget = 0.0	
        loadRating = 1
        minLoadRating = 0.25
        maxLoadRating = 3
        maxSpeed = 150

	}
	MODULE
	{
		name = KSPWheelRotation
		baseModuleIndex = 0
		wheelIndex = 0
		wheelMeshName = wheel2Port //port side wheel mesh
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelRotation
		baseModuleIndex = 0
		wheelIndex = 1
		wheelMeshName = wheel2Stbd //stbd side wheel mesh
		rotationAxis = 1,0,0
	}
	MODULE
	{
		name = KSPWheelSuspension
		baseModuleIndex = 0
		wheelIndex = 0
		suspensionName = suspensionStrutPort
		suspensionOffset = -0.1
		suspensionAxis = 0, 1, 0
	}
	MODULE
	{
		name = KSPWheelSuspension
		baseModuleIndex = 0
		wheelIndex = 1
		suspensionName = suspensionStrutStbd
		suspensionOffset = -0.1
		suspensionAxis = 0, 1, 0
	}
	MODULE
	{
		name = KSPWheelBrakes
		baseModuleIndex = 0
		wheelIndex = 0
		maxBrakeTorque = 9
		brakeResponse = 2
	}
	MODULE
	{
		name = KSPWheelBrakes
		baseModuleIndex = 0
		wheelIndex = 1
		maxBrakeTorque = 9
		brakeResponse = 2
	}

	MODULE
	{
		name = KSPWheelDeployment
		animationName = deployGear
		tempColliderName = portDplyTgt,stbdDplyTgt
		tempColliderOffset = 0.1
		retractEffect = retract
		retractedEffect = retracted
		deployEffect = deploy
		deployedEffect = deployed
	}

    // - - - SUNDRIES - - - 

    MODULE
    {
          name = FlagDecal
          textureQuadName = flagTransform
    }
    MODULE
	{
		name = ModuleJettison
		jettisonName = fairingBase
		bottomNodeName = bottomNode
		isFairing = true
		jettisonedObjectMass = 0.05
		jettisonForce = 15
		jettisonDirection = 0 0 1
		menuName = #autoLOC_OTAV_0002
		stagingEnabled = false
		checkBottomNode = false
	}
    MODULE
	{
		name = ModuleJettison
		jettisonName = fairingLooseUpper
		bottomNodeName = doorNode
		isFairing = true
		jettisonedObjectMass = 0.05
		jettisonForce = 15
		jettisonDirection = 0 1 0
		menuName = #autoLOC_OTAV_0002
		stagingEnabled = false
		checkBottomNode = false
	}
    MODULE
	{
		name = ModuleJettison
		jettisonName = fairingLoose
		bottomNodeName = doorNode
		isFairing = true
		jettisonedObjectMass = 0.05
		jettisonForce = 15
		jettisonDirection = 0 -1 0
		menuName = #autoLOC_OTAV_0002
		stagingEnabled = false
		checkBottomNode = false
	}
}

 

 

Link to comment
Share on other sites

38 minutes ago, linuxgurugamer said:

This is from the REKT mod, the part is the OTAV Core.

Here you go:

Thanks for posting it.

The only thing I can think of is the 'baseModuleIndex' is somehow interfering with the initialization process; specifying that config line should only be needed when there are multiple KSPWheelBase modules present.  You might try removing those lines from the relevant PartModule nodes and see if it corrects the problem.

If that doesn't resolve it, it will take some (probably minor) debugging work to figure out where and why it is failing.  Likely that the issue is a simple omission or typo in either the code or configs that I'm not seeing from my brief review (though I am a bit out-of-touch with the code having not worked on it in awhile).  If removing the config line doesn't solve it, let me know and I can see about finding some time to investigate.

Link to comment
Share on other sites

  • 1 year later...
  • 5 months later...

In the current Community Fixes there is finally a fix for the light problem with the LY-10 and LY-35 landing gear.
https://github.com/KSPModdingLibs/KSPCommunityFixes/issues/122

@PART[SmallGearBay]:FIRST
{
  @MODULE[ModuleWheelDeployment]
  {
    @slaveModules = 9
  }
}


But if you play with RealismOverhaul it doesn't work. RO removes "ModuleWheel..." modules and sets "KSPWheel..." configurations. The control is then completely taken over by KSPWheel.

//this is actually the 'small' gear
@PART[SmallGearBay]:NEEDS[KSPWheel]:FOR[RealismOverhaul]
{
    -MODULE[ModuleWheelBase]{}
    -MODULE[ModuleWheelSuspension]{}
    -MODULE[ModuleWheelSteering]{}
    -MODULE[ModuleWheelBrakes]{}
    -MODULE[ModuleWheelDeployment]{}
    -MODULE[ModuleWheelDamage]{}
    -MODULE[TweakScale]{}
    
    MODULE
    {
        name = KSPWheelBase
        wheelColliderName = WheelCollider
        wheelColliderOffset = 0.12
    ...
        
    MODULE
    {
        name = KSPWheelDeployment
        animationName = LandingGearSmallDeploy
    ...


Is there a way to implement this fix with KSPWheel? And if so, who would need to integrate that (KSPCommunityFixes, KSPWheel, or somewhere else entirely)?

Link to comment
Share on other sites

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

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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

×
×
  • Create New...