Lightweight. The "lights" don't actually illuminate anything-- they're just emissive textures that "glow". This means they're computationally cheap and you can have lots of them.

Very modder-friendly. Extraordinarily flexible .cfg design allows modders to create remarkably complex behaviors without needing a single line of plug-in code. And it's very thoroughly documented, with plenty of examples, to make it very easy for you to mod your own parts using IndicatorLights. See the modder's guide for full documentation.

I love to hear what you think, including "gosh, I'd sure like it if it could do <thing it doesn't do now>."

A word of thanks

Deep gratitude to @NecroBones and @VintageXP, both of whom provided patient, expert instruction to a clueless newbie (i.e. me) who didn't know Blender and Unity from a hole in the ground. This is my first parts pack, and I would have been totally at sea without the help of these fine gentlemen. Their assistance made this mod possible (though they bear no blame for the crudity of my models, that's entirely my own!)

How exactly does it work? My immediate thought is the DTS-M1 with the "Blink Lights" ProgressFxModule (and how I have yet to ever see it blink) and how cool it would be to add at will something similar to, say, communications devices or science experiments. Not sure if your mod works by adding animations though, as from my brief look, it just seems to add an emissive light.

Also, I just poked my nose in a random config, and (minor knit pick to be sure), but it could probably use the "a" which I added below, from the fuel cell patch.

"New, improved model now has a status light!"

Cheers.

p.s. Still loving the toggle radiators mod btw.

--edit--

Are you familiar with the Battery Indicator mod? Can be found here or here (second link is more up to date I believe). It might be of interest, as it changes the light on the batteries to change colors based on their status.

Edited April 23, 2016 by Deimos Rastmod info

Share this post

Link to post

Share on other sites

How exactly does it work? My immediate thought is the DTS-M1 with the "Blink Lights" ProgressFxModule (and how I have yet to ever see it blink) and how cool it would be to add at will something similar to, say, communications devices or science experiments. Not sure if your mod works by adding animations though, as from my brief look, it just seems to add an emissive light.

Correct, no animations. The "light" is powered entirely from plugin code that just alters the emissive color of the targeted mesh object. The PartModules that come with the mod provide very simple ways to manage this: basically, there's a "controllable" module that identifies "that's the thing whose color I want to tweak", and then another "controller" module that picks up a control input from somewhere (e.g. "the fuel cell is active" or whatever) and uses that to tell the "controllable" what to do.

The TL;DR is that it's really easy to hook these up to any part that has an emissive texture on it, and since it's being run from plugin code, I can do whatever fancy color changes, intensity changes, blinking, etc. that I want to do.

Expanding the mod will basically be an exercise in adding additional controller types that can be driven by additional inputs. Right now, it has a "resource converter" controller. The only parts that I've hooked it up to are the fuel cells, but now that this is in pace, anyone could write an on/off indicator for any resource converter, using the same controller module.

1 hour ago, Deimos Rast said:

Also, I just poked my nose in a random config, and (minor knit pick to be sure), but it could probably use the "a" which I added below, from the fuel cell patch.

"New, improved model now has a status light!"

Actually, that was intentional-- I was aiming for terse "catalog-speak", i.e. the same kind of language you get in statements like "Battery included" rather than "A battery is included". Thanks though!

1 hour ago, Deimos Rast said:

Are you familiar with the Battery Indicator mod? Can be found here or here (second link is more up to date I believe). It might be of interest, as it changes the light on the batteries to change colors based on their status.

I hadn't specifically known about it, but I'm not surprised it exists. Ironically enough, that was the first part that I picked to try tinkering with, 'coz I figured "oh good, it has an emissive bit already on it" ... and it actually doesn't! That little battery LED is actually not an emissive texture, it's an unlit one. Still eminently moddable, but not if the thing you're coding for is an emissive texture.

Anyway, I will definitely be including the ability to indicate resource contents at some point-- basically, add a "resource controller" the way I currently have a "converter controller". That would allow showing the contents of any kind of resource: electricity, fuel, ore, whatever. That'll take some attention to visual design, though-- not everyone's going to want glowing lights on every fuel tank! One option would be to have it actually be a separate surface-attachable part that you can just place wherever you want, and if you place it on a resource container it will automatically use that container to control its light display. Thus, for example, you could get an indicator light for a battery or a fuel tank by just attaching one.

1 hour ago, Deimos Rast said:

p.s. Still loving the toggle radiators mod btw.

Thanks, glad you've enjoyed it! But... are you still playing 1.0.5? Because RadiatorToggle is now completely obsolete in 1.1-- they actually made the behavior stock! (I don't mean that Squad took any actual code from RadiatorToggle, 'coz they certainly didn't. But they did change the behavior of the stock game so that it happens to exactly match what RadiatorToggle used to do. Sincerest form of flattery, I guess!) So RadiatorToggle no longer has any reason for existence unless you're still playing 1.0.5.

(and if you're playing 1.0.5, you can't use IndicatorLights, since that's 1.1-only)

Share on other sites

Alas, no, sorry. There's nothing about IndicatorLights that couldn't have been implemented for 1.0.5, but I'd have to maintain a completely separate version of the mod in order to do so, and given that almost nobody's playing 1.0.5 anymore, it's just too much time to do that. (I base my "almost nobody" comment by looking at the download rates of my mods. As soon as 1.1 was released, the download rates for 1.0.5-compatible versions of my mods dropped to virtually zero.)

I expect you're increasingly going to have that problem. 1.1 was such a big change that it's very hard to have a plugin-based mod that works in both 1.0.5 and 1.1, and since virtually everyone's on 1.1, I suspect that very few mod authors will bother to write 1.0.5 mods anymore. (I certainly won't be.)

So you'll likely save yourself a lot of hassle and grief if you just go ahead and update to 1.1. Is there a particular reason you haven't done so already?

9 hours ago, Deimos Rast said:

Ah, so you're thinking more along the lines of Smart Part-ish functionality? Trigger lighting behavior based on % resource remaining and such in a tank?

I hadn't heard of Smart Parts until you mentioned it just now. Looks like that's quite a different sort of mod-- big parts pack, lots of parts, and lots of sophisticated behavior-controlling features such as timers, automatic gadgets, etc. My IndicatorLights mod is (and will continue to be) a lot less fancy. No automatic control of anything, it's just an indicator. It will add some indicator-type parts (like the BL-01 Indicator Light), and add indicator lights to existing parts, but that's the extent of my ambitions here. Even just doing that much, there's a lot of stuff I can do.

The other goal I have is to design all of this in a way that makes it very easy for any other modders to use my mod to add their own custom indicators to their own parts (or their own modifications to stock parts).

For example, the indicator lights I've added to fuel cells are based on a ModuleConverterIndicator. At this point, anybody who wants an indicator on any resource-converter part (stock or otherwise) could easily add an indicator light, just by sticking an emissive piece on it somewhere and then adding in a couple of my modules. It would be very quick and easy.

I'll be adding lots more modules like that. Their immediate purpose will be to let me add my own indicators to this mod, but as a side benefit they will also allow other folks to use them to do neat things of their own, if so inclined.

1 hour ago, HiddenKnowledge said:

Hmm, this mod looks amazing but it would be cool if it also does stuff for an entire stage or the entire ship.

Yah, I thought about that. One of the issues is that it's not just a question of what functionality to add, but where's the right place for it. For example, suppose I'm considering adding an indicator somewhere to show some sort of whole-ship status. Certainly I could put that on a part... but actually, if it applies to the whole ship, probably it belongs in some sort of flight UI element (like the navball, or wherever) rather than on a particular part of the ship. Similarly, if I wanted to add an indicator for a whole stage, it would probably be better put into the staging UI rather than as a part on the ship.

There's also the "problem" of having so many neat things I could add here, which I suppose is a nice problem to have. There are more things to do than I have time to do them, at least all at once. So for a while, at least, I'm going to focus on adding functionality for individual parts, because those are the ones that benefit the most from a part-based approach.

Once I've added all the individual-part functionality that I want, then maybe I can circle back and start thinking about whole-ship or whole-stage functionality. But that would be a good long while from now.

Share this post

Link to post

Share on other sites

Could you do this for batteries too? Some already have a light, in those make it adjustable based on the % charge, and then add your light to the circular batteries that don't have a light? That would be fantastic. A light on science projects would be great too. Green if it has not been used and red if it has been used. I can't tell you how much time I waste checking science parts to see if I already did them or not on a trip. This mod would be a godsend for that!

Edited April 23, 2016 by jpinard

Share this post

Link to post

Share on other sites

Could you do this for batteries too? Some already have a light, in those make it adjustable based on the % charge, and then add your light to the circular batteries that don't have a light? That would be fantastic. A light on science projects would be great too. Green if it has not been used and red if it has been used. I can't tell you how much time I waste checking science parts to see if I already did them or not on a trip. This mod would be a god send for that!

Yup, batteries are definitely on my list.

I've also been thinking about science instruments, but they're a little more tricky. On the one hand, it would be very handy to see whether they've got science in them... but on the other hand, most of them are pretty small, and it would be challenging to come up with something that's visible enough to be useful without being so garish that it kinda drowns them out. I'll need to give some design thought to it.

Share this post

Link to post

Share on other sites

oooh someone will no doubt do a kOS script that controls the lighting to make some kind of light show... No it won't be me I don't have time. But on a more practical note, being able to use these as dynamic indicators with kOS is going to be very nice

Share this post

Link to post

Share on other sites

oooh someone will no doubt do a kOS script that controls the lighting to make some kind of light show... No it won't be me I don't have time. But on a more practical note, being able to use these as dynamic indicators with kOS is going to be very nice

I haven't played with kOS myself, but I imagine that the most useful parts for it would be the standalone ones in this mod (currently just the BL-01), since they have part actions and you can control them independently of anything else.

The indicator lights that I've added to stock parts probably won't be super useful in that regard-- they're tied directly to the state of the parts that they're on, and aren't independently controllable.

Since the standalone lights have completely customizable colors (both for the "on" and the "off" states), I imagine you could put on quite a disco display with them.

Share this post

Link to post

Share on other sites

I haven't played with kOS myself, but I imagine that the most useful parts for it would be the standalone ones in this mod (currently just the BL-01), since they have part actions and you can control them independently of anything else.

Yup that was what I was referring to

Share this post

Link to post

Share on other sites

Yah, I thought about that. One of the issues is that it's not just a question of what functionality to add, but where's the right place for it. For example, suppose I'm considering adding an indicator somewhere to show some sort of whole-ship status. Certainly I could put that on a part... but actually, if it applies to the whole ship, probably it belongs in some sort of flight UI element (like the navball, or wherever) rather than on a particular part of the ship. Similarly, if I wanted to add an indicator for a whole stage, it would probably be better put into the staging UI rather than as a part on the ship.

There's also the "problem" of having so many neat things I could add here, which I suppose is a nice problem to have. There are more things to do than I have time to do them, at least all at once. So for a while, at least, I'm going to focus on adding functionality for individual parts, because those are the ones that benefit the most from a part-based approach.

Once I've added all the individual-part functionality that I want, then maybe I can circle back and start thinking about whole-ship or whole-stage functionality. But that would be a good long while from now.

3

Ah, I was mostly thinking you could make the part detect the entire stage on the object it's on and when that stage is out of resource X you could make it turn off/on :).

Share this post

Link to post

Share on other sites

Ah, I was mostly thinking you could make the part detect the entire stage on the object it's on and when that stage is out of resource X you could make it turn off/on :).

Yes, and I considered doing exactly that. But if the player really wanted a stage-specific indicator, I would think it would make more sense to have some sort of thing in the staging UI, rather than on the actual ship.

It's also worth noting that "how much fuel do I have in a stage" would actually be a seriously complicated piece of code to program. The problem is detecting what's "in a stage", given all the possibilities of fuel flow that KSP has. For example, it's perfectly possible to have one fuel tank that contributes to multiple stages, and so forth. Now that I think about it... this would be a massively complicated thing to do. It's the reason BetterBurnTime doesn't try to figure out staging, for example.

"How much fuel is in the whole ship" is easy... but figuring out which fuel is "in" which stage is a whole lot harder than you'd think.

Share this post

Link to post

Share on other sites

well, crap. I'm just getting black, texture-less objects with no light emission. I really want to get these little guys working!

I have way too many mods installed to even have a clue for troubleshooting--but I might start back-tracking or spin off an empty KSP to start with.

Are there any other graphics than the three tiny png files?

Well, there's a part tree. The BL-01 standalone part has three tiny .png files. The fuel-cells folder has two tiny .png files. You just copied the entire IndicatorLights folder tree into your GameData, yes?

Sorry, I have no idea what to tell you-- works fine on my machine (surprise, surprise). Any info from anyone else out there? Is anyone else experiencing a problem like Beetlecat? Conversely, anyone who can confirm it's working just fine for them?

Share this post

Link to post

Share on other sites

Status update: I'm working on batteries next. So far, I've got the Z-4K up and working, here's a little teaser:

This big fella will have 4 indicator lights spaced around the rim. (Not at 90 degrees, though, because the texture of the stock battery makes that impractical.) I plan on putting just two indicators on the Z-1K and the 200-charge stack battery, and a single indicator on each of the radial guys.

Planned implementation is this:

Full (over 70%): green

Medium (between 30% and 70%): yellow

Low (under 30%): red

Critical (under 2%): pulsing red (fades between bright and dim red, period 1200ms for a cycle)

Empty (exactly zero charge): off (not lit)

If the battery is disabled (by checking the little checkbox), then the lights blink (900ms on, 300ms off).

Thoughts? I'd love to get feedback before I work my way through designing all the other batteries. My design considerations:

Getting the size/placement of the indicators right. Too big, and they're too garish and get in your face. Too small, and they're hard to see. What do you think? Should I make 'em smaller?

Is anyone violently allergic to the idea of fade-pulsing the lights at critical-low charge, or blinking them when disabled? I'm mindful that blinking lights can be distracting, but hopefully it won't be too bad (most batteries are enabled most of the time). And I could play games with the timing to make it less obnoxious, if need be (e.g. adjust the on/off phase to be 4:1 or more, instead of its current 3:1). And it seems like a really simple, useful way to show "this thing is disabled".

Share this post

Link to post

Share on other sites

I rather like the "chunky" default size [they remind me of those old "tap lights" that you could stick in closets] --but they can lack a bit of sophistication on smaller craft. It's pretty trivial to throw a TweakScale config in the mix (see above).

I'm also a fan of light mode options. I typically load my craft with lights (especially aircraft). Using these indicators would be a wonderful visual cue to allow fewer on-screen readouts; but who am I kidding? I'll have the resource panel, 10 MFDs and, and warning buzzers galore.

Share this post

Link to post

Share on other sites

I rather like the "chunky" default size [they remind me of those old "tap lights" that you could stick in closets] --but they can lack a bit of sophistication on smaller craft. It's pretty trivial to throw a TweakScale config in the mix (see above).

I'm also a fan of light mode options. I typically load my craft with lights (especially aircraft). Using these indicators would be a wonderful visual cue to allow fewer on-screen readouts; but who am I kidding? I'll have the resource panel, 10 MFDs and, and warning buzzers galore.

Eventually I'll be adding more shapes/sizes of lights, so hopefully you won't have to resort to TweakScale so much. (Perhaps I'll put them on a separate tab in the VAB, doesn't seem worth cluttering up the Utility tab when I've got a lot of 'em.)

I'm really, really slow and clumsy at modeling, though (I code a whole lot faster than I model), so I'll probably leave that for last and focus on getting the functionality (i.e. coding) done first.

Currently working on batteries. After I finish those, I'm thinking maybe crew occupancy indicators for pods next.

Share this post

Link to post

Share on other sites

Heh! -- glad you found it amusing. I just got in a really silly mood when I realized the random craft I tested the light on was a bug rover.

It looks like Aviation Lights have been updated now too, and I'd love to see how Squad put the flare effect on the landing gear lights. We have all these great, super-bright spotlights, and when you look right at them, they're just a soft, yellow glow.

It could be nice to have a tiny bit of emissive on your indicator lights as well, but they're obviously not meant for that purpose.

Share this post

Link to post

Share on other sites

It could be nice to have a tiny bit of emissive on your indicator lights as well, but they're obviously not meant for that purpose.

Not sure exactly what you mean by "emissive" in this context-- actually, that's exactly what all the lights are, emissive textures.

If what you mean is make them actually emit some light so that they illuminate things... well, I'm kinda steering clear of that, not just because it would make the modeling task more intricate, but also because light sources cost GPU cycles and I'm very wary of doing anything that would be likely to slow down anybody's framerate.

Broadly speaking: what I'm going for is the crude-but-functional-and-easy look first, until I get all the functionality done that I want to (and there's a lot of that). Once I've got the functionality reasonably feature-complete, then I can circle back and start working on fit-and-finish stuff. Hopefully I won't be such a hopeless klutz in Blender by then (though I expect I'll still be short on artistic talent).

Share this post

Link to post

Share on other sites

If you're looking for ideas on designs, I'd love to have a little pokey-up light as you see on the 100 charge radial battery as a standalone part.

So you can slap your own indicator lights everywhere and have them thematically match.

Thanks! I do intend to produce several new shapes and sizes of standalone lights-- i.e. the same functionality as the BL-01, but in different form factors. A "little pokey-up light" is one of the shapes I was planning to do.

23 minutes ago, Reiver said:

Also one that strobes - so you have a blinky button giving you a colour.

Yep, thought of that, too. Main reason I haven't added it yet was that I hadn't yet settled on the best UI for it. The simplest thing to do would be to add some more options to the BL-01 (and its eventual brethren), but I'm a little leery of overcomplicating that (it already has a button and three sliders).

One example control scheme would be something like this:

A toggle button (available in editor and flight) for turning blinking on and off

Action group items for blink on, blink off, toggle blink

Blink interval not available via UI, but present as a field in the part module, so that it's possible to tweak via ModuleManager config

Another possibility would be that in the editor, it wouldn't be a "blink on / blink off" toggle button, but rather a "cycle" button that would select from among several different modes. The default mode would be "steady" (i.e. no blinking). Other modes would be "fast blink", "slow blink", "pulsate" (a slow fade that cycles between the "on" and "off" colors), maybe a few others if they occur to me.

I've implemented the feature using a new ModuleResourceIndicator, which works with any resource container. This means that adding resources to any resource container (fuel tanks, ore tanks, etc.) is just a matter of adding a mesh and some MM config to the part; no coding needed. I'll be revisiting such containers later; for now it's just batteries.