Community Content/Websites and Tools/Grandivory's Mods Optimizer

From SWGoH Wiki
Jump to navigationJump to search

Grandivory's Mod Optimizer for Star Wars: Galaxy of Heroes™ is a web based tool that helps you best optimize your mods for SWGoH. It works by applying constant weights to every potential stat that a character can get from a mod, and then summing up the value of all stats included in a full set of mods. The set that has the highest total value will be the best set to equip. This only works, of course, if the weights for each stat are also optimal, so reasonable defaults are provided for all characters in order to make using the tool as easy as possible. Users can also adjust the stat weights themselves to tweak their results to whatever they wish.

Screenshot of Mods Optimizer

How to use

The Mods Optimizer tries to find mods for one character at a time, starting at the top of the "Selected Characters" list and working its way down. For each character it looks at, it takes the stat values that are assigned to that character and uses them to score every mod in your inventory. It then picks the highest-scoring mod in each slot. It calls that the *base set*. Then, the tool will pick the highest-scoring mods for each slot again for every set type that provides a positive value to that toon. So, if you've scored Critical Damage and Critical Chance at 50 each, then the Mods Optimizer will find the best Critical Damage and Critical Chance mods for each slot.

Once it has the best mods for each set, the Mods Optimizer will go through all permutations of those mods together and calculate the value of the full set each time. When all this is done, it chooses the set with the highest overall value, taking into account set bonuses, and that's what it will suggest to you.

Finally, the Mods Optimizer will remove the mods it has suggested from its consideration set and move down to the next character to do the same thing again, until it has calculated the best set of mods for every character in your "Selected Characters" list.

FAQs

How do I pick the right values to optimize for?

There are two ways to pick values to optimize for: basic and advanced. In basic mode, you should give each stat a weight between -100 (avoid this stat, even at the cost of others) and 100 (this stat is most important) based on relative importance for that character. If two stats both have the same value, that indicates that they have about the same importance. In this mode, the numbers that you put in should match gut feel - for example, if you think that potency is about half as important as speed, put a speed value of 100 and potency of 50.

In advanced mode, the weights that you put in are exactly how much value the tool should assign to exactly 1 point of that stat. Therefore, you need to be cognizant of which stat you're weighting. For example, it's possible to get over 50,000 protection in a mod set, but 120 speed is considered a great set. If both protection and speed have a value of 100, then the optimizer will choose to take protection instead of speed, because 50,000 × 100 > 120 × 100. A good rule of thumb is to assign values based on tradeoffs between stats. If speed is worth 100 and you decide that it's worth giving up 1 speed to gain 1000 protection, then protection should have a value of 0.1 (1 × 100 = 0.1 × 1000)

For both modes, the Mods Optimizer calculates the value of a mod or mod set by multiplying the weight for each stat by the benefit granted by the mod (note that for basic mode, the tool will divide the listed weight by approximately the maximum value for that stat on a mod). For example, if speed has a weight of 100 and a mod gives +6 speed, then the speed stat on that mod contributes 600 to the total value of the mod. If looking at a speed set that grants +10% speed, the speed value of 100 is multiplied by the total amount of speed the set would give your character. If your character's base speed is 130, then the total value of the speed set would be (100 × 130 × 10%), or 1300.

Where do the default stat values come from?

I picked the default stat values by trying to get the tool to mostly follow CrouchingRancor's Mods Advisor(<http://apps.crouchingrancor.com/Mods/Advisor>). In general, if two mods have exactly the same secondary stats, then the Mods Optimizer will suggest the same sets that the Mods Advisor suggests. Secondary stats can cause the Mods Optimizer to suggest different sets, or to suggest breaking up a set, though.

The Mods Optimizer keeps suggesting that I break sets! Why is it doing this?

The Mods Optimizer takes set bonuses into account when calculating the total value of a set, but it doesn't see set bonuses as anything other than another stat with a value. For some sets, like _Critical Damage_, there aren't many other places to get those stats, so when they have a high value, the set tends to stay together. For other sets, like _Critical Chance_, a single secondary stat on a mod can have a higher value than the set bonus. If the mods optimizer thinks that breaking up a set will give you a better overall set of stats than keeping it together, then it will suggest that you break the set.

The Mods Optimizer isn't showing any character on a mod! Is it broken?

When the Mods Optimizer shows a mod block like below, the character shown is the character that it currently thinks has that mod equipped. If a mod is removed from a character (by hitting the "Remove Mod" button), if a mod is reassigned to a spot where the assigned character already had another mod in that slot, or if the Mods Exporter shows the mod as unassigned, then the tool will show no character portrait. That simply means that it thinks the mod is currently unassigned.

The Mods Optimizer also keeps track of your mods as you move them around! So if a mod was assigned when you first optimized, but you've moved some mods around and now it's not assigned anymore, the Mods Optimizer will show it as unassigned. This should help you to find the mod in-game when you're looking to put it on the next character.

What do the "Remove Mod" and "Reassign Mod" buttons do?

The Mods Manager tries to keep track of where your mods are, even if you don't import a new set of mods from the exporter. It does this to try to make it easier to find mods as you're in the process of moving them around your toons. When you click "Remove Mod", you're telling the Mods Optimizer that you have removed that mod from its current character in-game, and so the tool should be updated to reflect that. Similarly, "Reassign Mod" will assign that mod to the character that the Mods Optimizer suggests, removing any mod that was previously in that spot.

What happens with "Locked Characters"?

Sometimes, there is some reason that you might not want a character's mods to be changed. You don't want the Mods Optimizer to try to improve them, and neither do you want them to be reassigned to anyone else. By selecting the "Locked" target for a character, you essentially remove their mods from the consideration set used by the Mods Optimizer when picking the best mods for your "Selected Characters".

One example of a place you might want to use this is when managing your mods for the Chex Mix team for the Heroic Sith Triumvirate Raid (Command Luke Skywalker lead, Han Solo, Death Trooper, Chirrut or Rex, and Jedi Knight Anakin or Pao). Both Han Solo and Death Trooper need to be slow for this team, and Han Solo needs to be slightly slower than Death Trooper. Since the Mods Optimizer isn't good at situations like that, it can be easier to simply find a good set of mods, equip them on those characters, and lock them, so that the Mods Optimizer simply leaves them alone while choosing the best mods for your other toons.

Are you going to add mobile support?

I do plan on adding mobile support in the future. I want to make sure that I polish up the desktop experience first, then I'm going to revisit the UI a bit to make the app more usable on smaller screens (not just mobile, either, but smaller desktops). Please bear with me in the meantime!

Why can't I just select a target value for each stat, and the tool tries to hit that value?

This is a feature that I'm very interested in trying to figure out how to add at some point. The problem right now is that in order to get a truly optimal set using target values, I wouldn't be able to use any of the optimizations that I've built into my tool to make it run faster.

When using simple values for each stat, the Mods Optimizer is able to narrow down the total number of sets it needs to look at to something around ~1000. If it were to try to hit target values instead, and you were looking at a set of 1000 mods about evenly distributed between the 6 slots, it would need to search through and score ~21 trillion different combinations. Unfortunately, it would never finish - the optimizer would hang and I'd start getting a lot of bug reports of a broken tool

How can I contribute to the tool?

If you're a developer, take a look at the code base on github! I'm happy to look at pull requests for new or updated features.

If you're a designer, message me directly! I'm pretty proud of what I put together, but I fully recognize that I'm no expert on user experience. Especially as the feature set expands, I'll be looking for help in getting better UI/UX for my tool.

If you're a regular guy with a suggestion, put it into #feature-requests! I'm taking everything suggested and keeping a list of things to work on. If your suggestion is particularly good, it may even go straight to the top of the list!

How do I lock my characters so that their mods don't get changed!?

The way to lock characters has changed since version 1.0. Now, you need to have the character selected, and simply select the "Lock" target. The character's block will get a red outline and fade out a little bit to show you that the character is now locked.

Can the mods optimizer see mods that I don't have assigned?

The mods optimizer gets its data from the swgoh.help API. This API, like all other current sources, can only see mods that you have equipped on your characters. Once the optimizer has seen a mod as equipped, though, it can "Remember" that mod the next time you fetch data. By leaving the "Remember existing mods" box checked when you fetch your data, the optimizer will update any mods that you still have equipped, and set any others as unequipped. If you uncheck that box, then the optimizer will forget any mods that you don't currently have equipped when you next fetch your data.