To introduce a monthly special general in CAAP we need the following information:

  • The unique buy_id assigned to the general by the Castle Age developers, we call it b
  • Name, simply the name given to the general by the CA devs, we call it n
  • It's starting attack value, IMPORTANT this is the stat when the general is at level 1 and without any equipment, we call it a
  • Initial defense value at level 1 without any equipment, we call it d
  • Any information/peculiarity of the general, this is typically which bonus this particular general has, we call it i
  • A picture of the general as provided by Castle Age, we call it p
  • A set of items that the general can equip (we will discuss this later), we call it e

You can get the majority of the info. you will need from the Oracle Monthly Specials page on the Castle Age wiki.

Let's take a look at an example taken from the current version of caap. We will analyze the general only without his/her equipment so for now e is left empty:

     b: 189, 
     n: "Xelia", 
     a: 22, 
     d: 18,
     i: "Illusion/Mirror Image 2.5% less likely to be dispelled when defeated", 
     p: "hero_xelia",

As you can see we are talking about Xelia who has a buy_id of 189, 22 attack, 18 defense, etc....

We should explain a little bit about the p field, it's not a full URL and neither is it a filename, this is because caap knows where CA hosts its images and needs only the file name without extension. For a hero typically the picture is hero_<hero name> .


Each monthly General has 3 associated items of equipment. Here is a list of the item attributes that are needed to insert them in CAAP :

  • as with the general the buy_id, is the unique id that CA uses to identify the item, field named b
  • equipment name, n
  • attack and defense values, a and d
  • special information, this is a description of the bonus that the item offers, i
  • a picture file, p, named like this: eq_<hero_name>_<equipment_type_name>, for example eq_xelia_weapon is Xelia's Weapon
  • an equipment type, t: a number that identifies the item. There are 7 item types:
    • 1 or 9 is for a spell, typically the type name is: magic or spell
    • 2 is for an amulet, the type name is usually: amulet
    • 3 is for a weapon, type name: weapon
    • 4 or 8 is for a shield, type name: shield
    • 5 is for an helmet, type name: helm or helmet
    • 6 is for an armor, type name: armor
    • 7 is for gauntlet, type name: gauntlet

You may have noticed that 8 and 9 are duplicates of 1 and 4, I really don't know why, these values affects older generals, it could be an error or it could be for a particular reason. My suggestion is that you use 1 for spells and 4 for shields.

Here's the code example for Xelia's Weapon:

            b : 190,
            n : "Deceiver's Wand",
            a : 23,
            d : 19,
            i : "+1 Defense to Xelia",
            p : "eq_xelia_weapon",
            t : 3

Putting all togetherEdit

Here you can see a skeleton of the whole structure that contains a single hero and all his/her items:

       <hero's parameters>
        e : [{ <first_item>
        }, {<second_item>
        }, {<third_item>

and a full working example follows:

        b : 189,
        n : "Xelia",
        a : 22,
        d : 18,
        i : "Illusion/Mirror Image 2.5% less likely to be dispelled when defeated",
        p : "hero_xelia",
        e : [{
            b : 190,
            n : "Deceiver's Wand",
            a : 23,
            d : 19,
            i : "+1 Defense to Xelia",
            p : "eq_xelia_weapon",
            t : 3
        }, {
            b : 191,
            n : "Phanstasmal Armguards",
            a : 12,
            d : 12,
            i : "+1 Defense to Xelia",
            p : "eq_xelia_gauntlet",
            t : 7
        }, {
            b : 192,
            n : "Signet from Beyond",
            a : 15,
            d : 14,
            i : "+2 Attack to Xelia",
            p : "eq_xelia_ring",
            t : 2

IMPORTANT: to distinguish between two separate generals, you have to put a comma between the last general inserted and the one you are going to insert, like this:


In the third line there are characters that closes the whole collection of generals };.

Final ResultEdit

Let's take a look at the final result :


Xelia Purchase on Oracle Page