Sky Force Anniversary
0 of 0

File information

Last updated

Original upload

Created by

ithinkandicode

Uploaded by

ithinkandicode

Virus scan

Safe to use

Tags for this mod

About this mod

Makes card drops configurable, via a JSON file.

Permissions and credits
Changelogs
This mod gives you control over card drop rates, by editing a JSON file.

TL;DR

Install this for better card drops.

Maybe change the JSON file's boxDropRateScaling value to 2 or 3, whatever suits you.


Card Drops Info

To understand this mod, you need to know how card drops work.

I made a detailed Steam guide here, but the basic gist is:

  1. When you destroy a box (i.e. a crate) there's either a 3% or 4% chance that it will attempt to drop a card.
  2. Next, whether a card is eligible to spawn depends on the card's own stats (see this spreadsheet). Some are very rare.
  3. Finally, out of all the eligible cards, the game picks one randomly, regardless of how rare that card is.

There are two problems with this, which this mod aims to fix:

First: The initial box drop rates of 3% or 4% are pretty low, and don't guarantee a drop: You have to multiply that initial 3/4% with a card's own spawn chance. You could finish the game and still be missing cards.

So this mod lets increase that 3% or 4% chance. You can either scale the chance with the current difficulty, or just set the chance to 100% all the time.

Second: It's easy to miss out on rare cards, because the game picks the card to spawn randomly. 

So this mod also lets you prioritise rare cards, so you'll never miss out on them.

Installation

The zip is set up so that you can just drop everything into the game folder, but make sure you do step 5, which backs up the vanilla game code.

  1. Open the game folder.
  2. Go to the Data folder (Sky Force Anniversary_Data).
  3. Create a new folder named StreamingAssets, and put the JSON file into it.
  4. Go to the Managed folder (in the Data folder).
  5. Rename the file "Assembly-CSharp.dll" to "Assembly-CSharp--vanilla.dll" (this backs up the original).
  6. Put the modded Assembly-CSharp.dll into this Managed folder.

Configuration

There are 2 options in the JSON:

  • boxDropRateScaling = Sets the box drop rate scaling level.
  • prioritiseRareCards = Sets whether rare cards should be prioritised when choosing one to spawn.

The JSON is read at the start of every stage, so if you make changes and re-load a stage they'll take effect right away.

boxDropRateScaling

Changes the box drop rate chance, which decides whether a destroyed box will attempt to spawn a card (see #1 in Card Drops Info above).

There are 4 levels (0 / 1 / 2 / 3). 

0 - No scaling

Keeps the vanilla game's settings. Box drop rates stay at 3% / 4%.

Good if you just want the prioritiseRareCards option.

1 - Difficulty-based scaling (Minor)

Similar to vanilla settings. Does not affect Default difficulty.

Hard drop chance is x3 (so 9% / 12%), Insane is x5 (15% / 20%).

Good if you only want a little boost.

2 - Difficulty-based scaling (Major)

Box drop rates are way higher, especially on harder difficulties. This does affect the Default difficulty.

Default is x2, Hard is x4, Insane is x6.

Good if you play casually or want to farm cards, but don't want to feel like you're cheating, 

3 - Guaranteed drops

Sets all box drop rates to 100%, which means they'll always attempt to spawn a card (if any are eligible).

Note that this doesn't guarantee a card will actually spawn (see #2 in Card Drops Info above)


prioritiseRareCards

Gets you rare cards more often.

If this option is true, instead of a card being chosen randomly from all the eligible cards, the game will choose one from the rarest eligible cards instead (see #3 in Card Drops Info).

It does this by searching through the list of eligible cards, finding the ones with the lowest spawn chance, and spawning one of those. This means you won't miss a chance to get a rare card.


Logging

The mod also adds a bunch of new logs to the file output_log.txt. Open it to see stats, like which cards are eligible. If you're not getting card drops when you think you should, the logs will tell you why.

When browsing the logs, I recommend deleting all instances of the following line, which is added to custom logs by Unity. You can do this with Ctrl + H in Notepad++.

(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)


Bonus

I also extracted the card artwork. There's some gorgeous stuff in there. Here's a folder with all the images:

https://drive.google.com/drive/folders/1-mCamfml1p8g-WPP-d78gxCAZonku92Y?usp=sharing