fribbels / Fribbels-Epic-7-Optimizer

A gear optimizer for Epic Seven
493 stars 104 forks source link

Fribbels Epic 7 Gear Optimizer

This is a tool for organizing gear and optimizing gear and unit builds for Epic 7. Gearing units can be time consuming and it's not easy to find optimal combinations of gear within the game, so I made this to help make the gearing process easier.

Come join the Fribbels E7 Optimizer Discord server for announcements, troubleshooting, or ideas and suggestions! https://discord.gg/rDmB4Un7qg

Please see the Getting Started section for instructions on how to use the optimizer.

Features include:

Here's what it looks like currently:

Requirements

Check out the step-by-step video guide on how to install the app: https://www.youtube.com/watch?v=bDjP5eiOfK0


Optimizer Tab

Here I'll go through the different parts of the optimizer tab, using a tank Ruele build as an example. There are a bunch of panels with options for filtering the gear that I'll walk through in detail.


Settings panel

This panel tracks settings for the other panels to use.


Stat filters

This panel defines the stats to filter your optimization results by. The left boxes are the minimum (inclusive) and the right boxes are the maximum (inclusive). In this example, we're looking for a build with:

The filter will apply on your optimization results after you click Submit. Once the results have been generated, you can apply more restrictive filters by changing the numbers here, then clicking the Filter button. This will narrow down your results without having to do another search.


Rating filters

This panel is similar to the primary stats panel, but applies for calculated stats. These stats you won't see in-game but are various ratings that can help decide between different builds.

Substat priority filter

This is probably the most useful filter but please read before using it. Using this wrong can exclude good results from the search.

Assign a priority to each substat type from -1 to 3. This will go through every gear, and calculates the # of max rolls of each stat. The # of rolls is then multiplied by the stat priority you chose. It adds up all the stat scores for a gear, and sorts your gear by their highest substat score.

In this example we're mostly looking for a fast and tanky Ruele so we assign:

Then, we set the Top % slider to 30%. This will take all your weapons, score them based on the priority defined above, then only considers the Top 30% of the scores for optimization. Then it does the same for helmets, armors, etc, and then the optimizer generates permutations based on those Top 30% gears.

The Top % slider must be set to something other than 100% for this filter to work, otherwise you're just using the Top 100% of your gears and nothing is being filtered. Worth noting that this rating is a heuristic so it doesn't always produce optimal results if your percent is set too low. I find that 30-50% is a good range to work with, because 50% filters out most of the irrelevant gears (like dps stats on a tank build, or vice versa). Below 30%, the filter gets very sensitive and you might not have enough gears to produce optimal results, so the results can be missing some permutations when some useful gears get filtered out. Try playing around with different Top % values.

An example priority filter for a DPS unit like Arby could be something like this, where you only want damage stats:

Or for a tanky Champion Zerato, where you want a mix of tankiness, damage, and effectiveness, but NOT resistance, you can set resistance to -1 to decrease the gear rating if it has resist substats:

Choosing a good priority filter makes the optimization a lot easier since you won't have to consider irrelevant or low-rolled gears.


Main stat and set filters

This one's fairly straightforward, we're looking for:

If we don't care about sets as much for a tanky/damage ML Ken or something, this allows for broken sets as well. Here we only care that he has an immunity set, and no preference for any other sets, so they're left blank.


Optimization Results

Here you can see all the results from the optimization, sort by stat, and equip/lock the results.

Gear Tab

Here you can find a table of all your gears, and sort/filter them. The icons at the bottom enable filters for set and gear slot, and the X clears the filters.

Gear score

The Score column is a stat I made up which is similar to WSS, with the difference that it takes flat stats into consideration while WSS ignores them. The calculation is:

Score = Attack %
+ Defense %
+ Hp %
+ Effectiveness
+ Effect Resistance
+ Speed * (8/4)
+ Crit Damage * (8/7)
+ Crit Chance * (8/5)
+ Flat Attack * 3.46 / 39
+ Flat Defense * 4.99 / 31
+ Flat Hp * 3.09 / 174

It's used as a measure of how well your gear rolled, scaled by the max roll for 85 gear (using max of 4, not 5 for speed). I found the average rolls for flat stats and compared it to the average stats of a base 5* unit at max level, and used that as a measure of how well the flat stats rolled. (For example, average roll flat def is 31, while the average flat def roll is worth 4.99% def on the average unit)

The other scores on this page are defined as:

You can edit existing gears or add new gears with the Equip / Edit Item button, and filling in the relevant fields on this page.

Heroes Tab

Here you can add new heroes and manage existing ones. The second grid saves a history of your past builds. The bottom shows your currently selected builds on the hero.

Adding bonus stats

The Add Bonus Stats button lets you add artifact/imprint/exclusive equipment stats to the hero for optimization.

Substat modification options

The Add Substat Mods button lets you customize the hero's settings when optimizing with substat mods enabled.

The substat selections menu allows you to drag substats from the Don't change column to either Wanted or Unwanted. Unwanted substats will be converted into Wanted substats, which the Don't change ones will not be modified or selected for in the results.

Importer tab

This tab lets you do various things with importing/exporting files.


Save or Load all optimizer data

Once you make changes to your items/heroes, the changes should be saved before you close the app. You can choose a file to save it to, and then later on load that file to import the data back in.

The app also does autosave to an 'autosave.json' upon changes being made, and will autoload whatever was saved to the autosave file the next time the app opens.

Getting Started

Please read these instructions carefully! Here is a step by step video guide to go along with the instructions: https://www.youtube.com/watch?v=bDjP5eiOfK0

Installing the app

Windows

64 bit Java 8 or above is required:

  1. Install Java 8 - 64 bit https://java.com/en/download/manual.jsp - Get the Windows Offline (64-bit) installer
    • After installing, restart your computer (required!)
  2. On the Releases page, choose the latest release, and download the file that looks like FribbelsE7Optimizer-Setup-1.x.x.exe then run the installer
    • Do not download the Source Code options, those won't work
  3. Follow the steps to use either the auto importer

Mac OS

  1. On the Releases page, choose the latest release, and download the file that looks like FribbelsE7Optimizer-x.x.x-mac.dmg
    • Do not download the Source Code options, those won't work
  2. Install Java 8 - 64 bit

Setting up the auto importer

The automatic importer is recommended and requires these additional steps:

First time setup for the automatic importer on Windows

Check out the step-by-step video guide to follow along with instructions: https://youtu.be/bDjP5eiOfK0?t=182

  1. Install Python 3.4+ using the Windows installer (64-bit) option. Click for direct download link to 3.9.2. IMPORTANT: Enable the option to add Python to PATH
  2. Install Npcap for Windows. Click for direct download link. During installation, enable the setting to "Support raw 802.11 traffic (and monitor mode) for wireless adapters".
  3. Restart your computer
First time setup for the automatic importer on Mac
  1. Install Python 3.4+. This will require extra steps to set python3 as your default. Recommended to use pyenv (https://opensource.com/article/19/5/python-3-default-mac)
  2. Install Wireshark
  3. During the Wireshark installation, also install ChmodBPF.pkg: See image
  4. Restart your computer

Using the auto importer

You can use the auto importer with an emulator, a phone, or M1+ chip Macbook.

Running the automatic importer from an emulator or M1 macbook

Check out the step-by-step video guide to follow along with instructions: https://youtu.be/bDjP5eiOfK0?t=357

  1. Install requirements from the instructions above
  2. Leave your emulator open, and close Epic 7
  3. Click Start scanning
  4. Open Epic 7, and load into the lobby
  5. Click Stop scanning
  6. Wait up to 30 secs, then once the data appears, click Export to save it to a "gear.txt"
  7. Import the "gear.txt" with the Merge button
  8. Go to the Gear tab, and use the Level = 0 filter to manually fix any level 0 items
Running the automatic importer from a phone
  1. On Windows 10 machines, enable the Mobile Hotspot setting: See image
    1. On Mac, enable Internet Sharing in preferences. (May not be available for all machines depending on hardware)
  2. Connect to the mobile hotspot from your phone (The computer must be the one providing the hotspot, and the phone connects to the computer's hotspot)
  3. Follow steps 3-8 in the previous 'Running the automatic importer from an emulator' section, using your phone instead of the emulator

Optimizing a unit

  1. Add a unit on the Heroes tab, by selecting their name and clicking Add New Hero.
  2. Select the new hero and click Add Bonus Stats. Here add any stats from your artifact, imprint, or EE. Example
  3. Go to the Optimizer tab, then select the hero. Fill in the main stats and set that you want into the right panel. Example
  4. Fill in any filters you would like to apply. Each filter is described in detail in this section: https://github.com/fribbels/Fribbels-Epic-7-Optimizer#optimizer-tab
  5. Hit Submit, and after processing a bit you should see a table of results.
  6. Navigate the results with your arrow keys or mouse, select the result you want, and click Equip Selected.
  7. You should now see your hero using those gears.
  8. If you want to manually equip a certain item on a unit, go to the Gear tab -> Edit Selected Item -> Equipped. Example

Here's a video that covers most of the importing process: https://www.youtube.com/watch?v=i_QW4INcZIE


Updating your gear


Tips to get good optimization results

Here's some quick tips on getting the best results. This is assuming you've read the Optimization panel descriptions.


Troubleshooting

Automatic importer troubleshooting

Optimizer troubleshooting

Contributing to the project

If you want to contribute, come by the discord server to have a chat about what you want to do. We also have an ongoing translation project to translate the optimizer into various languages.

Project status

The E7 optimizer is currently in maintenance mode - I'll be keeping the project updated with new units but new feature development is on pause.

Setup steps

To run the frontend code locally,

  1. Install requirements
    1. Install node.js: https://nodejs.org/
    2. Install python2 and python3: https://www.python.org/downloads/
    3. Install yarn: npm install --global yarn
  2. Check out the code
  3. Run npm install in the app's root directory
  4. To run the development version locally: yarn dev
  5. To build and package the production executables: yarn package

To run the backend code requires some more setup, contact me for more info.

Contact me

Come join the Fribbels E7 Optimizer Discord server for questions or comments or ideas/suggestions: https://discord.gg/rDmB4Un7qg. If you ran into any issues, please check the troubleshooting section above first.

If you want support the optimizer, you can buy me a coffee or come say hi on Discord!