Skip to content

jpegzilla/bdo-alchemy-profits

Repository files navigation

bdo (market) alchemy profit tool

gem version

contents


this is a tool that searches the central market for potions and other items that you can make profit on just by buying all the ingredients and selling the result. of course, sometimes there are very few! but they're typically very low volume, limiting total profits. BUT, if there are any, this tool will find them! all you have to do is select your configuration and the tool will do the rest:

example of tool configuration options

it assumes

  • you have high enough alchemy mastery (artisan 1) for max procs on recipes that are affected, such as bloods and elixirs.
  • you have minimum alchemy time (1s)

here is some example output:

an example readout from the script

a lot of the outputs from this script that look particularly promising are what I like to refer to as "lies". you can tell this entry is a lie because:

  • the silver per hour is too good to be true (and way too good to be an alchemy recipe), although theoretically possible in the ridiculous circumstance that celerity draughts become indispensable and you sell all of the ones you make within the hour
  • the total trades are only about 1 million, which marks this item as insanely unpopular

here's an example of a "good" output:

an example promising readout from the script

this takes into account market tax and shows the gross potential profit as well as the taxed profit - but it currently assumes you have the value pack and that your fame is level 1 (family fame >= 1000). this is, for all practical purposes — for better or for worse — a very safe assumption.

it will also tell you the maximum possible amount of items you can craft (by buying all the available ingredients). if an npc sells the item you need, that will be listed as well.

an example listing some ingredients sold by npcs.

finally, if you really want to make a quick profit on the market, you basically have to go out and gather super rare ingredients yourself. if you can sap all fifteen thornwood trees on the map or pick all three truffle mushrooms, you'll be rolling in cash! and if you really wanna make the big bucks, head to tunkuta! I'm sure you'll have no trouble at all crafting those 10+ million silver potions if you get some turo blood and hearts...although it seems like 99% of turos must be heartless, bloodless vampires or something. or you could harvest 10000 delotia and get a handful of remnants of burnt spirits for corrupt oil of immortality ;P

good luck!

how to use

important note: you'll first need to provide your own requestVerificationToken.

how will you do this? first, navigate to your region's version of the central market website. for me, this is https://na-trade.naeu.playblackdesert.com/.

open the developer tools. if you're using chrome, press F12. navigate to the network tab and reload the page. you're looking for a request for hot, GetWorldMarketHotList or GetMyWalletList. click on the request and then the list of headers. you need the cookies from that request. feel free to use the search bar in devtools (sometimes called "filter") if you can't find it. then, copy the __RequestVerificationToken. its location will be somewhere like this:

how to retrieve your request verification cookie token. click on the request and look in the request headers for the cookie

then navigate back to the console. paste in this javascript snippet exactly:

`__RequestVerificationToken=${[...document.querySelectorAll("input[name='__RequestVerificationToken']")].map(e => e.value)[0]}`

this will locate the first input with the __RequestVerificationToken name attribute and output the token's name for you to copy.

rename the environment.sample.rb file to environment.rb. then, paste in the two tokens you just copied. the one you got from the network tab should go after ENV['rvt_cookie'] and the one from the console should go after ENV['rvt_dom']. your environment.rb file should look something like this:

ENV['rvt_cookie'] = '__RequestVerificationToken=4532tgvber2435...'
ENV['rvt_dom'] = '__RequestVerificationToken=rfaerveru2348b...'

gem

I made a gem out of this called bdoap. if you have ruby 3.1 installed then you're ready to go. just run gem install bdoap. then, run bdoap or gem exec bdoap.

source code

if you have ruby 3.1 installed on your computer, you can use the source code.

  1. git clone git@github.com:jpegzilla/bdo-alchemy-profits.git
  2. cd bdo-alchemy-profits
  3. install rake (gem install rake)
  4. install dependencies (rake install)
  5. run the script (rake start)
  6. follow the setup instructions and wait! it may take a while, as the script scrapes bdocodex.com for recipe information. it will try to do this as little as possible, because after the first time most recipes will be cached.

standalone executable (outdated)

standalone executables are available on the releases page! this build is extremely old. calculations aren't very accurate, you can't search permutations, and it's just not that good.

currently, there's only a build for windows. I don't have a mac or linux machine to test with, so I won't provide binaries for other operating systems yet.

todo:

  • allow users to provide a list of item ids that they have a huge stock of. this will make the script consider that item's cost as 0 and stock as infinite
  • cache ingredient prices
  • add option to search for all possible alchemy consumables
  • account for market tax
  • warn about low daily volume for ingredients and consumables
  • add a --silent or --minimal option to just show bare output
  • improve incapsula logic
  • implement real network retry logic
  • implement http/2
  • critical: figure out how to get recipe information without scraping bdocodex. this would speed up the script by a huge amount.
  • make it work
  • make the code prettier
  • make it fast
  • detect optimal matgroup item to use (i.e. purified water is easier to obtain than distilled water, but they're in the same matgroup)
  • add support for non na / eu regions / languages
  • allow user specification of region
  • allow the script to just start over from the options select when finished, so users can select another category without restarting the whole thing
  • allow users to specify if they wish to show unprofitable recipes / recipes with out-of-stock ingredients
  • critical: allow users to specify their own request verification token - you need your own for regions other than mine

About

a tool to find profitable alchemy recipes in black desert online

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages