The Modding Requests: Discussion Thread

The official discussion thread for this modding request.


A note for starters: Since we’ve just begun that, I’ve decided to “seed” the proposals with a few things that came into my mind right now. Those might not be the best or most important, but they’re a start and give an example of what a proposal could look like :wink:

1 Like

My request: Easy access to visual effects. Modder-usable z-fighting fix (preferably allowing multiple layers), glows, and transparencies.

Right now I’m making horses. I have a set of markings made to apply to them. Now, I could go and for every color of horse (black, brown, gray…) make a set of twenty different marked heads, which is a little time consuming, very inelegant, and unnecessarily resource-intensive, but easy enough. OR I could make one head for each color, and add on a markings mesh to function like a decal. For this to work I’d need to have access to that z-fighting fix that was mentioned in one of the developer blogs, so that I could make the markings always cover the face underneath. (Note: The same kind of thing could be used to add tattoos, face paints, five-o-clock shadows, blushes, makeup, complexions, and other lovely details to settlers.)

It would be even better if I could have multi-layer z-priorities. Some horses have more than one set of markings mixed together - a stripe along their back, for instance, together with white spots. Being able to layer these in a particular order (first base coat, then dorsal stripe, then white patches) would be great; it would allow me to achieve many unique combinations with relatively few inputs.

Next on my list, transparencies and glows. I know glows are already in the game (the particles of the fire mesh are glowy, for instance) and I’d be willing to bet transparencies are on their way (we’re told water is coming). I’d love to be able to use these in models. I’ve got an idea for jellyfish critters that really won’t look right until they can have bioluminescent markings and translucent bells.

Hmm.

I haven’t touched this area at all to be honest. Can you (or @SteveAdamo) find the dev blog that talked about solving z-fighting (especially how they plan on dealing with that/layers)?

In any case: Speaking of “layers” is really, really difficult. I’m not sure how the game handles these things, but since we are talking about voxel based graphics, the models themselves never ever come in touch with any sort of texture or layer.

Compromise, much more powerful: The ability to read and edit matrices in the game. That way you could have your markings as .qb file and then apply those to the head, for example “Whatever is white in marking.qb is brightening head.qb by 10%”. It would be similar to your layer approach but allow much more refined things.

So basically, head.qb + marking.qb → marked_head.qb - during runtime. Sounds good? I’m afraid this might be more difficult… But we could always throw in a generic “Some way to edit textures” and add a “maybe by editing matrices at runtime”… However, with that in place, you could apply as many modifier qbs to your model as you please.

If we just get simple read-qb and edit-qb/edit-mesh support I can wrap something up that does that as 3rd party library.

This is already possible, in some way. You can define materials (I’ll add that to the list) and have models rendered that way (the “ghosted” place items for example). In theory, you could create a new model with your transparent stuff and then simply attach it to the first model (i.e. “merge”) the two.

If we are talking about different transparencies in the same game we run into issues however. Qubicle does not support that (to my knowledge) - at least .qb surely doesn’t.

sorry, a dev blog discussing… visual effects?

Something about…

z-fighting, layers, textures, something along that line. I guess? It’s news to me. I know that there was something about “We’re fixing z-fighting”, but I don’t think it ever spoke about giving modders that chance - it sounds more like an engine issue that needs to be resolved there, nothing that mods should have to touch. Or could.

oh, right… some of the first reported bugs concerned the “overlapping” tree models…

I don’t recall any comments that might enable the modding community, but a quick scan couldn’t hurt…

In the kickstarter I believe they said they might include the best mods in the official game, will the creators get a reward or a shoutout or something?

Yeah, editing matrices on the fly would work great as far as I’m concerned. I do need to be able to specify which matrix overwrites and, I guess, a relative position? Stuff like relative brightening and other effects would be frosting on the cake.

I’m aware that glows are already technically in the game, but how can I get to them? That’s kinda what I need here, some modder-accessible path.

Making a jellyfish by stitching together glowy meshes and transparent meshes works fine for me. Might not do exactly what I was hoping for, but I can work with it. Although if we could have different materials modifiers in the same matrix, hey, I wouldn’t object.

The blog post I was thinking of is here.

Borderline modding related but seeing as the release is more than six months away, it wouldn’t make much sense to ask them for their plans regarding that - I doubt that they have planned this far already. Sorry, I’m not going to include that one.

Relative positions are something that would be defined over json if you ask me (i.e. { marking = "file(marking1.qb)", position = [ -1, 5, 1 ] } as pseudo json). Brightening and re-coloring are actually things that I have plans for - I’ve played around with Panicle a bit for such a feature and might release something for that in advance as standalone. So if the engine doesn’t support it, I’ll write libraries for that.

Yes, that’s one of the things they are currently working on if I’m not mistaken. I’ve included it into the main topic as access to the rendering portion of the engine.

Currently, it’s possible to add new materials, but it’s not pretty and anything but official.

Yeah, but that would be kinda weird. Qubicle doesn’t support any such metadata (at least not for .qb), so how would you edit it? Simply saying that fuchsia represents glowing neo green? Hacks like these could always be done by mods/libraries if we had access to the matrices. I’ll add that point to the list.

Yeah, but as I was afraid the post is discussing that Stonehearth itself is not using texture maps (in the common sense) - therefore there’s no real “layers” on objects. I don’t think that this is intended (or capable) of giving a decent layering tool (like in Sims… your description really fits that system well).

That was discussed during a live stream. I believe the answer was something along the lines of giving one animation priority over the other in order to prevent them “fighting” for that visual priority. I’m afraid I have no idea which stream it was though :stuck_out_tongue_closed_eyes:. But if I had to guess I’d say maybe…three or four streams back? Would’ve been maybe the second one after the first Alpha release.

2 Likes

I’ve gone through the modding thread and added all things that I see somewhat modding related (i.e. not pure feature/gameplay requests, usable in immediate-medium term). You likely got a ping if you’ve posted something there.

I also started “sorting” the proposals for next week a bit. It’s important to note that this order is not exceptionally significant. The basic idea is that more immediate feature are somewhere along the top of the list, followed by those that may are medium term and at the end there’s the incomplete ones.

Meanwhile, it’s the last day and I feel kind of bad for submitting an (almost) self made list, even though the first thread had a shorter lifetime than the (hopefully) future ones.

So if you have a proposal going on, you’ve still got a few hours to go!

I’ll just go ahead and continue using this thread as it’s still pretty small.

Round 2 is here, same rules. This time, two weeks to gather and discuss the ideas, which should be plenty of time for everyone to get adjusted to Alpha 2 and find something they want.

It looks rather weird if every entry is made solely by me - so feel free to show support for certain entries that you are interested in and propose your own! Because more @ mean more interest, that point will certainly get asked sooner than later.

This may not be the appropriate place to ask these questions, but it’s worth a shot.

Since Alpha 2 I can’t get simple mixintos changing things like object names, descriptions, and render scales to work. Could light be shed upon this?

Also, to confirm: The game will read .lua files happily if there are no .luac files by the same name, yes?

It’s about the best spot that I could currently imagine… :wink:

What does Jofferson say about it? Jofferson up to version 1.4.1 seem to have the same bug and therefore display the JSON just the way the game currently reads it. Yes, it seems broken.

lua files are preferred over luac files. If the game tries to find the lua file “script” (lua files are not loaded with an extension), it’s first checking for “script.lua”, then “script.luac”. So you can have both, luac and lua.

Many thanks, RepeatPan!

I have started to use Jofferson, but I haven’t figured all its quirks out yet.

I’ve made a little change, I’ve kicked out the recipe part (if the modify-JSON thing is included, we can take care of that ourselves for now) and added something more basic instead, the ability to re-tag things.

Since tags (for materials at least) currently are a string separated by whitespace, they can’t really be mixinto’d nor mixin’d. There’s two scenarios where this can be problematic:

  • A mod adds new resources. Assume you have some sort of space mod. You want oak logs to be turnable into space fuel, but not tables. You could either say “has tag wood, but not tag furniture”, but that would make things complex.
    Instead, you simply add a new tag - space_fuel_ingredient or so. Then you simply add this material tag to stonehearth:oak_log and voilà. Neat bonus: Everything that was mixin the oak log (for example, logs in other mods) is now space fuel too.
  • A mod wants to re-balance resources. You’re making a hardcore mod and you don’t want oak logs to count as wood, but rather want them to turn into planks first. You simply remove wood from stonehearth:oak_log and add a new material, plank, that counts as wood.

Other than that, more input is always appreciated. I feel the list is a bit weak this week - but the only real thing of importance would be the landscape generator, a rather huge change that we haven’t figured out how we would like it yet I believe.