With the introduction of that ‘bb.ignoregameplayunlocksentitlement’ monstrosity it really was time for this. These are some custom shortcuts for TS4 in the form of a loose .py file so they are easy to edit.
- casf – testingcheats on + cas.fulleditmode
- d | t | debug [on/off] – testingcheats
- h [on/off] – headlineeffects
- m | mo | moo – bb.moveobjects (toggle)
- ssk | setskill <skill> <level> – stats.set_skill_level <skill> <level>
- u | unlock – bb.showhiddenobjects + bb.ignoregameplayunlocksentitlement
on/off can be expressed in many ways, like 0/1, on/off, true/false, y/n etc. If you just enter “t” or “h” it will list what the options are.
For a list of shortcuts, type shortcuts:
For skill name shortcuts, type ssk or setskill (without any arguments):
bt | bartending
ch | char | charisma
cm | comedy
ck | cooking | homestylecooking
fs | fish | fishing
ft | fitness
gd | gardening
gourmet | gourmetcooking
hd | handiness
lg | logic
ms | mischief
pt | painting
pg | prog | programming
rs | rocksci | rocketscience
creative | creativity (Child Skill)
mental (Child Skill)
motor (Child Skill)
soc | social (Child Skill)
You can also look these up in the actual .py file (list at the bottom that goes like “[..] ‘ms’: ‘AdultMajor_Mischief’ [..]” – the game does not care when you open that file while it’s running.
OS X users will need 1.4.103 or higher for this to work (aka the patch that made it so that script mods won’t crash your game). See this announcement for more info.
How to install:
Unzip the “shortcuts” folder and put it in /Mods. Do not change the “Scripts” subdirectory, it needs to be named like that. If you want to change the name of the “shortcuts” folder, you need to edit the file name of the .py too so that they are the same. See here. You also need to have script mods enabled in Game Options > Other.
How to edit (if you want):
Open shortcuts.py (after you made a backup) in any text editor and see if you can make sense of it – if you speak any programming language at all, it shouldn’t be terribly hard. If all you want is add an existing cheat to the list which does not need any arguments, you can probably copy + paste the moveobjects one, just change the name of the shorthand form/s, the name of your command, and the string it’s supposed to pass on. For more “complicated” stuff see the other ones (but when in doubt, better use code by other people as a reference rather than mine). In-game commands that are defined in Python may need to have a | prepended (can’t say I understand why this is, but hey, I only “know” Python since yesterday), and Python is very very picky about tidy whitespaces so try to not touch any of that. Save, start game, test. Rinse and repeat and keep banging on it until it does what you want. This works! Really!
The reference I used: https://docs.python.org/3.3/
Plus a bunch of existing code by Maxis and scumbumbo, mgomez’ instructions from here, darkkitten’s batch script from here and TheHologramMan’s unpyc3.py from here. Special thanks to SGEugi for helping me getting this to work specifically in uncompiled form.