Modding Tool for Stonehearth: What should it have?

Hello,

I am currently in the process of making a mod utility for Stonehearth that I’d like to see become a complete modding tool with many features.

My goals are to have a “New Mod” wizard that starts you off with a basic, but custom mod that you can start with.

It will be able to load lua, json, and manifest files with highlighing and proper formatting for the lua files.

I know this is not a lot of information to start with, but I was wondering if I could get some other input on what is a common modding task for stonehearth.

I was also thinking of having file importer/exporter for the .qb files, to save them as obj to load in an editor…

Anyway, I am working on this right now and I’ll be watching for some ideas :smile:

Michael

3 Likes

For me it is not really clear what you are trying to achieve with that “new mod” wizard.

For example what do you mean with this?

For me it sounds like syntax coloring and/or syntax checking.

I’ve seen several projects like this one around the forum, but this one is focused on

so it’s different from the others.

When I think of a mod editor, it’s right that you’ll have to write URIs and lua code all by yourself, even the json sometimes can have your own keys.

For starters, mods usually are based on adding recipes to the world, to craft your new entities. This process involves quite a few files: you have to create the entity (furniture, armor, weapon, whatever) and the recipe for the corresponding crafter. Making this is usually tedious, since it involves lots of manual renaming.

Then there’s adding classes. If it’s a crafter class it’s easy to copy existing files and modify them. If it’s a whole new class you’ll have to do code.

Adding new critters/monsters it’s relatively easy, as long as you reuse existing mixins. Then you can use those critters in your own campaigns. Of course, critters involve a lot of animations.

Other thing that modders can do is particle effects and light effects, but a user already made a nice tool for this. Also there are several topics about voxel editors in the forum, StoneVox being popular as it’s free. I haven’t seen an exporter qb->obj outside voxel editors, though…

Other than this, maybe UI related stuff, like adding something new to the HUD, but this is also more of a coding task.

Whichever features you include in the tool, I just have one advice: don’t give up :smile:

1 Like

Thanks for the replies.

I have been working for the last several hours on this (planning, and making the UI).

As for “what” it is I intend to make, well I am doing more then just syntax highlighting and rezipping files.

I am making a “full” (as can be) modding, and testing tool for making stonehearth mods. I am even building in a debugging browser to profile your mods, if you choose.

For now I am working on loading smod files, and working on a basic “Project” foundation.
I’m also going to look into actually compiling the Lua code to bytecode… I have done a lot of profiling and the lua code is a real drain on this game :frowning: I will be working on my own “Unofficial Bug & Optimizing Mod” as well.

Anyway, I will post more as I can…

Michael

3 Likes

Sounds promising :+1:
Keep us updated.

though i dont have anything to suggest at the moment, i definitely will be keeping updated on this.

A program with a simple gui that writes to template Jsons might be good actually.

Just formulate a template, and have your program lead a modder through a series of prompts that fills in every possible option for a class, critter, ect.

Make sure your template has every potential option that a corresponding class, critter, etc might have and run the potential modder through it.

Typically I notice a lot of potential modders are perfectly fine with modelling. There seems to be a surplus of people who are artistically talented with not enough people comfortable enough with code to even modify the Json files.

So you could have your program essentially be a mod builder by step-by-step building a file and a Json from start to finish.

Example (via gui):

Name of Mod:
Description of mod:
Name of class/critter/item 1,

Define a working concept like an archetype:
Is your object a reskin of an existing class/critter/etc?
You could even show them a list and have them give you Y/N if you want to make it completely numbing.

After which the program creates the directory as required and can replace your template with customclassname at every step.

I think the goal with what I’m suggesting here would be to make simple modding tedious but easy enough that someone with 0 comfort level with any sort of programming could do.

Implementing animations wouldn’t be so bad again if their intended introduction fits an archetype. It would just mean a lot more work on your end.

If their class doesn’t fit an archetype of an existing class/item/critter, then they might have to suck it up and deal with learning lua, but for really basic modding like adding a class, item, critter, etc, this might be doable.

1 Like

Ok, so I have been making some progress so far, and am happy with the direction this project is going in. I am working on the basics now, but hope to get something posted soon to give a better picture of my plans and ideas.

As for the json editing and setting up the basic modding files that is what I am planing, as well as making a wizard that walks through a few options to get you started on a mod… whether it be a mod that replaces models and data, to something that tweaks settings… I have some ideas that I think will work out.

Also, I am making this so that when you load the stonehearth.smod file it gets loaded in Ram only. Then as you make edits to anything in the file (full editor will be part of this) then Only those changed files get save to your custom mod. I think that may be easier then going through directorys, finding files and manually moving everything yourself…

Anyway… I will keep you posted…

Mike

For mods you don’t really have to compile the lua.

Even if the lua files in stonehearth mod have the luac extension, they can be easily copied/modified/saved again. We can use plain .lua files…

1 Like