Jump to content

[0.90] TweakScale - Rescale Everything! (v1.50 - 2014-12-24 10:40 UTC)


Biotronic

Recommended Posts

That error is usually caused by an outdated KSPAPIExtensions.dll, as you say. Another cause may be Goodspeed Aerospace, which has the old Scale.dll in it.

Yeah, I had fixed up KSPAPIExtensions.dll, but there was a stray scale.dll in IR.. All good now. Thanks for your help mate. :)

Link to comment
Share on other sites

Great, that means I don't have to keep it updated. Fixed in 1.40.

Well, yes and no... just the tanks are in the karbonite pack, not all the great work you did for the engines. Seems like you and them should work it out, as not having larger engines to match the larger tanks means your just moving karbonite around to make fuel, which you could have just moved around... :)

TWEAKSCALE_DUMMY = IGNORE_THIS_FILE

That was a lol moment when I went to go find out why I suddenly had tiny engines...

Link to comment
Share on other sites

Hm. I have no idea how the contract system works, but this should be fixed.

I don't know if it can be.. As long as the part is the designated thing, KSP don't care what size it is. You could see if it's possible to look at current contracts, see what parts are due for testing and prevent tweaking on them.. not the prettiest workaround, but for now, I think the best workaround for being able to tweak parts for testing is to just not do it. Self-control, y'all.

Link to comment
Share on other sites

I apologize if this issue was already addressed (google did not turn up anything specific) : Why mass of stock girders are not scaled with square of scale ?

I used new KER 1.0.5 to monitor for changes in mass.

I tested it with original Modular Girder Segment XL by scaling it to 300%.

Mass increased from 375 kg to 10125 kg or 27 times (or 3 ^ 3 ).

Same happened with stock Cubic Octagonal Strut with mass increase from 1 kg to 27 kg with 300% scale.

Similar with stock Structural Fuselage with mass change from 100 kg to 2700 kg when scaling from 1.25m to 3.75m.

Suffice to say, trying to scale any of stock support structures causes such increase of mass that it renders any scaling useless.

I'm using TweakScale 1.40 with KSP 0.24.2.

I also use a lot of editor-helper and part packs, maybe one of their MM configs messed it up for stock, so TS "thinks" they're a solid pieces, not hollow structures.

I just finished a search through gamedata folder, there are no other MM configs that alter Girder config.

Edited by fatcargo
typo and more info
Link to comment
Share on other sites

I apologize if this issue was already addressed (google did not turn up anything specific) : Why mass of stock girders are not scaled with square of scale ?

I used new KER 1.0.5 to monitor for changes in mass.

I tested it with original Modular Girder Segment XL by scaling it to 300%.

Mass increased from 375 kg to 10125 kg or 27 times (or 3 ^ 3 ).

Same happened with stock Cubic Octagonal Strut with mass increase from 1 kg to 27 kg with 300% scale.

Similar with stock Structural Fuselage with mass change from 100 kg to 2700 kg when scaling from 1.25m to 3.75m.

Suffice to say, trying to scale any of stock support structures causes such increase of mass that it renders any scaling useless.

I'm using TweakScale 1.40 with KSP 0.24.2.

I also use a lot of editor-helper and part packs, maybe one of their MM configs messed it up for stock, so TS "thinks" they're a solid pieces, not hollow structures.

I just finished a search through gamedata folder, there are no other MM configs that alter Girder config.

This can very succinctly be explained with but two words: I'm lazy.

Another thing that did factor in slightly is that I am no girderologist, and thus am unsure to what extent material thickness should change with this rescaling. Certainly a 5mm steel pipe with 1mm walls may be strong enough for making a teeny tiny girder, but if I have a girder made out of 200mm steel pipes, they should probably be thicker than 1mm. 40mm is probably overengineering, though.

Link to comment
Share on other sites

I don't know if it can be.. As long as the part is the designated thing, KSP don't care what size it is. You could see if it's possible to look at current contracts, see what parts are due for testing and prevent tweaking on them.. not the prettiest workaround, but for now, I think the best workaround for being able to tweak parts for testing is to just not do it. Self-control, y'all.

Parts for testing have a certain module with them, I once noticed this in a persistence file. Maybe it is possible to deactivate or remove this module for any scaled instance of the part?

Link to comment
Share on other sites

This can very succinctly be explained with but two words: I'm lazy.

Another thing that did factor in slightly is that I am no girderologist, and thus am unsure to what extent material thickness should change with this rescaling. Certainly a 5mm steel pipe with 1mm walls may be strong enough for making a teeny tiny girder, but if I have a girder made out of 200mm steel pipes, they should probably be thicker than 1mm. 40mm is probably overengineering, though.

Thanks for a straightforwared answer :)

On a more serious note : i'm trying to determine how mass increases with girder size to get a working formula or at least an estimate, if you don't mind taking it into account, i would adapt formula to more generalized form that can accept simple input and be implemented not inside plugin itself, but in MM config, something like this :


[s]@PART[trussPiece3x] // Modular Girder Segment XL
{
MODULE
{
name = TweakScale
type = free
[B]mass = mass * TS_Size * TS_Size // simple function with size argument that plugin uses internally, mass on right is from original part[/B]
}[/s]
}

Above is a rough approximation that hollow structures increase in mass with square of their size. I remember from somewhere on this forum about calculating masses this way.

If you allow this formula-style calculation in MM cfg , at least people can write their own formulas and share them.

Silly me... It's YOU who mentioned the formula for hollow structures ! :blush:

I'm now going through TS docs to see what can be done :)

Edited by fatcargo
Link to comment
Share on other sites

Parts for testing have a certain module with them, I once noticed this in a persistence file. Maybe it is possible to deactivate or remove this module for any scaled instance of the part?

Could be, but you might then run into trouble when you accept a contract to test part X, then rescale it. I don't know if KSP will like PartModules being removed on the fly, especially if part X is needed for a contract (it might think 'I have a contract to test part X, but part X doesn't allow itself to be tested. I'm going to throw some NREs and crash now').

I don't know how TweakScale could handle this cheaty route.. It might prove impossible to have a working solution, but I question its usefulness when the time could be saved by people just not rescaling parts. Just my two cents.

Link to comment
Share on other sites

Thanks for a straightforwared answer :)

On a more serious note : i'm trying to determine how mass increases with girder size to get a working formula or at least an estimate, if you don't mind taking it into account, i would adapt formula to more generalized form that can accept simple input and be implemented not inside plugin itself, but in MM config, something like this :


[s]@PART[trussPiece3x] // Modular Girder Segment XL
{
MODULE
{
name = TweakScale
type = free
[B]mass = mass * TS_Size * TS_Size // simple function with size argument that plugin uses internally, mass on right is from original part[/B]
}[/s]
}

Above is a rough approximation that hollow structures increase in mass with square of their size. I remember from somewhere on this forum about calculating masses this way.

If you allow this formula-style calculation in MM cfg , at least people can write their own formulas and share them.

Silly me... It's YOU who mentioned the formula for hollow structures ! :blush:

I'm now going through TS docs to see what can be done :)

Currently, you would do what you describe this way:

MODULE
{
name = TweakScale
type = free
TWEAKSCALEEXPONENTS
{
mass = 2
}
}

Knowing me, I'll probably implement this some day:

MODULE
{
name = TweakScale
type = free
TWEAKSCALEFUNCTIONS[Part]
{
mass = sin(__SCALE__) * breakingTorque + 4! - original(mass)
}
}

Link to comment
Share on other sites

Could be, but you might then run into trouble when you accept a contract to test part X, then rescale it. I don't know if KSP will like PartModules being removed on the fly, especially if part X is needed for a contract (it might think 'I have a contract to test part X, but part X doesn't allow itself to be tested. I'm going to throw some NREs and crash now').

I don't know how TweakScale could handle this cheaty route.. It might prove impossible to have a working solution, but I question its usefulness when the time could be saved by people just not rescaling parts. Just my two cents.

I just tested removing all ModuleTestSubject from rescaled parts. It works, but also feels very wrong, since it gives no information to the user that things will not work.

Link to comment
Share on other sites

Would changing the name (title property) be enough to reflect that it's no longer the same part? I mean to say that replacing "Basic Jet Engine" with "Basic Jet Engine (2.5m)" might be enough to let users know that it's considered a different part.

Link to comment
Share on other sites

First, thanks for the quick response.

Currently, you would do what you describe this way:

MODULE
{
name = TweakScale
type = free
TWEAKSCALEEXPONENTS
{
mass = 2
}
}

I tried to apply this to Girder XL in "Squad_TweakScale.cfg" with following:


@PART[trussPiece3x] // Modular Girder Segment XL
{
MODULE
{
name = TweakScale
type = free
TWEAKSCALEEXPONENTS
{
mass = 2
}
}
}

Unfortunately, it must be that TWEAKSCALEEXPONENTS in "ScaleExponents.cfg" has overriden my change, i still get 375 kg @ 100% and 10,125 kg @ 300% for above hollow structure. I tried both reloading database in Space Center Scene and full KSP restart.

Either that or TWEAKSCALEEXPONENTS statement inside MODULE with @PART is ignored completely ?

Knowing me, I'll probably implement this some day:

MODULE
{
name = TweakScale
type = free
TWEAKSCALEFUNCTIONS[Part]
{
mass = sin(__SCALE__) * breakingTorque + 4! - original(mass)
}
}

OCD engineer's wet dream :wink:

As for formula complexity... Unless there is a pre-made parser, i wouldn't go further than this. Maybe sticking to basic math would suffice.

I wonder what would this do for fans of realism in KSP.

Btw congrats on choosing a duble underscore notation to access internal variables in TS plugin. Very C-ish (i like C, besides Pascal, the "pillar" of how a computer language should look like IMHO).

Link to comment
Share on other sites

First, thanks for the quick response.

I tried to apply this to Girder XL in "Squad_TweakScale.cfg" with following:


@PART[trussPiece3x] // Modular Girder Segment XL
{
MODULE
{
name = TweakScale
type = free
TWEAKSCALEEXPONENTS
{
mass = 2
}
}
}

Unfortunately, it must be that TWEAKSCALEEXPONENTS in "ScaleExponents.cfg" has overriden my change, i still get 375 kg @ 100% and 10,125 kg @ 300% for above hollow structure. I tried both reloading database in Space Center Scene and full KSP restart.

Either that or TWEAKSCALEEXPONENTS statement inside MODULE with @PART is ignored completely ?

OCD engineer's wet dream :wink:

As for formula complexity... Unless there is a pre-made parser, i wouldn't go further than this. Maybe sticking to basic math would suffice.

I wonder what would this do for fans of realism in KSP.

Btw congrats on choosing a duble underscore notation to access internal variables in TS plugin. Very C-ish (i like C, besides Pascal, the "pillar" of how a computer language should look like IMHO).

Try doing this: @PART[trussPiece3x]:Final

Link to comment
Share on other sites

Try doing this: @PART[trussPiece3x]:Final

I tried, no effect. Unfortunately, anything short of directly editing TWEAKSCALEEXPONENTS section with "name = Part" in "ScaleExponents.cfg" file and a full KSP restart won't change mass ratio exponent. Let's put this on a backburner, other parts already greatly benefit from this mod.

And reducing clutter in part catalog is always welcome. I wish Squad included the first time this mod was made.

Now, there is something i wonder if it can be done : specific parameter scaling with relations. For example scale jet engine power and get larger engines in response. Or try scaling just length, provided that author of part has supplied relevant cfg info and mesh variants. You would still get similar sized part pack as without this tweak mod, but with far less catalog clutter. If this were possible, TweakScale could expand in a new territory - textures :)

Link to comment
Share on other sites

http://i.imgur.com/a1HPA.png

;D

Anyways, very interesting mod. I've always wanted bigger nervas. Also, how well does it fit with mods like b9, kethane, etc? And can it be used on crew pods as well, increasing the crew count?

Because it does not change the IVA model, I have chosen not to change the crew count for scaled pods.

Link to comment
Share on other sites

Why are the "SC-9001 Science Jr." and " Mobile Processing Lab MPL-LG-2" scalable? Making them small is a little bit cheating :P

Making the Science Jr scaleable is wonderful. It is an awkward and aesthetically awful part to work around otherwise, and making it 0.625 has been wonderful for fitting it into probes and landers.

Link to comment
Share on other sites

Why are the "SC-9001 Science Jr." and " Mobile Processing Lab MPL-LG-2" scalable? Making them small is a little bit cheating :P

I'd always vote for maximum creative freedom. If you see a balance issue, you could set the scaling exponent to zero (so it keeps its mass) or even a bit negative to make the miniature version even heavier. Supposing tweakScale is fine with negative exponents.

Link to comment
Share on other sites

So if I wanted to do something like this:

SCALETYPE
{
name = Noris_scale
type = stack
SCALEEXPONENTS
{
mass = 2
}
}

Could the mass = 2 have a more complex equation? For instance, I'm trying to think of a way to scale a bit differently. Using a example I gave a few pages back the stock round batter goes from 200 charge at .625 and goes up to 1600 charge at 1.25. That is 2^3 (or 8 times). For my purposes I think I'd like to try something closer to 6x. But using exponents doesn't give a pretty number if you scale 2^2.6 for instance that 200 charge battery would be 1212.57.

So I guess my question is two fold. One can you put a decimal exponent and two would it be possible to have some sort of formula truncate the exponent to just one decimal place? So for instance setting mass to 2.59 would actually multiply by 6.0 instead of by 6.02098xxx.

Sorry if I'm being annoying. I really like TweakScale, I just don't like how much bigger/smaller it scales stuff. But I feel like just changing the 3 to a 2 goes to far in the opposite direction.

Link to comment
Share on other sites

If your goal is just to get pretty numbers, you can predefine them:

SCALETYPE
{
name = Noris_scale
type = stack
TWEAKSCALEEXPONENTS
{
mass = 0.5, 1.0, 2.0, 4.0, 8.0
}
}

Uhh that seems too easy... ;)

So lemme see if I understand this then.

If I had a 1.25 size part that would equate to the 1.0 there so to go up to 2.5 would size it by 2^2?

If so that could definitely work and it will try that out.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...