MapleRoyals Library

App · Gaming · 16 actions

Look up MapleRoyals, the MapleStory private server that keeps the game as it was around version 0.62, through the Unofficial MapleRoyals Library, a community reference built from the game's own data files: nearly eight thousand pieces of equipment, six thousand items, almost nine thousand maps, thirteen hundred monsters, 185 music tracks, sixteen hundred NPCs, nearly three thousand quests and 361 skills. Search each by name, region, kind, job or stat, fifty to a page, and get any one by id or name typed any way: a weapon's attack and the range it can roll, what a monster drops and where it spawns, which monsters drop an item, what spawns in a map, what an NPC says, a quest's requirements and rewards, and every level of a skill. No API key needed.

Actions

ActionWhat it does
Get equipmentGet one piece of MapleRoyals equipment by id or name: its kind and slot, the jobs that can wear it, the level and stats it needs, its attack speed, every stat it gives with the range a fresh drop can roll, its upgrade slots, shop price and picture.
Get itemGet one MapleRoyals use, set-up or etc item by id or name: its description, shop price, how many stack, what a potion recovers and for how long, a scroll's success rate and what it adds, which monsters drop it and which gachapon it comes from.
Get mapGet one MapleRoyals map by id or name: its street and region, whether it is a town, where a return scroll leads, its background music with a link to the MP3, how fast monsters respawn, every monster that spawns there and how many, the NPCs standing in it, its minimap and a full rendering.
Get monsterGet one MapleRoyals monster by id or name: its level, HP, MP, EXP, attack, defense, accuracy and avoidability, whether it is a boss or undead, its elemental weaknesses, everything it drops by inventory tab, and every map it spawns in with how many at once.
Get musicGet one MapleRoyals background music track by name: how long it plays, its file name and a link to the MP3.
Get NPCGet one MapleRoyals NPC by id or name: its job as shown under its name, every line it says when idle, the maps it stands in and its picture.
Get questGet one MapleRoyals quest by id or name: the NPC that gives it, the quest log's text at each stage, the level, jobs and earlier quests it needs, the items to bring and monsters to defeat, and the EXP, mesos, fame and items it rewards.
Get skillGet one MapleRoyals skill by id or name: its job, what it does, its master level, and for every level its MP cost, damage, how many monsters it hits, how long it lasts and its cooldown, with the level in words.
Search equipmentList MapleRoyals equipment fifty to a page with the real total: every weapon, armour piece and accessory, narrowed to a kind, a weapon type, a job that can wear it and part of a name, with or without cash shop cosmetics, in order of level, attack, a stat or defense.
Search itemsList MapleRoyals items fifty to a page with the real total: the use, set-up and etc tabs of the inventory, narrowed to a tab, a type of use item such as scrolls or potions, and part of a name, in order of what a potion recovers or a scroll adds.
Search mapsList MapleRoyals maps fifty to a page with the real total, narrowed to a region of the world or a party quest and part of a name: each with its street, region and minimap.
Search monstersList MapleRoyals monsters fifty to a page with the real total, narrowed to regular monsters or bosses, a region of the world and part of a name, in order of level, EXP or HP.
Search musicList MapleRoyals background music fifty to a page with the real total, narrowed to part of a name: each track with its length, file name and a link to the MP3.
Search NPCsList MapleRoyals NPCs fifty to a page with the real total, narrowed to a part of the world, a job such as merchants or job instructors, and part of a name.
Search questsList MapleRoyals quests fifty to a page with the real total, narrowed to a part of the world or a kind such as job advancements, party quests or events, and part of a name: each with the NPC that gives it.
Search skillsList MapleRoyals skills fifty to a page with the real total, narrowed to a job branch such as Fighter, Crusader and Hero and part of a name: each with its job, what it does, its master level and what every level does in words.

Get equipment

Get one piece of MapleRoyals equipment by id or name: its kind and slot, the jobs that can wear it, the level and stats it needs, its attack speed, every stat it gives with the range a fresh drop can roll, its upgrade slots, shop price and picture. A name typed any way is found; a name nothing has fails, naming the nearest.

Inputs

EquipmentequipmenttextRequired
The piece of equipment: its id, such as 1302000, or its name, such as Maple Wagner or Zakum Helmet, typed any way. A row from Search equipment can be given whole. When several pieces share a name, the lowest id is returned; give the id to pick another.

Outputs

equipmentobject
The piece of equipment, with null for every stat it lacks.
Example output
{
  "equipment": {
    "accuracy": 10,
    "attack_speed": 4,
    "attack_speed_name": "Fast",
    "avoidability": 15,
    "cash": false,
    "category": "Dagger",
    "dexterity": null,
    "hp": null,
    "id": 1332025,
    "image": "https://royals-library.netlify.app/images/characters/01332025.png",
    "intelligence": null,
    "job_code": 8,
    "jobs": [
      "Thief"
    ],
    "jump": null,
    "luck": null,
    "magic_attack": null,
    "magic_defense": null,
    "mp": null,
    "name": "Maple Wagner",
    "one_of_a_kind": false,
    "price": 70000,
    "required_dex": 0,
    "required_fame": null,
    "required_int": 0,
    "required_level": 43,
    "required_luk": 0,
    "required_str": 0,
    "slot": "One-Handed Weapon",
    "speed": null,
    "stat_ranges": {
      "accuracy": "9 ~ 11 or 16",
      "avoidability": "13 ~ 17 or 22",
      "dexterity": null,
      "hp": null,
      "intelligence": null,
      "jump": null,
      "luck": null,
      "magic_attack": null,
      "magic_defense": null,
      "mp": null,
      "speed": null,
      "strength": null,
      "weapon_attack": "53 ~ 63 or 68",
      "weapon_defense": null
    },
    "strength": null,
    "untradeable": false,
    "upgrade_slots": 7,
    "weapon_attack": 58,
    "weapon_defense": null
  }
}

Get item

Get one MapleRoyals use, set-up or etc item by id or name: its description, shop price, how many stack, what a potion recovers and for how long, a scroll's success rate and what it adds, which monsters drop it and which gachapon it comes from. A name typed any way is found; a name nothing has fails, naming the nearest.

Inputs

ItemitemtextRequired
The item: its id, such as 2000000, or its name, such as Red Potion or White Scroll, typed any way. A row from Search items can be given whole. When several items share a name, the lowest id is returned.

Outputs

itemobject
The item, with null for every field it lacks.
Example output
{
  "item": {
    "accuracy": null,
    "avoidability": null,
    "category": "use",
    "curse_rate": null,
    "description": "A potion made out of red herbs.\nRecovers 50 HP.",
    "dexterity": null,
    "dropped_by": [
      {
        "id": 100100,
        "name": "Snail"
      },
      {
        "id": 100101,
        "name": "Blue Snail"
      },
      {
        "id": 120100,
        "name": "Shroom"
      },
      {
        "id": 130100,
        "name": "Stump"
      },
      {
        "id": 130101,
        "name": "Red Snail"
      },
      {
        "id": 210100,
        "name": "Slime"
      },
      {
        "id": 1110100,
        "name": "Green Mushroom"
      },
      {
        "id": 1110101,
        "name": "Dark Stump"
      },
      {
        "id": 1120100,
        "name": "Octopus"
      },
      {
        "id": 1130100,
        "name": "Axe Stump"
      },
      {
        "id": 1140100,
        "name": "Ghost Stump"
      },
      {
        "id": 1210100,
        "name": "Pig"
      },
      {
        "id": 1210101,
        "name": "Ribbon Pig"
      },
      {
        "id": 1210102,
        "name": "Orange Mushroom"
      },
      {
        "id": 1210103,
        "name": "Bubbling"
      },
      {
        "id": 2220000,
        "name": "Mano"
      },
      {
        "id": 9420001,
        "name": "Frog"
      },
      {
        "id": 9420005,
        "name": "White Rooster"
      },
      {
        "id": 9420502,
        "name": "Biner"
      }
    ],
    "duration_seconds": null,
    "gachapon": [],
    "hp": null,
    "hp_recovered": 50,
    "hp_recovered_percent": null,
    "id": 2000000,
    "image": "https://royals-library.netlify.app/images/items/02000000.png",
    "intelligence": null,
    "jump": null,
    "luck": null,
    "magic_attack": null,
    "magic_defense": null,
    "mp": null,
    "mp_recovered": null,
    "mp_recovered_percent": null,
    "name": "Red Potion",
    "price": 25,
    "required_level": null,
    "slot_max": null,
    "speed": null,
    "strength": null,
    "success_rate": null,
    "tradeable": true,
    "weapon_attack": null,
    "weapon_defense": null
  }
}

Get map

Get one MapleRoyals map by id or name: its street and region, whether it is a town, where a return scroll leads, its background music with a link to the MP3, how fast monsters respawn, every monster that spawns there and how many, the NPCs standing in it, its minimap and a full rendering. A name typed any way is found; a name nothing has fails.

Inputs

MapmaptextRequired
The map: its id, such as 104040000, or its name, such as Henesys Hunting Ground I or Kerning City, typed any way. A row from Search maps can be given whole. When several maps share a name, the lowest id is returned.

Outputs

mapobject
The map in full.
Example output
{
  "map": {
    "area": "victoria",
    "bgm": "Bgm01/CavaBien",
    "bgm_url": "https://github.com/scotty66f/royals-ost/raw/refs/heads/main/audio/CavaBien.mp3",
    "description": null,
    "hd_image": "https://maplestory.io/api/GMS/83/map/104040000/render",
    "id": 104040000,
    "image": "https://royals-library.netlify.app/images/maps/104040000.png",
    "map_mark": "Henesys",
    "mob_rate": 1.6,
    "monsters": [
      {
        "count": 1,
        "id": 100101,
        "name": "Blue Snail"
      },
      {
        "count": 1,
        "id": 120100,
        "name": "Shroom"
      },
      {
        "count": 1,
        "id": 130101,
        "name": "Red Snail"
      },
      {
        "count": 6,
        "id": 1110100,
        "name": "Green Mushroom"
      },
      {
        "count": 1,
        "id": 1210100,
        "name": "Pig"
      },
      {
        "count": 5,
        "id": 1210102,
        "name": "Orange Mushroom"
      },
      {
        "count": 9,
        "id": 100101,
        "name": "Blue Snail"
      },
      {
        "count": 8,
        "id": 130101,
        "name": "Red Snail"
      },
      {
        "count": 6,
        "id": 210100,
        "name": "Slime"
      },
      {
        "count": 4,
        "id": 130100,
        "name": "Stump"
      },
      {
        "count": 2,
        "id": 120100,
        "name": "Shroom"
      }
    ],
    "name": "Henesys Hunting Ground I",
    "npcs": [],
    "portal_count": 19,
    "region": "VictoriaIsland",
    "return_map_id": 100000000,
    "street": "Victoria Road",
    "town": false
  }
}

Get monster

Get one MapleRoyals monster by id or name: its level, HP, MP, EXP, attack, defense, accuracy and avoidability, whether it is a boss or undead, its elemental weaknesses, everything it drops by inventory tab, and every map it spawns in with how many at once. A name typed any way is found; a name nothing has fails, naming the nearest.

Inputs

MonstermonstertextRequired
The monster: its id, such as 100100, or its name, such as Snail or Orange Mushroom, typed any way. A row from Search monsters can be given whole. When several monsters share a name, one that roams a region is preferred, then the lowest id; give the id to pick another.

Outputs

monsterobject
The monster in full: its stats, drops and spawn maps.
Example output
{
  "monster": {
    "accuracy": 20,
    "avoidability": 0,
    "boss": false,
    "drop_count": 10,
    "drops": {
      "equipment": [
        {
          "id": 1002067,
          "name": "Green Headband"
        }
      ],
      "etc": [
        {
          "id": 4000019,
          "name": "Snail Shell"
        },
        {
          "id": 4010000,
          "name": "Bronze Ore"
        },
        {
          "id": 4020000,
          "name": "Garnet Ore"
        }
      ],
      "setup": [],
      "use": [
        {
          "id": 2000000,
          "name": "Red Potion"
        },
        {
          "id": 2040002,
          "name": "Scroll for Helmet for DEF 10%"
        },
        {
          "id": 2041001,
          "name": "Scroll for Cape for Magic Def. 60%"
        },
        {
          "id": 2060000,
          "name": "Arrow for Bow"
        },
        {
          "id": 2061000,
          "name": "Arrow for Crossbow"
        },
        {
          "id": 2010009,
          "name": "Green Apple"
        }
      ]
    },
    "elements": [],
    "exp": 9,
    "has_drops": true,
    "hp": 8,
    "hp_recovery": null,
    "id": 100100,
    "image": "https://royals-library.netlify.app/images/monsters/0100100.png",
    "level": 1,
    "magic_attack": 0,
    "magic_defense": 0,
    "mp": 0,
    "mp_recovery": null,
    "name": "Snail",
    "regions": [
      "mapleisland",
      "victoriaisland"
    ],
    "spawn_maps": [
      {
        "count": 23,
        "id": 40001,
        "name": "Snail Hunting Ground II",
        "region": "MapleIsland",
        "street": "Maple Road"
      },
      {
        "count": 22,
        "id": 104000300,
        "name": "Thicket Around the Beach II",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 20,
        "id": 104000200,
        "name": "Thicket Around the Beach I",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 20,
        "id": 104000400,
        "name": "Thicket Around the Beach III",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 19,
        "id": 101010101,
        "name": "The Tree That Grew II",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 15,
        "id": 40000,
        "name": "Snail Hunting Ground I",
        "region": "MapleIsland",
        "street": "Maple Road"
      },
      {
        "count": 15,
        "id": 40002,
        "name": "Snail Hunting Ground III",
        "region": "MapleIsland",
        "street": "Maple Road"
      },
      {
        "count": 14,
        "id": 101010100,
        "name": "The Tree That Grew I",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 13,
        "id": 104020000,
        "name": "Forest West of Henesys",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 12,
        "id": 101030200,
        "name": "Rocky Road II",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 10,
        "id": 50000,
        "name": "A Split Road",
        "region": "MapleIsland",
        "street": "Maple Road"
      },
      {
        "count": 10,
        "id": 1010004,
        "name": "Snail Field of Flowers",
        "region": "MapleIsland",
        "street": "Rainbow Street"
      },
      {
        "count": 10,
        "id": 101030300,
        "name": "Rocky Road I",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 9,
        "id": 1000004,
        "name": "Snail Garden",
        "region": "MapleIsland",
        "street": "Rainbow Street"
      },
      {
        "count": 9,
        "id": 100030000,
        "name": "The Forest East of Henesys",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 9,
        "id": 101020000,
        "name": "The Forest North of Ellinia",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 9,
        "id": 102030000,
        "name": "West Domain of Perion",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 6,
        "id": 100040000,
        "name": "The Forest South of Ellinia",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 6,
        "id": 101040000,
        "name": "Perion Street Corner",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 6,
        "id": 103030200,
        "name": "Kerning City Middle Forest III",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 5,
        "id": 1000000,
        "name": "The Field West of Amherst",
        "region": "MapleIsland",
        "street": "Rainbow Street"
      },
      {
        "count": 5,
        "id": 1000003,
        "name": "Mushroom Garden",
        "region": "MapleIsland",
        "street": "Rainbow Street"
      },
      {
        "count": 5,
        "id": 103020100,
        "name": "L Forest II",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 5,
        "id": 104010000,
        "name": "3-Way Road-Split",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 5,
        "id": 105030000,
        "name": "Deep Forest",
        "region": "Sleepywood",
        "street": "Dungeon"
      },
      {
        "count": 4,
        "id": 104040001,
        "name": "Henesys Hunting Ground II",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 3,
        "id": 100040100,
        "name": "The Forest of Wisdom",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 3,
        "id": 101030000,
        "name": "East Domain of Perion",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 2,
        "id": 1020001,
        "name": "Tomato Field",
        "region": "MapleIsland",
        "street": "Rainbow Street"
      },
      {
        "count": 2,
        "id": 103020200,
        "name": "L Forest III",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 2,
        "id": 104010002,
        "name": "Beach Hunting Ground",
        "region": "VictoriaIsland",
        "street": "Hidden Street"
      },
      {
        "count": 1,
        "id": 1000002,
        "name": "Dangerous Forest",
        "region": "MapleIsland",
        "street": "Rainbow Street"
      },
      {
        "count": 1,
        "id": 105040100,
        "name": "Hunting Ground in the Deep Forest I",
        "region": "Sleepywood",
        "street": "Dungeon"
      },
      {
        "count": 1,
        "id": 105040200,
        "name": "Hunting Ground in the Deep Forest II",
        "region": "Sleepywood",
        "street": "Dungeon"
      },
      {
        "count": 1,
        "id": 970200700,
        "name": "On The Way Out <Bonus>",
        "region": "Others",
        "street": "Maple Street"
      },
      {
        "count": 1,
        "id": 40000,
        "name": "Snail Hunting Ground I",
        "region": "MapleIsland",
        "street": "Maple Road"
      },
      {
        "count": 1,
        "id": 40001,
        "name": "Snail Hunting Ground II",
        "region": "MapleIsland",
        "street": "Maple Road"
      },
      {
        "count": 1,
        "id": 40002,
        "name": "Snail Hunting Ground III",
        "region": "MapleIsland",
        "street": "Maple Road"
      },
      {
        "count": 1,
        "id": 50000,
        "name": "A Split Road",
        "region": "MapleIsland",
        "street": "Maple Road"
      },
      {
        "count": 1,
        "id": 1000000,
        "name": "The Field West of Amherst",
        "region": "MapleIsland",
        "street": "Rainbow Street"
      },
      {
        "count": 1,
        "id": 1000002,
        "name": "Dangerous Forest",
        "region": "MapleIsland",
        "street": "Rainbow Street"
      },
      {
        "count": 1,
        "id": 1000003,
        "name": "Mushroom Garden",
        "region": "MapleIsland",
        "street": "Rainbow Street"
      },
      {
        "count": 1,
        "id": 1000004,
        "name": "Snail Garden",
        "region": "MapleIsland",
        "street": "Rainbow Street"
      },
      {
        "count": 1,
        "id": 1010004,
        "name": "Snail Field of Flowers",
        "region": "MapleIsland",
        "street": "Rainbow Street"
      },
      {
        "count": 1,
        "id": 1020001,
        "name": "Tomato Field",
        "region": "MapleIsland",
        "street": "Rainbow Street"
      },
      {
        "count": 1,
        "id": 104000100,
        "name": "Right Around Lith Harbor",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      },
      {
        "count": 1,
        "id": 104000200,
        "name": "Thicket Around the Beach I",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      }
    ],
    "speed": -65,
    "undead": false,
    "weapon_attack": 12,
    "weapon_defense": 0
  }
}

Get music

Get one MapleRoyals background music track by name: how long it plays, its file name and a link to the MP3. A name typed any way is found, Abandoned Mine as well as abandonedmine; a name nothing has fails.

Inputs

TracktracktextRequired
The background music's name as the library spells it, such as amoria or abandonedmine, typed any way: Abandoned Mine finds it too.

Outputs

trackobject
The background music track.
Example output
{
  "track": {
    "file": "AbandonedMine.mp3",
    "length_seconds": 179,
    "name": "abandonedmine",
    "url": "https://github.com/scotty66f/royals-ost/raw/refs/heads/main/audio/AbandonedMine.mp3"
  }
}

Get NPC

Get one MapleRoyals NPC by id or name: its job as shown under its name, every line it says when idle, the maps it stands in and its picture. A name typed any way is found, and when several NPCs share it, one that stands on a map is preferred; a name nothing has fails, naming the nearest.

Inputs

NPCnpctextRequired
The NPC: its id, such as 2002, or its name, such as Dances with Balrog or Athena Pierce, typed any way. A row from Search NPCs can be given whole. When several NPCs share a name, one that stands on a map is preferred, then the lowest id; give the id to pick another.

Outputs

npcobject
The NPC: what it says and where it stands.
Example output
{
  "npc": {
    "function": "Warrior Instructor",
    "id": 1022000,
    "image": "https://royals-library.netlify.app/images/npcs/1022000.png",
    "lines": [
      "Do you want to become a Warrior?",
      "For those that want to become a Warrior, come see me...",
      "For those that want to become a Warrior, come see me...",
      "For those that want to become a Warrior, come see me..."
    ],
    "locations": [
      {
        "id": 102000003,
        "name": "Warriors' Sanctuary",
        "region": "VictoriaIsland",
        "street": "Victoria Road"
      }
    ],
    "name": "Dances with Balrog"
  }
}

Get quest

Get one MapleRoyals quest by id or name: the NPC that gives it, the quest log's text at each stage, the level, jobs and earlier quests it needs, the items to bring and monsters to defeat, and the EXP, mesos, fame and items it rewards. A name typed any way is found; a name nothing has fails, naming the nearest.

Inputs

QuestquesttextRequired
The quest: its id, such as 2017, or its name, such as Arwen and the Glass Shoe, typed any way. A row from Search quests can be given whole. When several quests share a name, the lowest id is returned.

Outputs

questobject
The quest in full: its story, what it asks and what it gives.
Example output
{
  "quest": {
    "area": 30,
    "completion": {
      "items": [
        {
          "count": 1,
          "id": 4001000
        }
      ],
      "monsters": [],
      "npc_id": 1032100
    },
    "id": 2017,
    "location": "Victoria Island",
    "name": "Arwen and the Glass Shoe",
    "npc_id": 1032100,
    "npc_name": "Arwen the Fairy",
    "order": null,
    "parent": null,
    "requirements": {
      "jobs": [
        100,
        110,
        120,
        130,
        111,
        121,
        131,
        112,
        122,
        132,
        200,
        210,
        220,
        230,
        211,
        221,
        231,
        212,
        222,
        232,
        300,
        310,
        320,
        311,
        321,
        312,
        322,
        400,
        410,
        420,
        411,
        421,
        412,
        422,
        500,
        510,
        520,
        511,
        521,
        512,
        522,
        1100,
        1110,
        1111,
        1112,
        1200,
        1210,
        1211,
        1212,
        1300,
        1310,
        1311,
        1312,
        1400,
        1410,
        1411,
        1412,
        1500,
        1510,
        1511,
        1512,
        2100,
        2110,
        2111,
        2112
      ],
      "max_level": null,
      "min_level": 25,
      "npc_id": 1032100,
      "quests": []
    },
    "rewards": {
      "exp": 4000,
      "fame": null,
      "items": [
        {
          "chance": null,
          "count": -1,
          "id": 4001000
        },
        {
          "chance": 1,
          "count": 1,
          "id": 4003002
        },
        {
          "chance": 1,
          "count": 1,
          "id": 4003003
        }
      ],
      "mesos": null,
      "next_quest_id": null
    },
    "start_items": [],
    "summary": [
      "I heard that Arwen the fairy from Ellinia has lost something...",
      "Arwen the fairy from Ellinia told me that a couple of days ago, on the way to Perion, she was attacked by a monster covered in flame, and lost her very precious #bglass shoe#k in the process. Fairies love glimmering, shiny objects to the point of obsession, so obviously she wants it back badly ... I better hunt some monsters around Perion, and hopefully I can find it there.",
      "I got Arwen from Ellinia the glass shoe she desperately wanted back. I got lucky, finding it from a nasty Fireboar ... phew. Anyway, as a sign of gratitude, she gave me a fairy item. It's really gorgeous and glimmering like a star ... dang, maybe I can use this to make something special ..."
    ]
  }
}

Get skill

Get one MapleRoyals skill by id or name: its job, what it does, its master level, and for every level its MP cost, damage, how many monsters it hits, how long it lasts and its cooldown, with the level in words. A name typed any way is found; a name nothing has fails, naming the nearest.

Inputs

SkillskilltextRequired
The skill: its id, such as 1001004, or its name, such as Power Strike or Heal, typed any way. A row from Search skills can be given whole. Several jobs have a skill of the same name, such as Hero's Will; the lowest id is returned, so give the id to pick a job's.

Outputs

skillobject
The skill in full, with every level's numbers.
Example output
{
  "skill": {
    "description": "Use MP to deliver a killer blow to a single monster with a melee weapon.",
    "id": "1001004",
    "image": "https://royals-library.netlify.app/images/skills/1001004.png",
    "job": "Swordman",
    "level_descriptions": [
      "MP -4; melee damage 165%",
      "MP -4; melee damage 170%",
      "MP -4; melee damage 175%",
      "MP -4; melee damage 180%",
      "MP -5; melee damage 185%",
      "MP -5; melee damage 190%",
      "MP -5; melee damage 195%",
      "MP -6; melee damage 200%",
      "MP -6; melee damage 205%",
      "MP -7; melee damage 210%",
      "MP -7; melee damage 215%",
      "MP -8; melee damage 220%",
      "MP -8; melee damage 225%",
      "MP -9; melee damage 230%",
      "MP -9; melee damage 235%",
      "MP -10; melee damage 240%",
      "MP -10; melee damage 245%",
      "MP -11; melee damage 250%",
      "MP -11; melee damage 255%",
      "MP -12; melee damage 260%"
    ],
    "levels": [
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 165,
        "description": "MP -4; melee damage 165%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 1,
        "monsters_hit": null,
        "mp_cost": 4
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 170,
        "description": "MP -4; melee damage 170%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 2,
        "monsters_hit": null,
        "mp_cost": 4
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 175,
        "description": "MP -4; melee damage 175%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 3,
        "monsters_hit": null,
        "mp_cost": 4
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 180,
        "description": "MP -4; melee damage 180%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 4,
        "monsters_hit": null,
        "mp_cost": 4
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 185,
        "description": "MP -5; melee damage 185%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 5,
        "monsters_hit": null,
        "mp_cost": 5
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 190,
        "description": "MP -5; melee damage 190%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 6,
        "monsters_hit": null,
        "mp_cost": 5
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 195,
        "description": "MP -5; melee damage 195%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 7,
        "monsters_hit": null,
        "mp_cost": 5
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 200,
        "description": "MP -6; melee damage 200%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 8,
        "monsters_hit": null,
        "mp_cost": 6
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 205,
        "description": "MP -6; melee damage 205%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 9,
        "monsters_hit": null,
        "mp_cost": 6
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 210,
        "description": "MP -7; melee damage 210%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 10,
        "monsters_hit": null,
        "mp_cost": 7
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 215,
        "description": "MP -7; melee damage 215%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 11,
        "monsters_hit": null,
        "mp_cost": 7
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 220,
        "description": "MP -8; melee damage 220%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 12,
        "monsters_hit": null,
        "mp_cost": 8
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 225,
        "description": "MP -8; melee damage 225%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 13,
        "monsters_hit": null,
        "mp_cost": 8
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 230,
        "description": "MP -9; melee damage 230%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 14,
        "monsters_hit": null,
        "mp_cost": 9
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 235,
        "description": "MP -9; melee damage 235%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 15,
        "monsters_hit": null,
        "mp_cost": 9
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 240,
        "description": "MP -10; melee damage 240%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 16,
        "monsters_hit": null,
        "mp_cost": 10
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 245,
        "description": "MP -10; melee damage 245%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 17,
        "monsters_hit": null,
        "mp_cost": 10
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 250,
        "description": "MP -11; melee damage 250%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 18,
        "monsters_hit": null,
        "mp_cost": 11
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 255,
        "description": "MP -11; melee damage 255%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 19,
        "monsters_hit": null,
        "mp_cost": 11
      },
      {
        "attack_count": null,
        "cooldown_seconds": null,
        "damage": 260,
        "description": "MP -12; melee damage 260%",
        "duration_seconds": null,
        "hp_cost": null,
        "level": 20,
        "monsters_hit": null,
        "mp_cost": 12
      }
    ],
    "master_level": 20,
    "name": "Power Strike"
  }
}

Search equipment

List MapleRoyals equipment fifty to a page with the real total: every weapon, armour piece and accessory, narrowed to a kind, a weapon type, a job that can wear it and part of a name, with or without cash shop cosmetics, in order of level, attack, a stat or defense. Each row carries everything Get equipment gives.

Inputs

Searchsearchtext
Optional. Part of a name to look for, ignoring case, such as maple or mushroom. The words must run together as they do in the name: orange mush finds the Orange Mushrooms, mush orange finds nothing. An id works too.
Categorycategorytext
Optional. Only equipment of this kind: weapons, hats, tops, bottoms, overalls, shoes, gloves, capes, shields, or an accessory slot. Leave empty, or choose Any, for every kind.One of: any, weapon (Weapons), hat (Hats), top (Tops), bottom (Bottoms), overall (Overalls), shoes, gloves, cape (Capes), shield (Shields), and 7 more.
Weapon typeweapon_typetext
Optional, and only when Category is Weapons. Only weapons of this type, such as daggers, claws or two-handed swords; cash weapons are their own type.Only when Category is Weapons. One of: any, OHSword (One-handed swords), OHAxe (One-handed axes), OHMace (One-handed blunt weapons), dagger (Daggers), wand (Wands), staff (Staves), THSword (Two-handed swords), THAxe (Two-handed axes), THMace (Two-handed blunt weapons), and 8 more.
Jobjobtext
Optional. Only equipment a job can wear: warrior, magician, bowman, thief, pirate or beginner. Equipment every job can wear is included whichever job is chosen.One of: any (Any job), warrior, magician, bowman, thief, pirate, beginner.
Include cash equipmentinclude_cashtrue/false
Whether to include cash shop equipment, which is cosmetic. Included unless set to no.Default: true.
Order byorder_bytext
Optional. What to order the results by: required level, weapon or magic attack, a stat, accuracy, avoidability, upgrade slots, speed, jump, HP, MP or defense. Leave empty for the order of item id.One of: id (Item id), reqLevel (Required level), incPAD (Weapon attack), incMAD (Magic attack), attackSpeed (Attack speed), incSTR (STR), incDEX (DEX), incINT (INT), incLUK (LUK), incACC (Accuracy), and 8 more.
Sortsorttext
Ascending or descending, for the order chosen. Leave empty for the library's own order, lowest first.One of: ascending, descending.
Pagepagenumber
Which page of results to return, starting at 1; every page holds 50. Leave empty for the first page. A page past the last one returns no rows, but still gives the real total.At least 1.

Outputs

equipmentlist
This page of the equipment that matches, in the order asked for. Empty when none matches or the page is past the last one.
has_moretrue/false
Whether there is a page after this one.
pagenumber
This page's number, from 1.
page_sizenumber
How many rows a page holds: 50.
pagesnumber
How many pages there are; 0 when nothing matches.
totalnumber
How many rows match in all, across every page.
Example output
{
  "equipment": [
    {
      "accuracy": 10,
      "attack_speed": 4,
      "attack_speed_name": "Fast",
      "avoidability": 15,
      "cash": false,
      "category": "Dagger",
      "dexterity": null,
      "hp": null,
      "id": 1332025,
      "image": "https://royals-library.netlify.app/images/characters/01332025.png",
      "intelligence": null,
      "job_code": 8,
      "jobs": [
        "Thief"
      ],
      "jump": null,
      "luck": null,
      "magic_attack": null,
      "magic_defense": null,
      "mp": null,
      "name": "Maple Wagner",
      "one_of_a_kind": false,
      "price": 70000,
      "required_dex": 0,
      "required_fame": null,
      "required_int": 0,
      "required_level": 43,
      "required_luk": 0,
      "required_str": 0,
      "slot": "One-Handed Weapon",
      "speed": null,
      "stat_ranges": {
        "accuracy": "9 ~ 11 or 16",
        "avoidability": "13 ~ 17 or 22",
        "dexterity": null,
        "hp": null,
        "intelligence": null,
        "jump": null,
        "luck": null,
        "magic_attack": null,
        "magic_defense": null,
        "mp": null,
        "speed": null,
        "strength": null,
        "weapon_attack": "53 ~ 63 or 68",
        "weapon_defense": null
      },
      "strength": null,
      "untradeable": false,
      "upgrade_slots": 7,
      "weapon_attack": 58,
      "weapon_defense": null
    },
    {
      "accuracy": 15,
      "attack_speed": 4,
      "attack_speed_name": "Fast",
      "avoidability": 20,
      "cash": false,
      "category": "Dagger",
      "dexterity": null,
      "hp": null,
      "id": 1332056,
      "image": "https://royals-library.netlify.app/images/characters/01332056.png",
      "intelligence": null,
      "job_code": 8,
      "jobs": [
        "Thief"
      ],
      "jump": null,
      "luck": null,
      "magic_attack": null,
      "magic_defense": null,
      "mp": null,
      "name": "Maple Asura Dagger",
      "one_of_a_kind": false,
      "price": 270000,
      "required_dex": 0,
      "required_fame": null,
      "required_int": 0,
      "required_level": 64,
      "required_luk": 0,
      "required_str": 0,
      "slot": "One-Handed Weapon",
      "speed": null,
      "stat_ranges": {
        "accuracy": "13 ~ 17 or 22",
        "avoidability": "18 ~ 22 or 27",
        "dexterity": null,
        "hp": null,
        "intelligence": null,
        "jump": null,
        "luck": null,
        "magic_attack": null,
        "magic_defense": null,
        "mp": null,
        "speed": null,
        "strength": "1 ~ 3 or 8",
        "weapon_attack": "72 ~ 82 or 87",
        "weapon_defense": null
      },
      "strength": 2,
      "untradeable": false,
      "upgrade_slots": 7,
      "weapon_attack": 77,
      "weapon_defense": null
    },
    {
      "accuracy": 15,
      "attack_speed": 3,
      "attack_speed_name": "Faster",
      "avoidability": 20,
      "cash": false,
      "category": "Dagger",
      "dexterity": null,
      "hp": null,
      "id": 1332055,
      "image": "https://royals-library.netlify.app/images/characters/01332055.png",
      "intelligence": null,
      "job_code": 8,
      "jobs": [
        "Thief"
      ],
      "jump": null,
      "luck": 1,
      "magic_attack": null,
      "magic_defense": null,
      "mp": null,
      "name": "Maple Dark Mate",
      "one_of_a_kind": false,
      "price": 270000,
      "required_dex": 0,
      "required_fame": null,
      "required_int": 0,
      "required_level": 64,
      "required_luk": 0,
      "required_str": 0,
      "slot": "One-Handed Weapon",
      "speed": null,
      "stat_ranges": {
        "accuracy": "13 ~ 17 or 22",
        "avoidability": "18 ~ 22 or 27",
        "dexterity": null,
        "hp": null,
        "intelligence": null,
        "jump": null,
        "luck": "0 ~ 2 or 7",
        "magic_attack": null,
        "magic_defense": null,
        "mp": null,
        "speed": null,
        "strength": null,
        "weapon_attack": "70 ~ 80 or 85",
        "weapon_defense": null
      },
      "strength": null,
      "untradeable": false,
      "upgrade_slots": 7,
      "weapon_attack": 75,
      "weapon_defense": null
    },
    {
      "accuracy": null,
      "attack_speed": 3,
      "attack_speed_name": "Faster",
      "avoidability": 25,
      "cash": false,
      "category": "Dagger",
      "dexterity": null,
      "hp": null,
      "id": 1332114,
      "image": "https://royals-library.netlify.app/images/characters/01332114.png",
      "intelligence": null,
      "job_code": 8,
      "jobs": [
        "Thief"
      ],
      "jump": null,
      "luck": null,
      "magic_attack": null,
      "magic_defense": null,
      "mp": null,
      "name": "Maple Pyrope Halfmoon",
      "one_of_a_kind": false,
      "price": 250000,
      "required_dex": 0,
      "required_fame": null,
      "required_int": 0,
      "required_level": 77,
      "required_luk": 0,
      "required_str": 0,
      "slot": "One-Handed Weapon",
      "speed": null,
      "stat_ranges": {
        "accuracy": null,
        "avoidability": "22 ~ 28 or 33",
        "dexterity": null,
        "hp": null,
        "intelligence": null,
        "jump": null,
        "luck": null,
        "magic_attack": null,
        "magic_defense": null,
        "mp": null,
        "speed": null,
        "strength": null,
        "weapon_attack": "78 ~ 88 or 93",
        "weapon_defense": null
      },
      "strength": null,
      "untradeable": false,
      "upgrade_slots": 7,
      "weapon_attack": 83,
      "weapon_defense": null
    }
  ],
  "has_more": false,
  "page": 1,
  "page_size": 50,
  "pages": 1,
  "total": 4
}

Search items

List MapleRoyals items fifty to a page with the real total: the use, set-up and etc tabs of the inventory, narrowed to a tab, a type of use item such as scrolls or potions, and part of a name, in order of what a potion recovers or a scroll adds. Each row carries an item's description, price and effects; Get item adds which monsters drop it.

Inputs

Searchsearchtext
Optional. Part of a name to look for, ignoring case, such as maple or mushroom. The words must run together as they do in the name: orange mush finds the Orange Mushrooms, mush orange finds nothing. An id works too.
Categorycategorytext
Optional. Only items of this tab of the inventory: use (potions, scrolls and other consumables), set-up (chairs and other things placed) or etc (monster drops and quest items). Leave empty, or choose Any, for every tab.One of: any, use, setup (Set-up), etc.
Use typeuse_typetext
Optional, and only when Category is Use. Only use items of this type: scrolls, potions, return scrolls, transformation items, skill and mastery books, sacks, monster cards or everything else.Only when Category is Use. One of: any, scroll (Scrolls), potion (Potions), tp (Return scrolls), morph (Transformation items), mastery (Skill and mastery books), sack (Sacks), mbook (Monster cards), other.
Order byorder_bytext
Optional. What to order use items by: the HP or MP a potion recovers, the attack or accuracy it gives, or what a scroll adds. Leave empty for the order of item id.One of: id (Item id), hp (HP recovered), hpR (HP recovered in percent), mp (MP recovered), mpR (MP recovered in percent), pad (Weapon attack given), mad (Magic attack given), acc (Accuracy given), incPAD (Weapon attack scrolled), incMAD (Magic attack scrolled), and 8 more.
Sortsorttext
Ascending or descending, for the order chosen. Leave empty for the library's own order, lowest first.One of: ascending, descending.
Pagepagenumber
Which page of results to return, starting at 1; every page holds 50. Leave empty for the first page. A page past the last one returns no rows, but still gives the real total.At least 1.

Outputs

has_moretrue/false
Whether there is a page after this one.
itemslist
This page of the items that match, in the order asked for. Empty when none matches or the page is past the last one.
pagenumber
This page's number, from 1.
page_sizenumber
How many rows a page holds: 50.
pagesnumber
How many pages there are; 0 when nothing matches.
totalnumber
How many rows match in all, across every page.
Example output
{
  "has_more": false,
  "items": [
    {
      "accuracy": null,
      "avoidability": null,
      "category": "use",
      "curse_rate": null,
      "description": "A potion made out of blue herbs.\nRecovers 100 MP.",
      "dexterity": null,
      "dropped_by": [],
      "duration_seconds": null,
      "gachapon": [],
      "hp": null,
      "hp_recovered": null,
      "hp_recovered_percent": null,
      "id": 2000003,
      "image": "https://royals-library.netlify.app/images/items/02000003.png",
      "intelligence": null,
      "jump": null,
      "luck": null,
      "magic_attack": null,
      "magic_defense": null,
      "mp": null,
      "mp_recovered": 100,
      "mp_recovered_percent": null,
      "name": "Blue Potion",
      "price": 100,
      "required_level": null,
      "slot_max": null,
      "speed": null,
      "strength": null,
      "success_rate": null,
      "tradeable": true,
      "weapon_attack": null,
      "weapon_defense": null
    },
    {
      "accuracy": null,
      "avoidability": null,
      "category": "use",
      "curse_rate": null,
      "description": "A pill of concentrated blue potion, which restores 100 MP. You can carry more pills than potions because they're smaller",
      "dexterity": null,
      "dropped_by": [],
      "duration_seconds": null,
      "gachapon": [],
      "hp": null,
      "hp_recovered": null,
      "hp_recovered_percent": null,
      "id": 2000010,
      "image": "https://royals-library.netlify.app/images/items/02000010.png",
      "intelligence": null,
      "jump": null,
      "luck": null,
      "magic_attack": null,
      "magic_defense": null,
      "mp": null,
      "mp_recovered": 100,
      "mp_recovered_percent": null,
      "name": "Blue Pill",
      "price": 100,
      "required_level": null,
      "slot_max": 150,
      "speed": null,
      "strength": null,
      "success_rate": null,
      "tradeable": true,
      "weapon_attack": null,
      "weapon_defense": null
    },
    {
      "accuracy": null,
      "avoidability": null,
      "category": "use",
      "curse_rate": null,
      "description": "A potion made out of blue herbs made especially for beginners.\nRecovers 80 MP.",
      "dexterity": null,
      "dropped_by": [],
      "duration_seconds": null,
      "gachapon": [],
      "hp": null,
      "hp_recovered": null,
      "hp_recovered_percent": null,
      "id": 2000014,
      "image": "https://royals-library.netlify.app/images/items/02000014.png",
      "intelligence": null,
      "jump": null,
      "luck": null,
      "magic_attack": null,
      "magic_defense": null,
      "mp": null,
      "mp_recovered": 80,
      "mp_recovered_percent": null,
      "name": "Blue Potion for Beginners",
      "price": 1,
      "required_level": null,
      "slot_max": null,
      "speed": null,
      "strength": null,
      "success_rate": null,
      "tradeable": false,
      "weapon_attack": null,
      "weapon_defense": null
    },
    {
      "accuracy": null,
      "avoidability": null,
      "category": "use",
      "curse_rate": null,
      "description": "A potion made out of blue herbs.\nRecovers 100 MP.",
      "dexterity": null,
      "dropped_by": [],
      "duration_seconds": null,
      "gachapon": [],
      "hp": null,
      "hp_recovered": null,
      "hp_recovered_percent": null,
      "id": 2000017,
      "image": "https://royals-library.netlify.app/images/items/02000017.png",
      "intelligence": null,
      "jump": null,
      "luck": null,
      "magic_attack": null,
      "magic_defense": null,
      "mp": null,
      "mp_recovered": 100,
      "mp_recovered_percent": null,
      "name": "Blue Potion",
      "price": 0,
      "required_level": null,
      "slot_max": null,
      "speed": null,
      "strength": null,
      "success_rate": null,
      "tradeable": false,
      "weapon_attack": null,
      "weapon_defense": null
    },
    {
      "accuracy": null,
      "avoidability": null,
      "category": "use",
      "curse_rate": null,
      "description": "A special potion made out of herbs that exclusively grow in Ereve. Made specifically for Noblesss. nMP +100.",
      "dexterity": null,
      "dropped_by": [],
      "duration_seconds": null,
      "gachapon": [],
      "hp": null,
      "hp_recovered": null,
      "hp_recovered_percent": null,
      "id": 2000021,
      "image": "https://royals-library.netlify.app/images/items/02000021.png",
      "intelligence": null,
      "jump": null,
      "luck": null,
      "magic_attack": null,
      "magic_defense": null,
      "mp": null,
      "mp_recovered": 100,
      "mp_recovered_percent": null,
      "name": "Blue Potion for Noblesse",
      "price": 80,
      "required_level": null,
      "slot_max": null,
      "speed": null,
      "strength": null,
      "success_rate": null,
      "tradeable": false,
      "weapon_attack": null,
      "weapon_defense": null
    },
    {
      "accuracy": null,
      "avoidability": null,
      "category": "use",
      "curse_rate": null,
      "description": "A special bottle of potion consisting of herbs that only grow in Rien.\nRecovers MP +50.",
      "dexterity": null,
      "dropped_by": [],
      "duration_seconds": null,
      "gachapon": [],
      "hp": null,
      "hp_recovered": null,
      "hp_recovered_percent": null,
      "id": 2000023,
      "image": "https://royals-library.netlify.app/images/items/02000023.png",
      "intelligence": null,
      "jump": null,
      "luck": null,
      "magic_attack": null,
      "magic_defense": null,
      "mp": null,
      "mp_recovered": 50,
      "mp_recovered_percent": null,
      "name": "Special Rien Blue Potion",
      "price": 50,
      "required_level": null,
      "slot_max": null,
      "speed": null,
      "strength": null,
      "success_rate": null,
      "tradeable": false,
      "weapon_attack": null,
      "weapon_defense": null
    },
    {
      "accuracy": null,
      "avoidability": null,
      "category": "use",
      "curse_rate": null,
      "description": "A curious-looking fruit that increases Magic Attack by 10 for 10 minutes. Kicks in as soon as the first bite is taken.",
      "dexterity": null,
      "dropped_by": [],
      "duration_seconds": 600,
      "gachapon": [],
      "hp": null,
      "hp_recovered": null,
      "hp_recovered_percent": null,
      "id": 2022088,
      "image": "https://royals-library.netlify.app/images/items/02022088.png",
      "intelligence": null,
      "jump": null,
      "luck": null,
      "magic_attack": 10,
      "magic_defense": null,
      "mp": null,
      "mp_recovered": null,
      "mp_recovered_percent": null,
      "name": "Blue Fruit",
      "price": 400,
      "required_level": null,
      "slot_max": null,
      "speed": null,
      "strength": null,
      "success_rate": null,
      "tradeable": true,
      "weapon_attack": null,
      "weapon_defense": null
    },
    {
      "accuracy": null,
      "avoidability": null,
      "category": "use",
      "curse_rate": null,
      "description": "This delicious candy holds a special blessing from Malady.\nRecovers all HP and MP.",
      "dexterity": null,
      "dropped_by": [],
      "duration_seconds": null,
      "gachapon": [],
      "hp": null,
      "hp_recovered": null,
      "hp_recovered_percent": 100,
      "id": 2022107,
      "image": "https://royals-library.netlify.app/images/items/02022107.png",
      "intelligence": null,
      "jump": null,
      "luck": null,
      "magic_attack": null,
      "magic_defense": null,
      "mp": null,
      "mp_recovered": null,
      "mp_recovered_percent": 100,
      "name": "Blue Malady's Candy",
      "price": 1,
      "required_level": null,
      "slot_max": 100,
      "speed": null,
      "strength": null,
      "success_rate": null,
      "tradeable": true,
      "weapon_attack": null,
      "weapon_defense": null
    }
  ],
  "page": 1,
  "page_size": 50,
  "pages": 1,
  "total": 8
}

Search maps

List MapleRoyals maps fifty to a page with the real total, narrowed to a region of the world or a party quest and part of a name: each with its street, region and minimap. Get map adds what spawns there.

Inputs

Searchsearchtext
Optional. Part of a name to look for, ignoring case, such as maple or mushroom. The words must run together as they do in the name: orange mush finds the Orange Mushrooms, mush orange finds nothing. An id works too.
Regionregiontext
Optional. Only maps in this region of the world, such as Victoria Island, El Nath or Ludibrium, or in a party quest. Leave empty, or choose Any, for everywhere.One of: any, Amoria, Aquarium, Ariant, AriantPQ (Ariant PQ), Boat (Boats), CPQ (Carnival PQ), CPQ2 (Carnival PQ 2), China, Dojo (Mu Lung Dojo), and 35 more.
Pagepagenumber
Which page of results to return, starting at 1; every page holds 50. Leave empty for the first page. A page past the last one returns no rows, but still gives the real total.At least 1.

Outputs

has_moretrue/false
Whether there is a page after this one.
mapslist
This page of the maps that match, in order of map id. Empty when none matches or the page is past the last one.
pagenumber
This page's number, from 1.
page_sizenumber
How many rows a page holds: 50.
pagesnumber
How many pages there are; 0 when nothing matches.
totalnumber
How many rows match in all, across every page.
Example output
{
  "has_more": false,
  "maps": [
    {
      "area": "victoria",
      "id": 104010002,
      "image": "https://royals-library.netlify.app/images/maps/104010002.png",
      "name": "Beach Hunting Ground",
      "region": "VictoriaIsland",
      "street": "Hidden Street"
    },
    {
      "area": "victoria",
      "id": 104040000,
      "image": "https://royals-library.netlify.app/images/maps/104040000.png",
      "name": "Henesys Hunting Ground I",
      "region": "VictoriaIsland",
      "street": "Victoria Road"
    },
    {
      "area": "victoria",
      "id": 104040001,
      "image": "https://royals-library.netlify.app/images/maps/104040001.png",
      "name": "Henesys Hunting Ground II",
      "region": "VictoriaIsland",
      "street": "Victoria Road"
    },
    {
      "area": "victoria",
      "id": 104040002,
      "image": "https://royals-library.netlify.app/images/maps/104040002.png",
      "name": "Henesys Hunting Ground III",
      "region": "VictoriaIsland",
      "street": "Victoria Road"
    }
  ],
  "page": 1,
  "page_size": 50,
  "pages": 1,
  "total": 4
}

Search monsters

List MapleRoyals monsters fifty to a page with the real total, narrowed to regular monsters or bosses, a region of the world and part of a name, in order of level, EXP or HP. Each row carries a monster's stats; Get monster adds its drops and spawn maps.

Inputs

Searchsearchtext
Optional. Part of a name to look for, ignoring case, such as maple or mushroom. The words must run together as they do in the name: orange mush finds the Orange Mushrooms, mush orange finds nothing. An id works too.
Typemonster_typetext
Optional. Only regular monsters, or only bosses. Leave empty, or choose Any, for both.One of: any, monster (Regular monsters), boss (Bosses).
Regionregiontext
Optional. Only monsters found in this region of the world, such as Victoria Island or Ludibrium, or in a party quest. Leave empty, or choose Any, for everywhere.One of: any, Amoria, Aquarium, Ariant, AriantPQ (Ariant PQ), Boat (Boats), CPQ (Carnival PQ), CPQ2 (Carnival PQ 2), China, Dojo (Mu Lung Dojo), and 35 more.
Order byorder_bytext
Optional. What to order the monsters by: level, EXP or HP. Leave empty for the order of monster id.One of: id (Monster id), level, exp, maxHP (HP).
Sortsorttext
Ascending or descending, for the order chosen. Leave empty for the library's own order, lowest first.One of: ascending, descending.
Pagepagenumber
Which page of results to return, starting at 1; every page holds 50. Leave empty for the first page. A page past the last one returns no rows, but still gives the real total.At least 1.

Outputs

has_moretrue/false
Whether there is a page after this one.
monsterslist
This page of the monsters that match, in the order asked for. Empty when none matches or the page is past the last one.
pagenumber
This page's number, from 1.
page_sizenumber
How many rows a page holds: 50.
pagesnumber
How many pages there are; 0 when nothing matches.
totalnumber
How many rows match in all, across every page.
Example output
{
  "has_more": false,
  "monsters": [
    {
      "accuracy": 42,
      "avoidability": 1,
      "boss": false,
      "exp": 48,
      "has_drops": true,
      "hp": 80,
      "id": 1210102,
      "image": "https://royals-library.netlify.app/images/monsters/1210102.png",
      "level": 8,
      "magic_attack": 0,
      "magic_defense": 10,
      "mp": 45,
      "name": "Orange Mushroom",
      "regions": [
        "mapleisland",
        "victoriaisland",
        "amoria",
        "zipangu",
        "others"
      ],
      "speed": 0,
      "undead": false,
      "weapon_attack": 42,
      "weapon_defense": 0
    },
    {
      "accuracy": 45,
      "avoidability": 5,
      "boss": false,
      "exp": 83,
      "has_drops": true,
      "hp": 250,
      "id": 1110100,
      "image": "https://royals-library.netlify.app/images/monsters/1110100.png",
      "level": 15,
      "magic_attack": 0,
      "magic_defense": 40,
      "mp": 25,
      "name": "Green Mushroom",
      "regions": [
        "victoriaisland",
        "sleepywood",
        "amoria",
        "zipangu",
        "others"
      ],
      "speed": -20,
      "undead": false,
      "weapon_attack": 82,
      "weapon_defense": 12
    },
    {
      "accuracy": 55,
      "avoidability": 7,
      "boss": false,
      "exp": 102,
      "has_drops": true,
      "hp": 350,
      "id": 2220100,
      "image": "https://royals-library.netlify.app/images/monsters/2220100.png",
      "level": 20,
      "magic_attack": 0,
      "magic_defense": 60,
      "mp": 30,
      "name": "Blue Mushroom",
      "regions": [
        "victoriaisland",
        "zipangu"
      ],
      "speed": 5,
      "undead": false,
      "weapon_attack": 90,
      "weapon_defense": 10
    },
    {
      "accuracy": 55,
      "avoidability": 7,
      "boss": false,
      "exp": 112,
      "has_drops": true,
      "hp": 300,
      "id": 2110200,
      "image": "https://royals-library.netlify.app/images/monsters/2110200.png",
      "level": 22,
      "magic_attack": 0,
      "magic_defense": 0,
      "mp": 35,
      "name": "Horny Mushroom",
      "regions": [
        "victoriaisland",
        "sleepywood"
      ],
      "speed": -20,
      "undead": false,
      "weapon_attack": 90,
      "weapon_defense": 30
    },
    {
      "accuracy": 50,
      "avoidability": 8,
      "boss": false,
      "exp": 134,
      "has_drops": true,
      "hp": 500,
      "id": 2230101,
      "image": "https://royals-library.netlify.app/images/monsters/2230101.png",
      "level": 24,
      "magic_attack": 0,
      "magic_defense": 30,
      "mp": 50,
      "name": "Zombie Mushroom",
      "regions": [
        "sleepywood",
        "zipangu",
        "victoriaisland"
      ],
      "speed": 0,
      "undead": true,
      "weapon_attack": 95,
      "weapon_defense": 20
    },
    {
      "accuracy": 50,
      "avoidability": 10,
      "boss": false,
      "exp": 0,
      "has_drops": false,
      "hp": 600,
      "id": 9000002,
      "image": "https://royals-library.netlify.app/images/monsters/9000002.png",
      "level": 35,
      "magic_attack": 0,
      "magic_defense": 20,
      "mp": 100,
      "name": "Horned Mushroom 2",
      "regions": [
        "victoriaisland"
      ],
      "speed": -20,
      "undead": false,
      "weapon_attack": 110,
      "weapon_defense": 50
    },
    {
      "accuracy": 50,
      "avoidability": 15,
      "boss": false,
      "exp": 0,
      "has_drops": false,
      "hp": 600,
      "id": 9000201,
      "image": "https://royals-library.netlify.app/images/monsters/9000201.png",
      "level": 35,
      "magic_attack": 0,
      "magic_defense": 50,
      "mp": 100,
      "name": "Zombie Mushroom 2",
      "regions": [
        "victoriaisland"
      ],
      "speed": 0,
      "undead": true,
      "weapon_attack": 110,
      "weapon_defense": 30
    },
    {
      "accuracy": 60,
      "avoidability": 15,
      "boss": false,
      "exp": 0,
      "has_drops": false,
      "hp": 600,
      "id": 9000301,
      "image": "https://royals-library.netlify.app/images/monsters/9000301.png",
      "level": 35,
      "magic_attack": 0,
      "magic_defense": 50,
      "mp": 100,
      "name": "Blue Mushroom 2",
      "regions": [
        "victoriaisland"
      ],
      "speed": 5,
      "undead": false,
      "weapon_attack": 110,
      "weapon_defense": 30
    }
  ],
  "page": 1,
  "page_size": 50,
  "pages": 1,
  "total": 8
}

Search music

List MapleRoyals background music fifty to a page with the real total, narrowed to part of a name: each track with its length, file name and a link to the MP3.

Inputs

Searchsearchtext
Optional. Part of a name to look for, ignoring case, such as maple or mushroom. The words must run together as they do in the name: orange mush finds the Orange Mushrooms, mush orange finds nothing. An id works too.
Pagepagenumber
Which page of results to return, starting at 1; every page holds 50. Leave empty for the first page. A page past the last one returns no rows, but still gives the real total.At least 1.

Outputs

has_moretrue/false
Whether there is a page after this one.
pagenumber
This page's number, from 1.
page_sizenumber
How many rows a page holds: 50.
pagesnumber
How many pages there are; 0 when nothing matches.
totalnumber
How many rows match in all, across every page.
trackslist
This page of the tracks that match, in alphabetical order. Empty when none matches or the page is past the last one.
Example output
{
  "has_more": false,
  "page": 1,
  "page_size": 50,
  "pages": 1,
  "total": 2,
  "tracks": [
    {
      "file": "amoria.mp3",
      "length_seconds": 160,
      "name": "amoria",
      "url": "https://github.com/scotty66f/royals-ost/raw/refs/heads/main/audio/amoria.mp3"
    },
    {
      "file": "Amorianchallenge.mp3",
      "length_seconds": 168,
      "name": "amorianchallenge",
      "url": "https://github.com/scotty66f/royals-ost/raw/refs/heads/main/audio/Amorianchallenge.mp3"
    }
  ]
}

Search NPCs

List MapleRoyals NPCs fifty to a page with the real total, narrowed to a part of the world, a job such as merchants or job instructors, and part of a name. Each row carries everything Get NPC gives: what the NPC says and where it stands.

Inputs

Searchsearchtext
Optional. Part of a name to look for, ignoring case, such as maple or mushroom. The words must run together as they do in the name: orange mush finds the Orange Mushrooms, mush orange finds nothing. An id works too.
Regionregiontext
Optional. Only NPCs of this part of the world: Victoria Island, Ossyria, Maple Island, Amoria, Masteria, Ellin Forest, the World Tour, or the rest. Choose All for the NPCs the library files by region; leave empty for every NPC.One of: all, amoria, ellin (Ellin Forest), maple-island (Maple Island), masteria, ossyria, victoria-island (Victoria Island), world-tour (World Tour), other.
Typenpc_typetext
Optional. Only NPCs with this job: merchants, job instructors, storage keepers, transport, beauty, crafters, pets, wedding or the rest. Choose All for the NPCs the library files by type; leave empty for every NPC.One of: all, beauty, crafter (Crafters), job (Job instructors), merchant (Merchants), pet (Pets), storage, transport, wedding, other.
Pagepagenumber
Which page of results to return, starting at 1; every page holds 50. Leave empty for the first page. A page past the last one returns no rows, but still gives the real total.At least 1.

Outputs

has_moretrue/false
Whether there is a page after this one.
npcslist
This page of the NPCs that match, in order of NPC id. Empty when none matches or the page is past the last one.
pagenumber
This page's number, from 1.
page_sizenumber
How many rows a page holds: 50.
pagesnumber
How many pages there are; 0 when nothing matches.
totalnumber
How many rows match in all, across every page.
Example output
{
  "has_more": false,
  "npcs": [
    {
      "function": "Bowman Instructor",
      "id": 1012100,
      "image": "https://royals-library.netlify.app/images/npcs/1012100.png",
      "lines": [
        "Do you want to become a Bowman?",
        "Those who want to become a Bowman... Please come...",
        "Those who want to become a Bowman... Please come..."
      ],
      "locations": [
        {
          "id": 100000201,
          "name": "Bowman Instructional School",
          "region": "VictoriaIsland",
          "street": "Victoria Road"
        }
      ],
      "name": "Athena Pierce"
    },
    {
      "function": "Warrior Instructor",
      "id": 1022000,
      "image": "https://royals-library.netlify.app/images/npcs/1022000.png",
      "lines": [
        "Do you want to become a Warrior?",
        "For those that want to become a Warrior, come see me...",
        "For those that want to become a Warrior, come see me...",
        "For those that want to become a Warrior, come see me..."
      ],
      "locations": [
        {
          "id": 102000003,
          "name": "Warriors' Sanctuary",
          "region": "VictoriaIsland",
          "street": "Victoria Road"
        }
      ],
      "name": "Dances with Balrog"
    },
    {
      "function": "Magician Instructor",
      "id": 1032001,
      "image": "https://royals-library.netlify.app/images/npcs/1032001.png",
      "lines": [
        "To all that desire to become a Magician...talk to me...",
        "To all that desire to become a Magician...talk to me...",
        "To all that desire to become a Magician...talk to me..."
      ],
      "locations": [
        {
          "id": 101000003,
          "name": "Magic Library",
          "region": "VictoriaIsland",
          "street": "Victoria Road"
        }
      ],
      "name": "Grendel the Really Old"
    },
    {
      "function": "Thief Instructor",
      "id": 1052001,
      "image": "https://royals-library.netlify.app/images/npcs/1052001.png",
      "lines": [
        "To those that want to be a Thief, come...",
        "To those that want to be a Thief, come...",
        "To those that want to be a Thief, come..."
      ],
      "locations": [
        {
          "id": 103000003,
          "name": "Thieves' Hideout",
          "region": "VictoriaIsland",
          "street": "Victoria Road"
        }
      ],
      "name": "Dark Lord"
    },
    {
      "function": null,
      "id": 1072000,
      "image": "https://royals-library.netlify.app/images/npcs/1072000.png",
      "lines": [
        "Do you want to make the 2nd job advancement as the Warrior? Go see \"Dances with Balrog\" of Perion first.",
        "Only the ones that pass my test can make the 2nd job advancement as the Warrior."
      ],
      "locations": [
        {
          "id": 102020300,
          "name": "West Rocky Mountain IV",
          "region": "VictoriaIsland",
          "street": "Victoria Road"
        }
      ],
      "name": "Warrior Job Instructor"
    },
    {
      "function": null,
      "id": 1072001,
      "image": "https://royals-library.netlify.app/images/npcs/1072001.png",
      "lines": [
        "Do you want to make the 2nd job advancement as the Magician? Go see \"Grendel the Really Old\" of Ellinia first.",
        "Only the ones that pass my test can make the 2nd job advancement as the Magician."
      ],
      "locations": [
        {
          "id": 101020000,
          "name": "The Forest North of Ellinia",
          "region": "VictoriaIsland",
          "street": "Victoria Road"
        }
      ],
      "name": "Magician Job Instructor"
    },
    {
      "function": null,
      "id": 1072002,
      "image": "https://royals-library.netlify.app/images/npcs/1072002.png",
      "lines": [
        "Do you want to make the 2nd job advancement as the Bowman? Go see \"Athena Pierce\" of Henesys first.",
        "Only the ones that pass my test can make the 2nd job advancement as the Bowman."
      ],
      "locations": [
        {
          "id": 106010000,
          "name": "The Road to the Dungeon",
          "region": "VictoriaIsland",
          "street": "Warning Street"
        }
      ],
      "name": "Bowman Job Instructor"
    },
    {
      "function": null,
      "id": 1072003,
      "image": "https://royals-library.netlify.app/images/npcs/1072003.png",
      "lines": [
        "Do you want to make the 2nd job advancement as the Thief? Go see \"Dark Lord\" of Kerning City first.",
        "Only the ones that pass my test can make the 2nd job advancement as the Thief."
      ],
      "locations": [
        {
          "id": 102040000,
          "name": "Construction Site North of Kerning City",
          "region": "VictoriaIsland",
          "street": "Victoria Road"
        }
      ],
      "name": "Thief Job Instructor"
    },
    {
      "function": null,
      "id": 1072004,
      "image": "https://royals-library.netlify.app/images/npcs/1072004.png",
      "lines": [
        "Do you want to make the 2nd job advancement as the Warrior? Go see \"Dances with Balrog\" of Perion first.",
        "Only the ones that pass my test can make the 2nd job advancement as the Warrior."
      ],
      "locations": [
        {
          "id": 108000300,
          "name": "Warrior's Rocky Mountain",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        },
        {
          "id": 108000301,
          "name": "Warrior's Rocky Mountain",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        },
        {
          "id": 108000302,
          "name": "Warrior's Rocky Mountain",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        }
      ],
      "name": "Warrior Job Instructor"
    },
    {
      "function": null,
      "id": 1072005,
      "image": "https://royals-library.netlify.app/images/npcs/1072005.png",
      "lines": [
        "Do you want to make the 2nd job advancement as the Magician? Go see \"Grendel the Really Old\" of Ellinia first.",
        "Only the ones that pass my test can make the 2nd job advancement as the Magician."
      ],
      "locations": [
        {
          "id": 108000200,
          "name": "Magician's Tree Dungeon",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        },
        {
          "id": 108000201,
          "name": "Magician's Tree Dungeon",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        },
        {
          "id": 108000202,
          "name": "Magician's Tree Dungeon",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        }
      ],
      "name": "Magician Job Instructor"
    },
    {
      "function": null,
      "id": 1072006,
      "image": "https://royals-library.netlify.app/images/npcs/1072006.png",
      "lines": [
        "Do you want to make the 2nd job advancement as the Bowman? Go see \"Athena Pierce\" of Henesys first.",
        "Only the ones that pass my test can make the 2nd job advancement as the Bowman."
      ],
      "locations": [
        {
          "id": 108000100,
          "name": "Ant Tunnel For Bowman",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        },
        {
          "id": 108000101,
          "name": "Ant Tunnel For Bowman",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        },
        {
          "id": 108000102,
          "name": "Ant Tunnel For Bowman",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        }
      ],
      "name": "Bowman Job Instructor"
    },
    {
      "function": null,
      "id": 1072007,
      "image": "https://royals-library.netlify.app/images/npcs/1072007.png",
      "lines": [
        "Do you want to make the 2nd job advancement as the Thief? Go see \"Dark Lord\" of Kerning City first.",
        "Only the ones that pass my test can make the 2nd job advancement as the Thief"
      ],
      "locations": [
        {
          "id": 108000400,
          "name": "Thief's Construction Site",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        },
        {
          "id": 108000401,
          "name": "Thief's Construction Site",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        },
        {
          "id": 108000402,
          "name": "Thief's Construction Site",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        }
      ],
      "name": "Thief Job Instructor"
    },
    {
      "function": "Pirate Instructor",
      "id": 1072008,
      "image": "https://royals-library.netlify.app/images/npcs/1072008.png",
      "lines": [
        "Ahoy! If you want to become a Pirate, you must show me your strength!",
        "You'll have to pass my test to make the 2nd job advancement for the Pirate class!"
      ],
      "locations": [
        {
          "id": 108000500,
          "name": "Pirate Test Room",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        },
        {
          "id": 108000501,
          "name": "Pirate Test Room",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        },
        {
          "id": 108000502,
          "name": "Pirate Test Room",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        },
        {
          "id": 108000503,
          "name": "Pirate Test Room",
          "region": "VictoriaIsland",
          "street": "Hidden Street"
        }
      ],
      "name": "Kyrin"
    },
    {
      "function": "Pirate Instructor",
      "id": 1090000,
      "image": "https://royals-library.netlify.app/images/npcs/1090000.png",
      "lines": [
        "Ahoy mates! Welcome to the Nautilus!",
        "Are you ready to make the job advancement as a Pirate?",
        "All those who want to become Pirates, come to me...",
        "All those who want to become Pirates, come to me..."
      ],
      "locations": [
        {
          "id": 120000101,
          "name": "Navigation Room",
          "region": "VictoriaIsland",
          "street": "The Nautilus"
        },
        {
          "id": 912010200,
          "name": "Kyrin's Training Room",
          "region": "Others",
          "street": "Hidden Chamber"
        }
      ],
      "name": "Kyrin"
    }
  ],
  "page": 1,
  "page_size": 50,
  "pages": 1,
  "total": 14
}

Search quests

List MapleRoyals quests fifty to a page with the real total, narrowed to a part of the world or a kind such as job advancements, party quests or events, and part of a name: each with the NPC that gives it. Get quest adds its story, requirements and rewards.

Inputs

Searchsearchtext
Optional. Part of a name to look for, ignoring case, such as maple or mushroom. The words must run together as they do in the name: orange mush finds the Orange Mushrooms, mush orange finds nothing. An id works too.
Regionregiontext
Optional. Only quests of this part of the world or kind: Victoria Island, El Nath and Aqua Road, Ludus Lake, job advancements, party quests, events, titles, Zakum, and the rest. Leave empty, or choose All, for every quest.One of: all, job, maple-island (Maple Island), victoria (Victoria Island), elnath (El Nath and Aqua Road), ludus (Ludus Lake), ellin (Ellin Forest), leafre, neo-tokyo (Neo Tokyo), mulung (Mu Lung and Nihal Desert), and 9 more.
Pagepagenumber
Which page of results to return, starting at 1; every page holds 50. Leave empty for the first page. A page past the last one returns no rows, but still gives the real total.At least 1.

Outputs

has_moretrue/false
Whether there is a page after this one.
pagenumber
This page's number, from 1.
page_sizenumber
How many rows a page holds: 50.
pagesnumber
How many pages there are; 0 when nothing matches.
questslist
This page of the quests that match, in order of quest id. Empty when none matches or the page is past the last one.
totalnumber
How many rows match in all, across every page.
Example output
{
  "has_more": false,
  "page": 1,
  "page_size": 50,
  "pages": 1,
  "quests": [
    {
      "area": 30,
      "id": 2017,
      "location": "Victoria Island",
      "name": "Arwen and the Glass Shoe",
      "npc_id": 1032100,
      "npc_name": "Arwen the Fairy",
      "order": null
    },
    {
      "area": 30,
      "id": 2226,
      "location": "Victoria Island",
      "name": "Arwen's Apology",
      "npc_id": 1032100,
      "npc_name": "Arwen the Fairy",
      "order": 5
    },
    {
      "area": 30,
      "id": 8048,
      "location": "Victoria Island",
      "name": "Arwen and Ellinia",
      "npc_id": 1032100,
      "npc_name": "Arwen the Fairy",
      "order": null
    },
    {
      "area": 30,
      "id": 2222,
      "location": "Victoria Island",
      "name": "The Forest of Evil",
      "npc_id": 1032100,
      "npc_name": "Arwen the Fairy",
      "order": 1
    },
    {
      "area": 30,
      "id": 9415,
      "location": "Victoria Island",
      "name": "Hectagon Crystal Necklace and the Seal Cushion",
      "npc_id": 1032100,
      "npc_name": "Arwen the Fairy",
      "order": null
    }
  ],
  "total": 5
}

Search skills

List MapleRoyals skills fifty to a page with the real total, narrowed to a job branch such as Fighter, Crusader and Hero and part of a name: each with its job, what it does, its master level and what every level does in words. Get skill adds each level's numbers.

Inputs

Searchsearchtext
Optional. Part of a name to look for, ignoring case, such as maple or mushroom. The words must run together as they do in the name: orange mush finds the Orange Mushrooms, mush orange finds nothing. An id works too.
Jobjobtext
Optional. Only the skills of one job branch, such as Fighter, Crusader and Hero, or Cleric, Priest and Bishop, or the beginner skills. Leave empty, or choose Any, for every skill.One of: any, beginner, special (Special (unidentified)), swordman, hero (Fighter, Crusader, Hero), pal (Page, White Knight, Paladin), dk (Spearman, Dragon Knight, Dark Knight), magician, fp (Fire/Poison Wizard, Mage, Arch Mage), il (Ice/Lightning Wizard, Mage, Arch Mage), and 10 more.
Sortsorttext
Ascending or descending, for the order chosen. Leave empty for the library's own order, lowest first.One of: ascending, descending.
Pagepagenumber
Which page of results to return, starting at 1; every page holds 50. Leave empty for the first page. A page past the last one returns no rows, but still gives the real total.At least 1.

Outputs

has_moretrue/false
Whether there is a page after this one.
pagenumber
This page's number, from 1.
page_sizenumber
How many rows a page holds: 50.
pagesnumber
How many pages there are; 0 when nothing matches.
skillslist
This page of the skills that match, in order of skill id. Empty when none matches or the page is past the last one.
totalnumber
How many rows match in all, across every page.
Example output
{
  "has_more": false,
  "page": 1,
  "page_size": 50,
  "pages": 1,
  "skills": [
    {
      "description": "Increases the Mastery and Accuracy of Crossbows. It only applies when a Crossbow is in hand.",
      "id": "3200000",
      "image": "https://royals-library.netlify.app/images/skills/3200000.png",
      "job": "Crossbowman",
      "level_descriptions": [
        "Crossbow mastery +15%, accuracy +1",
        "Crossbow mastery +15%, accuracy +2",
        "Crossbow mastery +20%, accuracy +3",
        "Crossbow mastery +20%, accuracy +4",
        "Crossbow mastery +25%, accuracy +5",
        "Crossbow mastery +25%, accuracy +6",
        "Crossbow mastery +30%, accuracy +7",
        "Crossbow mastery +30%, accuracy +8",
        "Crossbow mastery +35%, accuracy +9",
        "Crossbow mastery +35%, accuracy +10",
        "Crossbow mastery +40%, accuracy +11",
        "Crossbow mastery +40%, accuracy +12",
        "Crossbow mastery +45%, accuracy +13",
        "Crossbow mastery +45%, accuracy +14",
        "Crossbow mastery +50%, accuracy +15",
        "Crossbow mastery +50%, accuracy +16",
        "Crossbow mastery +55%, accuracy +17",
        "Crossbow mastery +55%, accuracy +18",
        "Crossbow mastery +60%, accuracy +19",
        "Crossbow mastery +60%, accuracy +20"
      ],
      "master_level": 20,
      "name": "Crossbow Mastery"
    },
    {
      "description": "Strike with a follow-up attack following the initial attack with a given success rate. It works only when holding a Crossbow.\nRequired Skill : #cAt least Level 3 on Crossbow Mastery#",
      "id": "3201001",
      "image": "https://royals-library.netlify.app/images/skills/3201001.png",
      "job": "Crossbowman",
      "level_descriptions": [
        "MP -5; Activates 105% damage Final Attack at 2% success rate for 155 sec.",
        "MP -5; Activates 110% damage Final Attack at 4% success rate for 160 sec.",
        "MP -5; Activates 115% damage Final Attack at 6% success rate for 165 sec.",
        "MP -5; Activates 120% damage Final Attack at 8% success rate for 170 sec.",
        "MP -5; Activates 125% damage Final Attack at 10% success rate for 175 sec.",
        "MP -5; Activates 130% damage Final Attack at 12% success rate for 180 sec.",
        "MP -5; Activates 135% damage Final Attack at 14% success rate for 185 sec.",
        "MP -5; Activates 140% damage Final Attack at 16% success rate for 190 sec.",
        "MP -5; Activates 145% damage Final Attack at 18% success rate for 195 sec.",
        "MP -5; Activates 150% damage Final Attack at 20% success rate for 200 sec.",
        "MP -10; Activates 155% damage Final Attack at 22% success rate for 205 sec.",
        "MP -10; Activates 160% damage Final Attack at 24% success rate for 210 sec.",
        "MP -10; Activates 165% damage Final Attack at 26% success rate for 215 sec.",
        "MP -10; Activates 170% damage Final Attack at 28% success rate for 220 sec.",
        "MP -10; Activates 175% damage Final Attack at 30% success rate for 225 sec.",
        "MP -10; Activates 180% damage Final Attack at 32% success rate for 230 sec.",
        "MP -10; Activates 185% damage Final Attack at 34% success rate for 235 sec.",
        "MP -10; Activates 190% damage Final Attack at 36% success rate for 240 sec.",
        "MP -10; Activates 195% damage Final Attack at 38% success rate for 245 sec.",
        "MP -10; Activates 200% damage Final Attack at 40% success rate for 250 sec.",
        "MP -15; Activates 205% damage Final Attack at 42% success rate for 255 sec.",
        "MP -15; Activates 210% damage Final Attack at 44% success rate for 260 sec.",
        "MP -15; Activates 215% damage Final Attack at 46% success rate for 265 sec.",
        "MP -15; Activates 220% damage Final Attack at 48% success rate for 270 sec.",
        "MP -15; Activates 225% damage Final Attack at 50% success rate for 275 sec.",
        "MP -15; Activates 230% damage Final Attack at 52% success rate for 280 sec.",
        "MP -15; Activates 235% damage Final Attack at 54% success rate for 285 sec.",
        "MP -15; Activates 240% damage Final Attack at 56% success rate for 290 sec.",
        "MP -15; Activates 245% damage Final Attack at 58% success rate for 295 sec.",
        "MP -15; Activates 250% damage Final Attack at 60% success rate for 300 sec."
      ],
      "master_level": 30,
      "name": "Final Attack : Crossbow"
    },
    {
      "description": "Uses HP and MP to temporarily boost up the attacking speed of the equipped Crossbow. It only works with a Crossbow in hand.\nRequired Skill : #cAt least Level 5 on Crossbow Mastery#",
      "id": "3201002",
      "image": "https://royals-library.netlify.app/images/skills/3201002.png",
      "job": "Crossbowman",
      "level_descriptions": [
        "HP -29, MP -29; improves crossbow speed for 10 sec.",
        "HP -28, MP -28; improves crossbow speed for 20 sec.",
        "HP -27, MP -27; improves crossbow speed for 30 sec.",
        "HP -26, MP -26; improves crossbow speed for 40 sec.",
        "HP -25, MP -25; improves crossbow speed for 50 sec.",
        "HP -24, MP -24; improves crossbow speed for 60 sec.",
        "HP -23, MP -23; improves crossbow speed for 70 sec.",
        "HP -22, MP -22; improves crossbow speed for 80 sec.",
        "HP -21, MP -21; improves crossbow speed for 90 sec.",
        "HP -20, MP -20; improves crossbow speed for 100 sec.",
        "HP -19, MP -19; improves crossbow speed for 110 sec.",
        "HP -18, MP -18; improves crossbow speed for 120 sec.",
        "HP -17, MP -17; improves crossbow speed for 130 sec.",
        "HP -16, MP -16; improves crossbow speed for 140 sec.",
        "HP -15, MP -15; improves crossbow speed for 150 sec.",
        "HP -14, MP -14; improves crossbow speed for 160 sec.",
        "HP -13, MP -13; improves crossbow speed for 170 sec.",
        "HP -12, MP -12; improves crossbow speed for 180 sec.",
        "HP -11, MP -11; improves crossbow speed for 190 sec.",
        "HP -10, MP -10; improves crossbow speed for 200 sec."
      ],
      "master_level": 20,
      "name": "Crossbow Booster"
    },
    {
      "description": "Temporarily allows the character to fire Crossbow arrows without using up the arrows. Only works with a Crossbow in hand.\nRequired Skill : #cAt least Level 5 on Bow Booster#",
      "id": "3201004",
      "image": "https://royals-library.netlify.app/images/skills/3201004.png",
      "job": "Crossbowman",
      "level_descriptions": [
        "MP -15; attack for 30 sec without using up an arrow",
        "MP -15; attack for 60 sec without using up an arrow",
        "MP -15; attack for 90 sec without using up an arrow",
        "MP -15; attack for 120 sec without using up an arrow",
        "MP -15; attack for 150 sec without using up an arrow",
        "MP -15; attack for 180 sec without using up an arrow",
        "MP -15; attack for 210 sec without using up an arrow",
        "MP -15; attack for 240 sec without using up an arrow",
        "MP -15; attack for 270 sec without using up an arrow",
        "MP -15; attack for 300 sec without using up an arrow",
        "MP -20; attack for 330 sec without using up an arrow",
        "MP -20; attack for 360 sec without using up an arrow",
        "MP -20; attack for 390 sec without using up an arrow",
        "MP -20; attack for 420 sec without using up an arrow",
        "MP -20; attack for 450 sec without using up an arrow",
        "MP -20; attack for 480 sec without using up an arrow",
        "MP -20; attack for 510 sec without using up an arrow",
        "MP -20; attack for 540 sec without using up an arrow",
        "MP -20; attack for 570 sec without using up an arrow",
        "MP -20; attack for 600 sec without using up an arrow"
      ],
      "master_level": 20,
      "name": "Soul Arrow : Crossbow"
    },
    {
      "description": "Attacks up to 6 monsters at once with a powerful arrow, which penetrates through them. Damage decreases as the arrow flies through.",
      "id": "3201005",
      "image": "https://royals-library.netlify.app/images/skills/3201005.png",
      "job": "Crossbowman",
      "level_descriptions": [
        "MP -23; damage 64%",
        "MP -23; damage 68%",
        "MP -23; damage 72%",
        "MP -23; damage 76%",
        "MP -23; damage 80%",
        "MP -24; damage 84%",
        "MP -24; damage 88%",
        "MP -24; damage 92%",
        "MP -24; damage 96%",
        "MP -24; damage 100%",
        "MP -25; damage 104%",
        "MP -25; damage 108%",
        "MP -25; damage 112%",
        "MP -25; damage 116%",
        "MP -25; damage 120%",
        "MP -26; damage 124%",
        "MP -26; damage 128%",
        "MP -26; damage 132%",
        "MP -26; damage 136%",
        "MP -27; damage 140%",
        "MP -27; damage 144%",
        "MP -27; damage 148%",
        "MP -27; damage 152%",
        "MP -27; damage 156%",
        "MP -27; damage 160%",
        "MP -28; damage 164%",
        "MP -28; damage 168%",
        "MP -28; damage 172%",
        "MP -28; damage 176%",
        "MP -28; damage 180%"
      ],
      "master_level": 30,
      "name": "Iron Arrow : Crossbow"
    }
  ],
  "total": 5
}

On this page