• Stars
    star
    118
  • Rank 298,564 (Top 6 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 7 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

💰 Warframe Drop Data in an easier to parse format.

warframe-drop-data

Supported by the Warframe Community Developers Discord

Warframe drop data in an easier to parse format.

NOTE: This data is parsed from Digital Extremes official drop data website, no data mining was involved.

Web UI & URL

screenshot

There is an experimental searchable web ui available at http://drops.warframestat.us

"API Endpoints"

You can access the data via normal HTTP requests, which makes it usable like an API without really being one.

/data/all.json

All data from the website in one single file.

Data structure:

{
  "blueprintLocations": [ { ... } ],
  "cetusBountyRewards": [ { ... } ],
  "enemyBlueprintTables": [ { ... } ],
  "enemyModTables": [ { ... } ],
  "keyRewards": [ { ... } ],
  "missionRewards": { "Earth": { ... } },
  "modLocations": [ { ... } ],
  "relics": [ { ... } ],
  "sortieRewards": [ { ... } ],
  "transientRewards": [ { ... } ],
  "solarisBountyRewards" : [ { ... } ],
  "zarimanRewards": [ { ... } ],
  "syndicates": [ { ... }],
}

/data/info.json

The metadata of the current build. Updates when Digital Extremes' website is updated.

Legend:

  • Hash: An MD5 hash generated from the drop data page.
  • Timestamp: The timestamp at which the build was generated by us.
  • Modified: The timestamp at which the drop data page was last modified by DE.

Data structure:

{
  "hash": "d47a826e5c3a8dc7a37fe6f468f41a57",
  "timestamp": 1524933993968,
  "modified": 1524690737000
}

/data/missionRewards.json

All mission rewards, like what drops where and in which rotation. (Source)

Data structure:

"missionRewards": {
  "Sedna": {
    "Hydron": {
      "gameMode": "Defense",
      "isEvent": false,
      "rewards": {
        "A": [
          {
            "_id": "c0400ac7082c2f3d811e47ca9b7a8ae8",
            "itemName": "Vitality",
            "chance": 11.11,
            "rarity": "Uncommon"
          },
          { ... }
        ],
        "B": [ ... ]
      }
    },
    "Bere": { ... }
  },
  "Earth": { ... }
}

/data/missionRewards/$PLANET_NAME/$PLACE.json

Drop data for a specific location. Example: /data/missionRewards/Eris/Xini.json.

Data structure:

"Hydron": {
  "gameMode": "Defense",
  "isEvent": false,
  "rewards": {
    "A": [
      {
        "_id": "c0400ac7082c2f3d811e47ca9b7a8ae8",
        "itemName": "Vitality",
        "chance": 11.11,
        "rarity": "Uncommon"
      },
      { ... }
    ],
    "B": [ ... ]
  }
}

/data/relics.json

All relics, what they contain, rarity etc. (Source)

Data structure:

"relics": [
  {
    "_id": "4e4d817f8c2d887316c6d8add253403e",
    "tier": "Axi",
    "relicName": "A1",
    "state": "Intact",
    "rewards": [
      {
        "_id": "6733cc5298452209aa29dd72027c7df1",
        "itemName": "Akstiletto Prime Barrel",
        "chance": 11,
        "rarity": "Uncommon"
      },
      { ... }
    ]
  },
  { ... }
]

/data/relics/$TIER/$RELIC_NAME.json

Data for a specific relic. Example: /data/relics/Axi/R1.json.

Data structure:

{
  "_id": "4e4d817f8c2d887316c6d8add253403e",
  "tier": "Axi",
  "relicName": "A1",
  "state": "Intact",
  "rewards": {
    "Intact": [
      {
        "_id": "6733cc5298452209aa29dd72027c7df1",
        "itemName": "Akstiletto Prime Barrel",
        "chance": 11,
        "rarity": "Uncommon"
      },
      { ... }
    ],
    "Exceptional": [ ... ]
  }
}

/data/transientRewards.json

Rewards not tied to a specific location, like mods dropped by Nightmare Mode missions. (Source)

Data structure:

"transientRewards": [
  {
    "_id": "b3c734177040ffb494609a27d87d4841",
    "objectiveName": "Derelict Vault",
    "rewards": [
      {
        "_id": "24a4a903a7846a300d6b04e914e52e1b",
        "itemName": "Anemic Agility",
        "chance": 4.17,
        "rarity": "Rare"
      },
      { ... }
    ]
  },
  { ... }
]

/data/sortieRewards.json

Sortie rewards. (Source)

Data structure:

"sortieRewards": [
  {
    "_id": "b3c734177040ffb494609a27d87d4841",
    "itemName": "4000 Endo",
    "chance": 12.1,
    "rarity": "Uncommon"
  },
  { ... }
]

/data/modLocations.json

Mod drops sorted by mod. (Source)

Data structure:

"modLocations": [
  {
    "_id": "b3c734177040ffb494609a27d87d4841",
    "modName": "Accelerated Deflection",
    "enemies": [
      {
        "_id": "68cfde6d20b38ba62b412b48c440a7a0",
        "enemyName": "Arcane Boiler",
        "enemyModDropChance": 3,
        "chance": 7.37,
        "rarity": "Rare"
      },
      { ... }
    ]
  },
  { ... }
]

/data/enemyModTables.json

Mod drops sorted by enemy. (Source)

Data structure:

"modLocations": [
  {
    "_id": "2757006e018c952e40a6e3cf74048420",
    "enemyName": "002-Er",
    "enemyModDropChance": "10.00",
    "mods": [
      {
        "_id": "74ab77f66f97e146b6cef713a370e105",
        "modName": "Flux Overdrive",
        "chance": 12.5,
        "rarity": "Uncommon"
      },
      { ... }
    ]
  },
  { ... }
]

/data/enemyBlueprintTables.json

Blueprints and part drops sorted by enemy. (Source)

Data structure:

"enemyBlueprintTables": [
  {
    "_id": "6ba71181fe67be210250c59fdf06ecb8",
    "enemyName": "Arid Heavy Gunner",
    "enemyItemDropChance": "1.00",
    "items": [
      {
        "_id": "9568cc883b465bc94c14e0d206506b2d",
        "itemName": "Gorgon Blueprint",
        "chance": 100,
        "rarity": "Common"
      },
      { ... }
    ]
  },
  { ... }
]

/data/blueprintLocations.json

Blueprints and part drops sorted by item. (Source)

Data structure:

"blueprintLocations": [
  {
    "_id": "2d200b684ad2bac2184a5edc3a9655cb",
    "itemName": "Ash Chassis Blueprint",
    "enemies": [
      {
        "_id": "02ca12683663224f017f209954cb876a",
        "enemyName": "Grineer Manic",
        "enemyItemDropChance": 33,
        "chance": 38.72,
        "rarity": "Common"
      },
      { ... }
    ]
  },
  { ... }
]

/data/cetusBountyRewards.json

Drop data for Cetus bounty missions. (Source)

Data structure:

"cetusBountyRewards": [
  {
    "_id": "0b9c958b277561c57f47390f5db201ef",
    "bountyLevel": "Level 10 - 30 Bounty",
    "rewards": {
      "A": [
        {
          "_id": "2d220168d8505314316354e586fe4c7e",
          "stage": "Stage 1",
          "itemName": "100 Endo",
          "chance": 25,
          "rarity": "Uncommon"
        },
        { ... }
      ],
      "B": [ ... ]
    }
  },
  { ... }
]

/data/zarimanRewards.json

Drop data for Zariman bounty missions. (Source)

Data structure:

"zarimanRewards": [
  {
    "_id": "255771097c27769a3a76bfa38c9fba49",
    "bountyLevel": "Level 50 - 55 Zariman Bounty",
      "rewards": {
        { ... }
        "C": [
          {
            "_id": "d5ccc328b76d91df416cc361d2209c1f",
            "itemName": "15,000 Credits",
            "rarity": "Uncommon",
            "chance": 17.39,
            "stage": "Final stage"
          },
        { ... }
      ],
    }
  },
  { ... }
]

/data/syndicates.json

Drop data for syndicate vendors. Generated by data from the Warframe Wikia.

Data structure:

{
  "syndicates": {
    "Steel Meridian": [
      {
        "_id": "d765637f1f1ae09add1b5265f5d29ea1",
        "item": "Steel Meridian Sigil",
        "chance": 100,
        "rarity": "Common",
        "place": "Steel Meridian, Brave",
        "standing": 1000
      },
      { ... }
    ],
    { ... }
  },
}

/data/miscItems.json

Miscellanous enemy item drops. (Source)

Data structure:

"miscItems": [
  {
    "_id": "abce816f002a752c88308d5f6658427c",
    "enemyName": "Akkalak Turret",
    "enemyItemDropChance": "70.00",
    "items": [
      {
        "_id": "a3ab4147ff1f344ae81bc8fd301a4ba5",
        "itemName": "Circuits",
        "chance": 68.02,
        "rarity": "Common"
      },
      { ... }
    ]
  },
  { ... }
]

/data/builds/builds.json

A list of available builds and their timestamps.

Data structure:

[
  {
    "hash": "d47a826e5c3a8dc7a37fe6f468f41a57",
    "timestamp": 1524933993968,
    "modified": 1524690737000
  },
  { ... }
]

/data/builds/{hash}.json

The all.json file of the given hash. Other files, such as missionRewards.json are not available for previous builds.

Data structure:

{
  "blueprintLocations": [ { ... } ],
  "cetusBountyRewards": [ { ... } ],
  "enemyBlueprintTables": [ { ... } ],
  "enemyModTables": [ { ... } ],
  "keyRewards": [ { ... } ],
  "miscItems": [ { ... } ],
  "missionRewards": { "Earth": { ... } },
  "modLocations": [ { ... } ],
  "relics": [ { ... } ],
  "sortieRewards": [ { ... } ],
  "transientRewards": [ { ... } ]
}

For Developers

Dependencies

Usage

You can run the build script with npm run build.

Once built, serve the Web UI with npm run serve:dev.

Syndicate drop data

Syndicate drop data is scraped from the wiki and not from the drops site as the rest of the data.

The syndicate data needs to be scraped from different pages, one for each syndicate which could also contain multiple sections containing the drop data. To make this possible a declarative configuration has been created within lib/syndicates.js where you can define all of this in the following format:

/**
 * @typedef {Object} SyndicateMapperResult
 * @property {_id} _id Unique hash of the item
 * @property {string} item The name of the item
 * @property {number} chance The dropchance of the item
 * @property {string} rarity The rarity of the item
 * @property {string} place The location where the item drops
 */
/**
 * @typedef {function} SyndicateMapper
 * @param {module:cheerio/CheerioAPI} $ cheerio interface
 * @param {string} element Current element
 * @param {string} syndicate Name of the Syndicate
 * @param {string} [section] Section title - potentially empty
 * @returns {SyndicateMapperResult}
 */
/**
 * @typedef {Object} SyndicateSection
 * @property {string} [title] Indicates the name of the specific vendor
 * @property {string} selector jQuery selector used to find the elements you want to map
 * @property {SyndicateMapper} [mapper] Used to map these elements. If not provided, a default mapped is used 
 */
/**
 * @typedef {Object} SyndicateConfig
 * @property {string} name Name of the Syndicate (should match the wiki)
 * @property {string} url The wiki url of the syndicate
 * @property {SyndicateSection[]} sections These will be parsed and mapped into json data
 */

/** @type {Array<SyndicateConfig>} */
const SYNDICATES = [
  {
    name: 'Steel Meridian',
    url: 'https://warframe.fandom.com/wiki/Steel_Meridian',
    sections: [
      { selector: '#mw-customcollapsible-SteelMeridian > div > div' },
    ],
  },
  {
    name: 'Entrati',
    url: 'https://warframe.fandom.com/wiki/Entrati',
    sections: [
      { title: 'Father', selector: '#mw-customcollapsible-Father > div > div' },
      { title: 'Daughter', selector: '#mw-customcollapsible-Daughter > div > div' },
      { title: 'Son', selector: '#mw-customcollapsible-Son > div > div' },
      { title: 'Otak', selector: '.flex-container:eq(3) > div' },
      { title: 'Grandmother', selector: '#mw-customcollapsible-Grandmother #gallery-1 > div', mapper: galleryMapper },
    ],
  },
  { ... }
];

Mappers

A mapper is a function that maps a singular element (found by the selector) to a json object. The mapper receives the following arguments: the cheerio object, the current element, name of the syndicate, section title (can be empty). The return type should at least contain the following information:

/**
 * @typedef {Object} SyndicateMapperResult
 * @property {_id} _id Unique hash of the item
 * @property {string} item The name of the item
 * @property {number} chance The dropchance of the item
 * @property {string} rarity The rarity of the item
 * @property {string} place The location where the item drops
 */

Any additional properties will be added into the final result but won't show up in the slim json file.

Disclaimer

This list represents data and drops from the PC version of the Free-to-play game Warframe. That's right - Warframe is free! Which means our drop system is designed to maintain a balance. Our free players can earn the game's content, and our paying players who support us (and keep the game running) usually get first dibs on the content by using Platinum (which can be traded to free players)! As far as we can tell... we are the first developers to openly post something quite like this. Let's hope it works out for us and we set a trend.

This is automatically generated from our internal data but this data comes with no guarantees -- do not expect it to be comprehensive for how complex the game is. This list will be maintained by an automated process which will be published with Updates (not all Hotfixes). We update often and new game systems may or may not be covered here. This list can be discussed here. Know a free-to-play game that provides official drop rates in a different way? We'd love to know.

License

MIT

More Repositories

1

warframe-items

📘 Get all Warframe items directly from Warframe's API. No more messy wikia scraping.
JavaScript
272
star
2

WFinfo

💻 A fissure Companion App for Warframe
C#
216
star
3

genesis

🤖 Warframe Discord Cephalon
JavaScript
95
star
4

warframe-hub

📘 Warframe hub strives to be the community center of the Warframe game
JavaScript
81
star
5

warframe-worldstate-parser

📗 An Open parser for Warframe's Worldstate in Javascript
JavaScript
53
star
6

warframe-worldstate-data

📦 A repository of Warframe data for use with warframe-worldstate-parser
JavaScript
53
star
7

warframe-status

☁️ Simple express app that parses worldState.php
JavaScript
39
star
8

navis

Cephalon Navis is an app inspired by Warframe Hub.
Dart
26
star
9

Warframe.NET

Under rewrite: Collection of Warframe libraries for C# developers.
C#
23
star
10

warframe.py

an asynchronous API wrapper for Warframe.
Python
12
star
11

warframe-discord-emoji

Emoji For Warfame Community Discords
12
star
12

Warframe.js

A JavaScript API Wrapper for Warframes WorldState Data
JavaScript
11
star
13

warframe-rewards-evaluator

Never worry about picking the right relic reward again, get fresh item ratings with ease! 💸😎
TypeScript
7
star
14

warframe-deathlog

Parser and logger for EE.log events
JavaScript
7
star
15

arsenal-parser

Parser for Warframe Arsenal data
JavaScript
7
star
16

warframe-wikia-scrapers

Scrapes data from the Warframe Wikia and converts to JSON for reuse in other community projects
Lua
6
star
17

Mod-Detection-Tools

Tool(s) for tinkering with specific settings to help identify mods using OpenCV
Java
6
star
18

warframe-patchlogs

📃 All warframe patchlogs parsed to more usable JSON. Also lets you find all patchlogs for a specific item.
JavaScript
5
star
19

warframe-relic-data

📝 Easy to parse data for Relics in Warframe
TypeScript
5
star
20

warframe-nexus-query

📗 Simple query library for warframe.market
JavaScript
5
star
21

warframe.rs

An async crate to interact with the warframestat.us and the warframe.market API.
Rust
4
star
22

mod-generator

Generate mod images using warframe-items
TypeScript
4
star
23

genesis-assets

Shared Static Image Assets
HTML
4
star
24

warframe-name-generator

📦 Little name generator for Warframe
JavaScript
3
star
25

warframe-updates

☁️ Checks for patch deployments in Warframe.
JavaScript
3
star
26

profile-parser

JavaScript
3
star
27

warframe-alerts-win

Windows C# app tracking Warframe Alerts
C#
3
star
28

market-api-spec

📘 API specification repo for Warframe.Market
HTML
3
star
29

genesis-landing-page

New landing page for genesis based on orels1/landing-discord-red
Pug
2
star
30

warframe-university-guides

2
star
31

banner

Banner for use with Supported community Dev projects
2
star
32

eslint-config

Shareable eslint configuration for
JavaScript
1
star
33

tennotv-api

☁️ Simple express app for middleware for tenno.tv
JavaScript
1
star
34

api-spec

OpenAPI Specifications for WarframeStat.us API
CSS
1
star
35

warframe-patchnotes-redirect

Redirects [platform-name].warframestat.us to the newest changelog for said platform.
PHP
1
star
36

worldstate-emitter

Super simple emitter for Warframe data
JavaScript
1
star
37

mod-detection-api

Java
1
star
38

warframe-forum-dark

A dark reskin for the Warframe forums
CSS
1
star
39

warframe-location-query

JavaScript
1
star
40

wfcd-name-forge

📖 Electron app for generating Warframe Names
HTML
1
star
41

tennotv

📺 Location for contribution and Issue management
JavaScript
1
star
42

warframestat_client

Dart
1
star