I am ADA, also known as Artificial Directory and Assistant, tasked to support pioneers, such as you, in their mission.
~ ADA
ADA is a Discord bot for the Satisfactory video game.
With ADA, you can browse information about items, recipes, and buildings within Discord. You can also ask ADA to calculate an optimal production chains and produce visualizations.
ADA is also available as a command line tool.
Provides information about items, buildings, and recipes in the game.
- Regexes can be used when specifying items, recipes, and buildings.
/ada iron rod
: Information about iron rods./ada recipe iron rod
: Information about the iron rod recipe./ada refinery
: Information about refineries./ada recipes for iron rod
: Browse all recipes for making iron rods./ada recipes from iron rods
: Browse all recipes with iron rods as an ingredient./ada recipes for refineries
: Browse all recipes available in refineries./ada recipes for iron.*
: Browse all recipes for items whose name starts with "iron"./ada compare recipe iron rod
: Compare the iron rod recipe against all other recipes for iron rods./ada compare recipes for iron rod
: Compare all recipes that produce iron rods./ada ingredients for recipe iron rod
: Browse all ingredients in the iron rod recipe./ada products for recipe iron rod
: Browse all products in the iron rod recipe.
Finds an optimal production chain. Attempts to minimize inputs, maximize outputs, and adhere to any given constraints.
- Alternate recipes are disabled by default. They can be enabled by adding
alternate-recipes
to the input clause. For example,/ada produce 10 modular frames from alternate-recipes
. - Only one objective
?
can be provided in the entire query. - If no inputs are specified, the optimizer will attempt to minimize
unweighted resources. This is equivalent to an input of
from _ unweighted resources
. - Using the
only
keyword in the output will prevent byproducts, but may produce an infeasible solution. - Using the
only
keyword in the input will restrict the inputs for a specific category. For exampleproduce ? power from only coal and water and coal generators
will prevent any other items from being used as input besides coal and water because they both fall into theitem
category. However, it does not restrict the types of generators being used. To limit the inputs to only coal generators and prevent other generators from being used, add theonly
keyword in front ofcoal generators
.
/ada produce 60 iron rod
: Produces exactly 60 iron rods while minimizing the input resources (evenly weighted)./ada produce 60 iron rod from ? unweighted resources
: Same as above./ada produce 60 iron rod from ? weighted resources
: Similar to above, but weights resources by their frequency on the map./ada produce 60 iron rod from ? iron ore
: Produces exactly 60 iron rods while minimizing iron ore./ada produce 60 iron rod from only ? iron ore
: Produces exactly 60 iron rods from exclusively iron ore./ada produce 60 iron rod from only ? iron ore and _ coal and alternate-recipes
: Produces exactly 60 iron rods from exclusively iron ore and coal, but only minimizing iron ore. Alternate recipes are allowed./ada produce ? iron rods from 60 iron ore
: Produce as many iron rods as possible from 60 iron ore./ada produce ? iron rods from only 60 iron ore
: Produce as many iron rods as possible from exclusively 60 iron ore./ada produce ? iron rods from only 60 iron ore and water and alternate-recipes
: Produce as many iron rods as possible from exclusively 60 iron ore and water with alterate recipes allowed./ada produce ? power from 240 crude oil and only fuel generators
: Produce as much power as possible from only 240 crude oil only using fuel generators (no other generators allowed)./ada produce 60 modular frames without refineries
: Produce exactly 60 modular frames without using any refineries, minimizing unweighted resources./ada produce only ? iron rods from 10 constructors
: Produce as many iron rods as possible from 10 constructors./ada produce only ? iron rods from only 10 constructors and _ smelters
: Produce as many iron rods as possible from only 10 constructors and however many smelters.
⚠️ You do not need to host ADA yourself to use the bot. Use the link at the top of the readme to invite ADA to your server. These instructions are only for those interested in customizing ADA and/or hosting it themselves.
-
Download python 3 from https://www.python.org/downloads/
-
Install GraphViz:
- Download from: https://www.graphviz.org/download/
- Add install directory
C:\Program Files (x86)\Graphviz2.38\bin
to PATH
-
Install C++ Build Tools:
- Download from: https://visualstudio.microsoft.com/visual-cpp-build-tools/
- In Visual Studio Installer, click "Modify" on Visual Studio Build Tools and make sure "Desktop development with C++" is checked.
-
Run the following as admin to configure GraphViz:
dot -c
-
Clone repo (in directory of you choosing)
git clone https://github.com/ScottJDaley/ada.git
-
Move inside the repo
cd ada
-
Create virtual environment and activate it
py -m venv venv
-
Active the virtual environment
venv\Scripts\activate
💡 You may deactivate the virtual environment with
deactivate
-
Install python modules
py -m pip install -r requirements.txt
-
Download and install Homebrew
💡 Make sure Hombrew's package lists are up-to-date with
brew update
-
Install Python 3
brew install python3
-
Install GraphViz
brew install graphviz
-
Clone repo (in directory of you choosing)
git clone https://github.com/ScottJDaley/ada.git
💡 MacOS might prompt you to download
Xcode Commandline Tools
the first time you use thegit
command -
Move inside the repo
cd ada
-
Create python virtual environment and activate it
python3 -m venv venv && source venv/bin/activate
💡 You may deactivate the virtual environment with
deactivate
-
Install python requirements
pip install -r requirements.txt
-
Set up Discord bot
export DISCORD_TOKEN={token from discord developer portal}
-
Install python3
sudo apt-get install python3
-
Install pip
sudo apt-get install python3-pip
-
Install GraphViz
sudo apt-get install graphviz
-
Install git
sudo apt-get install git
-
Clone repo (in directory of you choosing)
git clone https://github.com/ScottJDaley/ada.git
-
Move inside the repo
cd ada
-
Create Virtual environment and activate it
python3 -m venv venv && source venv/bin/acivate
💡 You may deactivate the virtual environment with
deactivate
-
Install python packages
pip3 install -r requirements.txt
-
Set up Discord bot
export DISCORD_TOKEN={token from discord developer portal}
- Run
bot.py
- Ensure the bot is running and was started with a valid
DISCORD_TOKEN
as described above. - Invite the bot to your server using a link generated from OAuth2 page on https://discord.com/developers/applications.
- The bot should be able to respond to commands in Discord after a few seconds.
- Press
Enter
in the terminal to shut down the bot.
- Run
tool.py
. - Type a query and press Enter.
- Type
exit
to quit.
- Images are taken from the Official Satisfactory Wiki.
Feel free to send pull requests and submit new issues. You are also welcome to fork this repo to make your own changes.