Tutorial:Fixing Object RIGs for Patch 1.26

From SimsWiki
Revision as of 18:16, 18 October 2011 by Whiterider (Talk | contribs)

Jump to: navigation, search
Tutorials by Category

CAS | Patterns | Objects | Building | Worlds | Modding | Modding Reference 

Contents

Overview

With the 1.26 patch (1.27 on Mac), EA have significantly changed the format of the _RIG resource. The result of this is that all old CC objects, which use the old _RIG format, are now broken. In some cases there are no noticeable effects, even though the object is still broken; however in some cases serious problems result, for example chairs snapping to the centre of tables, baths containing no water, sims walking through closed doors, and so on.

This tutorial is exceedingly dumbed down, and is intended to be used both by creators fixing their own work, and by downloaders wanting to fix something which has not yet been fixed by its creator. Thus, if you are a more technically skilled creator, I sincerely apologise for the high level of hand-holding involved in this tutorial. You may find it quicker to read The Short Version than to follow the entire picture tutorial.

It is worth noting that an automated batch fixer for this problem is being worked on; however the manual method is still useful for informational purposes, and may find use also in cases where for some reason the automatic process cannot be used. When the batch fixer is released, a link will be added to it here.

When should this method be used?

In technical terms, all objects have been broken by this patch, since all objects have a _RIG resource. However, some objects don't use the _RIG resource; so while they are technically broken, ingame they will still work fine, and don't need to be fixed.

Any objects which have slots are likely to need to be fixed. This includes any object which can have things placed on it (e.g. tables, counters, fireplaces); any objects which sims can interact with (e.g. chairs, beds, cars, fridges, computers); any objects which have special effects (e.g. water in bathtubs and sinks, possibly laundry machines and other objects with lights); and a handful of other miscellaneous types of objects, such as doors. The best way to find out if your object needs fixing, unless it is a clear-cut case such as a chair, is to test it ingame.

If your object's slots have been edited - for example, if it is an emptied bookshelf with extra slots for placing deco - then you should not use this fix. This fix will revert your object's slots back to those of the EA object you cloned it from. If your object requires edited slots, you're better off waiting for new tools which can edit the new _RIG format, so that you can reclone and make the slot changes anew.

What you will need

You need to download and install the following programs:

You will also need to have the CC object you want to fix as an individual .package file - it is not possible to use this method on sims3packs or on combined .package files.

You will need to keep a list of some random numbers, so keep notepad open so that you don't lose track.

You do not need to have the 1.26/1.27 patch, or the Pets EP, installed to use this method.


The Long Version

Step 1: Finding the Parent Object

The first thing we need to do is find the parent object - that is, the object that your CC object was cloned from. If you remember what you cloned, you can skip this step and go straight to #Step 2: Cloning the Parent Object.


Otherwise, open the CC file in S3PE. Make sure that the Tags tickbox at the bottom of the S3PE window is ticked.

Patch-1-26 S3PESetup.jpg


You now need to find the resource in the main window with the tag OBJD. Select it, and click the Grid button.

Patch-1-26 OBJDGrid.jpg


In the Grid window, find the line called Instance Name. This is the name of the parent object: copy it into notepad or write it down. In my example, the name is TrashcanIndoorContemporary.

Patch-1-26 OBJDGrid2.jpg


Step 2: Cloning the Parent Object

We now need to clone the parent object. Open S3OC, and go Tools -> Search.

Patch-1-26 S3OCSearch.jpg


In the search screen, paste the Instance Name you copied into the search box, and tick only Resource Name and Include EA content. Everything else should be unticked! Click Search; you will probably have to be patient here, as the search can take quite some time.

Patch-1-26 S3OCSearch2.jpg


Once you've found the right object in the search results (there will probably only be one to choose from), select it and click Clone or fix....

Patch-1-26 S3OCClone1.jpg


In the next screen, you can leave everything as it is, except that you must untick Renumber/rename internally. Then, click Start. You will be asked to save your file: do so, and then wait.

Patch-1-26 S3OCClone2.jpg


Cloning is another slow process, but after a short while, you'll see a box asking if you want to keep working in S3OC. Click No, and exit S3OC.


Step 3: Gathering _RIG Details

We now need to gather some details - ID numbers - of the _RIG resource in the object we just cloned.

Open your newly-cloned .package file in S3PE, and find the resource with the tag _RIG. Double-click it.

Patch-1-26 S3PEOldRig1.jpg


A box will pop up containing the details of that resource. Copy the values from the Group and Instance boxes into notepad. In this case, I will note down:

Group: 0x00000000

Instance: 0x3613F3491E596925

Patch-1-26 S3PEOldRig2.jpg


Step 4: Fixing the CC Object

Now, close the S3PE window for the object you cloned. There's no point in having too many windows open and inviting confusion!


In the S3PE window for the CC object, find the resource with the tag VPXY. Select it, and click Grid.

Patch-1-26 S3PEVPXY1.jpg


In the Grid window, click the + signs next to:

ChunkEntries

[0] ChunkEntries
RCOLBlock
TGIBlocks

Patch-1-26 S3PEVPXY2.jpg


In the TGIBlocks section, find the line which starts with 0x8EAF13DE (which line it is depends on the CC object). Click the + next to that line.

You can now see three values: the first one is the ResourceType, which we can ignore. Into the ResourceGroup and Instance values, paste the values you copied from the cloned object earlier; Group value into the ResourceGroup box, and Instance value into the Instance box. Then, click Commit.

Patch-1-26 S3PEVPXY3.jpg


Finally, we're going to tidy up. The broken _RIG in the CC object isn't being used any more, so find it, select it, and hit your Delete key. Lines will appear through that resource, to indicate that it has been deleted. If you delete the wrong thing by accident, just right-click the resource and click Delete again to undelete.

Patch-1-26 S3PEDeleteRig.jpg


Save your file using Save As under a new filename, in case something goes wrong! Your CC object should now work with the 1.26/1.27 patch.


The Short Version

The goal is to completely bypass the broken _RIG in your .package file, by redirecting the VPXY "signpost" resource to point to the _RIG of a suitable EA object.

Finding the Parent Object

First, you need to know what the CC object was originally cloned from. You can check this in the following way:

  • Open the CC file in S3PE.
  • Select the OBJD resource and click Grid.
  • The name of the "parent" object is listed next to Instance Name.

EITHER:

Cloning the Parent Object

We now need to extract the parent object so that we can salvage the EA _RIG from it. You will need to use S3OC to clone the object.

  • As a shortcut, use the Search feature under the Tools menu in S3OC. Input the Instance Name and tick the Resource Name box (the two are the same).
  • When cloning the object, untick "Renumber/rename internally", then clone.

Gathering _RIG Details

We now need to get hold of the Group and Instance of the EA _RIG resource. You will probably want to copy this info into notepad so you don't lose it.

  • Open your cloned file in S3PE, select the _RIG resource and double-click it.
  • Copy the values in the Group and Instance boxes.

OR: ==Finding the _RIG in FullBuild. An alternative method of discovering the _RIG's TGI is to check the FullBuild files. If you prefer not to use S3OC:

  • Open the FullBuild0.package (basegame) or FullBuild_px.package (EP), depending on which EP the parent object is from.
  • Filter for the Instance Name from above and the tag _RIG.
  • Copy the Group and Instance values of the appropriate _RIG resource.

THEN:

Rereferencing in the VPXY

Now we apply the fix: editing the VPXY of the CC object to point to the EA _RIG.

  • Open the CC object in S3PE.
  • Select the VPXY resource and click Grid.
  • Expand the following sections in the Grid window:
    • ChunkEntries
      • [0] ChunkEntries
        • RCOLBlock
          • TGIBlocks
  • Find the TGI line with the Type (first section) "0x8EAF13DE". This is the reference to the _RIG.
  • Expand that TGI line, and replace the Group and Instance with those you copied from the cloned file. Commit.
  • You will probably want to tidy up by deleting the now unused _RIG. Save As.

The CC object should now be immune to any changes in _RIG format.

Tutorials by Category

CAS | Patterns | Objects | Building | Worlds | Modding | Modding Reference 

Personal tools
Namespaces

Variants
Actions
Navigation
game select
Toolbox