sarbian

[1.8.x] Module Manager 4.1.2 (November 15th 2019) - Right To Ludicrous Speed

Recommended Posts

How to delete unneeded parts when some mod is detected?

For example I tried to get rid of sized-clone-part in presence of TweakScale: "-PART[PartNameHere]:NEEDS[TweakScale]". It didn't work. Surely I'm doing something wrong... but what?

try it with Bang, or exclamation mark, (!) instead of minus (-).

Share this post


Link to post
Share on other sites
try it with Bang, or exclamation mark, (!) instead of minus (-).

Also, since PART is a node, you need a set of curly braces afterward even on a delete command. So "!PART[selectors] { }".

Share this post


Link to post
Share on other sites

how would I exclude all parts with CrewCapacity?

I've tried following variations no success so far.

@PART[*]:HAS[!CrewCapacity[]]

@PART[*]:HAS[!~CrewCapacity[]]

@PART[*]:HAS[!CrewCapacity]

@PART[*]:HAS[!~CrewCapacity]

Edited by nli2work

Share this post


Link to post
Share on other sites
how would I exclude all parts with CrewCapacity?

Try this: @PART

[*]:HAS[~CrewCapacity

[*]]

I can't open ksp to check it right now though, so I haven't tested it.

Share this post


Link to post
Share on other sites

Module Manager is one amazing piece of work. It should use the banner: "The mother of all mods"

I am trying to add docking capability to the bottom node of engines, and to the top node of decouplers. This could be useful in several ways, e.g. in-game (re-)assembly of stages, and recombining multi-coupled stacks without superfluous docking ports. I have tried this:

@PART
[*]:HAS[@MODULE[ModuleEngines]]:Final
{
MODULE
{
name = ModuleDockingNode
referenceAttachNode = bottom
nodeType = size1
nodeTransformName = DockingNode
}
}
@PART
[*]:HAS[@MODULE[ModuleDecouple]]:Final
{
MODULE
{
name = ModuleDockingNode
referenceAttachNode = top
nodeType = size1
nodeTransformName = DockingNode
}
}

However, it doesn't seem to have any effect whatsoever. What am I doing wrong here?

Share this post


Link to post
Share on other sites

You're referencing DockingNode as the docking transform, but I highly doubt engines have such a transform. :]

You can try referencing some other transform that *does* exist, but I don't know what's required of a transform for it to be usable by that module.

Share this post


Link to post
Share on other sites

I'm working on a balance config for the RLA electric engines, and I've run into a problem- I don't know how to deal with bimodal engines. How do you identify for MM which engine module you are modifying?

Here is a sample of the original config:


MODULE
{
name = MultiModeEngine
primaryEngineID = Monopropellant
secondaryEngineID = Xenon
}
MODULE
{
name = ModuleEnginesFX
engineID = Monopropellant
directThrottleEffectName = monoprop
thrustVectorTransformName = thrustTransform
exhaustDamage = True
ignitionThreshold = 0.1
minThrust = 0
maxThrust = 2
heatProduction = 200
fxOffset = 0, 0, 0
PROPELLANT
{
name = ElectricCharge
ratio = 14.5
}
PROPELLANT
{
name = MonoPropellant
ratio = 0.1
DrawGauge = True
resourceFlowMode = STACK_PRIORITY_SEARCH
}
atmosphereCurve
{
key = 0 850


}

}


MODULE
{
name = ModuleEnginesFX
engineID = Xenon
directThrottleEffectName = xenon_power
thrustVectorTransformName = thrustTransform
exhaustDamage = True
ignitionThreshold = 0.1
minThrust = 0
maxThrust = 3
heatProduction = 200
fxOffset = 0, 0, 0
PROPELLANT
{
name = ElectricCharge
ratio = 4.1
}
PROPELLANT
{
name = XenonGas
ratio = 0.6
DrawGauge = True
resourceFlowMode = STACK_PRIORITY_SEARCH
}
atmosphereCurve
{
key = 0 2400
}

}

I am trying to alter the stats of the xenon and monoprop modules separately, but cannot distinguish which will be effected in Module Manager.

Also, not really related to MM, but does anyone know how ElectricCharge ratio=x relates to EC/s consumption? would save me a lot of time.

Edited by Starbuckminsterfullerton

Share this post


Link to post
Share on other sites

@MODULE[ModuleEnginesFX],0 or ,1

could also do @MODULE[ModuleEngines*]:HAS[#engineID[Xenon]] or [Monopropellant]

Share this post


Link to post
Share on other sites

Also, not really related to MM, but does anyone know how ElectricCharge ratio=x relates to EC/s consumption? would save me a lot of time.

The "ratio" parameter gives the amount of that resource used in proportion to the other resources used. So in the config you quoted, where you have a mode with EC 14.5, MP 0.1, that would mean 14.5 units of EC for each 0.1 unit of monoprop. To convert that to EC/s at full throttle, you would first calculate the total flow of all propellants in kg/sec from the engine's thrust and Isp, then use the resources' densities to figure out how many "units" of 14.5 EC and 0.1 MP per second it would take to equal that mass flow rate.

Share this post


Link to post
Share on other sites

I don't know whether I should post this here or somewhere else but I have found a bug with the latest build of ModuleManager. Halfway through loading the game it always freezes on "Squad/SPP/Wings/swept2". Upon deleting the swept2 files, it moves onto swept1, etc. Upon deleting the entire folder of SPP, it moved along to Spaces. I went through the process again. Upon deleting the entire Spaces folder, it moved onto props. This file contained essentials like the navball and so on. So at this point I stopped. The mods I have installed (Using TinkerTime) are: Alternative Tree Configuration, Alternate Resource Panel, Ambient Light Shifter, AutoAsparagus, B9 Aerospace Pack, Background Processing, BahamutoD's Armory, DeadlyReentry, Deep Freeze, FPS Viewer, Ferram Aerospace Research, Fine Print, KW Rocketry, Kerbal Crew Transfer, Kethane, Kustom Kerbals, Mission Controller 2, Navball Docking Allignment Indicator, NovaPunch, OctaBase, Part Search, Radial Engine Mounts, Remote Tech, Serious Kerbal Business, Strategem, Time Control, TewakableEverything and WernherChecker. However, none of these are the problem because even with them all removed (Including TinkerTime: https://kerbalstuff.com/mod/243/Tinker%20Time) it still won't load leaving only ModuleManager to blame. I found the error in the output_log.txt but do not have the knowledge to actually know what's going on. Here it is: http://pastebin.com/pqwFAuEj . Hopefully you can fix this soon (And easily, don't want you guys having to go out of your way :D). G2000

Share this post


Link to post
Share on other sites

G2000, thanks for posting, but we need the entire output_log.txt, not just the part that you think is the cause. Not sure what the size limit is on pastebin but if you need to host a log file, I recommend using dropbox.com and you'll likely find it a lot more useful than just for posting log files.

Also, posting the entire output_log.txt would have saved you quite a bit of typing because your entire mod list is already present in the log file.

Share this post


Link to post
Share on other sites

I know that ModuleManger supports regexp and variables I just can't wrap my head around the syntax without more coffee. I want to change all instances of


MODEL {
texture = Squad/path1
texture = Squad/path2
...
}

to


MODEL {
texture = SquadB/path1
texture = SquadB/path2
...
}

Basically just switching out the root directory while preserving the remainder of the path. Is this possible?

Share this post


Link to post
Share on other sites

try this:


@MODEL[NAME]:NEEDS[Prerequisite]
{
@texture ^= :^Squad/(.*$):SquadB/$1:
}

the @Property syntax is edit, the : is your section seperator, carat ^ in the equals means use regex, carat in the string means start of string, ( and ) denote input Region 1 and $ in the string means the end of the string, and the second bit shows the output. with $1 meaning whatever was in input region 1.

of course, since the properties are identically named, you'd have to index them (i think? never had to do that, wasn't even sure it was possibly). someone else is going to have to help with that.

Related: THIS is a great regex test tool

Share this post


Link to post
Share on other sites
try this:


@MODEL[NAME]:NEEDS[Prerequisite]
{
@texture ^= :^Squad/(.*$):SquadB/$1:
}

the @Property syntax is edit, the : is your section seperator, carat ^ in the equals means use regex, carat in the string means start of string, ( and ) denote input Region 1 and $ in the string means the end of the string, and the second bit shows the output. with $1 meaning whatever was in input region 1.

of course, since the properties are identically named, you'd have to index them (i think? never had to do that, wasn't even sure it was possibly). someone else is going to have to help with that.

Related: THIS is a great regex test tool

@texture,0 = (some texture URL)

@texture,1 = (some texture URL)

Share this post


Link to post
Share on other sites
@texture,0 = (some texture URL)

@texture,1 = (some texture URL)

Hurray for joint solutions.

Final Answer:


@MODEL[NAME]:NEEDS[Prerequisite]
{
@texture,0 ^= :^Squad/(.*$):SquadB/$1:
@texture,1 ^= :^Squad/(.*$):SquadB/$1:
@texture,2 ^= :^Squad/(.*$):SquadB/$1:
[...]
@texture,[I]N[/I] ^= :^Squad/(.*$):SquadB/$1:
}

Share this post


Link to post
Share on other sites

Not quite. It should be ^.*Squad/ since texture keys get texture = model00, path/to/model00 (the path is after the texture name).

Though the code is correct for the problem *as stated.* :D

Share this post


Link to post
Share on other sites
Not quite. It should be ^.*Squad/ since texture keys get texture = model00, path/to/model00 (the path is after the texture name).

Though the code is correct for the problem *as stated.* :D

Given region coding, it would need to be then:

@MODEL[NAME]:NEEDS[Prerequisite]{
@texture,0 ^= ^.*)Squad/(.*$):$1SquadB/$2:
@texture,1 ^= ^.*)Squad/(.*$):$1SquadB/$2:
@texture,2 ^= ^.*)Squad/(.*$):$1SquadB/$2:
[...]
@texture,N ^= ^.*)Squad/(.*$):$1SquadB/$2:
}

since we want to copy the prefix bit unmodified.

Share this post


Link to post
Share on other sites

I'm working a little project that needs some unmanned command pods. I was originally just clipping a probe core inside the pods, but then I thought, that it would be easier just to use MM to change the min required crew to 0. This is my first time trying to do a MM cfg though. I've been messing with it but I can't get it to work. Could someone look at this and tell me where I've gone wrong? Thanks!

@PART

[*]:HAS[@MODULE[ModuleCommand]:Final

{

@MODULE[ModuleCommand]

{

@minimumCrew = 0

}

}

Share this post


Link to post
Share on other sites

Is there a version of this that doesn't have the annoying 64Bit warning and Nyan Cat? I DON'T need this! I have to use 64Bit because of all the mods I use. If I were to use the 32Bit version, the game would constantly crash because it ran out of memory...even though my system has 16GB RAM and my next upgrades will push it to 64GB.

If you wanted to warn people of the problems with 64Bit, then do it in a pop-up window with a check box saying "Do not show again. Use at your own risk".

Edited by Furious1964

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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