RaiderIO / raiderio-addon

RaiderIO AddOn
https://raider.io/addon
Other
41 stars 22 forks source link
addon gaming mythic-plus raiderio tooltip warcraft-addon world-of-warcraft

Raider.IO Mythic Plus, Raiding, and Recruitment

This is a companion addon to go along with the Raiding, Recruitment, and Mythic+ Rankings site, Raider.IO: https://raider.io. With this addon installed, you'll gain access to an easy way to view Mythic Keystone scores, Raid Progress, and Recruitment status for players-- all without leaving the game!

Overview

Simply hover over a player with your mouse, your guild roster, or even the Group Finder list where you see queued people; if they meet the minimum qualifications then you'll see their score and best run in the tooltip.

Raider.IO Tooltip Example

Additionally, you can right-click players from the standard target unit frame to Copy Raider.IO URL and then easily look up their full profile on the site. With this functionality you can directly paste these URLs anywhere on Raider.IO to navigate to that player's profile page.

Recruitment

With the Raider.IO Recruitment features you can now also see whether a player is looking for a guild/team, or if they are recruiting for their own guild/team. This will show up as a line in the tooltip as follows:

Raider.IO Recruitment Example

You can right click on any player that is recruiting and hit Copy Recruitment URL to copy a URL that you can paste into your browser to view more details of the recruitment profile.

Because recruitment information can change regularly, we encourage people to use the Raider.IO Desktop Client to keep this data in sync.

If you have run into any problems, check out our FAQ at https://raider.io/faq, or join us on Discord at: https://discord.gg/raider in #addon-discussions -- we always have people around willing to help.

Become a Patron

Getting Started

The easiest way to get started is to use the RaiderIO Desktop Client: https://raider.io/addon

Once installed you can load into the game and you will start seeing Mythic+, Raiding, and Recruitment details on players around you. This AddOn works by storing a snapshot of character data from Raider.IO and then using that to populate information on qualified players.

To qualify for inclusion in a snapshot, players must meet specific criteria based on the type of data:

Mythic Plus

Raiding

Recruitment

Remember: We update the addon with the latest scores and top runs multiple times each day. Update regularly to ensure you are seeing the freshest information. Using the RaiderIO Desktop Client you can keep your addon updated automatically!

Detailed Addon Usage

Our intent with this AddOn is to provide an easy way for people to get some information at a glance when forming groups. There is no substitute for talking with your fellow players, so be a pal and listen if an applicant whispers you. These are the fields we show, and when we show them:

Character Raid & Mythic+ Tooltips

Raid information in tooltips simply lists the best progress seen for the player.

Mythic+ tooltips have a lot of parts to them:

Role icons included on Mythic+ tooltips can be thought of as badges earned by accumulating certain amounts of score while playing as that role. Fully opaque icons indicate they've earned at least 80% of their overall score in that role. Semi-transparent role icons indicate they have earned at least 40% of their overall score in that role.

Recruitment Tooltips

We currently determine the profile to show based on a priority order for the entity and activity type. Our overall rationale is that we want the most common organized activities to take precedence when choosing what to show in-game.

  1. Guild + Raiding (only recruiters)
  2. Guild + Guild Mythic+ (only recruiters)
  3. Team + Team Mythic+ (only recruiters)
  4. Character + Raiding
  5. Character + Guild Mythic+
  6. Character + Team Mythic+
  7. Guild + Guild PVP (only recruiters)
  8. Guild + Guild Social (only recruiters)
  9. Character + Guild PVP
  10. Character + Guild Social

Note: Anyone in your guild who has access to the Recruitment information will show your group's recruitment profiles in-game. Meaning, it is based on the roles given to each rank. These ranks will show the tooltip in game, and will also be able to access recruitment information on the site:

Character Profile Tooltips

You can view your personal M+ and Raid Progress profile when you open the Dungeon Finder. This will be shown as a large tooltip alongside the Dungeon Finder frame with additional details about your per-dungeon performance.

This can be used to help understand what dungeons you should try to focus on in order to raise your score.

Raider.IO Profile

By default when you are in the Dungeon Finder it will show your own profile. However, you can press a modifier key (Shift/Alt/Ctrl/Cmd) to show the target character's full profile instead. There is also a config option to invert this behavior.

Keystone Tooltips

You can view additional details when hovering over Mythic+ Keystone items, such as:

Group Search

You can pull up detailed information for all the characters in your group at once by utilizing the Raider.IO Group Search feature.

Raider.IO Group Search

This will then take you to the Raider.IO Advanced Search page for all the characters in your group.

Copy Character Raider.IO URL

This will take you to that character's profile page.

In-Game Character Search (Advanced)

Raider.IO In-Game Character Search

You can look up any character in the current database by using the /rio search command.

When you type this, you will be presented with a small frame where you can enter the realm name and character name to search for. If they are found, then their information will be pulled up and displayed.

You can type /rio search to hide the window.

Configuring the AddOn

Our recommended settings are enabled by default, but we've provided several options to customize how and where the tooltips might show while in-game. Type /raiderio to open the Raider.IO options frame. Alternatively, you can also find a shortcut in the Interface > AddOn settings frame.

Here you can easily enable or disable various features, including whether to show scores from each faction, and various tooltip customization options.

Remember to click "Save" to save the changes, or "Cancel" to abort and close the dialog.

Score Color Tiers

Scores map to a specific color based on their range. We've followed the standard WoW quality colors, but added additional gradients between the base values to provide more brackets to ascend through. These tiers are recalculated based on actual scores.

Patreon Rewards

Interested in supporting development of Raider.IO and getting some rewards while you're at it? We offer multiple levels of rewards.

Friendly:

Honored:

Revered:

Exalted:

Become a Patron

Developer API

We love our fellow developers! We wanted to provide anyone in the community a simple way to tap into the scores that are a part of this addon. Addon developers can do this by utilizing the RaiderIO table to access certain APIs we provide.

If the documentation is out-of-date you can also get a lot of information straight from the source code. A lot of the functionality is annotated for the sake of the lua language server extension in vscode.

RaiderIO.GetProfile

These functions return nil or a RaiderIOProfile table.

RaiderIO.GetProfile("target")
RaiderIO.GetProfile("Name", "Realm"[, region])

RaiderIOProfile

This table contains data depending on what providers are loaded. This documentation is not complete, there are several internal values but they are all based on the core data that is documented below.

{
  success = boolean
  region = "us" | "kr" | "eu" | "tw" | "cn"
  faction = 1 | 2
  name = "Name"
  realm = "Realm"
  mythicKeystoneProfile = RaiderIOMythicKeystoneProfile | nil
  raidProfile = RaiderIORaidProfile | nil
  recruitmentProfile = RaiderIORecruitmentProfile | nil
}
RaiderIOMythicKeystoneProfile
{
  hasRenderableData = boolean - if false pretend the table was nil instead (the database is outdated so we don't want to show inaccurate data)
  currentRoleOrdinalIndex = number
  currentScore = number
  fortifiedDungeons = number[]
  fortifiedDungeonTimes = number[]
  fortifiedDungeonUpgrades = number[]
  fortifiedMaxDungeon = RaiderIOMythicKeystoneDungeon
  fortifiedMaxDungeonIndex = number
  fortifiedMaxDungeonLevel = number
  keystoneFifteenPlus = number
  keystoneFivePlus = number
  keystoneTenPlus = number
  keystoneTwentyPlus = number
  mainCurrentRoleOrdinalIndex = number
  mainCurrentScore = number | nil
  mainPreviousRoleOrdinalIndex = number
  mainPreviousScore = number | nil
  mainPreviousScoreSeason = number
  mplusCurrent = RaiderIOMythicKeystoneRoleInfo
  mplusMainCurrent = RaiderIOMythicKeystoneRoleInfo
  mplusMainPrevious = RaiderIOMythicKeystoneRoleInfo
  mplusPrevious = RaiderIOMythicKeystoneRoleInfo
  previousRoleOrdinalIndex = number
  previousScore = number
  previousScoreSeason = number
  sortedDungeons = RaiderIOMythicKeystoneDungeonProfile[]
  sortedMilestones = Milestone[]
  tyrannicalDungeons = number[]
  tyrannicalDungeonTimes = number[]
  tyrannicalDungeonUpgrades = number[]
  tyrannicalMaxDungeon = RaiderIOMythicKeystoneDungeon
  tyrannicalMaxDungeonIndex = number
  tyrannicalMaxDungeonLevel = number
  -- metatable data dynamically assigned depending on the weekly affix
  dungeons = number[]
  dungeonTimes = number[]
  dungeonUpgrades = number[]
  maxDungeon = RaiderIOMythicKeystoneDungeon
  maxDungeonIndex = number
  maxDungeonLevel = number
}
RaiderIOMythicKeystoneDungeonProfile
{
  dungeon = RaiderIOMythicKeystoneDungeon
  level = number
  chests = 0 | 1 | 2 | 3
  fractionalTime = number - between 0.0 and 1.0
}
RaiderIOMythicKeystoneDungeon
{
  index = number
  id = number
  instance_map_id = number
  keystone_instance = number
  lfd_activity_ids = number[]
  name = string
  shortName = string
  shortNameLocale = string
  timers = number[]
}
RaiderIOMythicKeystoneRole
{
  [1] = "tank" | "healer" | "dps
  [2] = "full" | "partial"
}
RaiderIOMythicKeystoneRoleInfo
{
  roles = RaiderIOMythicKeystoneRole[]
  score = number
  season = number | nil
}
RaiderIORaidProfile
{
  hasRenderableData = boolean - if false pretend the table was nil instead (the database is outdated so we don't want to show inaccurate data)
  progress = RaiderIORaidProfileProgress[]
  previousProgress = RaiderIORaidProfileProgress[]
  sortedProgress = RaiderIORaidProfileSortedProgress[]
  raidProgress = RaiderIORaidProfileRaidProgress[]
}
RaiderIORaidProfileProgress
{
  difficulty = 1 | 2 | 3
  progressCount = number
  raid = RaiderIORaidProfileRaid
  killsPerBoss = table<bossIndex, killCount>
}
RaiderIORaidProfileSortedProgress
{
  isMainProgress = boolean
  isProgress = boolean
  isProgressPrev = boolean
  obsolete = boolean
  progress = RaiderIORaidProfileProgress[]
  tier = number
}
RaiderIORaidProfileRaidProgressInfo
{
  count = number
  difficulty = number
  killed = boolean
}
RaiderIORaidProfileRaidProgress
{
  current = boolean
  fated = string
  progress = RaiderIORaidProfileRaidProgressInfo
  progressCount = number
  raid = RaiderIORaidProfileRaid
  show = boolean
}
RaiderIORaidProfileRaidDungeon
{
  index = number
  id = number
  instance_map_id = number
  lfd_activity_ids = number[]
  name = string
  shortName = string
  shortNameLocale = string
}
RaiderIORaidProfileRaid
{
  dungeon = RaiderIORaidProfileRaidDungeon
  id = number
  mapId = number
  name = string
  shortName = string
  bossCount = number
  ordinal = number
}
RaiderIORecruitmentProfile
{
  hasRenderableData = boolean - if false pretend the table was nil instead (the database is outdated so we don't want to show inaccurate data)
  entityType = number
  title = string[] - this locale key will yield the actual label from the locale table
  titleIndex = number
  tank = boolean
  healer = boolean
  dps = boolean
}

RaiderIO.ShowProfile

Updates a tooltip widget and appends the character profile just like how RaiderIO does to the regular tooltips. This function uses the same arguments as RaiderIO.GetProfile except the first is the tooltip widget.

RaiderIO.ShowProfile(tooltip, ...) => true | false - depending on if the tooltip was altered or not

RaiderIO.GetScoreColor

Returns the colors for a given score.

RaiderIO.GetScoreColor(score) => red, green, blue - in the range of 0.0 to 1.0

Deprecated

Please refrain from using these API as they will be removed in future updates.

RaiderIO.ProfileOutput
RaiderIO.TooltipProfileOutput
RaiderIO.DataProvider
RaiderIO.HasPlayerProfile
RaiderIO.GetPlayerProfile
RaiderIO.ShowTooltip
RaiderIO.GetRaidDifficultyColor
RaiderIO.GetScore