The Sims 3 Programmer's Reference
This is the top-level document for an in-progress reference to the DLLs contained within the gameplay.package and scripts.package files that exist in the Game\Bin directory of each TS3 game, SP(Stuff Pack) or EP (Expansion Pack).
It is also worth noting that existing functions can vary between editions, so if you want to contribute to this documentation, please mention which edition you are referencing.
For your reference, versioning goes in this order (oldest to newest):
- The Sims 3 - 1.x
- The Sims 3: World Adventures (EP) - 2.x
- The Sims 3: High-End Loft Stuff (SP) - 3.x
- The Sims 3: Ambitions (EP) - 4.x
- The Sims 3: Fast Lane Stuff (SP) - 5.x
- The Sims 3: Late-Night (EP) - 6.x
As you can see, whilst Stuff Packs don't tend to add anything other than objects, EA do nonetheless take them as an opportunity to update the game's code, therefore, please be sure to make a mention of which edition the method/class/member is known to definitely be correct for if you are going to provide a usage.
In terms of providing usage information, the best presentation method to follow is that of MSDN for C# functions, although by no means do you have to rigidly follow it, it's at least helpful to put parameters, overloads and the return values in their own sections.
If you're looking for the terminology of particular functions, see  (By WhacktheM0l3)
The Main Listing
The in-game libraries. To see the documentation of each, please click on the DLL names to go to their respective documentation.
- ScriptCore.dll - Contains all P/Invoke functions necessary for interacting with the game's engine. Functions and classes are pretty low-level.
- SimIFace.dll - Contains interfaces and classes which provide a degree of separation between ScriptCore and the rest of the assemblies below.
- Sims3GameplayObjects.dll - Contains classes to govern the functionality of most in-game objects. Depends on Sims3GameplaySystems, Sims3MetaData, and SimIFace.
- Sims3GameplaySystems.dll - Contains classes for making the Sim world go round; actions, interactions, events etc. Depends on Sims3MetaData and SimIFace.
- Sims3Metadata.dll - Contains classes dealing with textures, colours, patterns and resources. Depends on SimIFace.
- UI.dll - Contains functionality to handle visuals, menus, and windows. Depends on Sims3MetaData and SimIFace.
- Sims3StoreObjects.dll - Contains functionality for older store items. Generally, any scripted premium content released after July 2013 (i.e. after the Business as Usual Bistro) have their functionality contained in individual DLLs packaged with the store downloads themselves.
Modified .NET DLLs:
Aside from the libraries above, The Sims 3 also has DLLs that you might recognize from working on non-game C# projects as .NET Framework libraries. These assemblies are:
These are NOT the standard libraries of .NET Framework 2.0; rather, EA customized these assemblies to fit the needs of developing the game. For example, functionality for emitting dynamic methods and assemblies using System.Reflection.Emit has been removed, and System.Diagnostics.Stopwatch is nowhere to be found. Some of this functionality is implemented elsewhere, as in the case of Stopwatch (see ScriptCore.dll), while some of it was presumably deemed unnecessary and dropped entirely. It is therefore advised to check in IlSpy or Visual studio's Object browser before using a .NET Framework class to ensure it exists in the modified libraries.
When creating a scripting mod, your custom code MUST reference and build against these stripped-down versions of the .NET Framework.
For more information on the contents of these assemblies, please refer to Microsoft's documentation of .NET Framework 2.0
- Sims3Common.dll - A C++ library containing all P/Invoke functions necessary for the managed Scripting Core to interact with the unmanaged game engine. ScriptCore is the only managed assembly that links to it.
|Modding Reference by Category|