Author Topic: s3pe Package Editor - Updated 26th November 2013  (Read 384666 times)

0 Members and 12 Guests are viewing this topic.

Offline Peter

  • Normal
  • *
  • Posts: 7
s3pe Package Editor - Updated 26th November 2013
« on: 19 June 2010, 22:04 »
s3pe is a Sims3 Package Editor based on the s3pi library.


It's a good idea to use the "Notify" option on this thread so you get informed when there's an update.  As this is still very much a work-in-progress, you'll want to know.  Details of updates will appear in the latest message in this thread, so go read it! :)

Please refer to the included manual (Help->Contents) for instructions on use.

For Windows:
For other operating systems:

s3pe_13-1112-2033.exe: Windows Easy Installer version

s3pe_13-1112-2033.7z: Unpack-It-Yourself version

For more in-depth installation help, please read this guide:

The source and past releases may be obtained from under OldReleases:

Full change history:

In addition to resource wrappers that come with s3pi, other wrappers are made available:

Thanks to everyone who has contributed to the wiki over the years, without whom s3pi would not be here.
« Last Edit: 26 November 2013, 18:59 by Peter »

Offline Peter

  • Normal
  • *
  • Posts: 7
Re: s3pe Package Editor - Updated 31 July 2010
« Reply #1 on: 31 July 2010, 13:23 »
Please see the "full change history" link above for the detailed change log.

Support for Hex and Text editing of "complex" fields in Grid (that used to need exporting to get at them at all).
For simple cases, Grid now lets you pick the TGI value referred to by an Index field.
New FaceClothingResource,  SimOutfitResource and CASPart wrappers.
AutoUpdate feature added.
When importing a batch of files, import the content of any package files.
Allow drop without an open package (automatically open it).
Fixed single file drag'n'drop to do File->New.
Enhanced Filter (now uses Regular Expressions, .Net syntax).
s3pe should now return to focus after a helper has run.
Various changes to all parts of the import processing.

Offline Peter

  • Normal
  • *
  • Posts: 7
Re: s3pe Package Editor - Updated 31 July 2010
« Reply #2 on: 30 October 2010, 13:04 »
Please note

There is a known bug in editing OBJD resources where the (OBJD) Version is >= 0x17.  In such resources, modifying the SlotPlacementFlags, Unknown16, Unknown17 and Unknown18 fields will update the wrong values.  This will be fixed in the next release.
« Last Edit: 30 October 2010, 13:10 by peter »

Online Inge

  • Admin
  • *****
  • Posts: 3340
  • Gender: Female
Re: s3pe Package Editor - Updated 31 July 2010
« Reply #3 on: 30 October 2010, 14:13 »
...we hope.  Once we can find out what is wrong

Offline Peter

  • Normal
  • *
  • Posts: 7
Re: s3pe Package Editor - Updated 14 November 2010
« Reply #4 on: 14 November 2010, 09:21 »
Today there is a new "public" release in the top post.   This has been hurried through to support Late Night modders.

Here's a summary of the "user visible" changes in s3pe itself.  Changes in the s3pi library (e.g. field names) will, of course, be visible through to s3pe in places like the preview panel and the Grid.  A summary of field name changes is attached.

Grid: Number array entries in Hex in pop out Grid.
Add resource name to filter and allow substring matches on name.
Implement wrapper management dialog and settings.
Support for previewing DDS resources, based on SlimDX library and WPF.
Remember form start location.
Remember Grid size.
Support .nhd files as packages.
Various changes to dbc import for Anach.
Handle dropping/-import of a folder by doing a recursive import.
Grid windows pop up staggered.
Grid has
  • for anything with "complex" content.
« Last Edit: 14 November 2010, 09:42 by Inge »

Offline Peter

  • Normal
  • *
  • Posts: 7
Re: s3pe Package Editor - Updated 14 November 2010
« Reply #5 on: 09 April 2011, 09:50 »
After months of development effort, finally we have an exciting new public release of s3pe! :o

Inside this editing you will find quite a large number of changes - please do read the updated help for guidance.

Here's a brief summary of the more visible changes, ignoring any updates in the library/wrappers:

Resource Details has a new "Copy TGI" button to put the ResourceKey on the clipboard.
Search can be filtered by resource type.
Search form lets you paste the Resource Type (from a single, copied TGI in sims3tools format).
Search results let you copy a selected (list of) TGIs in the sims3tools format.
DoubleClick (or Enter, I think) on a Search result selects the item in s3pe (displaying it in preview).
New edit commands (Copy preview text to clipboard, float preview, open preview in text editor).
FNV Hash for Instance in Details.
New helper to export an existing CLIP resource but with a new name and correctly hashed instance ID.
Fix QBE on the ResourceName to ensure the value doesn't contain unintended escape sequences.
Include new JAZZ chunk handlers.
Make Resource->Add work (again...).
Remove the External buttons panel.
Remove dbc popup as Anach has moved support to Simlogical.
ManageWrappers: Provide additional information about wrapper DLLs.
Add external programs to Resource and Context menus, allowing more than two Helpers.
Provide both 64-bit and 32-bit builds - allows for _RIG in Grid in 32bit or large memory size in 64bit.
Add pretty icon and estimated size to Uninstall key.
Remember to remove (our) Helpers when uninstalling.
Importing from packages now allows a choice of whether to import or discard resource names.
New "Tag" filter field added.  Old "Unknown2" filter field removed.
Set user defaults to more user-friendly values (as they seem not to cause any serious problems).
New S3SA DLL Export/Import helper.

Offline Peter

  • Normal
  • *
  • Posts: 7
Re: s3pe Package Editor - Updated 7 October 2011
« Reply #6 on: 07 October 2011, 11:04 »
So what's changed since April, then?  Ooh, lots.  Here's a rough list of what's "visible".

Overhaul installers to try to prevent "can't install due to previous install breakage" problems.
New toy -- DDSTool.exe -- have a play...
Helpers: Include ".exe" on command name (as non-Windows shells do not necessarily add it).
DBC import: Change menu entry text for DBC import prompt.
DBC import: Autosave between packages by default.
DBC import: Allow being asked whether to autosave to be enabled -- the first time in each session you choose to turn on prompting, it displays a reminder that autosaving is recommended.
Import: Drag-n-drop of packages now displays the correct dialog.
Bug fix: don't crash on unsupported DDS files.
s3pe title bar app name should now be "correct" more of the time.
"Edit->Save Preview..." (and preview context menu) for text-based previews allows the preview content to be saved (either to .txt or as .hex).
Improve error message displayed for invalid magic cookie or major version number when opening a package.
Prompt for "open readonly" when file can't be opened.
Add built-in hex viewer to Grid (where there was an Import/Export/Edit, you also now have "Hex" to view the data).
"Expand all" and "Collapse all" buttons in Grid.
Other grid tidy-ups
Allow sorting in Settings->Manage Wrappers.
Add Organise bookmarks to the File->Bookmark menu.
Sundry short-cut fixes, including Ctrl-A to select all resources.
Listing resources should be faster.

Pick up NGMP wrapper.
FTPT: Change Y axis to Z axis.
FTPT: Fix to FTPT equality comparer.
Extensions, ImageResource: Add "0x2E75C767, ICON, .png" entry.
MTST chunk: Rename MaterialSet/Set to MaterialState/State.
JazzResource: Read TGIBlock references as IGT.
Package: Fix typo in exception on minor version number validation.
Helpers: Ensure path separator of "/" doesn't confuse RunHelper's switch parser.
MTST: Update for latest wiki information (NameHash, MaterialSet enum).
MTST: Fix displayed field order.
New custom skill and buff XML files highlighted by ChaosMageX.
Allow for BBLN/FACE resources with version < 8.
CASPartResource: Oops, no ContentFields for CASP Unknown4!
CASPartFlags: Refresh ClothingType, add CASGeomFlags.
CASPartResource: Rename various fields (see s3pi's FieldRenames).
CASPartResource: corrections to allow updating of field values
  (Presets, VPXYIndexes, LODInfo, Diffuse1Indexes, Specular1Indexes, Diffuse2Indexes, Specular2Indexes, BONDIndexes)
SimOutfitResource: corrections to allow updating of field values
  (XmlEntries, CASPEntries, FACEEntries)
ObjectCatalogResource: Unknown22 added for Generations and MTDoor.Unknown2 renamed LevelOffset.
TXTC: Split ID entries from EntryUInt32.
MATD: Refresh enums from Wiki.
LITE: LongSection -> LightSource; ShortSection -> Occluder; rewrite LightSource for wiki updates.

Offline Peter

  • Normal
  • *
  • Posts: 7
s3pe public release .Net4 thing
« Reply #7 on: 20 February 2012, 19:06 »
Goodness, doesn't time fly when you're having fun.  Who'd have believed nothing had happened to the Sims3 Package Editor since the start of October last year?  Well... okay, not exactly nothing, we've been beavering away as ever, battling the forces of darkness, etc. to bring you this, the new public release.

Three big bits of news: single version, .Net4 and settings.  EA changed the format of _RIG, meaning the last reason for two versions of s3pe (granny2.dll) has gone.  The whole of sims3tools is now on .Net4, to keep up with life at Microsoft as much as anything.  Settings have changed where they live and how they're kept, in the hope they won't be quite so untidy in the future.  More below - but do read more carefully than on a normal update, please, as some of this may not be that easy to follow and may cause unexpected changes in what you're used to seeing.

First, make sure you have the latest Microsoft .Net4 release (if you're on Windows).  The link is in the top post but I'll repeat it here to save you losing your place:
Once you've run the installer, I strongly advise running Microsoft Update (or Windows Update) to ensure you're fully patched.

(If you're not on Windows... I think the very, very latest MONO will run it but I've not properly checked.)

Next - and this is probably going to hurt, so you may want to prepare yourself - your settings will be in a different place with this version.  And I've not provided an automatic method of updating (as I couldn't work out how).

For danger-loving types only:
At least, if you want to save your settings, you can - you may not want to bother of course, there's not a lot to set up in s3pe.  The format of the settings file itself has not changed - just the name and location.  Here's how to find your existing settings (on Windows 7).

Type "%LOCALAPPDATA%" into the location bar of Windows explorer, then locate the folder called "Peter_L_Jones".  Underneath that you're likely to find a bit of a mess and this is why things are changing (it's for your own good!).

Find any folder with a name starting "s3pe".  The folders are called something like "s3pe.exe_Url_5lfknyzoyi0ydfeqko51ddnvuzwm04qf", within which is a folder per version ("1110.1.1346.24804" for example) and then in there a file called "user.config".  Quite a mess, huh?  Well, that's why it's changing.

You're after the most recent user.config file with the settings you want to carry forward.  Rename it to "s3pe.user.config" and put it somewhere safe.  We'll come back to it once s3pe is installed.

Regardless of whether you install manually or using the installer, I strongly recommend uninstalling by running the uninstall.exe or choosing the Start menu option.  This will let you choose the "Delete user settings" checkbox, which will clean up all the old user settings that may have accumulated.  This is a very good idea.  (It won't cause problems if you don't but I would.  Really.)

If you had both versions installed, remember to uninstall both!

Now install, either by the installer or by hand, as you choose.

For danger-loving types only with that s3pe.user.config file:
Run s3pe at least once and exit - this will create the new settings folder, making it easier to get this bit right.

Type "%APPDATA%" (different!) into the location bar of Windows explorer, then locate the folder called "Peter L Jones" (also different!).  Underneath that you should find a folder called "sims3tools" containing "s3pe.user.config".  You want to overwrite that with the file you saved.  Job done!

Before moving on, one last word on installation - if you notice anything odd, try running the installer again.  It tries very hard to clean up but sometimes needs two goes.  (If you're installing by hand, this means running the "new" uninstaller, as that's what's been improved.)

OK... so we have the application installed.  You'd like to know something about what's changed (other than there being less s3pe, the version of .Net and the location of the settings file which, I guess, aren't that exciting, really).


s3pe itself, first, as usual.

Import DBC: Don't remove CAS 0x626F60CD THUM.
Add "Copy ResourceKey" to Resource menu and browser widget context menu
Add "Paste ResourceKey" to new filter widget context menu, along with a "Paste RK" button, as the context menu can be tricky to use.
Include RigResource.
Set DDSPanel to enabled by default, remove warnings and don't disable on failure.
Drop ViewDDS (unneeded) and DDSTool (unloved).
Improvements to Grid:
- display resource keys nicely in errors
- New "Insert" button (like Add, only above selected list item).
- Fields should be more responsive to changes above and below them hierarchically.
- Pasting numeric values ignores leading/trailing spaces.
- The group value of a resource key is now editable.

And the changes picked up from s3pi: (sorry if this is a bit obscure...)

VRTF: Value formatting for list changed to ValueBuilder default for Inge.
TXTC: Amend Entry pretty printing; add known enums to EntryInt32.
Provide a Value for SimpleList<T> (makes preview and grid nicer?)
Replacement Geom bits.
Add extension support for "0xDEA2951C" (PETB, .breed).
Add support for GEOM as a standalone resource with its own wrapper (as the GenericRCOL wrapper doesn't work for the GEOM chunk inside the standalone version...).
Wiki tweaks (images, text files and tag/extensions).
CASP/FACE: Update AgeGenderFlags for Pets.
New BlendGeometry wrapper.
Fixes to prevent crash on Add(): BGEO.Section1Entry; CASP.LODInfoEntry; FACE.Entry and FACE.CASEntry; SIMO.CASEntry; _RIG.Bone.
Update RigResource to match wiki.
Update TxtcResource to match wiki (once I fixed it).
CatalogResource: Drop fake XML in Materials.
CatalogResource: Cascade TGIBlockLists into subfields as far as required for use.
CatalogResource: Use cascaded TGIBlockList in TGIBlockListContentField attribute on TC03.
CatalogResource: Allow TGIBlocks property to be overridden.
CFND: Add missing TGIBlockListContentField attributes.
CCFP: Add missing TGIBlockListContentField attributes.
OBJD: Cascaded TGIBlocks into MTDoorList and MTDoor and use TGIBlockListContentField attribute on WallMaskIndex.
OBJD: Override TGIBlocks property to Cascaded TGIBlocks into MTDoorList.
CopyableMessageBox: Try using Font scaling rather than DPI scaling.
FBLN: New BlendUnitResource wrapper.
OBJD: Add Unknown23OBJDIndex.
RigResource: A resource handler for the Pets-format _RIG resource.
RSLT: Fields renamed a bit per wiki.
meshExpImp.ModelBlocks: Fork of Atavera's s3piwrappers.ModelResources.
RCOLResources.txt: Minor fixes up plus add 0x0229684B and 0x0229684F.

Offline Peter

  • Normal
  • *
  • Posts: 7
Re: s3pe Package Editor - Updated 29th May 2012
« Reply #8 on: 29 May 2012, 14:06 »
STOP  :o

If you didn't read the install instructions in the post above, please do so now.

You can get the new version of s3pe in the first post in the thread.

Change Log

s3pe 12-0317-0944
There's a splash screen, used in various places where s3pe might not appear to be doing anything, like when it starts up.
FNV64CLIP calculator now in s3pi, so make it available in Tools, Resource Details (and use it in the CLIP helper, of course).
Command line improvements ("s3pe foo.package /import a b c d e" opens foo and slurps up a to e)
Various UI improvements around responsiveness.
Only offer "Open read-only" if the exception appears to be one this would fix.
Various other minor internal changes.

library 12-0316-2316
Make ValueBuilder magic TGIBlock reference expansion less crashy.
CASP: Make AgeGenderFlags's UnParse public.
CASP: More known ClothingCategoryFlags, plus pet Region handling.
DdsFile: Expose the header information.
DdsFile Fix: IsFourChannel was not correctly handling non-DXT images, causing any with an alpha channel to fail to be handled.
Duh.  new Bitmap(Image image) loses the image.PixelFormat.  Thanks.  Fixed by passing it as a separate parameter.
DDSPanel: Raise a click event.
Docs: Suppress trying to document ModelBlocks and RigResource.
Filetable: Make xml doc folder consistent with other projects.
Filetable: Allow SpecificResource to be used without a defined Filetable.
FNVHash: Update FNV64CLIP for Pets.
FNVHash: Extend the FNV64 hash routine to supply the IID for a CLIP of a given name.
GameFoldersForm: Allow the Custom Content field to be hidden.
GameFolders.xml: Updated for Showtime and one more space.
JAZZ: Oops: put Type and Group in right order in JAZZ resource keys.
MATD: Avoid "value" warning for "!=" operator.
OBJD: Unknown22 was after MovementFlags; is now ObjectTypeFlags2 before WallPlacementFlags; affects Version>=0x1a
OBJD: FunctionSubCategoryFlags2 introduced with Version>=1c; follows FunctionSubCategoryFlags
OBJD: Unknown23OBJDIndex is now ProxyOBJDIndex
OBJD: No longer duplicate Common block cloning (base class already does it)
OBJD: Do, however, clone all the fields
OBJD: Rename constructor parameters in line with the current naming conventions
OBJD: Ensure a complete set of version-specific constructors exists (though I doubt they're needed)
OBJD: FunctionSubCategory flag names changed: ComfortDeskChairs -> PetsHorses; Unused34 -> PetsDogs; Unused63 -> PetsCats
OBJD: More FunctionSubCategory flag names changed: MiscLighting -> LightingMisc; MiscPlumbing -> PlumbingMisc; MiscStorage -> StorageMisc; MiscSurfaces -> SurfacesMisc; MiscVehicles -> VehiclesMisc
OBJD: New FunctionSubCategory2 flags
PortableSettingsProvider: Sanitise XML serialization code.
TXTC: EntryUInt32 ImageSource has a RenderTarget.
TXTC, CASPartFlags: More Pets updates.
« Last Edit: 29 May 2012, 14:40 by peter »

Offline Peter

  • Normal
  • *
  • Posts: 7
Re: s3pe Package Editor - Updated 30th December 2012
« Reply #9 on: 30 December 2012, 13:46 »
Change log... hopefully you've been keeping up with the QAs...

latest rev: 1115

s3pe changes since 12-0317-0944
Make selecting all resources run faster, with a splash screen.
Enhanced user support when File->Open issues an error.
Remove non-functional Close [X] button from grid form title bar.
OBJK Helper: Was missed some time back when updating for s3pi changes.  Should now work again.
Grid: Updates for IGenericAdd changes and removal of ConstructorParametersAttribute and DataGridExpandableAttribute.
Update installer "Help" URL.
Grid: Search in the assembly where the abstract type is for concrete implementations.
Turn on "Use Resource Name" by default.
Fix "reject" duplicates handling on import from package(s).
Only force focus s3pe once at the end of a batch of imports (from packages) when auto-saving.
Do not copy in all those now embedded config files.
ResourceDetails: Missing Copy and Paste RK bits added.
CLIPAsNewName: Preserve the ResourceGroup in the file name of the created CLIP resource.
Grid: "Add" no longer uses ConstructorParametersAttribute to create a new element but simply passes the element type.
Import: Make importing resources from multiple packages more robust.
Import: BrowserWidget has specialised code for adding multiple resources at once (e.g. opening or importing packages; also used when the filter settings change).
Import: When adding a single resource to BrowserWidget, you can tell it not to select the resource (together with the above, these nailed #1).
Import: There's a progress bar whilst it's all going on.
Import: Automatically creating a name map doesn't select it any more.
Import: Progress bars get updated up to four times a second rather than every "n" items in the list now (which could speed things up).
Import: Import tells BrowserWidget not to select resources when it is importing more than one (#1).
Import: Stopped enabling the form in the wrong place (#2) (also affects -import command line option and two control panel checkbox Changed handlers).
Import: Creating a new resource doesn't ask the package to find the resource twice.

Library changes

Fixes and support for Seasons and Supernatural.
Changes to flag names.
Prettier preview pane display.
Extensions: Two new XML types with generic tags.
TextResource: Two new (XML) text files of unknown content.
ElementTextureKey: TGIBlock order is ITG.
TGIBlockListEditor: Oops - actually paste the resource key when pasting!
CatalogResource: When cloning (copying) a Material, take its MaterialBlock with it.
S3SA: Wrap the incoming Assembly in an AppDomain; handle property errors more gracefully; clean up Exported Types error.
AHandlerElement: Clone(EventHandler) now knows how to clone in all supported cases.
Enhancement: support luminence+alpha non-DXT format - DDS_FORMAT_A8L8 decode and encode support added.
ShaderData: Don't crash when copying an ElementTextureRef SData entry.
GeometryResource: Fix to allow new (empty) GEOM resource to be created.
Fix memory leaks in Package and ResourceIndexEntry implementations.
TGIBlockListIndex: Allow parent TGIBlockList to be passed as a constructor parameter.  (so Preview is prettier)
ShaderData: split out "index" and "data" versions of ElementTextureRef field so that GEOM and MATD both work properly.  Clone() and Add(..) handling also amended.
Fixed initialisations in LITE.
NGMP: Oops: uninitialised NGMPPairList should be initialised in UnParse().
CWAL: Fix cloning so it doesn't turn a WallFloorPatternMaterial into a CatalogResource.Material (and then explode messily).
Fix MLOD so it doesn't throw exceptions on old versions.
FNV64CLIP support
_RIG: Default element added to an IKChainList should be an IKElement not a Bone.
NGMP: Rewritten to avoid crashing with duplicate keys.
MeshChunks Vector: Add "Value" property.
OBJD: Name the wall cutout left X/Z and right X/Z coordinates (was float[] unknown1).

...and probably a few others...

Offline Peter

  • Normal
  • *
  • Posts: 7
Re: s3pe Package Editor - Updated 30th December 2012
« Reply #10 on: 15 May 2013, 19:32 »
latest rev: 1122

s3pe changes:
Enable creation of SimCity5 packages through s3pe.
Import: Resolve DBC duplicate handling issue introduced in 12-0827-2123.
ResourceDetails form amended to remove shortcut keys Ctrl+C and Ctrl+V from context menu options and attach context to form rather than input fields.

Relevant s3pi changes:
Drop _VID wrapper (as it was useless).
CASPartResource: New BONE Resource wrapper.  And fix BGEO to be actually a public class...
MTST: Add carLightsOff material state.
MATD: (for MTNF-type MATDs) Unknown1 and Unknown2 become IsVideoSurface and IsPaintingSurface respectively (changing type from uint to bool).
ShaderData: ShaderType gains Blueprint.
ShaderData: FieldType gains IsGenericBox, IsObject, IsPartition, IsFloor, StretchRect.
ShaderData: FieldType also gets several values marked Deprecated: reflectivity, index_of_refraction, Ambient, Emission, Reflective, Transparent.
FaceClothingResource: Apply cmar's wiki updates to the wrapper.
Plus some new filetypes (Extensions.txt, TextResources.txt).

Offline Peter

  • Normal
  • *
  • Posts: 7
Re: s3pe Package Editor - Updated 13th October 2013
« Reply #11 on: 13 October 2013, 18:53 »
latest rev: 1189

Updated help files.
(At least temporarily) prevent ViewHex from Grid except for BinaryReader fields (as TextReader does not necessarily have a backing Stream).
Prevent Paste in Search input field getting caught in the PasteRK code.
Resource Details was not responding to the Resource Type Combo's "ValueChanged" event.
A number of internal changes to the way the preview pane works.
Include new User CASt Preset Resource wrapper.
Drop _VID wrapper (as it was useless) and create VP6 to _VID helper project (not yet included in s3pe... anyone want to do it?).

SIMO: Hmph, make all indexes signed and make the TGIBlockList count 16bit (for version >= 0x15) and a massive review to make it work with all known versions.
CASPFlags: Oops, c'n'p error (thanks mscsims for spotting it!).  Also updated for Island Paradise (and probably others).
OBJD: Updated for Modular arches (and floor cutout offsets).
MATD: Bug introduced when naming Unknown2 - missed ContentFields override.
CFND: Updated for stilted foundations.
...and the usual bunch of internal changes...

Offline Peter

  • Normal
  • *
  • Posts: 7
Re: s3pe Package Editor - Updated 26th November 2013
« Reply #12 on: 26 November 2013, 19:06 »
latest rev: 1196

New helper to pass the assembly inside a S3SA resource to a third program.  Intended for viewing reflected CIL code.

CASPartFlags: various fixes
CatalogResource: As index values are defaulted to zero, we should have a zeroth entry when creating a new resource
JazzResource: Updated by ChaosMageX with new-found knowledge.
New User CASt Preset Resource wrapper.