All Projects → gatheringhallstudios → Mhworlddata

gatheringhallstudios / Mhworlddata

Licence: mit
Generate a SQLite file from MHW data

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Mhworlddata

Deveeldb
DeveelDB is a complete SQL database system, primarly developed for .NET/Mono frameworks
Stars: ✭ 80 (-27.27%)
Mutual labels:  database, data
Prisma
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite & MongoDB (Preview)
Stars: ✭ 18,168 (+16416.36%)
Mutual labels:  database, sqlite
Wcdb
WCDB is a cross-platform database framework developed by WeChat.
Stars: ✭ 9,264 (+8321.82%)
Mutual labels:  database, sqlite
Ebean
Ebean ORM
Stars: ✭ 1,172 (+965.45%)
Mutual labels:  database, sqlite
Nycdb
Database of NYC Housing Data
Stars: ✭ 94 (-14.55%)
Mutual labels:  database, data
Locopy
locopy: Loading/Unloading to Redshift and Snowflake using Python.
Stars: ✭ 73 (-33.64%)
Mutual labels:  database, data
Room Persistence Sample
Implementation of Room Persistence Library
Stars: ✭ 88 (-20%)
Mutual labels:  database, sqlite
Pypika
PyPika is a python SQL query builder that exposes the full richness of the SQL language using a syntax that reflects the resulting query. PyPika excels at all sorts of SQL queries but is especially useful for data analysis.
Stars: ✭ 1,111 (+910%)
Mutual labels:  builder, data
Awesome Bigdata
A curated list of awesome big data frameworks, ressources and other awesomeness.
Stars: ✭ 10,478 (+9425.45%)
Mutual labels:  database, data
Qtl
A friendly and lightweight C++ database library for MySQL, PostgreSQL, SQLite and ODBC.
Stars: ✭ 92 (-16.36%)
Mutual labels:  database, sqlite
Sqlite Web
Web-based SQLite database browser written in Python
Stars: ✭ 1,169 (+962.73%)
Mutual labels:  database, sqlite
Reactiveandroid
🚀 Simple and powerful ORM for Android
Stars: ✭ 102 (-7.27%)
Mutual labels:  database, sqlite
D2sqlite3
A small wrapper around SQLite for the D programming language
Stars: ✭ 67 (-39.09%)
Mutual labels:  database, sqlite
Pyrustic
Lightweight framework and software suite to help develop, package, and publish Python desktop applications
Stars: ✭ 75 (-31.82%)
Mutual labels:  database, sqlite
Dbmigrations
A library for the creation, management, and installation of schema updates for relational databases.
Stars: ✭ 67 (-39.09%)
Mutual labels:  database, sqlite
Electrocrud
Database CRUD Application Built on Electron | MySQL, Postgres, SQLite
Stars: ✭ 1,267 (+1051.82%)
Mutual labels:  database, sqlite
Nodbi
Document DBI connector for R
Stars: ✭ 56 (-49.09%)
Mutual labels:  database, sqlite
Sql.js
A javascript library to run SQLite on the web.
Stars: ✭ 9,594 (+8621.82%)
Mutual labels:  database, sqlite
Entityworker.core
EntityWorker is an object-relation mapper(ORM) that enable .NET developers to work with relations data using objects. EntityWorker is an alternative to entityframwork. is more flexible and much faster than entity framework.
Stars: ✭ 91 (-17.27%)
Mutual labels:  database, sqlite
Datastore
🐹 Bloat free and flexible interface for data store and database access.
Stars: ✭ 99 (-10%)
Mutual labels:  database, data

build

MHWorldData

A project used to generate a database from Monster Hunter World data. This database file is used to power the MHWorld Database Android app, but can be used for other purposes as well.

Check the releases section for compiled SQLite db files. There is no documentation for the db file, instead use a graphical tool like SQliteBrowser or figure it out from the mapping file. The data we build from is in the source_data folder.

Now that the game has launched for PC, the core maintainer has started in earnest. If you want to help speed up the process, please check out the help wanted section.

If you wish to chat with us, we also have a discord server.

Iceborne Update (Help Wanted)

I've started playing through the Iceborne PC launch, and while I'll have all data eventually, some help would definitely go a long way. Any help would be appreciated, but additions or corrections to these are some great examples:

  • Any monster data - Ailments, rewards, as well as corrections to weaknesses are all needed. Reward entries without a percentage value are ok at this stage.
  • Items and icon mappings - If any items are missing on that list, feel free to add them. We're also missing item icon names and colors. Note that item icons are a limited selection, so try to reuse existing names if possible.
  • Or really anything else you see.

Purpose and goals

This project exists as a free and open collection of Monster Hunter World data for people to build cool things with. We use this data in the (also open source) MHWorldDatabase Android app.

There are very few open collections of Monster Hunter data out there, and assembling what we have added a significant amount of time to the app's development process. Hopefully this database can spare you some of that trouble.

The data collected is limited to observable or computable data. Handwritten guides and editorial content are not collected in the repository.

How to contribute

This project sources most of its data from spreadsheets in the source_data/ folder. If you want to contribute a code change, inspect build.py in the root folder and follow the import trail.

If you are unable to work Git but have data corrections or translations to contribute, you can create a Github Issue with the new file or share a link to a google drive spreadsheet.

MISSING (Important Todo)

This is data we'd love to receive help towards.

  • Gathering Data is incomplete. Requires a thorough examination of in game for different items.
  • Unlock conditions for special items like mantles, and base camps, including deliveries.
  • Weapon motion value data
  • (Developer) A refactor to schema validation to allow multi-stage validation. There are certain validations that we'd love to skip during merge routines but perform during database building. Right now we lack that degree of control and we need to add dummy data or not validate at all.

Data Structure

The data files in source_data/ are used to build the final SQL file. The project is in the middle of a conversion from JSON to CSV, so some files are still JSON.

To edit the CSV files, I suggest using an office program like Excel or LibreOffice. Make sure to use UTF8 text encoding and comma separators when opening files. You can also import it to google drive.

Each subsystem (Monster/Armor/Weapons/etc) is stored in its own subdirectory. There are several types of data files:

  • type_base.csv: A names and basic data registry containing the names of different objects of that type for each supported language, as well as any additional base data.
  • type_base_translations.csv: An extension of a base file that adds translated names and potentially descriptions to the main base file.
  • type_data.csv: Additional data key'd by the name of the owning type. These are used when the type can have many data, like a monster can have many hunting rewards.
  • type_ext.csv: Extension data that adds additional data to the type. This is used when each type can be optionally extended, such as a weapon that may be a bowgun and has bowgun ammo.

How to build

Make sure Python 3.6 or greater is installed on your system, and pipenv is installed (pip install pipenv).

  • Open a console window in the root project directory (shift+rightclick or cd to navigate to it)
  • pipenv --python 3.8 to setup the environment. Make sure its using python 3.6 or greater.
  • pipenv install to install all dependencies.
  • pipenv shell to activate the environment

Afterwards, run pipenv run python build.py in a terminal to generate an mhw.sql file. You can run the tests by executing pipenv run pytest tests. You will need to use pipenv shell everytime you open a new console window.

Merging ingame binaries

This project uses fresch's mhw_armor_edit to parse ingame binary data. To use it, follow the directions in fresch's repository to create a merged chunk data folder (make sure you own a copy of Monster Hunter World...), rename it to mergedchunks, and move it outside the project (to the same directory this project is contained in). Afterwards, run pipenv run python binary.py update.

The directory structure should approximately look like this:

-- any parent directory
 |-- mhworlddata/
  |-- mhdata/
  |-- mhw_armor_edit/
  |-- build.py
 |-- mergedchunks/

Data Sources

The data collected by this project is an accumulation of various sources, including manual entry from the game itself, official guidebooks, and other collections.

License

The build code is licensed under the MIT License. Data and images are from Monster Hunter World, which is owned by Capcom.

The mhw_armor_edit/ folder and its contents are public domain. Instead of our silly little extraction, feel free to access the real deal here.

You are free to use this database for any purpose.

Special Credits

  • Asterisk - For work in the modding community and completing Leshen Hitzones
  • Deathcream - For figuring out many of the file formats
  • MechE - For assembling an awesome spreadsheet of monster hitzones.
  • Kurohonyon - Leshen Hitzones (except for ice weakness, which was missing)
  • Hexhexhex - For releasing certain monster hitzone data.
  • Material - For releasing AT Kulve drop rates.
  • LartTyler - For creating a collection of data that allows others to pull from
  • Vocalonation - For helping with translating and crossvalidating data.
  • Fuzzle/David - Additional data from spreadsheets (items/monster breaks/etc)
  • TanukiSharp - For creating a computer usable collection of sharpness data and allowing others to use it. His original project is here
  • DiscreetMath - For streaming the game to me as I copied data down, while I waited for the PC release.

Additional help with verifying data was done by nikibobi and Jayson.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].