You are viewing a potentially older version of this package. View all versions.
Swaggies-LevelScaling-0.9.1 icon

LevelScaling

Introduces further difficulty progression both before and after Level 20. Additionally includes level & run stats, challenges, and a few balancing changes.

Date uploaded 10 months ago
Version 0.9.1
Download link Swaggies-LevelScaling-0.9.1.zip
Downloads 7276
Dependency string Swaggies-LevelScaling-0.9.1

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2304 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2304
nickklmao-MenuLib-2.5.3 icon
nickklmao-MenuLib

A library for creating UI!

Preferred version: 2.5.3

README

Level Scaling

Level Scaling is a R.E.P.O. mod that aims to adjust the general difficulty curve and support levels past 20. Level Scaling will allow levels to become larger and contain higher quotas and more extractions past Level 20, and include a chance for certain "challenge levels" to appear. Level Scaling also adds realtime stats as you progress through each level, and displays general run stats on the save selection screen (see below for an example).

You can additionally configure the mod to your heart's content, be sure to read config descriptions when doing so! Whether you only want the level stats or want to play a challenge on every level, almost everything is configurable.

Feel free to join the discord server for updates, and to report any bug reports or make suggestions! (Alternatively you can add me - @swaggies)

ALL clients require this mod.

EARLY NOTICE

This mod is not finished! Things are still being worked on, added to, or might be subject to change in the future. If you notice anything off or have ideas, join the discord linked above and let me know!

Preview

Preview 1

Preview 2

Preview 3

Challenge Details

All Challenge Levels (SPOILERS!)

Each challenge level has a set chance to appear and can only start appearing after a certain level. Challenges come with a major downside to hinder players, and a minor upside to assist them. These are included in each of the notes below, so spoilers ahead!

Lights Out (Level 3) "The level's lights have stopped working - you'll be stuck in the dark."
  • Base Chance: 30

  • Downside: All lights in the level will be permanently deactivated (similarly to final extraction).

  • Upside: Player walking speed is slightly increased. Sprint/crouch speed unaffected.

Increased Damage (Level 5) "All incoming damage for both Semibots and enemies will be greatly increased. Be careful."
  • Base Chance: 30

  • Downside: All damage to players is doubled.

  • Upside: All sources of healing is doubled. Enemies also take extra damage, but not as much as players.

Overtime (Level 7) "Taxman is requiring extra effort for this level - Your quotas will be significantly higher."
  • Base Chance: 50

  • Downside: Each extraction's quota will be significantly higher, requiring players to be careful with valuables.

  • Upside: More valuables will spawn, allowing players to earn more money than they normally would.

Broken Map (Level 7) "Your map is disabled, however Semibots will naturally regenerate health slowly; up to the health they started the level with."
  • Base Chance: 40

  • Downside: Players are unable to use their map for the duration of the level.

  • Upside: Players will slowly regenerate health up to the health they started the level with. Healing via health packs or other players will increase their max regeneration limit. Regeneration is slower with more players alive.

Over-Overcharge (Level 10) "Overcharge will build up from holding valuables too - Pay close attention and don't explode yourself."
  • Base Chance: 50

  • Downside: Valuables will cause overcharge to build up, heavier valuables will build overcharge quicker, similarly to enemies.

  • Upside: Overcharge will drain at a quicker rate, even with enemies.

Enemy Rush (Level 10) "There are many more enemies than usual on this level, but enemies are lighter, and have significantly reduced health."
  • Base Chance: 35

  • Downside: Enemy amounts will be roughly doubled. Lower tiers will be prioritized over higher tiers.

  • Upside: All enemies will have halved health, and require less player strength to grabstun.

Hidden Information (Level 10) "This level's size and length are randomized, and some important information will be obstructed for the duration of the level."
  • Base Chance: 15

  • Downside: Player health, stamina, and current quota progress will be hidden for the duration of the level. Players can still see the health bars of other players to determine their health.

  • Upside: The level size is randomized, being a lot smaller than most lategame levels, without affecting map value.

Enlarged Level (Level 12) "This level's layout is much larger than normal - Remember to use your map."
  • Base Chance: 20

  • Downside: The level size is roughly 30% larger.

  • Upside: Stamina will regenerate much quicker.

Dense Fog (Level 15) "There's lots of heavy fog on this level - Visibility will be low, tread carefully."
  • Base Chance: 20

  • Downside: The fog distance is greatly reduced, players will barely be able to see a few feet in front of them.

  • Upside: The level size is reduced by a considerable amount, and players take reduced damage.

Fragile Valuables (Level 15) "All valuables are very fragile, regardless of how they look on the outside. Each valuable will be priced slightly higher."
  • Base Chance: 50

  • Downside: All valuables will be extremely fragile (unless they were already).

  • Upside: Each valuable's value is increased. Cheaper valuables will see a larger difference in price, while expensive valuables will have less of a difference.

Danger Zone (Level 5) "Semibots will take damage over time, gradually speeding up the longer you spend on the level. Damaging enemies heals all Semibots."
  • Base Chance: 20

  • Downside: All players constantly take damage every few seconds. The rate at which speeds up the longer you take to complete the level, up to 30 minutes when it's the fastest.

  • Upside: Enemies taking damage will heal all players. Enemies dying will revive all dead players.

Shared Durability (Level 12) "A portion of damage valuables take is instead given to Semibots. More value lost, more damage given. Extractions will heal Semibots based on value extracted."
  • Base Chance: 15

  • Downside: Damage to valuables will also cause damage to players. By default, damage is only dealt to players grabbing the valuable, however if no one is grabbing, then damage is dealt to all players. Damage is equally split between the number of players it's given to.

  • Upside: Valuables take significantly less damage to their value, and extracting valuables will heal all alive players. (healing is NOT split between players)


levelscaling version 0.9.1

repo version 0.2.1+

CHANGELOG

1.4.0

  • Added a config option for having more than one Challenge per level

    • as of right now, the implementation is pretty barebones and will be expanded upon later. the chance for a challenge will just be rolled multiple times, and the amount of times it succeeds is how many challenges youll get.
  • The stats for a completed level are now shown in the shop (configurable), shops will no longer have their own stats

  • You may now choose which level(s) you'd like to simulate in Level Simulation, by default it displays 1 to 20

  • Level Simulation will now properly take Malfunctions into account outside of a level

  • Challenge and Malfunction data are now saved to LevelScaling.es3 for save files, instead of the vanilla game's dictionaryOfDictionaries

    • there will be backwards compatibility for data existing in dictionaryOfDictionaries from previous level scaling versions, hopefully it works just fine and doesnt break in any way, that would be bad
  • Changes to Challenges:

    • Enlarged Level - map size increase: +40% -> +50%
    • Overtime - map value increase: +40% -> +50%
    • Dense Fog - map size reduction: -67% -> -50%
    • Lights Out - will now periodically blind players for a brief moment every so often. each player may have their own moments of blindness individually.
    • Increased Damage - damage boost against enemies: +33% -> +50%, no longer applies to sharing health
    • Shared Durability - gimmick now no longer active during final extraction
    • Broken Map rework
      • regen cap now starts at max health regardless of current health
      • when taking damage, regen cap is reduced by a third of the damage taken
      • regen cap can be regained with conventional heals (health packs, health sharing)
        • if done through health sharing, regen cap will lower by 10 for the person healing you
      • regen cap is now displayed on your ui next to max health (configurable)
      • slightly raised regen speed: 4 sec -> 3 sec
      • map size will no longer be reduced
      • sharing health with others will no longer pause your regen timer
  • Changes to Malfunctions:

    • Solitude & Soulstealers - defibro now revives to max health instead of 50
    • Perfectionist - now adds +1 Challenge to each level every 10 levels (up to +4)
    • Grandmaster & Max Mode - max potential Challenges per level is now 5
  • Adjusted some of the value ranges for some configurable things:

    • Modules: 3 - 32 -> 2 - 50
    • Extractions: 1 - 12 -> 1 - 15
    • Enemies (per tier): 0 - 25 -> 0 - 30
  • Default config values for scaling have been adjusted to extend all the way to level 100, and each modification will be disabled by default

  • If Compatibility Mode is adjusted via REPOLib in-game, it will now only update whilst on the main menu

  • Fixed an issue where the time displayed in global stats was capped at 100 hours

  • Fixed levels being counted as completed when loading into a shop from a save

  • Fixed an issue where the cosmetics counter on the level stats UI was not flashing blue when the counter incremented

  • Fixed an issue where some config values were used during Malfunctions instead of their default values

  • Fixed enemy health percentages not being rounded to the nearest multiple of 5

  • Fixed typo in Solitude's description

  • Fixed an issue where switching compatibility mode after having a Challenge Level would retain the challenges forever

  • README rework (its p cool)

1.3.7

  • Fixed error spam if dictionary configs had one key-value pair

1.3.6

  • Fixed an issue where client-side mode was not being checked for calculating quotas. (if Modify Haul Goal was enabled while client-side mode was active, the quota would be whatever the map value is)

1.3.5

  • Fixed "Current Moon" text not being hidden on save file UI

1.3.4

  • Reworked Level Stats UI's structure a bit
    • You can now choose to show or hide the total values for stats that have them (such as map value for Extracted, total valuables for Found, or total modules for Explored)
      • If the total is hidden, the value color will not turn yellow or green to indicate completion
    • You can now choose to show player deaths in levels too (will stay shop only by default)
    • Added a new "Cosmetics" stat that tracks how many cosmetics boxes spawn in a level, and how many you've extracted (disabled by default)
  • Changes to Formidable:
    • Level 1 will now have zero enemies
    • 1 enemy of each tier will now be added every 2nd level (starting at Lv2, then 4, then 6, etc)
    • Will still cap at 10 enemies per tier (which now happens at Level 20)
  • Moneybags will now always count as extracted value upon spawn (instead of only when spawned via an extraction point - fixes gambit's moneybag reward)
  • Fixed an issue where extracting a cosmetic box would double-count the value of the first valuable object in the extraction point as extracted value
  • Fixed issues where Level Stats UI would show in the shop, even if it was disabled in the config
  • Fixed Challenges not appearing during Malfunctions

1.3.3

  • Fixed an issue where total map value on the Level Stats UI would be doubled for the host
  • Fixed an error that Level Stats UI would throw
  • Fixed moon phase icon being centered on the save select screen

1.3.2

:(

1.3.1

  • Fixed an issue where valuables spawned after a level was loaded would not count towards map value in stats for the host
  • im dumb and accidentally included the PSD for the icon in the release of last update, oops!

1.3.0

  • Reworked how players can configure general level scaling - switched from sliders at predetermined breakpoints to allowing the player to choose their own breakpoints and values
    • All default values will now be the same as it would be in vanilla. Please reconfigure LevelScaling to customize difficulty.
    • Keep in mind that all values will retain their original caps, even if you put in a larger or smaller number than the caps
    • Please refer to the README for details on how the new configuration system works
  • Updated for v0.4.0
  • No longer has a hard dependency on MenuLib, but it's still very recommended and will be listed as a dependency on Thunderstore
  • Level Stats UI is now smaller to take up less screen space. Will also disable the vanilla Level Number that shows when opening the map, can be configured (or you can adjust the level number's X and Y offset if you want both)
  • Reduced the valuable cap from 900 to 750 to prevent photon views reaching their 1000 limit even more
  • Some fixes and code cleanup and internal changes (i didnt write them down)

1.2.3

  • hotfix for number of enemies being incorrect after level 10
  • _amountSpawned dictionary is now preloaded in case ValuableDirector.SetupHost is skipped for some reason (valuables spawning before SetupHost is ran will no longer softlock loading screens)

1.2.2

  • Fixed an issue where the soul revival mechanic was present outside of Soulstealers (don't ask.)

1.2.1

  • Fixed an issue where loading the game with Compatibility Mode set to something other than "None" would reset your Best Level records for Malfunctions

1.2.0

  • New Malfunction - "Soulstealers"! Shift your entire focus to only defeating enemies using some "very normal" valuables. The modifiers are as follows:
    • All valuables are worth $30 or less, and explode when they are broken
    • Heavier valuables will have a larger explosion radius and deal more damage to players and enemies
    • The three-orb limit for enemies is completely removed
    • The value of enemy orbs is increased by 50%
    • All enemies will drop orbs, even if they usually don't (like gnomes & bangers)
    • Enemies will respawn 5 times faster than usual
    • Enemies will immediately respawn after each completed extraction point
    • Enemies get +10% to their max health every 5 levels (up to +100% at level 50)
    • Players can now ONLY be revived by the energy of soul orbs
      • Bring a player's death head near a soul orb to revive them
      • The larger the orb, the bigger the radius, and the shorter the respawn time
      • The respawn will be cancelled if the orb is broken early
      • If the respawn completes, the soul orb is then destroyed
      • Players will be invincible for a brief moment after respawning
      • Extraction points will NOT revive players (unless it's the shop)
  • Changed the "disable server-side syncing" config option to a "compatibility mode" option. In addition to disabling networking, you may now also disable all host-controlled features of LevelScaling (such as modifying module count or map value), without needing to turn each of them off manually when playing LevelScaling (as a host) in a vanilla setting.
  • Level Stats UI will no longer be always shown by default
  • Removed some client-side UI config options as they will be moved to PlayerTweaks
  • Fixed an issue in the Formidable Malfunction where Gnomes and Bangers could not be grabstunned
    • although it was a mechanic that enemies can't be grabstunned, applying that to Gnomes and Bangers was too much.
  • Fixed an issue where saves without a Malfunction active would show "Malfunction: ????????" on the file page
  • other fixes i forgot to write down

1.1.0

  • Malfunctions - a new way to challenge your team with unique run modifiers, different to Challenge Levels. The host of your lobbies can enable them from the Level Scaling menu (either on the game's main menu or in the multiplayer lobby menu).
    • Malfunctions apply to the entire run. You cannot change them once you've selected it!
    • Saves with a Malfunction will show them on the save file selection screen
    • Lobby members are notified of the current Malfunction if it's changed in the lobby menu
    • Personal best levels are saved! See them from the Level Scaling menu. Reaching high levels gives a little badge next to your personal best.
    • Server-side features of Level Scaling CANNOT be configured when using Malfunctions! All default config values are used if a Malfunction is active (unless the Malfunction changes them). Client-sided configs (like level stats ui) are not affected.
    • Good luck!
  • Added a config option to display details when loading a new level. The loading screen will show exactly what the game is currently doing. (this is mostly for the host, clients will only see "waiting for other players" most of the time)
  • Adjusted some min & max & default values for some config options
  • Deaths that occur outside of a level (such as the shop or truck lobby) will no longer increment the death counter for run stats
  • Significantly reduced the max possible map value and valuable caps. Photon has a limit of 1000 views, having too many valuables would exceed this limit and cause people to get stuck in loading, oops!
  • Certain stats on the Stats UI will now flash if their value changes (to pop out more); can be disabled
  • Fixed an issue where levels weren't being counted as completed for non-hosts
  • Fixed an issue where leaving the game during a Challenge Level would reset the number of cleared challenges on your global stats for that level
  • Fixed an issue where extracting a valuable that had not been discovered would not decrease the "total possible found objects" counter (mainly an issue when killing enemies using an extraction point and not being able to discover their orb before it gets extracted)
  • Fixed an issue where, in some situations when playing multiplayer, enemies would be counted as killed when taking damage, even if they were alive
  • other fixes that i kinda forgot to write down

Preview 1

1.0.2

  • adjusted how the number of enemy spawns is modified to improve compatibility
    • note: SpawnConfig will have priority over Level Scaling's enemy configuration. if SpawnConfig is installed, Enemy Rush will be blacklisted from challenges.
  • raised the cap for valuable volumes to raise the chances that the configured map value can be reached more consistently if set to a high amount
    • for Tiny objects, this is 6.0x higher
    • for Small objects, this is 4.0x higher
    • for Medium objects, this is 3.0x higher
    • for Big objects, this is 2.0x higher
    • for Wide objects, this is 1.5x higher
    • for Tall objects, this is 1.25x higher
    • for Very Tall objects, this is 1.1x higher
    • for the total object cap, this is 20.0x higher
  • you can now adjust how configuration values are rounded when interpolated between level numbers
  • fixed an issue with Shared Durability where players who got damaged due to value loss were completely deleted from the universe (in simple terms)
    • this caused a lot of issues, mainly one where players were permanently unable to be revived

1.0.1

  • hotfix for level stats UI not hiding when disabled

1.0.0 (release!!!!! :D)

good enough to call this fully released now.

  • New Level Scaling Menu - see a few extra features from a new in-game menu. Can be accessed from the main menu, the lobby menu, or the pause menu. Can also be disabled in the config.
    • Global Stats - you can now track your stats across every run, hosted by you or not. Global stats are client-sided and locally saved. A backup is made every time the game launches, and you can reset your global stats by deleting your global stats save (of course).
    • Level Simulation - see the specifics of each level from 1 to 100 in this menu. Displays the approximate number of extraction points, modules, map value, quota difficulty, challenge chances, number of enemies, and enemy health multipliers. Useful for knowing if you've tweaked your settings juust right. (this menu can be disabled in the config)
    • Credits - the special list of special people who've helped me along the way.
  • you can now modify the number of enemies (for each tier) in the config. this is enabled by default! level scaling has its own default balancing for this.
  • you can now modify the enemy health percentage in the config. this is disabled by default (i think its out of the scope for the games balance), but feel free to mess around with it!
  • you can now turn off challenge tutorials in the config (this is client-sided)
  • you can now adjust the Y offset of the level stats UI
  • removed the completion indicator (value text turning green) from the Orb Drops stat temporarily. it wasn't working for non-hosts, i'll find a workaround later.
  • custom value ui - if a valuable's value reaches $0, the ui will instantly update to show $0 instead of interpolating
  • level scaling's current version will now be shown on the main menu (can be disabled)
  • fixed an issue where the "Added Per Player" config option for Total Map Value was not adding the correct amount of map value
  • fixed an issue where enemy despawn timers were unintentionally affected by Enemy Rush
  • no longer depends on repolib, but now depends on menulib

Preview 1

0.10.0

  • Adjustable Challenge Starting Levels: choose when challenges can start to appear from the config.
  • Client-side mode: (off by default) - disables challenge levels in exchange for vanilla compatibility, and the ability to use Level Scaling independently of REPOLib.
  • Custom Value UI: (on by default) - when holding a valuable, the text colour will fade from green to red depending on current value compared to original value. (just something i thought would be nice for the mod, idk why)

Preview 1

  • Alternate Stamina UI: (off by default) - displays stamina starting at 100 instead of 40, each upgrade adding 25 instead of 10. helps stamina feel more consistent with health. stamina will functionally remain the same as vanilla, just have its display multiplied.
  • Broken Map: map will now be usable, but the screen will be blank.
  • some general fixes and adjustments.
    • stats are no longer synced as they don't really need to be, and will be handled by each client on their own.
    • the "Found" stat will now take into account if a valuable has broken before it was found by a player. it will function similarly to the "Extracted" stat if a valuable were to be damaged. you can change how this displays in the config.
    • by default, the "extracted display option" and "found display option" will now be set to Alternate in the config
    • fixed an issue where challenges could appear even if the chance multiplier was set to 0
    • fixed an issue where loading a save without level scaling data would sometimes just not work

0.9.4

  • Updated for v0.3.0
  • Enlarged Level will now always spawn one extra extraction point
  • Dense Fog fog distance reduction will now constantly oscillate between -70% and -45% throughout the whole level (originally just -62%)
  • Level timer will no longer stop during "destroying slackers", only when the engine starts
  • Fixed an issue where surplus valuables (the tax return bag) were being affected by Fragile Valuables - it's not supposed to be
  • Fixed an issue where enemy strength breakpoints were not reverted when Enemy Rush occurs

0.9.2 - 0.9.3

  • Added a config option to disable the level minimums for each challenge type (allowing any challenge to appear on any level number)
    • (0.9.3 hotfix - fixed this being enabled by default, it's not supposed to be)
  • Changes to Danger Zone:
    • Time before passive damage begins: 5s -> 10s
    • Time between damage is now doubled when at 10 HP or below
    • Damage is now completely paused while there are no enemies spawned on the map, and will resume 7.5 seconds after one respawns
  • The spawn cap for valuable types is now based on the configured total map value (partially fixes an issue where setting a super high map value on early levels wouldn't spawn enough valuables due to the limit - the cap will be raised up to 10 times its original value, but the map value may still be below what's set in the config)
  • Fixed an issue where challenges weren't counted to the counter for run stats
  • Fixed an issue where run stats would persist between runs
  • Fixed an issue where deaths in the Disposal Arena would count towards the death counter
  • Updated the README to show exact information about challenge levels (rather than being vague)

0.9.1

  • Fixed an issue where completed extractions weren't being counted if a moneybag was extracted
  • Swapped the starting levels of Danger Zone (now lv 5) and Shared Durability (now lv 12)
  • Danger Zone and Shared Durability's gimmicks are now disabled if the truck is in its leaving state (either "destroying slackers" or "starting engine")

0.9.0

  • Run Stats - alongside level stats, LevelScaling will now record stats for the entire run; these stats will be displayed on the save file in the main menu. When loading a save without run stats, they will be automatically created for that save. Run stats will be deleted if a save is deleted, even if LevelScaling is not installed when deleting the save.

Preview

  • New challenge level: "Shared Durability" - appears starting level 5
  • When "guaranteed challenges" is enabled, you may now have the same challenge type appear consecutively
    • this fixes an issue where guaranteed challenges would not occur if only one challenge type was enabled in the config
  • Dense Fog: player damage is now reduced by 20%
  • Enemy Rush: the camera glitch effect that plays when healing will now be omitted for small heals that occur in quick succession (to hopefully prevent your screen from flashing a lot)
  • Over-Overcharge: will no longer occur earlier than level 10; overcharge speed will no longer be affected by moon phases
  • Fixed an issue where the progress bar would not display when challenge tutorials are shown at the start of a level

0.8.1

Some small balance changes to challenges

  • Dense Fog: reverted the visibility change, made level size even smaller than previously (by about 17%)
  • Lights Out: lowered the visibility further by about 5%, increased walk speed by about 5%
  • Enlarged Level: increased size by about 10%, increased stamina regen speed by 33%
  • Danger Zone: revivals no longer put you at 11 hp, extra damage via Increased Damage is no longer accounted for (although at the moment challenges cannot be combined... yet!)
  • Fragile Valuables: increased fragility and reduced durability by 10%, increased average value by 10%, made values round to 100 after applying the multiplier
  • Overtime: increased total map value by 7%
  • Broken Map: level is now 10% smaller

0.8.0

  • You are now able to configure most changes that Level Scaling previously made. The list is as follows:
    • For module count: base amount, randomness, per-player scaling, and map-specific multipliers.
    • For extraction count and total map value: base amount, randomness, and per-player scaling.
    • For haul goal (quota): base difficulty, extraction point scaling, and rounding (eg. to hundreds or to thousands)
    • For challenges: you can now guarantee challenges on each level should you wish, and re-enable the possibility for challenges to occur on levels where the moon phase switches
      • Note that when challenges are guaranteed, the level requirements for each challenge are ignored
  • New challenge level: "Danger Zone" - appears starting level 12
  • Slightly reduced visibility during Foggy Level and Lights Out challenges
  • Increased the rate at which overcharge discharges during Enemy Rush and Over-Overcharge
  • Level stats will now be hidden during a challenge tutorial popup
  • Hopefully fixed an issue where challenge levels could happen on the disposal arena
  • Hopefully fixed an issue where items falling in pits might incorrectly increment the Broken value stat

0.7.0

  • You can now configure if Level Scaling modifies the base game scaling, including module counts, extraction counts, quota scaling, and total map value scaling. (all host only)
    • If any Challenge Level types modify these values, the modifications will adjust accordingly to the vanilla amount or Level Scaling amount, whichever is selected in the config
  • You can now configure the individual weights of each challenge level type (all host only)
  • You can now toggle each individual statistic on the level stats UI (client-side)

0.6.4

  • Updated for 0.1.2.47_beta
  • You can now choose how the Extracted value displays on the stats UI - original total map value, current remaining map value, or alternate between the two (see config)
  • Challenge levels will now be impossible on Levels 5, 10, 15, 20, and 25
  • Some balancing changes to the Enemy Rush challenge to account for the new moon phases

0.6.3

  • Updated for 0.1.2.37_beta

0.6.2

  • Added configuration options for hiding the level stats UI under certain conditions
  • Added a configuration option to hide the legacy overcharge UI
  • Added a configuration option to multiply the chances of or disable Challenge Levels altogether