Please disclose if your mod was created primarily using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
LethalCompTime
Allows for more controlled quota rollover. For if Quota Rollover starts feeling too easy.
| Last updated | 2 weeks ago |
| Total downloads | 24398 |
| Total rating | 8 |
| Categories | Client-side Server-side Tweaks & Quality Of Life |
| Dependency string | PoikSpirit-LethalCompTime-1.4.0 |
| Dependants | 37 other packages depend on this package |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100README
Allows for more controlled quota rollover. For if Quota Rollover starts feeling too easy.
By default, half of the value exceeding quota is rolled over and half is kicked into overtime bonus, but with diminishing returns that prevent reaching the next quota on rollover alone. Afterall, the company doesn't want you to get away with not feeding it valuable scrap. You must not rest. You must work. You must be a great asset to the company. Great- great asset to the company.
Features
- Sets up quota rollover to help reduce hoarding
- Adds a percentage penalty for rollover to encourage hoarding a little
- Attempts to balance rollover making the game too easy and front loaded
- Completely client sideable cosmetic effects, and completely host sideable rollover effects
- LobbyCompatibility integration
- LethalConfig integration includes seven prebuilt settings available for quick access.
- LethalConfig example fields allow to test settings.
- Setting available to reenable early quota advancement as is in the vanilla game.
- Settings available to update quota variables.
- Settings available to update overtime calculation.
Usage
There are four rollover settings available:
- RolloverBasePercent
- controls how much quota is rolled over in general.
- RolloverPenaltyThreshold
- the percent of the next quota obtained before applying the penalty to the rest of the rollover.
- RolloverPenaltyPercent
- the penalty percent is only applied to the quota above each multiple of the threshold, stacking multiplicatively.
- RolloverPenaltyType
- Determines how the threshold is handled.
- Asymptotic applies to each multiple of the quota before penalty. This makes the amount possible to rollover asymptotically approach a value... calculateable by the geometric series. (I don't know if I can get a display in LethalConfig to show the current asymptote, but I could be convinced to change how I calculate this so the asymptote is specified and then a scaling factor is used to make the curve.)
- Logarithmic applies to each multiple of the quota after penalty. This makes it harder to reach the next multiple of the quota, but it will always be possible given enough value over the current quota.
- Determines how the threshold is handled.
There are four overtime settings available:
- OvertimeOverride
- Removes the amount rolled over from the overtime bonus calculation, otherwise significantly beating quota early will cause many time the overtime bonus compounding overtime. It's easy to get immensely rich in standard QuotaRollover due to this oversight.
- I do not recommend setting this to False unless you need a boost or just want to have fun. No shade either way, the game can be unfair sometimes. I added this so we all can play how we want.
- OvertimeRatio
- How much of the overfulfilled quota goes into the overtime bonus. This is after the override above removes the rollover from the finished quota and adds it to the next, if enabled.
- Defaults to the vanilla value of 1/5.
- OvertimeEarlyBonus
- How much, as a base value, should be rewarded per day early the quota is fulfilled.
- Defaults to the vanilla 15
- OvertimeEarlyScaling
- How much, as an additive ratio, should the overtime early fulfillment bonus increase each quota.
- Defaults to 0 to make the calculation the same as vanilla.
There are two early fulfillment settings available:
- EnableEarlyFulfillment
- In vanilla, if you have the current quota when you set off from a planet, the quota advances. This can allow for bonus overtime, but can also make the quota climb extra fast.
- I only recommend setting this to True for veteran players. It's a fun twist on the rollover paradigm.
- EarlyFulfillmentStartDay
- The first day in the quota cycle when early fulfillment can happen.
- Defaults to 0, so any time you take off with the quota fulfilled, it should advance the quota. This is how it works in vanilla.
There are seven quota configuration settings available with defaults set to vanilla values:
- Configurable Quota
- Whether to configure the quota using this mod or let someone else do it (such as Zeekerss or EasyQuota).
- This will be ignored if a known mod that overwrites the quotaVariables values is installed.
- QuotaDaysPerCycle
- The number of days in each cycle.
- Defaults to 3.
- StartingQuota
- The quota on the first cycle.
- Defaults to 130.
- StartingCredits
- How many credits you have on a fresh lobby
- Defaults to 60.
- QuotaBaseIncrease
- The base rate of increase each quota
- Defaults to 100
- QuotaRandomizerPortion
- The amount the random portion of the calculation affects the quota increase.
- Defaults to 1. (This makes for a weird ratio of base to randomness on average because of the curve used in the base game.)
- QuotaInverseSteepness
- An amount to divide the exponential increase of the quota by to tweak the curve of the increase.
- Defaults to 16.
There are seven visual settings available. They will not apply to the monitor during the challenge moon. The values they use for the colors are HTML color codes, where strings starting with '#' will be parsed as hex codes, and everything else will be parsed as a color name. (Full name list not available in Unity's documentation of the function I use.)
- RolloverScreenColoration
- If set to None, no coloration will apply and the monitors will have the default green on black. This is the default partially due to complaints about my lack of color theory knowledge (which is fair).
- Text applies the next three options to the text on the monitors, leaving the screen background black.
- Background applies the next three options to the screen background and the three options after that are used to recolor the text in this mode if wanted.
- RolloverColorUnderFulfilled
- This color applies to the place selected above (text or background) when the quota turned in is less than is needed for this quota. Mostly is an easy way to check if you need to throw a few more scrap in at the company building.
- RolloverColorFulfilled
- This color applies to the place selected above (text or background) when the quota is met and none of it is getting penalized for exceeding the threshold. If there is no rollover, then there's no penalty and this will still be used.
- RolloverColorOverFulfilled
- This color applies to the place selected above (text or background) when the quota turned in is enough to hit the penalty threshold specified. Indicates that further scrap turned in will lose more and more rollover value. If there is no threshold (such as with QuotaRollover defaults) then this should never be used.
- RolloverTextColorOverrideUnderFulfilled
- This color applies to the text when the above is set to Background when the quota turned in is less than is needed for this quota. Mostly is an easy way to check if you need to throw a few more scrap in at the company building.
- RolloverTextColorOverrideFulfilled
- This color applies to the text when the above is set to Background when the quota is met and none of it is getting penalized for exceeding the threshold. If there is no rollover, then there's no penalty and this will still be used.
- RolloverTextColorOverrideOverFulfilled
- This color applies to the text when the above is set to Background when the quota turned in is enough to hit the penalty threshold specified. Indicates that further scrap turned in will lose more and more rollover value. If there is no threshold (such as with QuotaRollover defaults) then this should never be used.
Recommendations
Installing LethalConfig provides vanilla compatible tools to mess with settings in game, and in the case of this mod comes with seven presets to choose from.
- Vanilla offers no rollover, like the base game, and therefore is the hardest setting.
- To enable this manually, set the base rollover to 0%.
- RolloverEarlyFulfillment to True
- Coloration for when you have and have not met quota should still work if that interests you.
- CompanyIssue is the default for the mod, halving initial rollover and diminishing rollover value such that you'll never reach a full week off.
- To enable this manually set:
- RolloverOvertimeOverride to true
- RolloverPenaltyType to Asymptotic
- RolloverBasePercent to 50
- RolloverPenaltyThreshold to 100
- RolloverPenaltyPercent to 50
- RolloverEarlyFulfillment to True
- To enable this manually set:
- Recommended is a setting that I recommend if you just want your first rollover settings to play with. It's not the default because it decreases the overtime bonus a bit more substantially for lower rollover values, which doesn't quite feel like it's the best for more experienced players. That being said, everyone is free to play how they want.
- To enable this manually set:
- RolloverOvertimeOverride to true
- RolloverPenaltyType to Asymptotic
- RolloverBasePercent to 100
- RolloverPenaltyThreshold to 50
- RolloverPenaltyPercent to 50
- RolloverEarlyFulfillment to True
- To enable this manually set:
- HardCapped allows you to rollover 100% of the next quota worth maximum. After that the rest goes to overtime bonus and your credits on the ship only.
- To enable this manually set:
- RolloverOvertimeOverride to true
- RolloverPenaltyType to Asymptotic
- RolloverBasePercent to 100
- RolloverPenaltyThreshold to 100
- RolloverPenaltyPercent to 0
- RolloverEarlyFulfillment to False
- To enable this manually set:
- ScaledDown provides a slightly more diminished return that is somewhere between Quota Rollover's original functionality and the defaults for this mod.
- To enable this manually set:
- RolloverOvertimeOverride to true
- RolloverPenaltyType to Logarithmic
- RolloverBasePercent to 100
- RolloverPenaltyThreshold to 50
- RolloverPenaltyPercent to 75
- RolloverEarlyFulfillment to False
- To enable this manually set:
- QRBalanced balances the original functionality of Quota Rollover by effectively disabling overtime bonus. Also enables early fulfillment as a additional balance against massive overfulfillments.
- To enable this manually set:
- RolloverOvertimeOverride to true
- RolloverPenaltyType to Asymptotic
- RolloverBasePercent to 100
- RolloverPenaltyThreshold to 100
- RolloverPenaltyPercent to 100
- RolloverEarlyFulfillment to True
- To enable this manually set:
- ClassicQR imitates the Quota Rollover mod directly by double counting rollover towards overtime bonus.
- To enable this manually set:
- RolloverOvertimeOverride to false
- RolloverPenaltyType to Asymptotic
- RolloverBasePercent to 100
- RolloverPenaltyThreshold to 100
- RolloverPenaltyPercent to 100
- RolloverEarlyFulfillment to False
- To enable this manually set:
In Game Calculations
Quota Rollover
Exponential
TODO
Logarithmic
TODO
Overtime Bonus
This mod updates the overtime bonus to:
overtime = (overfulfillment - rolloverIfOverride) * OvertimeRatio + OvertimeEarlyBonus * (1 + OvertimeEarlyScaling * timesFulfilledQuota) * daysUntilDeadline
Plugging in the default values and turning off the override, we get the vanilla formula:
overtime = overfulfllment / 5 + 15 * dayUntilDeadline
Quota Setting
TimeMultiplier = clip(1 + timesFulfilledQuota^2 / QuotaInverseSteepness, 0, 10^4)
RandomizerOffset = QuotaBaseIncrease * TimeMultiplier * (1 + EvalutateCurve(Random(-0.503, 0.503) * luck))
With EvaluateCurve being a hard coded function from the game dev. And luck is furniture luck. Good luck with that.
NewProfitQuota = clip(OldProfitQuota + RandomizerOffset, 0, 10^9)
Compatibility List
Explicitly supports
- EasyQuota : Ignores the values in this mod and prefers the ones from EasyQuota
- LethalConfig : Allows for full customization and some extra features
- LobbyCompatibility : Setup to allow this to be recognized as client only, though it's better if everyone has it
Explicitly Conflicts With
- QuotaRollover : Both try to highjack the quota routine, and it will result in a race condition.