Skip to content

Commit

Permalink
Docs
Browse files Browse the repository at this point in the history
  • Loading branch information
Leyren committed Dec 9, 2023
1 parent 38f6baa commit 5bca121
Show file tree
Hide file tree
Showing 19 changed files with 103 additions and 63 deletions.
Binary file added Img/Additional_Death_Guards.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Img/Character_Stats_Multiplier.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Img/Character_Unlock_Cost_Multiplier.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Img/Curse_Level_Strength_Multiplier.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Img/Dash_Count.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Img/Enemy_Objective_Multiplier.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Img/Experience_Multiplier.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Img/Extra_Minerals_Spawn_Delay.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Img/Infinite_Banishes.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Img/Infinite_Locks.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Img/Infinite_Rerolls.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Img/Item_Drop_Amount_Multiplier.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Img/Minor_Soulstone_Multiplier.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Img/Prestige_Multiplier.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Img/Weapon_Strength_Multiplier.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Img/Weapon_Unlock_Cost_Multiplier.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions Modifications/PlayerInventoryModification.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,15 +50,15 @@ private static void UpdateInventory(List<Entity> players)
// Alternative: Set this while hooking into LevelUpPanelManager, since that is the only place where they are being used, but
if (PluginConfig.Player.Inventory.InfiniteRerolls)
{
player._inventory.InventoryData.Rerolls = PluginConfig.Player.Inventory.AdditionalRerolls;
player._inventory.InventoryData.Rerolls = 1000;
}
if (PluginConfig.Player.Inventory.InfiniteBanishes)
{
player._inventory.InventoryData.Banishes = PluginConfig.Player.Inventory.AdditionalBanishes;
player._inventory.InventoryData.Banishes = 1000;
}
if (PluginConfig.Player.Inventory.InfiniteLocks)
{
player._inventory.InventoryData.Locks = PluginConfig.Player.Inventory.AdditionalLocks;
player._inventory.InventoryData.Locks = 1000;
}
}
}
Expand Down
21 changes: 1 addition & 20 deletions Patches/WIP/LootUtil_Patch.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ namespace SoulstoneTweaks.Patches.WIP
// DO NOT USE THIS TO MODIFY EXPERIENCE AND OTHER DROP AMOUNTS
// BECAUSE IT WILL RESULT IN MORE INGAME ENTITIES
// (e.g. x100 EXP means that an enemy that normally drops 1 EXP orb now drops 100, on bosses this lags, freezes or crashes the game)
//[HarmonyPatch(typeof(LootUtil), nameof(LootUtil.CalculateLoot))]
[HarmonyPatch(typeof(LootUtil), nameof(LootUtil.CalculateLoot))]
internal class LootUtil_Patch
{

Expand All @@ -24,25 +24,6 @@ static void Prefix(ref LootComponent loot)
// Prestige is rewarded immediately on kill, there is no drop for it.
// Could've also modified it on the entity directly on spawn, but seems more reasonable to do it on kill
loot.Prestige *= PluginConfig.Player.PrestigeMultiplier;


/* if (loot.PossibleItems.Count > 0)
{
Plugin.Log.LogInfo("Possible Loot " + loot.PossibleItems.Count);
foreach (var item in loot.PossibleItems)
{
Plugin.Log.LogInfo(item.ItemId + ", " + item.QuantityMin + ", " + item.QuantityMax + ", " + item.Chance);
}
Plugin.Log.LogInfo("Loot By Tier " + loot.ItemsByTier.Count);
foreach (var itembytier in loot.ItemsByTier)
{
foreach (var item in itembytier.Items)
{
Plugin.Log.LogInfo("Tier: " + itembytier.Tier + ", " + item.ItemId + ", " + item.QuantityMin + ", " + item.QuantityMax + ", " + item.Chance);
}
}
}
*/
}
}
}
139 changes: 99 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,22 @@
# Soulstone-Survivors-Tweak-Mod
A BepInEx mod for the Steam Game 'Soulstone Survivors', providing access to a bunch of tweaks to make the game infinitely harder, or cheatily easy.
# Soulstone Survivors Tweaks
A mod for the Steam Game [Soulstone Survivors](https://store.steampowered.com/app/2066020/Soulstone_Survivors/), providing access to a bunch of tweaks to make the game infinitely harder, or cheatily easy.

Quick examples of what you can do:
- Modify EXP gain, player stats, enemy stats
- Invulnerability
- Disable AI
- remove obstacles from the map (RIP Trees)
- etc.


Built for Soulstone Survivors `Early Access 0.11.038a - Windows`.

![](Img/RemoveMapObstacles.png)

# Installation

This mod requires BepInEx v6 (Bleeding Edge), due to Soulstone Survivors using IL2CPP which is only supported by BepInEx v6. Developed using [Build #666](https://builds.bepinex.dev/projects/bepinex_be).
This mod requires **BepInEx v6 (Bleeding Edge)**. Developed using [Build #666](https://builds.bepinex.dev/projects/bepinex_be), but you can try if a newer build works too.

Unpack BepInEx into your game folder (usually something like `C:\Program Files (x86)\Steam\steamapps\common\Soulstone Survivors`), and run the game once.

You should now have a `BepInEx/plugins` folder. Drop the `SoulstoneTweaks.dll` in there and you're good to go. After starting the game again, a config file will be created under `BepInex/configs/SoulstoneTweaks.cfg`.
Expand All @@ -13,53 +25,100 @@ You should now have a `BepInEx/plugins` folder. Drop the `SoulstoneTweaks.dll` i

NOTE: Configs do not get applied while the game is running, changing the config requires a restart!

### Disable Enemy AI
## Misc Features

|Config Entry|Default|Description|
|:----:|:---:|:---:|
|`Disable_Enemy_A_I`|`false`| When enabled, enemy AI is completely turned off. No attacks, no movement. |
|Config Entry|Default|Description||
|:----:|:---:|:---:|:---:|
|`Disable_Enemy_A_I`|`false`| When enabled, enemy AI is completely turned off. No attacks, no movement. **Note**: Boss health bars do not properly disappear after their death if they have no AI. |<img src="Img/DisableEnemyAI.gif" width="400">|
|`Unlock_Zoom`|`false`| Allows you to zoom in / out using your scroll wheel |<img src="Img/UnlockZoom.png" width="400">|
|`Invulnerable`|`false`| Makes you completely invulnerable ||
|`Time_Modifier`|`1.0`| Modifies game speed (affects **everything**). E.g. `2.0` doubles it.||
|`Remove_Map_Obstacles`|`false`| Do you have trees? This option removes **ALL** obstacles from the map. Note: This may or may not work for future added maps.|<img src="Img/RemoveMapObstacles.png" width="400">|
|`Extra_Minerals_Spawn_Delay`|`-1`| Spawns a new mineral every `n` seconds. E.g. when set to `0.1`, spawns 10 minerals per second. Disabled when negative.|<img src="Img/Extra_Minerals_Spawn_Delay.gif" width="250">|
|`Auto_Unlock_Special_Portals`|`false`|Automatically opens special portals (e.g. to Secret Bosses) at the end of the round||

Note: Boss health bars do not properly disappear after their death if they have no AI.
## Global Features

![DisableEnemyAI.gif](Img/DisableEnemyAI.gif)
These features affect some global game stats, like costs, weapon stats, etc.

### Unlock Zoom
|Config Entry|Default|Description||
|:----:|:---:|:---:|:---:|
|`Skill_Tree_Cost_Multiplier`|`1.0`| Multiplier for all skill costs in the skill tree. Example: `2.0` doubles everything, `0` makes all skills free.|<img src="Img/SkillTreeCostMultiplier1.png" width="250"><img src="Img/SkillTreeCostMultiplier2.png" width="250">|
|`Weapon_Strength_Multiplier`|`1.0`| Modifies strength of weapon bonus effects|<img src="Img/Weapon_Strength_Multiplier.png" width="250">|
|`Weapon_Unlock_Cost_Multiplier`|`1.0`| Modifies cost of weapon unlocks. When set to `0`, all weapons are (nearly) free, you still need to own at least 1 of each required item.|<img src="Img/Weapon_Unlock_Cost_Multiplier.png" width="250">|
|`Character_Stats_Multiplier`|`1.0`| Modifies strength of character stat bonuses|<img src="Img/Character_Stats_Multiplier.png" width="250">|
|`Character_Unlock_Cost_Multiplier`|`1.0`| Modifies cost of character unlocks. When set to `0`, all characters are free.|<img src="Img/Character_Unlock_Cost_Multiplier.png" width="250">|
|`Runic_Power_Multiplier`|`1.0`|Modifies your runic power limit||

|Config Entry|Default|Description|
|:----:|:---:|:---:|
|`Unlock_Zoom`|`false`| Allows you to zoom in / out using your scroll wheel |
## Curse Modifiers

![UnlockZoom.png](Img/UnlockZoom.png)
|Config Entry|Default|Description||
|:----:|:---:|:---:|:---:|
|`Curse_Bonus_Multiplier`|`1.0`| Multiplier for all curse level bonuses|<img src="Img/CurseBonusMultiplier.png" width="250">|
|`Curse_Level_Strength_Multiplier`|`1.0`| Multiplier for the curse intensity effects|<img src="Img/Curse_Level_Strength_Multiplier.png" width="250">|

### Time Modifier

|Config Entry|Default|Description|
|:----:|:---:|:---:|
|`Time_Modifier`|`1.0`| Modifies game speed (affects **everything**). E.g. `2.0` doubles it.|
## Loot Multipliers (Soulstone, Experience, Prestige, etc.)

### Remove Map Obstacles
|Config Entry|Default|Description||
|:----:|:---:|:---:|:---:|
|`Minor_Soulstone_Multiplier`|`1.0`| Modifies **Minor Soulstone** gain during a game|<img src="Img/Minor_Soulstone_Multiplier.png" width="128">|
|`Boss_Soulstone_Multiplier`|`1.0`| Modifies the amount of big soulstones obtained from bosses (still only drops one item visually)||
|`Health_Pickup_Amount_Multiplier`|`1.0`| Modifies the amount of health obtained from health pickups (e.g. health crystals). **Note**: You can also set this to a negative value, making you lose health instead.||
|`Item_Drop_Amount_Multiplier`|`1.0`| Modifies the amount of materials you obtain on pickup (iron, etc.)|<img src="Img/Item_Drop_Amount_Multiplier.png" width="128">|
|`Experience_Multiplier`|`1.0`| Modifies the character experience gain (ingame level)|<img src="Img/Experience_Multiplier.png" width="128">|
|`Prestige_Multiplier`|`1.0`| Modifies the character prestige gain (prestige level)|<img src="Img/Prestige_Multiplier.png" width="128">|

|Config Entry|Default|Description|
|:----:|:---:|:---:|
|`Remove_Map_Obstacles`|`false`| Do you have trees? This option removes **ALL** obstacles from the map. Note: This may or may not work for future added maps.|

![RemoveMapObstacles.png](Img/RemoveMapObstacles.png)

### Skill Tree Cost Multiplier

|Config Entry|Default|Description|
|:----:|:---:|:---:|
|`Skill_Tree_Cost_Multiplier`|`1.0`| Multiplier for all skill costs in the skill tree. Example: `2.0` doubles everything, `0` makes all skills free.|

Examples with `1000` or `0`:

<img src="Img/SkillTreeCostMultiplier1.png" width="250">
<img src="Img/SkillTreeCostMultiplier2.png" width="250">

### Curse Bonus Multiplier
## Enemy Modifiers

|Config Entry|Default|Description|
|:----:|:---:|:---:|
|`Curse_Bonus_Multiplier`|`1.0`| Multiplier for all curse level bonuses|

<img src="Img/CurseBonusMultiplier.png" width="250">
|`Boss_Health_Multiplier`|`1.0`| Modifies health of bosses|
|`Elite_Health_Multiplier`|`1.0`| Modifies health of elites|
|`Small_Enemy_Health_Multiplier`|`1.0`| Modifies health of regular enemies|

Note: When setting this to 0, they effectively die with a single attack.

## Objective Modifiers

|Config Entry|Default|Description||
|:----:|:---:|:---:|:---:|
|`Enemy_Objective_Multiplier`|`1.0`| Modifies the amount of enemies you need to kill for the next wave of bosses to spawn|<img src="Img/Enemy_Objective_Multiplier.png" width="250">|

## Player Inventory (Rerolls, Banishes, Locks)

|Config Entry|Default|Description||
|:----:|:---:|:---:|:---:|
|`Additional_Rerolls`|`0`| Gives additional Rerolls||
|`Infinite_Rerolls`|`false`| Locks Reroll count at 1000|<img src="Img/Infinite_Rerolls.png" width="128">|
|`Additional_Banishes`|`0`| Gives additional Banishes||
|`Infinite_Banishes`|`false`| Locks Banish count at 1000|<img src="Img/Infinite_Banishes.png" width="128">|
|`Additional_Locks`|`0`| Gives additional Locks||
|`Infinite_Locks`|`false`| Locks Lock count at 1000|<img src="Img/Infinite_Locks.png" width="128">|
|`Additional_Death_Guards`|`0`|Gives additional Death Guards|<img src="Img/Additional_Death_Guards.png" width="64">|

Note: There is no infinite Death Guards, since then you might as well use `Invulnerable`.

## Player Stats

You can modify the each stat of the player as you desire. There are two sections in the config, one for `[Player.BaseStats]` and one `[Player.MultiplicativeStats]`. Changes under the `[Player.BaseStats]` are additive bonuses (e.g. start the game with +100% more damage), while `[Player.MultiplicativeStats]` increases the multiplicative stat on top of all your additive values (e.g. double your damage, including all scaling you obtain from power-ups).

So make sure you edit the one that you want to change (check in which section it is in the config).

|Config Entry|Default|Description||
|:----:|:---:|:---:|:---:|
|`Dash_Count`|`0`| Gives you additional dashes|<img src="Img/Dash_Count.png" width="250">|
|`Max_Health_Modifier`|`0`|Increases Player Max Health by the specified amount||
|`Crit_Chance_Modifier`|`0`|Increases Player Crit Chance by the specified amount. E.g. `0.2` increases it by `20%`||
|`Crit_Damage_Modifier`|`0`|Increases Player Crit Damage by the specified amount. E.g. `0.2` increases it by `20%`||
|`Damage_Modifier`|`0`|Increases Player Damage by the specified amount. E.g. `0.2` increases it by `20%`||
|`Healing_Modifier`|`0`|Increases Player Healing by the specified amount. E.g. `0.2` increases it by `20%`||
|`Attack_Speed_Modifier`|`0`|Increases Player Attack Speed by the specified amount.||
|`Collect_Range_Modifier`|`0`|Increases Player Collection Range by the specified amount. E.g. `0.2` increases it by `20%`||
|`Damage_Reduction_Modifier`|`0`|Increases Player Damage Reduction by the specified amount. E.g. `0.2` increases it by `20%`||
|`Movement_Speed_Modifier`|`0`|Increases Player Movement Speed by the specified amount. E.g. `0.2` increases it by `20%`||
|`Area_Modifier`|`0`|Increases Player Area by the specified amount. E.g. `0.2` increases it by `20%`||
|`Armor_Modifier`|`0`|Increases Player Armor by the specified amount. E.g. `0.2` increases it by `20%`||
|`Base_Skill_Cooldowns`|`0`|Increases Player Skill Cooldown by the specified amount. E.g. `0.2` increases it by `20%`||
|`Block_Chance`|`0`|Increases Player Block Chance by the specified amount. E.g. `0.2` increases it by `20%`||
|`Extra_Cast_Modifier`|`0`|Increases Player Multicast by the specified amount. E.g. `0.2` increases it by `20%`||

0 comments on commit 5bca121

Please sign in to comment.