Scholar Mod 1.1.2.1 - Revived! (Semi-transparent features fixed)

Scholar Mod Alpha 1.1.2.1 for A20

This is a Job based mod called Scholar Mod, which adds a new crafting job, Scholar, and enhances the role value of less favored jobs such as weaver and potter.

This is the Alpha 1.1.2.1 Release, with a great bug fix!
I found out the cause that jammed the function of the Scholar’s crafting menu! It was caused by the semi-transparent features added before. It was caused by some typos and now it’s fixed and great! Now it can be played on the A20, the latest version.

Rune Plates are added! Not great, but useful for low levels.
Rune Plates are newly added accessory type equipments.

The full list of the mod’s contents is…

  1. New Job - Scholar (Although More similar to an alchemist.)

    The Scholar Encyclopedia made by the Herbalist

  2. New Transmuting Recipes such as Wood to Coal, Stone to Gravel, Gravel to Clay, and more.

    A Gravel Mound, used for making clay, sand, and eventually concrete.

  3. New materials such as Concrete, Rune Clay, Marble, Obsidian.

    An Obsidian Skull, a decoration made with Obsidian.

  4. Heartite Ingot, a flexible and strong alloy made with gold, silver, and steel.

    The Heartite Bastard, a two-handed sword made with the Heartite Ingots.

  5. Rune Clay, a material made with ginseng powder and clay, which is used for Rune Plate, an accessory type equipment.

    The Plastic Turret is now replaced to Rune Clay Turret, which now slows down enemies instead of lasting longer.

  6. Semi - transparent features are now non-craftable. They are sold from the store though.


Glass Window Frame, which is made with a Glass Block and clay.

  1. Carbon Fabric Bolt, a cloth material made with a coal and threads.

    Carbon Fabric Bolt’s ingrediants are easy to get, but requires high level of the Scholar.

  2. Ginseng, a farmable herb crop and its powder used for making new buff tonics.

    Ginseng is a famous herb which actually exists in Asia.

  3. New buff tonics

    The Da Vinci Tonic, a tonic that increases Inventiveness and Curiousity

  4. New armors and weapons

    The Carbonearth Plate, an armor for the Knight.

  5. New turrets and The Obelisk Type, which gives buffs and heal for nearby Hearthlings.

    The Healing Obelisk, which heals nearby Hearthlings. (Right now it’s treated as a turret, which will be fixed.)

  6. And More is Coming!

Since the Scholar Mod has revived, I will try to add more stuffs for the mod, and make some add-ons.

And as always, If there’s something that needs to be fixed, just let me know!

11 Likes

You have a few typing errors. Use http://jsonlint.com/ to check for them.

The first file has this “Missing ]”

1 Like

Wait… just some typos? That’s kinda embarassing. Anyway, thanks. I’ll fix it up soon

1 Like

I pulled your files into my IDE to run a code inspection and found/fixed the following:

  • manifest.json
  • missing comma’s on lines 16,34, 35, 36, 37, 38
  • recipes.json
  • missing comma’s on lines 39, 42, 45
  • scholar_description.json
  • extra trailing comma on line 83
  • duplicate keys “4” in level_data (I changed the second entry to “5” on line 98)
  • carbonearth_plate.json
  • missing comma on line 43

scholar_mod_json_fix.zip (439.5 KB)

Don’t fret, they are all small things that are very very easy to overlook, especially if you’re not using an IDE that has syntax highlighting and error checking. I didn’t check if anything in your mod works in game, just to see if the game accepted all the mod files when loading.

3 Likes

Wow! really awesome! thanks! I’ll check it out in game now!

Ok, I fixed the errors, but couldn’t add the new job… I would be really glad if someone helps me with adding a new job.

Meanwhile, I’ll work on qb files and use the alternative way. Instead of using the new job, scholar, I will use the herbalist and the carpenter.

Here are all the changes I made to get Scholar show up on the promotion tree, and to be able to promote a hearthling. I uploaded a file towards the end of the post, but make sure to read it all first, because there is still more to do.

jobs/index.json

{
   "mixins": "stonehearth:jobs:index",
   "jobs": {
      "scholar_mod:jobs:npc:scholar": {
         "description": "scholar_mod:jobs:npc:scholar"
      }
   }
}

change to

{
   "jobs": {
      "scholar_mod:jobs:scholar": {
         "description": "scholar_mod:jobs:scholar"
      }
   }
}

scholar.lua

local CraftingJob = require 'jobs.crafting_job'

change to

local CraftingJob = require 'stonehearth.jobs.crafting_job'

manifest.json
add:

  "controllers": {
    "class:scholar": "file(jobs/scholar/scholar.lua)"
  },
  "ui": {
    "less": [
      "file(jobs/scholar/skin/workshop.less)"
    ]
  }

change:

"scholar_workbench": "file(jobs/scholar/scholar_workbench/scholar_workbench.json)",
"scholar_alchembrazier": "file(jobs/scholar/scholar_alchembrazier/scholar_alchembrazier.json)",
"scholar_encyclopedia": "file(jobs/scholar/scholar_encyclopedia/scholar_encyclopedia.json)"

to

"scholar:scholar_workbench": "file(jobs/scholar/scholar_workbench/scholar_workbench.json)",
"scholar:scholar_alchembrazier": "file(jobs/scholar/scholar_alchembrazier/scholar_alchembrazier.json)",
"scholar:encyclopedia": "file(jobs/scholar/scholar_encyclopedia/scholar_encyclopedia.json)",

and add

"scholar:talisman": "file(jobs/scholar/scholar_encyclopedia/scholar_encyclopedia_talisman.json)"

remove (from aliases section)

"jobs:index": "file(jobs/index.json)",

add (to mixintos section)

"stonehearth/jobs/index.json": "file(jobs/index.json)"

And now:

scholar_mod_job_fix.zip (439.6 KB) Here is a zip with those changes completed already.

#Unfortunately we’re not done yet.
As you see, the job is there, and you can promote a hearthling into it after all the previous changes, but you still have 2 larger issues.

  1. You are referencing a locale file (typically locales/en.json for english) that doesn’t exist. This is where all you names, descriptions, etc. are stored. I can get you in the right direction on how to set this up, but since this is your mod, only you know the names and descriptions you want to use.
  2. Lots of manifest reference issues.

Example:
Your heartite_ingot recipe calls "item": "scholar_mod:refined:heartite_ingot" so the game is looking for refined:heartite_ingot in your scholar_mod manifest, but you have it labeled as heartite_ingot, so to the game, it doesn’t exist.

You also aren’t consistently using the same naming conventions. eg: one recipe is calling to resources:marble:hunk_of_marble (not correct in your manifest) and another is resource:concrete:concrete_mound (also not correct in your manifest), so one has a resources prefix, the other resource. It’s not that big of a deal as long all of your references match, but it is good practices to stay consistent.

Your next steps are to go through all of your recipe files and your manifest, and make all of your references match up. My suggestion is to make the manifest match the recipes, I think it is good practice to have the prefixes in the same way as the base game. If you download my changes and promote a hearthling to Scholar, you will see all the reference issues with the 20 or so errors that come up. I also didn’t check any of your recipes for other jobs either, so you will want to double check those as well.

If you have any questions about why any of the changes I made were necessary, or anything else, feel free to ask :sunglasses:

2 Likes

This is absolutely fabulous! Thanks for the help and advice!
I’ll get to work right away!

I finally fixed the .jsons up! And the basic setting is ready! Now I will work on graphics (which to be frankly not that awesome… I’ll just change colors for beginning, then add stuffs up.), then try to add more contents and systems.

Assuming your link in the OP is up to date, here’s what I see so far:

  • entities/weapons/heartite_bow/heartite_bow.json line 16, need to change "uri" to "material"
  • locales/en.json lines 226-230 is a duplicate of lines 221-225
  • entities/weapons/obsidian_maul/obisidian_maul.json <- file name misspelled

JSON References:

  • recipe named “resources:hunk_of_marble” that produces an item not in the manifest scholar_mod:resources:marble:hunk_of_marble
  • recipe named “resources:sand_mound” that produces an item not in the manifest scholar_mod:resources:sand:sand_mound
  • recipe named “resources:concrete_mound” that produces an item not in the manifest scholar_mod:resource:concrete:concrete_mound
  • recipe named “resources:hunk_of_obsidian” that produces an item not in the manifest scholar_mod:resources:obsidian:hunk_of_obsidian
  • recipe named “resources:gravel_mound” that produces an item not in the manifest scholar_mod:resources:gravel:gravel_mound

Thanks for the error checking!
I will check it after 12 hours from now. Gotta get to work.

Sorry for late return…

I worked with the graphics I need right now, but somehow when I try to craft an Item, instead of simple error logs, I have this Assertion Failed. What does it mean?

Does this happen because I just opened .qb file with Qubicle Editor and save right away? Am I supposed to save in different format, then export to .qb again?

Also, I’m having no Error Logs but somehow the items are showing like this… what could be wrong?

scholar_mod.smod

Here’s the link for sharing…

I will try to work on the mod since from this Friday, I will have a nice vacation for 4 days, so I will have a lot of time.

you get that assertion error if you export the .qb’s with compression turned on. so you need to re-export your .qb’s with compression turned off.

my guess would be an invalid file path, to the .png file, in the recipe.json

hope that helps :slight_smile:

Thanks for the advice! I should check the codes tomorrow…

Ok, I’ve checked the codes… and there’s a good news and a bad news.

I fixed the problems above. That’s a good news.
But… The promotion, entities text etc. has still some problems.

So… Back to work!

ok here perhaps i can help - this is only an l18n issue ^^

I’ve solved the entities text issues, but still having problems with promotion and UI…

First, although I made the job and recipes, workshop icon is not showing. I checked the Bastioneers mod for help, and it seems that i might need to add and modify show_team_workshop.js file…

Second, (This is the biggest problem.) despite the fact that the job is showing from the branch, even if I make the encyclopedia(talisman) and get to the level required, I still cannot promote to the job…

If these two are not solved, I’m considering just making the herbalist to alchemist, then making him do the most of the scholar’s work.

1 Like

You don’t need to edit any javascript for the crafter screen, sounds like you’re missing a mixinto somewhere with the ui info. Did you copy from a job that didn’t have a crafter screen?

Well, yes and no… the job’s base is the potter, but i got stuffs from the herbalist and the cleric… I’m looking for the cause using Jofferson, but not going well. But don’t worry! Even if I fail at adding a new job, I will release the mod by replacing the scholar with the herbalist :slight_smile:

en.json → “scholar_workbench_recipe” listed twice.

And then there’s this lol:

Anywho, you can get to the menu by selecting your hearthling and clicking that button.


As you can see, you have some i18n issues, and some image path issues in your recipe files.

I thought that the game put it there automatically because I remembered I was able to get to the crafter menu when I was playing around with how to create a new class a while ago, but I just loaded that mod, and I apparently didn’t. But I have now. I haven’t done much with the games ui stuff, but turned out not to be too hard to find. I noticed the engineers icon was different between the promotion tree and the crafter workshop button, so I ran a reference check on the icon file and found start_menu.json.

All you need to do is create a new file with the following, and mixinto /stonehearth/data/ui/start_menu.json

{
  "crafter_menu": {
    "items": {
      "scholar": {
        "name": "Scholar Test",
        "description": "Scholar Test Description",
        "class": "button",
        "required_job": "scholar_mod:jobs:scholar",
        "required_job_text": "Required Job Text",
        "icon": "/scholar_mod/jobs/scholar/images/icon.png",
        "sticky": true,
        "menu_action": "show_crafter_ui",
        "hotkey": ""
      }
    }
  }
}

Of course, I just hacked this together to see if it would work, so you will want to change out the static strings to i18n entries, and you will want to make a new icon that matches the game.