Gameplay

"Orna is a classic-style RPG that augments your real world. Enjoy turn-based combat, collect and upgrade your weapons and armor, learn spells, fight bosses, and claim real world landmarks with your mobile phone, wherever you are. "

Below is a collection of bonuses found so far.

Bonus Exp Items

Deathbringer -> x1.03

(Superior) Deathbringer -> x1.133

It appears the Black Witch Staff, Venin, and Witch’s Archistaff follow the same exp bonus modifier as Monster Tome.

Black Witch Staff -> x1.05

(Superior) Black Witch Staff -> x1.155

(Legendary) Black Witch Staff -> x1.26

Venin -> x1.05

(Famed) Venin -> x1.2075

Witch’s Archistaff -> 1.05

(Ornate) Witch’s Archistaff -> x1.3125

Monster Tome Greater Monster Tome Cursed Monster Tome
Common 1.05 1.1 1.25
Superior 1.155 1.21 1.375
Famed 1.2075 1.265 1.4375
Legendary 1.26 1.32 1.5
Ornate 1.3125 1.375 1.5625

Bonus Orns Items

Dark Garb -> x1.05

Deathbringer -> x1.03

Reaper’s Robe -> x1.05

Venin -> x1.03

Bonus Gold Items

Coin Purse -> x1.05

Dune Blade -> x1.1

Jester’s Outfit -> x1.1

Sandstorm -> x1.1

Bonus Drop Items

Dowsing Rod -> x1.5

Monster Spawn Bonus

Brazier -> 2

Enchanted Skull -> 1.2

Lantern -> 1.1

Occult Candle -> 2

Party Bonus -> 1.2

Torch -> 1.3

Shrine Bonus

Shrine of Wisdom -> Exp x2

Shrine of Luck -> Gold x2, Orn x2, Drop x2

There are four factions in Orna. You may pick a faction once you reach level 10. Choosing a faction will add that faction’s background and name to your character portrait across all menus. You will receive a 10-20% boost to damage done with and take reduced damage from the corresponding faction’s element-type skills. Once a faction is chosen, you may only join kingdoms that share your faction. Factions can be changed by quitting your kingdom and purchasing the option from the store for $1.







































Name Element Specialization Class Unique Spell Background
Earthen Legion

The oldest known faction of this land.
A large group of vanguards that have sworn to maintain balance for ages.

Earth Legionnaire Heal Earthen Legion
Stormforce

A relatively new faction of warriors that harness the power of the sky.
Lightning Storm Knight Shock Stormforce
Knights of Inferno

Knights who have fought long and hard against the demons soldiers of Balor.
Fire Scorcher Burn Knights of Inferno
Frozenguard

A formidable battalion that have served as Sentries against Draconian Invaders.
Water Frost Mage Freeze Frozenguard

While exploring Orna, you can form a party of 6 travelers and share experience while in a party together. In order to start a party, go to the Area menu, then to the Traveler tab, and tap the portrait of the player you want to invite and tap Invite. You can only party with players in the same dukedom as you, but your party remains intact even if you travel apart. If the other player leaves the party, you will need to leave your party of one to start a new party. While in the same dukedom, you and your party share a Party Bonus buff to monster spawn rate and a 10% bonus to all stats, and you are visible on each other’s maps when you are nearby.

Party members share experience gained from fights. When any party member completes a fight with a monster, experience will be distributed based on the following formula:

Party Exp = (Base Exp / # of party members) + (Base Exp / 10)

In other words, each party member will gain an even split of the experience plus 10% of the original base experience. 2 party members share 60% (50% + 10%) each of a monster kill. 3 party members share 43.3% (33.3% + 10%) of each monster kill. Gold, orn, and items are not shared.

You may lose the Party Bonus from traveling too far away from each other, but will continue to gain EXP.

There are many buildings to be found exploring, and a limited number can be built by players. Open the Dukedom menu in the upper right-hand corner of the main screen and select “Build”, then select the type of building you wish to build. Currently, only the Blacksmith, Shops, Bestiaries, Keeps, and Outposts can be built by players. Purchased shops have the option to be hidden from other players by its builder by checking a box in the shop’s options menu.

When purchased, a building will spawn randomly within the player’s view and can be moved to any other spot on the screen where another building does not exist. It will be named [Player Current Name]’s [Building]. If you change your name, the shop will keep the name you had when you built it. There is a limit to how many buildings can be placed within an area. Most buildings can be upgraded for gold, with exceptions noted below.

Upgrading Buildings

Shops, Bestiaries, and Keeps can be upgraded for gold and all follow this pricing model. To upgrade a shop, open it and select the Information tab.



















































Level Cost
2 100,000 Gold
3 200,000 Gold
4 300,000 Gold
5 400,000 Gold
6 500,000 Gold
7 600,000 Gold
8 700,000 Gold
9 800,000 Gold
10 900,000 Gold
Total 4,500,000 Gold

Shop

Shop

Shops allow you to buy and sell items. They rotate a random stock of items, some of which become available as you level up and discover new gear. It is possible for shops to run out of limited stock items. A player can purchase a level 1 shop for 5,000 Orn and 25 wood, and upgrade it with gold.

You do not receive a commission from other player’s purchases. The advantage of leveling a shop is an expanded inventory with higher tier items. Spawned shops are less likely to have higher tier items. Every shop sells Small Health and Mana potions and torches by default. When you have access to Large HP and Mana potions, those become available as well. Otherwise, any tier gear, items, or materials can be found. Some items can be found in stock but are unavailable to buy if they are a higher tier than you are.

Blacksmith

Blacksmith

A Blacksmith upgrades gear for players. Upgrading costs different amounts of gear-specific materials, Orn, gold, and time based on its level. Upgrading an item increases its level and stats. Higher quality items cost more to upgrade. Each level after the first costs more to upgrade and gives a smaller bonus. Players can purchase a Blacksmith for 10,000 Orn, 50 wood, and 25 stone, and it cannot be upgraded.

Upgrading your Gear






























































Level Time Material
2 1 hour 3
3 2 hours 6
4 3 hours 9
5 6 hours 12
6 12 hours 15
7 1 day 18
8 1 day 21
9 2 days 24
10 3 days 27
Total 192 hours 135

Bestiary

Bestiary

The Bestiary sells pets which can randomly aid you in battle. Pets come in different tiers and have different abilities. They must be purchased with Orn and are replaced when you buy a new pet. Players can find Bestiaries while exploring or purchase a level 1 Bestiary for 5,000 Orn, 100 wood, and 25 hides. Spawned Bestiaries are less likely to stock high tier pets. The best way to find tier 5 pets is to level a purchased Bestiary to level 5 or higher.[1] If a Player purchases a Keep, they can store their purchased pets there instead of losing them.

Keep

Keep

Keeps are new buildings that allow players to store their gold and pets, and they also provide a daily buff to increase monster attraction via. lighting the keep’s brazier. They cost 10,000 Orn, 100 stone, and 100 wood to purchase, which allows you to store 1 pet, and each subsequent level adds one more pet slot. You may only build a keep in your origin town, and only the player that purchased the Keep can access it. Keeps also give 1% of the stored gold and 100 Orn every 24 hours as their daily reward.











































































Level Cost Slots Storage
1 10,000 Orn (Purchase) 1 100,000 Gold
2 100,000 Gold 2 200,000 Gold
3 200,000 Gold 3 300,000 Gold
4 300,000 Gold 4 400,000 Gold
5 400,000 Gold 5 500,000 Gold
6 500,000 Gold 6 600,000 Gold
7 600,000 Gold 7 700,000 Gold
8 700,000 Gold 8 800,000 Gold
9 800,000 Gold 9 900,000 Gold
10 900,000 Gold 10 1,000,000 Gold
Total 4,500,000

Outpost

Outpost


The Outpost is a building that acts as an extension of the keep. It may be built anywhere to access the Keep’s follower and item storage when away from the player’s hometown.

Inn & Tavern

Inn & Tavern

The Inn/Tavern is a unique building in Orna. As of update 1.23.0, they can only be found in the wild. The Inn refills HP and Mana at a cost of 10 gold per missing point. The Tavern offers tips for nearby bosses and shrines at a cost of 1,000 gold per “tip”.


Alchemist

Alchemist


The Alchemist is a unique building in Orna that can only be found in the wild. It can imbue a weapon with an element for gold and elemental stones. It only works on items that do not have a pre-determined element assigned to them (ex: Deathbringer is always dark). Additionally, an item at level 10 can undergo “Masterforging” at the Alchemist which functions as a level 11 plus a small bonus to stats. Masterforging an item takes considerably more materials than a standard upgrade, yet is instant.


Arcanist

Arcanist


The Arcanist, similar in appearance to the Alchemist, can be found rarely around the world. A number of different spells can be bought at this establishment in exchange for gold. However, spells above the player’s level tier will appear as unavailable. The stock refreshes every few days, rotating the spells for sale.


Demonologist

Demonologist


Similar in appearance and function to the Alchemist. A masterforged item may be upgraded to “Demonforged” at the Demonologist for a further stat bonus. Like masterforging, demonforging requires a large amount of materials though the upgrade is instant.


Dungeon

Dungeon


The Dungeon is functionally the same as the gauntlet (accessed in the player menu). In exchange for a gauntlet key the player can battle a series of opponents - some from the world, some unique to the gauntlet. The number of floors and enemies found varies depending on the player’s tier. Upon completion, orn and randomly generated items are awarded. For five gauntlet keys “Hard Mode” or “Boss Mode” can be enabled rather than the standard gauntlet. Hard Mode disables the use of items but improves rewards - in Boss Mode all enemies encountered will be bosses. For 25 keys both can be enabled at once.

Markers are specific objects of note that you may encounter in your travels while playing. There are several different types of markers, each possessing specific benefits. Once collected, the Marker will disappear from your map, unlike Buildings. It is currently unknown if markers respawn in the same position, or if they are always random.

Note on Shrines: There are multiple types of shrines, each granting buffs to the player for a variable length of time. If you already have a shrine you cannot collect another until the one you have expires. The buff from a shrine stacks with similar buffs from useable items, like EXP potions.

Note on Sword in the Stone: There are a few speculated requirements to pull each individual Sword in the Stone, such as full Health and Mana, character level, and class.



























































Image Name Effect
Shrine of Luck Shrine of Luck Increases Gold and Orn drop rate
Shrine of Wisdom Shrine of Wisdom Doubles EXP
Sword in Stone Sword in the Stone If able to pull, receive a high quality item
Fountain Fountain of Life Fully recover Health and Mana
Chest Chest Receive random item
Shrub Shrub Receive small amount of Gold or Orns
Tree Tree Receive the material Wood
Stone Stone Receive the material Stone
Bone Bone Receive the material Bone
Materials Materials Receive a random material

Dukedoms are areas of land across the Overworld that can be claimed by players. A player’s reputation is increased by claiming a dukedom, which factors into rank.

Benefits

Playing within a dukedom you control will grant you a buff that increases your stats by 5%. Playing within the dukedom set as your origin town will grant you a buff that increases your stats by 10%.

The duke collects a tax from traveler’s battles that is added to the dukedom’s weekly income and a portion of which is granted to the duke whenever night falls. The current location’s dukedom’s weekly income can be viewed from the Area menu.

How to Claim Dukedoms

If a dukedom has a blue crest (Unclaimed Icon), it is unclaimed. A player can claim a dukedom by tapping its name and holding “Claim Area” in the area menu. Sometimes it is possible to view and claim nearby dukedoms as well, if your current location is near an area border. If a dukedom is claimed, the controlling player’s portrait replaces this blue crest. If you control the current dukedom, then your grayed out portrait will be in the upper right along with a shield icon.

Players can challenge other Dukes for their territory through PvP combat. As of 1.14.0, dukedoms have a set amount of health. If the challenger wins in one attempt, they immediately gain control of the dukedom. If the challenger loses, they must wait an hour before they (or any other player) can challenge again. This allows low-level players to whittle away high-level player’s dukedoms over time. There is currently no limit to the number of dukedoms players are allowed to control.

Losing Dukedoms

When another player challenges to claim a dukedom and wins, the previous Duke will be alerted of the player’s name, the name of the dukedom, cardinal direction, and approximate distance from their current location. Dukedoms can be stolen back and forth indefinitely between players, however only once per hour. A history of your lost dukedoms can be found in the message log.

Viewing Dukedoms

In the top left corner of the character screen, you can view a list of all your current dukedoms by clicking the crown icon (Crown Icon).

Influence

Each area has 3 indicators that affect how strong the duke will be when challenged. For each bar, if the cursor is on the right, the duke will be more powerful, and if the cursor is on the left, the duke will be less powerful. “Duke Influence” is determined by the number of nearby territories that duke owns, “Kingdom Influence” is determined by the number of nearby territories owned by that kingdom, “Faction Influence” is determined by the number of nearby territories owned by that faction.

Entering the Arena

In the bottom left-hand corner of the overworld screen you will see two crossing swords. If you click on this icon, it will search for opponents, and you will have the options of Leave or Battle. To engage battle, you must use an Arena Token (aquired from bosses, shops, arena battles) and have opponents available to battle. Opponents are usually slightly above or below you in rank. If you win the battle, rewards include EXP, gold, orns, and various items.

Battling in the Arena

When you enter an Arena battle, you will be at full health and mana. Your character will not reflect any damage taken or mana spent when the battle is complete. This makes Arena possible without a need to heal before or after. You will not be able to Run or use Items. The opponents you fight in the arena are actual players in the game, controlled by the game’s AI. You will always attack first. When your opponent is defeated or defeats you, the battle is over. You receive EXP, Orn, and gold for winning the battle. Gold rewards are tied to you and your opponent’s level.

Dukedoms

Another way to enter PvP is to challenge players for control of their dukedom.

In order to make you gear stronger, it need to be taken to the Blacksmith and upgraded into a stronger item. The Blacksmith requires gold, Orn, materials, and time. Each time you take the gear to the Blacksmith it will get stronger. When the gear is ready you will get an in-game message that it is ready to pick up. Visit any blacksmith to pick up your gear again. Here is a chart of the time table for upgrading.

Level Time Materials
2 1 hr 3
3 2 hrs 6
4 3 hrs 9
5 6 hrs 12
6 12 hrs 15
7 1 day 18
8 1 day 21
9 2 days 24
10 3 days 27
Total 192 hours 135

Use the following link to figure out what your item’s stats will be at each level.

Assess Tool

(From Orna Wikia)
Kingdoms are a new feature added with update 1.29. Kingdoms are essentially guilds, wherein up to 50 people can be part of the same guild. YOU MUST BE THE SAME FACTION TO BE IN THE SAME GUILD.

Choosing a Kingdom

When you click on the Kingdoms menu in the main menu, you will be prompted to either Create A Kingdom or Join a Kingdom.

Creating a Kingdom will allow the player to create a kingdom, where in he or she will be the King or Queen of that Kingdom. Then other players can join the newly created Kingdom by clicking Join a Kingdom and finding the name of the Kingdom on the list. When creating a Kingdom, you can choose the name of the Kingdom and a brief description of your Kingdom.

If you click Join a Kingdom, you will be given a list of the Kingdoms that are available for you to join. Remember, you can only join Kingdoms that are the SAME FACTION as you. You are able to change factions whenever you want for a small fee of 99 cents. If you are a member of a Kingdom you cannot change your faction. You must leave the Kingdom first.



























Picture Function

Hall

This is the main menu for the Kingdom Menu. Across the top you will see: Hall, Members, War, and Options.
Across the top it lists your total gold and orns for the kingdom. Gold is earned when a member of the kingdom fights a mob or boss. A portion of the gold is given to the kingdom. Orn is earned from guild wars.

On the Hall screen it will show your power which reflects the total number of levels earned by members of your Kingdom members. For example, if you had a Kingdom with 50 people and everyone was level 100, you power would be 5000(50 x 100).

The next number is influence which is the total number of dukedoms owned by all the members of your Kingdom. For example, if you had 10 members who owned 100 dukedoms, you total influence would be 1000(10x100)

The next number is rank. This is your current rank on the leader board.

The last number is the Kingdom’s member count. Up to 50 people can join a Kingdom.

On the bottom is a link to the Kingdom Leaderboard.

Members The members page show the name, level, class, subclass, and “rank” of the members of the Kingdom. The current ranks are King/Queen, Officer, and Soldier. No information is known about Officer or Soldier. King/Queen denotes the founder of the Kingdom.
War War allows you kingdom to battle players from rival kingdoms. A guild war lasts 24 hours. This screen will show the match-ups for the current guild war.
Options Under options you can either leave the Kingdom or destroy the Kingdom(only if you created it).

Kingdom Wars

Starting a War

In the “War” section you will be prompted to long press to begin a new Kingdom War. Each war costs clan gold. If you are involved in a war, you cannot start a new one. Wars can be started by the King or Officers of the Kingdom. A War lasts 24 hours.

Battling

Once you start the war, you will need to wait a while for matchmaking to happen. Once the rival Kingdom is selected, the War begins. Each player in the kingdom is matched up with some one from the rival kingdom. Each player is gets one battle against the other kingdom’s player controlled by the AI. For example, Kingdom Soldier A fights Kingdom Soldier B. A will fight B(AI controlled), but B will also fight A(also AI controlled).Quite often both players will win their battle, making both of them victorious. The battle is exactly the same as the battle for dukedom control or an arena battle.

Winning the War

Whichever Kingdom has the most total wins, will win the War. If the Kingdoms have the same number of wins then the match ends in a stalemate. A win will give your kingdom gold, orn, and a victory. A stalemate brings nothing. Once the War is won, you can immediately start a new War.

If all the members of both Kingdoms finish their battles BEFORE the 24 hours has expired, then the War will end. This means having active members in BOTH Kingdoms is beneficial.

Matchmaking

Matchmaking put two kingdoms together that are within 1000 power of each other. When both kingdoms are searching for a battle they will be matched together.

Raids are a chance to fight a powerful boss available only to players in Kingdoms. They can be completed by any number of kingdom members fighting the boss. Whoever participates in the raid is given a reward of XP, Orns, Gold, items (tonics, potions, gauntlet keys), and boss-specific gear. The more damage done by an individual, the better the reward they receive when the raid has ended.

How to start a raid

Under the raid tab in your Kingdom, tap “Start raid” beneath the raid boss you wish to challeneg. Only the monarch and their officers can initiate a raid. Raids cost kingdom orn - which can only be earned through wars. The specific amount for each raid is a base plus 10 orn per member. Any number of raids can be started and fought simultaneously: tap the arrows on either side of the screen under the raid tab to view the different raid bosses available.

Raiding

Once a raid is started any member of the kingdom is allowed to enter the raid. When the player dies or defeats the boss, whatever damage they have done will show when a new player enters. If more than one player enters at the same time, they will not see the damage done by any other players until they die. Once a player dies in a raid, they must wait at least 60 minutes before they can reenter the raid. Once the raid boss has been defeated, all players who participated in the raid are given rewards based on the damage they have done.

Raid Bosses

Each raid boss is unlocked when a Kingdom reaches a certain level. Levels are gained by winning Kingdom wars.

Name Kingdom Level Tier Level Event? Base Orn Cost Max HP
Dracon 1 ★★★ 75 X 500 306,250
Fomor 1 ★4 100 X 500 400,000
Kerboros of Ice 2 ★6 150 Rise of Kerboros Unkown Unknown
Starlord 2 ★5 125 X
Naggeneen 2 ★7 175 Mischievous Naggeneen Unknown Unknown
Titan 3 ★6 150 X
Balor Elite 4 ★7 175 X
Fallen King Arthus 5 ★8 200 X
Apollyon 10 ★9 250 X

What are Status Buffs/Debuffs

Status Effects are temporary debuffs with varying effects ranging from boosting stats to causing damage over time (DoT) or even causing the afflicted to lose a turn.

Stat Boosts/Drops

Status boosts/drops are buffs/debuffs that directly change your characters stats in combat. They can have between one and three arrows symbolizing the adjustment of the stat in question. Permanent stat boosts/drops remain throughout the remainder of combat.

The format for permanent boost/drop is - (stat icon) (stat abreviation) (arrow(s)).

For Example: Attack Up Att ↑↑= Attack Up 2 levels.

The are also temporary stat bonuses/drops which unlike permanent only last for a few turns (or sometimes unfortunately just the one turn you activate it).

The format for temporary boost/drop is - (stat icon) (T.) (stat abreviation) (arrow(s)).

For Example: Attack UpT. Att. ↑ = Temporary Attack Up 1
level.

Elemental Defenses

Elemental Defenses is a buff that reduces all damage from a specific Element.

These are the all the available Elemental Defenses.

Fire DefenseFire Def - Decrease all Fire damage taken.

Water/Ice DefenseWater Def - Decrease all Water/Ice damage taken.

Earth DefenseEarth Def - Decrease all Earth damage taken.

Lightning DefenseLightning Def - Decrease all Lightning damage taken.

Holy DefenseHoly Def - Decrease all Holy damage taken.

Dark DefenseDark Def - Decrease all Dark damage taken.

Damage over Time (DoT)

These Status Effects are purely damage over time. The damage is rounded to the nearest whole number

BleedBleeding - DoT for 2% of target’s Hit Points (HP).

PoisonPosioned - DoT for 2% of target’s HP.

RotRot - DoT for 2% of target’s HP.

BurnBurning - DoT for 5% of target’s HP.

CurseCursed - DoT for 10% of target’s HP.

BerserkBerserk DoT for 10% of target’s HP.

When using multiple DoT’s these percentages may be lower.

Disabling

These status effects are purely disabling (causes the afflicted to lose a turn).

BlindBlind - Sometimes disables the afflicted.

FrozenFrozen - Sometimes disables the afflicted.

ParalyzeParalyzed - Sometimes disables the afflicted.

StunStunned - Sometimes disables the afflicted.

AsleepAsleep - Disables the afflicted until they wake up.

PetrifyPetrified - Disables the afflicted until they are no longer petrified

Charging Moves - Disables the user until the move is used, the user is killed, or the user is disabled via another disabling status effect. This doesn’t appear as an actual debuff, but will be reflected in the battle log.

Disabling and DoT

These status effects cause DoT and Disabling effects.

BlightedBlight - Sometimes disables the afflicted. Also does 2% of the target’s HP, if the target is not disabled in the given turn.

ToxicToxic - Sometimes disables the afflicted. Also does 10% of the target’s HP, if the target is not disabled in the given turn.

OrnaBot Instructions

OrnaBot has 4 different modules currently:

  • Prefix
  • Assess
  • GuideAPI
  • Wars

Prefix

This provides a way to set a different prefix for the bot to recognize commands, just in case another bot uses the same. The default prefix is %. Anyone with the Administrator permission can set the prefix using %prefix. For example to change it to @ you would type %prefix @.

Assess

This provides the auto-assess functionality by using Tesseract OCR to find characters in the image and make sense of them. Training has been attempted to make Tesseract recognize the characters better, but it ended up being worse than the default somehow. :) Still, for the most part it will be able to recognize most in-game screenshots.

Anyone with the Administrator permission can set a channel to be watched for attachments using the %autoassess command. Add as many channels as wanted to the command and it will look for every channel mention and add or remove the channel to the watch list.

For example, adding the #ask-ornabot channel would be done with the command %autoassess #ask-ornabot. Removing a channel follows the same format. Any channel saved will be removed if mentioned in the command again.

GuideAPI

This module provides the interface with Orna.Guide’s API to lookup information. There is a general lookup command, and then an exact lookup command. Use the exact lookup if multiple items match the general lookup.

Commands are: %class, %classe, %item, %iteme, %monster, %monstere, %pet, %pete, %skill, %skille, %spec, %spece.

Wars

The Wars module provides a way to manually track your kingdoms war status. Anyone with the Administrator permission can turn the war module on or off using %war on and %war off; set the war announce channel using %war announce #war-channel; set the kingdom monarch using %war monarch @user; set the officier role using %war officer @officer-role; set the soldier role using %war soldier @soldier-role. The monarch can also change the monarch user using the same command.

Officers and above can set the end time for a war using %war ends ##h ##m. This starts a war adding the monarch, all officer role members, and all soldier role members to the war status. Officers and above can check the full status using %war status, or you can see who is left to do their battle with %war todo. If a member marked their battle done but actually has not, or mistakenly did so, or a member joined the server after a war has started but is in the war, an officer can reset their status using %war reset @user. If a war time was entered incorrectly, it can be reset using %war adjust ##h ##m.

Soldiers and above can mark their battle done with %war done, or if they were not matched for the war they can use %war bye. Offciers and above have the ability to mark other members as done or bye by adding their name, %war done @user.

OrnaBot will announce every halftime how much time is remaining, and tag all members who have not had their battle marked done or bye. The halftimes are with how much time is remaining in the war, starting with 12 hours, then 6 hours, 3 hours, 1.5 hours, 45 minutes, 20 minutes, 10 minutes, 5 minutes. If no one is left, then no one is tagged, but the message is still announced.

Other Information

OrnaBot only requires two permissions: Send Messages and Embed Links. You will need to explicitly give it read permission for a channel if that channel has restricted read permissions.

A %help command is available that lists all the commands the requesting user has access to.

If there are any questions or problems with the bot, feel free to contact Veratil in the Orna RPG Discord.

Invite OrnaBot to your server

This is for the documentation of current v1 guide API currently available. If you wish to help its development join us in Discord in the #orna-guide-api-dev channel.

The API uses the GET HTTP method unless otherwise noted. The request must be a JSON object sent in the body. If you are using python requests you must use the post method and the json argument instead of data.

Overview

Requests are a JSON object with keys referring to an aspect of the object being queried, for instance magic on an item, and their values being the search parameter. For the examples below, I will use the Item API to generate example requests.

A simple request to the item API can be: {"magic":150}. More keys can be added to the query like so: {"magic":150,"attack":150}. Valid keys and their value type can be found in the related API sections below.

A query can be modified by using combinators and comparators. By default all requests use the and combinator. This means a request to the item API like this: { "magic": 150, "attack": 150 }, will look for items matching 150 Magic and 150 Attack (the only item returned for this query is Arisen Ankh). You can alter the search by adding a combinator key like so: {"or":{"magic":150,"attack":150}} (this returns 4 items: Arisen Ankh, Lunar Dagger, Moon Staff, and Titan Axe). There are only two combinators: and and or. These can be nested within each other to make advanced queries, which will be detailed more below.

All keys have a comparator default, which can be found in the API reference below. Using the first example request above, the query would look for items matching exactly 150 Magic. You may want to search for items with values less than or greater than a given value though, which is where the comparator keys work. If you wanted to search for items with magic greater than or equal to 150, you would add a comparator key like so: {"gte":{"magic":150}} (this returns ~29 items).

Combining the combinators and comparators to create advanced queries is also possible. Let’s say you wanted to search for items with magic greater than or equal to 150, or attack greater than or equal to 150. The request would be: {"or":{"gte":{"magic":150,"attack":150}}} (this returns ~76 items). The way queries are generated allows you to swap the or and gte in this case, and you will get the same result.

In a special case, a list may be passed as a value. This is useful for the combinators when keys of the same name are being used, but it can also be used on the field keys themselves. For instance, if you wanted to search for items that contain the word Staff or the word Sword you have the option to pass a list to or like so: {"contains":{"or":[{"name":"Staff"},{"name":"Sword"}]}}. By the nature of combinators and comparators you may switch them as well: {"or":{"contains":[{"name":"Staff"},{"name":"Sword"}]}}.

Finally, you may want to order the results. To do this you can add a top-level key named order and pass a list of keys to order by. Default order is ascending, you can prefix the field with a - to signify you want descending order. Using the previous request example: {"or":{"gte":{"magic":150,"attack":150}},"order":["-tier","name"]}.

Combinators

key value description
and list or object Default Combine portion of subquery with AND
or list or object Combine portion of subquery with OR

Comparators

Numeric

key value description
eq list or object Integer keys must match their value exactly
ne list or object Integer keys must not match their value exactly
gt list or object Integer keys must match greater than their value
gte list or object Integer keys must match greater than or equal to their value
lt list or object Integer keys must match less than their value
lte list or object Integer keys must match less than or equal to their value

String

All string comparators are case-sensitive, but have a matching i prefix available to turn on case-insensitive matching (iexact for example).

key value description
exact list or object String keys must match their value exactly
contains list or object String keys must contain their value as a substring
startswith list or object String keys must start with their value
endswith list or object String keys must end with their value

API Actions

Item

URI: /api/v1/item

Field key Value type Default lookup Description
id Integer eq Internal Orna.Guide ID
name String iexact Item name
tier Integer eq Item tier
type String iexact Item type (Curative, Weapon, Head, Armor, Legs, Accessory, Material, Item, Other)
boss Boolean - Item boss flag (True or False)
hp Integer eq Item HP (HP) stat
mana Integer eq Item Mana (Mana) stat
attack Integer eq Item Attack (Att) stat
magic Integer eq Item Magic (Mag) stat
defense Integer eq Item Defense (Def) stat
resistance Integer eq Item Resistance (Res) stat
dexterity Integer eq Item Dexterity (Dex) stat
element String iexact Item element (Arcane, Dark, Dragon, Earthen, Fire, Holy, Lightning, Water)
equipped_by String iexact Item can be equipped by type of class (Mage, Thief, Warrior)

Assess

URI: /api/v1/assess

id or name are required, if both are supplied id takes precedence. At least one stat is required. If none or multiple items are found, an error is returned. If level is not between 1 and 10, an error is returned.

Field key Value type Default lookup Description
id Integer eq Internal Orna.Guide ID
name String iexact Item name
level Integer eq Item level ([1,10])
hp Integer eq Item HP (HP) stat
mana Integer eq Item Mana (Mana) stat
attack Integer eq Item Attack (Att) stat
magic Integer eq Item Magic (Mag) stat
defense Integer eq Item Defense (Def) stat
resistance Integer eq Item Resistance (Res) stat
dexterity Integer eq Item Dexterity (Dex) stat

Class

URI: /api/v1/class

Field key Value type Default lookup Description
id Integer eq Internal Orna.Guide ID
name String iexact Class name
female_name String iexact Class female name
tier Integer eq Class tier
slots Integer eq Class skill slots
cost String iexact Class cost (orn or real money, hence string)

Specialization

URI: /api/v1/specialization

Field key Value type Default lookup Description
id Integer eq Internal Orna.Guide ID
name String iexact Class name
female_name String iexact Class female name
tier Integer eq Class tier
cost String iexact Class cost (orn or real money, hence string)

Skill

URI: /api/v1/skill

Field key Value type Default lookup Description
id Integer eq Internal Orna.Guide ID
name String iexact Skill name
tier Integer eq Skill tier
mana_cost Integer eq Skill mana cost
type String iexact Skill type (Attack, Buff, D.O.T., Debuff, Magic, Multi-round Attack, Multi-round Magic, Passive)
element String iexact Skill element (Arcane, Dark, Dragon, Earthen, Fire, Holy, Lightning, Physical, Water)

Pet

URI: /api/v1/pet

Field key Value type Default lookup Description
id Integer eq Internal Orna.Guide ID
name String iexact Pet name
tier Integer eq Pet tier
attack Integer eq Pet attack %
spell Integer eq Pet spell %
heal Integer eq Pet heal %
buff Integer eq Pet buff %
debuff Integer eq Pet debuff %

Monster

URI: /api/v1/monster

Field key Value type Default lookup Description
id Integer eq Internal Orna.Guide ID
name String iexact Monster name
tier Integer eq Monster tier
boss Boolean - Monster boss flag (True or False)
spawn String iexact Monster spawn (Day Only, Gauntlet Only, Night Only, Raid, Water Only)
weak_to String iexact Monster element weakness (Arcane, Dark, Dragon, Earthen, Fire, Holy, Lightning, Physical, Water)
resistant_to String iexact Monster element resistance (Arcane, Dark, Dragon, Earthen, Fire, Holy, Lightning, Physical, Water)
immune_to String iexact Monster element immunity (Arcane, Dark, Dragon, Earthen, Fire, Holy, Lightning, Physical, Water)

Quest

URI: /api/v1/quest

Field key Value type Default lookup Description
id Integer eq Internal Orna.Guide ID
name String iexact Quest name
tier Integer eq Quest tier
story Boolean - Quest story flag, False is NPC quests (True or False)

Achievement

URI: /api/v1/achievement

Field key Value type Default lookup Description
id Integer eq Internal Orna.Guide ID
name String iexact Achievement name
tier Integer eq Achievement tier ([1,5])

NPC

URI: /api/v1/npc

Field key Value type Default lookup Description
id Integer eq Internal Orna.Guide ID
name String iexact NPC name
tier Integer eq NPC tier

Errors

error field gives more details about exact nature of error.

HTTP Code Error Code Details
404 255 Invalid API action given
400 254 Request JSON invalid, unable to parse
400 1 Bad type for value (e.g. String passed where Integer expected)
400 2 Invalid key given to query
400 4 Invalid key given to order
400 17 No id or name given to assess action
400 18 Invalid level (out of range [1,10]) given to assess action
400 20 No stats were given to assess action
404 24 No item found in assess action
409 31 Multiple items found in assess action

Examples

curl -d '{"name":"Adamantine Staff"}' https://orna.guide/api/v1/item

{
  "name": "Adamantine Staff",
  "type": "Weapon",
  "materials": [
    {
      "name": "Adamantine",
      "id": 247
    }
  ],
  "id": 100,
  "stats": {
    "attack": {
      "grows_with_quality": true,
      "base": 30
    },
    "magic": {
      "grows_with_quality": true,
      "base": 105
    }
  },
  "description": "A staff crafted with adamantine.  Surely, it will never break.",
  "boss": false,
  "tier": 5
}

curl -d '{"id":100,"attack":114,"magic":407,"level":10}' https://orna.guide/api/v1/assess

{
  "tier": 5,
  "type": "Weapon",
  "description": "A staff crafted with adamantine.  Surely, it will never break.",
  "id": 100,
  "quality": "1.89",
  "name": "Adamantine Staff",
  "boss": false,
  "stats": {
    "magic": {
      "base": 105,
      "values": [
        199,
        241,
        261,
        282,
        303,
        324,
        344,
        365,
        386,
        407
      ],
      "grows_with_quality": true
    },
    "attack": {
      "base": 30,
      "values": [
        57,
        69,
        74,
        80,
        86,
        91,
        97,
        103,
        108,
        114
      ],
      "grows_with_quality": true
    }
  },
  "materials": [
    {
      "id": 247,
      "name": "Adamantine"
    }
  ]
}