Sims Salary Bonus Scheme

The Sims Salary Bonus Scheme rewards Sims for long service, in addition to pay increases from being promoted. Sims who remain at their current career level (pay grade) will receive pay rises as their days worked at that level increase.


Base and Daily Bonus

There are two parts to a Sim's salary bonus - the base bonus and the accrued bonus. The base bonus is a fixed amount (default is 0%) and the accrued bonus increases with each day worked by a daily amount (default is 2%). Bonus is accrued at the end of each working day, ie after the Sim has been paid.

A Sim with a basic salary of $120 and the default bonus values of 0% base and 2% daily will earn

DayBasic PayBase BonusAccrued BonusTotal BonusTotal Pay
1$1200%0%0%$120
2$1200%2%2%$122
3$1200%4%4%$124
4$1200%6%6%$127

While a Sim with a basic salary of $120 and custom bonus values of 5% base and 1% daily will earn

DayBasic PayBase BonusAccrued BonusTotal BonusTotal Pay
1$1205%0%5%$126
2$1205%1%6%$127
3$1205%2%7%$128
4$1205%3%8%$129

Bonus Limits

There are two limits on the total bonus a Sim can receive. One is a configurable limit (default is 20%) and one is a system limit (imposed by the limitations of signed 16-bit maths, this is 200% for salaries up to $10k and 100% up to $16k)

A Sim with a basic salary of $120 and custom bonus values of 7% base and 4% daily with the default limit of 20% will earn

DayBasic PayBase BonusAccrued BonusTotal BonusTotal Pay
1$1207%0%7%$128
2$1207%4%11%$133
3$1207%8%15%$138
4$1207%12%19%$142
5$1207%16%20%$144
6$1207%20%20%$144

Promotions/Demotions

By default, when a Sim is promoted (or demoted) their accrued bonus is lost. Promotion/Demotion is assumed to happen at the very end of the day, ie after the Sim has been paid.

A Sim with a basic salary of $120 and the default bonus values of 0% base and 2% daily who is promoted to the next level at the end of day 2 to a basic salary of $150 will earn

DayBasic PayBase BonusAccrued BonusTotal BonusTotal Pay
1$1200%0%0%$120
2$1200%2%2%$122
3$1500%0%0%$150
4$1500%2%2%$153

This behaviour can be changed, so a Sim that keeps their accrued bonus when promoted will earn

DayBasic PayBase BonusAccrued BonusTotal BonusTotal Pay
1$1200%0%0%$120
2$1200%2%2%$122
3$1500%4%4%$156
4$1500%6%6%$159

Fired/Quit

A Sim who is fired, or quits their job, loses all accrued bonus. A Sim who changes job is assumed to quit their previous job.


Paid Leave (including maternity leave)

Unfortunately, there is no way to differentiate paid leave from maternity leave, so these two situations are handled identically. By default, Sims do not accrue bonus for paid leave, although this can be changed for all Sims.

A Sim with a basic salary of $120 and the default bonus values of 0% base and 2% daily who takes the fourth day as leave will earn

DayBasic PayBase BonusAccrued BonusTotal BonusTotal Pay
1$1200%0%0%$120
2$1200%2%2%$122
3$1200%4%4%$124
4$1200%6%6%$127Paid leave
5$1200%6%6%$127
6$1200%8%8%$129

While the same Sim on maternity leave from day 3 will earn

DayBasic PayBase BonusAccrued BonusTotal BonusTotal Pay
1$1200%0%0%$120
2$1200%2%2%$122
3$1200%4%4%$124Maternity leave
4$1200%4%4%$124Maternity leave
5$1200%4%4%$124Maternity leave
6$1200%4%4%$124

Retirement

A Sim who retires will have their pension based on their total pay (ie basic salary plus bonuses) by default, although this can be changed for all Sims. In addition, a retiring Sim with unused leave (PTO) will receive a remuneration for the untaken leave.


Bonus Stepping

In the real world, people do not receive a pay rise at the end of every day! Performance is gained over a period and rises are awarded at intervals. To simulate this, the Sims Salary Bonus Scheme supports the concept of "stepping". By default, this is turned off.

There are two factors controlling "stepping" - the start step and the step delta. By default, the start step is 5% and the step delta is 5%. Rather than receiving continuous pay rises, Sims will only gain the rise when their total salary bonus equals or exceeds the next point on the stepped bonus scheme. For the default settings, these points are 5%, 10%, 15%, 20% etc. In addition to the pay increase, a notification of the bonus award is given.

Our original Sim with a basic salary of $120 and the default bonus values of 0% base and 2% daily and the default stepping of 5% base and 5% delta, will earn

DayBasic PayBase BonusAccrued BonusNext StepTotal BonusTotal Pay
1$1200%0%5%0%$120
2$1200%2%5%0%$120
3$1200%4%5%0%$120
4$1200%6%5%5%$126Bonus notification
5$1200%8%10%5%$126
6$1200%10%10%10%$132Bonus notification
7$1200%12%15%10%$132
8$1200%14%15%10%$132
9$1200%16%15%15%$138Bonus notification
10$1200%18%20%15%$138

Whereas a Sim with a basic salary of $120 and custom bonus values of 7% base and 4% daily with a custom limit of 50% on a stepped bonus scheme with a start of 10% and a delta of 5% will earn

DayBasic PayBase BonusAccrued BonusNext StepTotal BonusTotal Pay
1$1207%0%10%0%$120
2$1207%4%10%10%$132Bonus notification
3$1207%8%15%15%$138Bonus notification
4$1207%12%20%15%$138
5$1207%16%20%20%$144Bonus notification
6$1207%20%25%25%$150Bonus notification
7$1207%24%30%30%$156Bonus notification
8$1207%28%35%35%$162Bonus notification
9$1207%32%40%35%$162
10$1207%36%45%40%$168Bonus notification

Sim Interactions

Clicking on the active Sim gives an additional Pay Book menu option

  • Not available while the Sim is asleep
  • Get Pay Book - only available if the pay book has not been created yet for this Sim
  • Find Pay Book - only available if the Sim's pay book is not in their inventory. Will pan the camera to the location of the pay book
  • Review Salary - only available if the pay book is in the Sim's inventory. Identical to the pay book menu option of the same name.

Pay Book

The bonus data for a Sim is stored in their Pay Book. This object (cloned from the yellow ticket pad) is automatically created when a Sim accrues a daily bonus and is placed in their inventory. It can also be created on demand by clicking on the Sim and selecting "Pay Book -> Get My Pay Book". If the pay book has been "lost" (ie removed from their inventory and left somewhere), it can be "found" by clicking on the Sim and selecting "Pay Book -> Find My Pay Book".

General Notes

The pay book ...

  • cannot be bought (use Sim interaction to manually create)
  • cannot be deleted (use object's Dispose interaction)
  • can only be used by the owning Sim
  • can only be placed in owning Sim's inventory
  • cannot be given as a gift
  • cannot be left behind on a non-home lot (it will be automatically placed into the Sim's inventory)

Pay Book Interactions

Only the active Sim can use their pay book. Clicking on the active Sim's pay book gives the following options

  • Put Away - places the pay book into the Sim's inventory
  • Dispose - displays a confirmation dialog, then deletes the pay book. All pay book settings and accrued bonus are irretrievably lost!
  • Salary Review - displays the Sim's current salary, bonus, days at level and total salary. This is the only way to see a Sim's total salary
  • Show Values - displays various pay book data values (base bonus, daily bonus, accrued bonus, step details, etc)
  • Set ... - sub-menus for setting various values (base bonus, daily bonus, days worked, step start and step delta) and options (promotion/demotion, use steps)
  • Options ... - sub-menu for pausing and unpausing a Sim's promotions

Setting Values

With the exception of "Zero", all menu entries change the current value by the amount specified, so "+5" increases the value by five - it does not set the value to five. For example, if you know the current value is 2 and want to change it to 4, just select "+2". However, if you do not know the current value, select "Zero", then "+2" then "+2" again. Alternatively, you could select "Zero", then "+5" then "-1".


Configuration - BCONs

Configuration of the Sims Salary Bonus Scheme is done via BCONs.

The 0x00 entry "Flags" in the three BCONs (0x1001, 0x1002 and 0x1003) is the sum of all the values given in BCON 0x1005 "Sim Flags" that you want on.

The default value of 0x03EB is 0x0200 ('Pay unused PTO on retire') + 0x0100 ('Unused') + 0x0080 ('Unused') + 0x0040 ('Unused') + 0x0020 ('Bonus alters pension') + 0x0008 ('Send bonus notifications') + 0x0002 ('Lose accrued bonus on demotion') + 0x0001 ('Lose accrued bonus on promotion') (There is a good reason for the three unused values being on, but it's too complex to go into here.)

So, to switch on the 'Using stepping' flag, we need to add the value 0x0004 which gives 0x03EF. As the 'Send bonus notifications' flag is already on, do NOT add 0x0008 as well! If you wanted to switch those off, you would subtract 0x0008 from the value.

So, you need to change the three occurrences of 0x03EB to 0x3EF to enable stepping by default

See the PDF manual for more details.


Pre-installation Maths

The default settings assume an adult Sim has a life-span of 28 days or 4 weeks and, on average, they work five days a week and will attain the desired career level half way into their adulthood - leaving them two weeks, or ten working days, to accrue their bonus. Furthermore, it is assumed that the desired maximum bonus is 20% with no base bonus. This means a Sim needs to have a daily bonus of 2% to get to the maximum bonus by retirement.

Obviously, if you play with longer age durations or aging off, you will need to adjust these figures.

For example, if you're playing with a 3x age mod and want a maximum bonus of 25% with a base bonus of 5% and expect them to reach their desired career level in the first third of their adulthood, we would need to use (25% - 5%) / (28 * 3 * 2/3 * 5/7) = 0.5% as the daily bonus. As bonus values are stored "times 100" we would need to use the value 50 for the DailyBonus value.

If we're feeling mean, we can also set negative values for the base bonus. Assuming we want to penalise our Sims and make them work their way up from the gutter, we could set a starting bonus of -28%, a daily bonus of 1% and a limit of 0%. If we also clear the "lose bonus on promotion/demotion" flags, an adult Sim that works every day of their short life will retire with no penalty!

Installation

You need to copy the three main _A, _B and _C package files into your downloads directory.

If you want to use the pay book feature to stop promotions from chance/hobby cards, you also need to copy the _D package file into your downloads directory. Do NOT copy the _D package file if you are using the JobStopinator_Chance.package file (see "Conflicts - Special" below).

Uninstallation

Delete the four package files (_A, _B, _C and _D) from your downloads directory.

Reverting to normal salaries while keeping the pay book data

Remove the _C and _D package files. When you want to start using the bonus scheme again, put them back.

Package Dependencies

Package D depends on package C, which in turn depends on package B, and they all depend on package A. The simple rule is "you must have a contiguous alphabet starting with A", so, for example, do not install packages C and D on their own, or just package B.


Conflicts - General

Will conflict with any mod that alters the CarGlobals (0x7F4EA230) BHAV included in package A or the JobDataGlobals (group 0x7F8F4EB6) BHAVs and/or STR#s included in package C

CarGlobals (Package A)

  • BHAV 0x2072 Get In - Start

JobDataGlobals (Package C)

  • BHAV 0x2005 Function - Qualify for Level?
  • BHAV 0x2006 CT - Offer Job
  • BHAV 0x2024 CT - Use PTO
  • BHAV 0x2025 CT - Lose Job
  • BHAV 0x2032 CT - Retire
  • BHAV 0x204A CT - Quit Job
  • BHAV 0x2052 Memory - Promotion
  • BHAV 0x2053 Memory - Demotion
  • BHAV 0x20A0 Sub - Calculate Pay Increase
  • BHAV 0x20D3 CT - PayBook - Get Salary for level P0 in T0 {Added}
  • STR# 0x012F Call Named Tree prim string set
  • Known NOT to conflict with jobfixes at MATY
  • Known NOT to conflict with JobStopinator at cyjon.net
  • Known NOT to conflict with No Pet Spam Codes at Simbology
  • Known NOT to conflict with University of Life at MTS
  • Known TO CONFLICT with G-Rated Religion at Hat Plays Sims
  • Known TO CONFLICT with InTeen, conflict has been merged into code, ensure this mod loads AFTER InTeen.
  • Known TO CONFLICT with harderjobs at MATY
  • Known TO CONFLICT with EdukashunIzGud at cyjon.net (if using EdukashunIzGud, make sure it loads AFTER this one and don't use the Pause Promotion feature of this mod but something else, eg JobStopinator)

Conflicts - Special

Package D (suppression of promotions via chance/hobby cards) will conflict with any mod that alters the JobDataGlobals (group 0x7F8F4EB6) BHAVs included within it

JobDataGlobals (Package D)

  • BHAV 0x2008 Sub - Chance Card - Results
  • BHAV 0x2097 CT - Hobby Card - Results

It is known to conflict with the chance/hobby card optional package of JobStopinator. If you are already using the CJ-JobStopinator-Chance.package to stop promotions via chance/hobby cards, delete package D, as it is just duplicating this functionality.

Conflicts - Objects and Interactions

The Pay Book (package _A) and the Sim Interactions (package _B) have their own GUID so will NOT conflict with any other objects or interactions.


Known Issues

  • The displayed salary (in the career tab) does NOT include any bonus. I know of no way to fix this, so please don't report this as a bug. However, if you know the exact BHAV that needs editing to achieve this, please feel free to let me know!

Notes

  • Requires Apartment Life or Mansions and Gardens
  • Works for any career - base, expansion or custom
  • Only applies to teens, adults and elders in careers (applicable ages are configurable)
  • Young Adults who manage to get a career, will be treated as adults
  • Does NOT apply to pets
  • Bonus payments are truncated to a whole amount. Remainders do NOT accrue (so a bonus of $20.6 results in two payments of $20 and not one of $20 and the next of $21)
  • All default values are configurable via BCONs
  • Values can be adjusted on a per Sim basis via their Pay Book
  • Internally, percentages are held multiplied by 100, ie 1% is stored as 100. This permits fractions, ie 2.5% would be stored as 250 and 3.75% as 375

Techy Stuff

See the PDF manual for more details.


Credits

  • gummilutt@MTS for the initial idea and input during development.
  • Chris Hatch for many valuable insights into the weird and whacky world of BHAV coding.
  • The developers of SimPE.
  • Everyone at MTS and Leefish who responded to my coding queries. Any mistakes in the implementation of their suggestions are entirely my own.
  • InTeen for developing a mod that so nearly met my exact requirements that I felt confident enough to delve into SimPE and discover the world of BHAVs, BCONs and TTABs
  • All the modders who took time to write tutorials, wiki pages or explanatory forum posts - some of the answers I used dated back to 2007!
  • Way too many others to mention.

"It is only by standing on the shoulders of giants that the rest of us can even see the top of the learning curve and contemplate attaining it."


Files