Generic itemmod framework

As it currently stands we have two system for modifying items in-game: gunmods and toolmods (also clothing mods, but that is a dead end dev-wise). Gunmods use multiple predefined slots for different mods, while toolmods are limited to one mod per tool (as far as I can tell). While, if memory serves e right, Kevin has expressed a preference for creating new items instead of adding more itemmods, I would like the capability to create itemmods for different items, be they weapons, clothing, or tools, in addons of my creation. Would it be feasable to create a generic framework for itemmods where an item can have multiple itemmods with optional slot restrictions? If a modification system for power armor or PA accessories were to be created at some point, it might be timely to implement a generic framework as a part of this.

Inspired revelation or idiotic ramblings? Discuss!

Any time an infrastructure suggestion comes up, what it really needs are examples of the features it will enable. “Add mods to clothing” doesn’t tell me anything.
There might be a great and easy way to add what you want, but unless you’re specific about what you’re trying to accomplish, I can’t suggest it. Similarly what you want might be impossible, but I can’t tell.

I see your point. The reason as to why I’m hesitant to go into specific implementations is that I generally get a lot of ideas, but follow up on them in a minority of cases. If I were to write every specific feature I want, the suggestions subforum would be more or less me rambling on and on. It would feel wasteful if I requested a specific feature, had it added, and proceeded to never use it. However, since you requested it, here’s some related ideas to what I had in mind. Note that unless explicitly stated, these are mostly things I would mod for myself, so don’t view this from a balance or lore perspective.

[ul][li]Upgradeable power armour. You have spoken of this yourself, and I am in agreement on how it would look in play. It fits in to my mental picture of a framework as long as its not hardcoded to be PA specific.[/li]
[li]Blob pseudo PA, armour and weapons. An extension/rip off of the blob parts of Blazemod, but geared towards personal gear. A moddable, PA-like meat suit would be the flagship item. Would run on meat and blob. Craftable nifty gadgets included.[/li]
[li]Multiple electric toolmods on one tool. The foremost feature is installing a battery compartment mod alongside a UPS conversion to allow charging batteries with UPS on the go. I’m also interested in modding in a radiothermal generator to make a large and heavy itemmod that constantly recharges the tool slowly. The RTG could also be combined with magazine style battery to recharge on the go.[/li]
[li]Turning the different survivor armours into a single armour with mods. Instead of having separate armours as winter gear, fireproof, lightweight, heavy, and XL, you would start of with a base armour (lightweight) and add modules. The armour would have limited slots, possibly only one, with the fireproof mod making it equivalent to the survivor fire armour, the mutant adjustment to XL armour, extra plating for heavy etc. This would allow a player to start with the basic survivor armour, and later move on to a specialised type as circumstances dictate. Perhaps I could add a “super” survivor armour with two slots for variants. Radiation shielding armormod?[/li]
[li]A small annoyance I had is that you require a complete set of tools to build the survivor utility belt. I wish I could create a belt and then apply the different tools as armormods. Additionally things like sheathes, holsters, belt clips, and extra storage pouches could be added.[/li]
[li]Thermal clothing. I want to add the thermal functionality to other articles of clothing. Thermal arm warmers, thermal wool socks, thermal t-shirt, thermal shoes and so on.[/li]
[li]Weaponmods for melee weapons. You could fold in diamond weapons into this system. What i considered adding was a fire upgrade like existing fire weapons and a tazer upgrade. A flaming, shocking vorpal diamond katana is OP as hell, but I want one anyway. I also have some ideas for fantasy magic upgrades, but nothing specific at the moment.[/li]
[li]This is probably long term at best, pipe dream at worst and would be a fundamental change in item behaviour. I feel that the current system of using transformations to toggle states of items is crude (although I realise that it might be the only feasible implementation). For strictly binary things, such as flashlights, this works well enough, but if I were to add, purely as an example, a scarf with three different states of wearing (all warmth, some warmth, no warmth) I need to create three different items in JSON and link them together with a circular transformation chain. Add to it a battery powered thermal heating, and it becomes unmanageable. Another example would be a modern smartphone acting as a flashlight, mp3 player, noisemaker, and gaming device. You would need separate item definitions for every permutation of active and inactive features. If instead you could use virtual “itemmods” to add or remove features, a single item could fill many functions in parallel. Activating a flashlight would in this system add an itemmod to itself with the following attributes: give of light, increase battery drain per turn, remove yourself if there is no battery. Such virtual itemmods would stack with each other unless otherwise specified.[/li][/ul]

Now these are only samples of what I personally would make or use and once again, the specific mods are not balanced and I do not propose to mainline them. Not all are reasonable, feasible, meaningful or sane.
Also, now that I brought it up: What is the etiquette for (not) spamming the suggestion subforum and GitHub issue tracker with random ideas? I’m quasi new to participating in both open source projects and online communities.

Maybe attachments that allow remote/conditional interaction with whatever they’re attached to, similar to how SS13 does assemblies?
For instance, someone with electronics skill could craft an “trigger-signaller” assembly that is set to a particular frequency, can be attached to various activate-able objects, activating them when a signaller of the same frequency is remotely switched. Things like flashlights, explosives, flares, car throttle, etc.

As a maintainer, “rarely follow up on them” means, “I want you to make this feature, but I’m never going to use it”. For context, a half-decent moddable armor feature would probably take 10+ hours to impliment, and for further context, I have maybe an hour a day to spend on the project right now, so you’re asking me to spend 1-2 weeks of my development time for something you “follow up on in a minority of cases”, and “things I would mod for myself”.

[quote=“Maddremor, post:3, topic:13977”]Upgradeable power armour. You have spoken of this yourself, and I am in agreement on how it would look in play. It fits in to my mental picture of a framework as long as its not hardcoded to be PA specific.
Blob pseudo PA, armour and weapons. An extension/rip off of the blob parts of Blazemod, but geared towards personal gear. A moddable, PA-like meat suit would be the flagship item. Would run on meat and blob. Craftable nifty gadgets included.[/quote]
I don’t see a good reason for this sort of thing to not be PA specific.

This needs to have specific support in the code to make it work properly, there’s no way a generic item modding system would be flexible enough to handle this.

Just make a heirarchy of variants and recipes to move up and down the heirarchy, that’s a lot simpler than a mod system that can support it.

They don’t need to be mods, the toolbelt just needs to act as a container.

I explititly don’t want a system that adds features like this to clothes, it’s impossible to balance. For warmth in particular there’s little to no benefit to having it be added to clothing instead of being a seperate (but low encumbrance) layer.

Just make the item variants, having diamond coating be a mod would be a PITA to try and balance because you’re interacting with multiple different damage formulas, it’d be really easy for balance to to be impossible to maintain.

Like with the electric toolmods, a generic system to suport this would be extremely complex. The number of different items that have behavior this complicated is quite small, so adding special behavior for them would be more productive than trying to add it with a generic system.

If you aren’t seriously invested in having it happen, as in you’re willing to follow up and do some of the work to make it happen, don’t post it to github. We already have problems with too many feature requests being open that will likely never be implemented and are looking into ways to reduce the numbers, so please don’t add to the problem.
On the forums, go nuts, if it’s high volume consider putting the ideas in a dedicated thread instead of making new threads.

As a maintainer, “rarely follow up on them” means, “I want you to make this feature, but I’m never going to use it”. For context, a half-decent moddable armor feature would probably take 10+ hours to impliment, and for further context, I have maybe an hour a day to spend on the project right now, so you’re asking me to spend 1-2 weeks of my development time for something you “follow up on in a minority of cases”, and “things I would mod for myself”. [/quote]
I get it. It’s the reason I try to think of systems/frameworks/features that can benefit the cummunity at large. Now, ideas are a dime a dozen, but I aspire to come with some meaningful suggestion, or at least start of a constructive conversation.

I don’t see a good reason for this sort of thing to not be PA specific.[/quote]
Well to clarify, if some modification to PA were to be added and said mods would be at least partially defined in JSON, it would be nice if said armormods were not intrinsically linked (hardcoded) to the PA-attribute, ie. the attributes “is an armormod” and “this mod only targets PA” were separate. If the PA hauling frame became a armormod, it would have a flag like “PA_ONLY”, or something.

Just make a heirarchy of variants and recipes to move up and down the heirarchy, that’s a lot simpler than a mod system that can support it.[/quote]
I was thinking of having compatibility if multiple addions were to add different “armor effects”. Your objection is perfectly valid though.

They don’t need to be mods, the toolbelt just needs to act as a container.[/quote]
Now it might just be my ineptitude, but I can’t get a toolarmor to have multiple unique holster function (ex. holster and sheath on the same belt). Therefor I am unable to replicate the SU-belt by having it as a container.

I explititly don’t want a system that adds features like this to clothes, it’s impossible to balance. For warmth in particular there’s little to no benefit to having it be added to clothing instead of being a seperate (but low encumbrance) layer.[/quote]
To reiterate, I’m not suggesting to mainline the ablilty to make any clothing thermal.

Could a “non-layer” of clothing be added as a workaround in addition to current skintight, normal, outer, strapped, and waist? This “non layer” would not cause encumberance with layering multiple versions of itself. You could have hairpins actually be located on the head without conflicting with anything else, and were I to make a magical/superscience personal force field it could cover the entire body with protection without encumbering. This as a replacement to the current convention of having small wearable objects not covering any bodypart.

(Also I want to take the oppertunity to thank you for your role in developing this wonderful game, which takes up a disproportionate amount of my time and thought.)

Generally feature suggestions are going to be more productive than system or framework suggestions. “I want to do X” gives us a lot more to work with than “I think you should implement a framework to do X”.

Now it might just be my ineptitude, but I can’t get a toolarmor to have multiple unique holster function (ex. holster and sheath on the same belt). Therefor I am unable to replicate the SU-belt by having it as a container.[/quote]
You can’t do it with JSON, it’s just that the way a toolbelt is implimented as special clothes with tool qualities is a hack, and if it were implimented as a wearable container for tools it would work better. Both alternatives are better than adding item modding just for this one thing.

This would be better as a seperate type of item that doesn’t use the clothing system at all. The force field in particular is going to be much better handled as a special effect than a corruption of the clothing system.

Thanks, glad you’re enjoying it.