# Alias not found in manifest

**URL:** <https://discourse.stonehearth.net/t/alias-not-found-in-manifest/20290>\
**Category:** Modding\
**Created:** [February 23, 2016, 5:31pm UTC](https://discourse.stonehearth.net/t/alias-not-found-in-manifest/20290 "2016-02-23T17:31:56Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Frostbyte](https://avatars.discourse-cdn.com/v4/letter/f/e47774/32.png) [@Frostbyte](https://discourse.stonehearth.net/u/Frostbyte)\
**Post date:** [February 23, 2016, 5:31pm UTC](https://discourse.stonehearth.net/t/alias-not-found-in-manifest/20290/1 "2016-02-23T17:31:57Z")

</div>

Hello,  
I’m a beginner trying to mod in an armor and I’m getting following error:

```auto
release-524 (x64)
std::exception: ''frostbyte' has no alias named 'armor:death_knight_armor' in the manifest.'
stack traceback:
	radiant/modules/common.lua:214: in function 'report_traceback'
	radiant/modules/common.lua:225: in function <radiant/modules/common.lua:219>
	[C]: in function 'create_entity'
	radiant/modules/entities.lua:24: in function 'create_entity'
	...th/services/server/population/population_faction.lua:542: in function 'create_entity'
	microworld/worlds/mini_game_world.lua:53: in function 'pickup'
	microworld/worlds/mini_game_world.lua:56: in function 'start'
	microworld/microworld.lua:221: in function 'instance'
	radiant/modules/events.lua:209: in function <radiant/modules/events.lua:203>
	[C]: in function 'xpcall'
	radiant/modules/common.lua:234: in function 'xpcall'
	radiant/modules/events.lua:203: in function <radiant/modules/events.lua:174>

```

This is the mod’s manifest:

```auto
{
   "info": {
      "name": "frostbyte",
      "version": 1
   },
   "aliases": {
      "armor:death_knight_armor": "file(entities/armor/death_knight_armor)"
   },
   "mixintos": {
      "stonehearth/jobs/blacksmith/recipes/recipes.json": "file(jobs/blacksmith/recipes/recipes.json)"
   }
}

```

In the miniworld.json:

```auto
   pickup(workers[1], 'frostbyte:armor:death_knight_armor')
   pickup(workers[2], 'stonehearth:footman:wooden_sword_talisman')
   pickup(workers[4], 'stonehearth:carpenter:talisman')
   pickup(workers[6], 'stonehearth:refined:steel_ingot')
   pickup(workers[5], 'stonehearth:blacksmith:talisman')
   pickup(workers[3], 'stonehearth:blacksmith:workbench')

```

The /death\_knight\_armor folder has the json and qb for the armor. I don’t understand why it says that there is no alias named armor:death\_knight\_armor in the manifest. What am I doing wrong?

---

<div class="post-metadata">

**Author:** ![8BitCrab](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.stonehearth.net/8bitcrab/32/48512_2.png) [@8BitCrab](https://discourse.stonehearth.net/u/8BitCrab)\
**Post date:** [February 23, 2016, 5:42pm UTC](https://discourse.stonehearth.net/t/alias-not-found-in-manifest/20290/2 "2016-02-23T17:42:52Z")

</div>

hey there @Frostbyte,

> [@Frostbyte](#):
>
> “armor:death\_knight\_armor”: “file(entities/armor/death\_knight\_armor)”

if im not mistaken the file path should actually point to the `.json` so like this,

`"armor:death_knight_armor": "file(entities/armor/death_knight_armor.json)"`

and the `version` number needs to be set to `2`

---

<div class="post-metadata">

**Author:** ![Frostbyte](https://avatars.discourse-cdn.com/v4/letter/f/e47774/32.png) [@Frostbyte](https://discourse.stonehearth.net/u/Frostbyte)\
**Post date:** [February 23, 2016, 6:03pm UTC](https://discourse.stonehearth.net/t/alias-not-found-in-manifest/20290/3 "2016-02-23T18:03:08Z")

</div>

Thanks a lot, after setting the version to 2 it seems to work now.

And I think the .json has to be omitted with armors. At least it’s like that with iron mail armors etc. in stonehearth, while weapons etc. seem to need the .json ending. I think that’s because the armors have two versions (male/female), so you just path to the folder? Well, that’s the explanation I just made up. 🙂

---

<div class="post-metadata">

**Author:** ![8BitCrab](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.stonehearth.net/8bitcrab/32/48512_2.png) [@8BitCrab](https://discourse.stonehearth.net/u/8BitCrab)\
**Post date:** [February 23, 2016, 6:06pm UTC](https://discourse.stonehearth.net/t/alias-not-found-in-manifest/20290/4 "2016-02-23T18:06:47Z")

</div>

even though there are 2 versions of the armor, there should only be 1 `armor.json` which contains the info for both pieces of armor.

but i never noticed the fact that the manifest path for stonehearth just pointed to the folder not the `.json`… i wonder why that is…

---

<div class="post-metadata">

**Author:** ![Frostbyte](https://avatars.discourse-cdn.com/v4/letter/f/e47774/32.png) [@Frostbyte](https://discourse.stonehearth.net/u/Frostbyte)\
**Post date:** [February 23, 2016, 6:19pm UTC](https://discourse.stonehearth.net/t/alias-not-found-in-manifest/20290/5 "2016-02-23T18:19:07Z")

</div>

My mod also works with the full path (with .json ending). I looked into stonehearth once more and the pathing seems to be rather inconsistent:

![](https://us1.discourse-cdn.com/flex022/uploads/stonehearth/original/3X/6/0/602c857f59e7246fc2a192ba75dff1e8f1a4fd1f.jpg)

While the bronze circlet and bronze shield have the full path, the basic shield and iron coif are only pathed to their respective folders. So it seems to not really matter which way you use.

---

<div class="post-metadata">

**Author:** ![8BitCrab](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.stonehearth.net/8bitcrab/32/48512_2.png) [@8BitCrab](https://discourse.stonehearth.net/u/8BitCrab)\
**Post date:** [February 23, 2016, 6:20pm UTC](https://discourse.stonehearth.net/t/alias-not-found-in-manifest/20290/6 "2016-02-23T18:20:42Z")

</div>

> [@Frostbyte](#):
>
> So it seems to not really matter which way you use.

well with my armor mod i just changed it to be without the `.json` ending and it threw a bunch of errors… so i’m gonna stick to using the `.json` ending just to be safe 😛

---

<div class="post-metadata">

**Author:** ![Frostbyte](https://avatars.discourse-cdn.com/v4/letter/f/e47774/32.png) [@Frostbyte](https://discourse.stonehearth.net/u/Frostbyte)\
**Post date:** [February 23, 2016, 6:24pm UTC](https://discourse.stonehearth.net/t/alias-not-found-in-manifest/20290/7 "2016-02-23T18:24:33Z")

</div>

Did you remove the whole name of your armor?  
Like (1st working way):  
**“file(entities/armor/armorname)”,**

instead of (2nd working way, which you seem to use):  
**“file(entities/armor/armorname/armorname.json)”,**

Not working, of course (with only .json omitted):  
**“file(entities/armor/armorname/armorname)”;**

---

<div class="post-metadata">

**Author:** ![8BitCrab](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.stonehearth.net/8bitcrab/32/48512_2.png) [@8BitCrab](https://discourse.stonehearth.net/u/8BitCrab)\
**Post date:** [February 23, 2016, 6:29pm UTC](https://discourse.stonehearth.net/t/alias-not-found-in-manifest/20290/8 "2016-02-23T18:29:03Z")

</div>

> [@Frostbyte](#):
>
> Did you remove the whole name of your armor?

yep, though come to think of it, i might have accidentally left the `/` in there… 😟

whatever the case may be, i like giving the full file path, so i’m going to stick with that.

---

<div class="post-metadata">

**Author:** ![Krote](https://avatars.discourse-cdn.com/v4/letter/k/bbce88/32.png) [@Krote](https://discourse.stonehearth.net/u/Krote)\
**Post date:** [February 24, 2016, 6:13am UTC](https://discourse.stonehearth.net/t/alias-not-found-in-manifest/20290/9 "2016-02-24T06:13:26Z")

</div>

@sdee explains how `file()` works when you leave out the `.json` file extension

> [@Taking Questions about Mixintos and Overrides](https://discourse.stonehearth.net/t/taking-questions-about-mixintos-and-overrides/5229/1):
>
> - Finally, if the path inside a file() statement ends with a folder, and not a file with an extension, it will automatically append a file of the similar name.json to the path. For example, file(/stuff) becomes /my\_mod/stuff/stuff.json

So  
`file("entities/armor/armorname")`  
= `file("entities/armor/armorname/armorname.json")`  
= `"yourmod/entities/armor/armorname/armorname.json"`  
and  
`file("entities/armor/armorname/armorname")`  
= `file("entities/armor/armorname/armorname/armorname.json")`  
=`"yourmod/entities/armor/armorname/armorname/armorname.json"`

TBH, I’m not sure if I’m a fan of the shorthand form either because it invites confusion like this, but perhaps less clutter in the code is important too. Anyway I hope that clears up what’s going on.

Edit :just some formatting etc.
