[SOLVED]One item for two classes knight and footman

I want to have one amulet for the footman_job and the knight_job but i can`t get it to work properly.
Must i copy the item to have two items or is it possible in on e json ?

What i did:
“stonehearth:equipment_piece”: {
“slot”: “amulet”,
“render_type”: “merge_with_model”,
“ilevel”: 2,
“required_job_level”: 0,
“roles”: {
“equip_effect”: “stonehearth:effects:weapon_level_up”,
“injected_buffs”: [

and also i tried as an array [] but both get UI Error

release-707 (x64)[M]
Uncaught TypeError: roleString.split is not a function
TypeError: roleString.split is not a function
at Object.radiant.findRelevantClassesArray (http://radiant/radiant/js/radiant/object.js:330:30)
at n._calculateEquipmentData (http://radiant/stonehearth/ui/game/show_workshop/show_team_workshop.js:778:38)
at n.preview (http://radiant/stonehearth/ui/game/show_workshop/show_team_workshop.js:744:15)
at n.select (http://radiant/stonehearth/ui/game/show_workshop/show_team_workshop.js:373:21)
at n.send (http://radiant/stonehearth/ui/root/js/libs/ember-1.8.1.min.js:8:10765)
at http://radiant/stonehearth/ui/root/js/libs/ember-1.8.1.min.js:5:30788
at a.run (http://radiant/stonehearth/ui/root/js/libs/ember-1.8.1.min.js:1:2810)
at u (http://radiant/stonehearth/ui/root/js/libs/ember-1.8.1.min.js:5:17688)
at Object.handler (http://radiant/stonehearth/ui/root/js/libs/ember-1.8.1.min.js:5:30761)
at HTMLDivElement. (http://radiant/stonehearth/ui/root/js/libs/ember-1.8.1.min.js:10:7200)

atm reading js is a problem for me it points towards this function but i can`t get a clue

//Given a string of roles, return an array of classes that are relevant to this item
radiant.findRelevantClassesArray = function(roleString) {
var classes = {};
var classArray = [];
var roles = roleString.split(" ");
var jobData = App.jobConstants;
for( i=0; i<roles.length; i++ ) {
var thisRole = roles[i];
var roleInfo = App.roleConstants[thisRole];
if (roleInfo) {
radiant.each(roleInfo, function(targetClass, value) {
if (!classes[targetClass]) {
classes[targetClass] = true;
var classInfo = {
name : targetClass,
readableName: jobData[targetClass].description.display_name,
icon : jobData[targetClass].description.icon
return classArray;

need help, please

Change the


“roles”:“footman_job knight_job”

You can use other tags too. For example this:
Will work for both units.
Because in their job description files they have this:

“roles”: “footman_job cloth_wearer leather_wearer mail_wearer melee_combat combat”,

"roles": “knight_job plate_wearer melee_combat combat”,

And any other class that have this tag will also be able to wear it (without counting mods, only footman and knight have that)

1 Like

That did it thank you @BrunoSupremo

maybe i`m a bit silly tonight, not even thought about using tags but i red them a hundred times :slight_smile: