The Transmogrifier (aka Object Script Changer)

This is a featured upload! It showcases the best talent and creativity available on MTS and in the community.

Description

This mod lets you "change*" the script class of an object in game. Basically the script class describes how the object functions as opposed to how it physically looks - the "spirit" inside the "body" of the object if you will. So like in the whimsical example pictured above, you could for example use this mod to switch out the script class of an ordinary rug object with the script class of a hoverboard to get a new object that looks like a rug but functions as a hoverboard.

* IMPORTANT What actually happens is that the original object is cloned and the cloned object is given the new script class. If successful, the original object is DELETED (not undo-able) and replaced with the clone. If that worries you, save before using to avoid potential regrets.

How To Use (i.e. How to make a flying carpet)

1. Enter Buy/Build mode.

2. (Skip if you already know the script class name that you want to give your object) Ctrl+Shift and click on an object that uses the desired script class - in this case, a hoverboard. Choose Copy Script. You should get a notification telling you the exact script class name you just copied (Sims3.Gameplay.Objects.Hoverboard).

3. Ctrl+Shit click on the object you want to "change" the script class of - in this case the rug. Choose Change Script.

4. In the window that appears, (the current script class of the object is displayed on the top for reference) type in the new script class you want to give the object OR if you copied the script class of another object in step 2, the copied script class name should automatically be typed in for you. Confirm, and if all goes well (i.e. no typos) the object will be replaced with an exact clone that uses the new script. Here, you would get a (very stiff) flying carpet

Warning about this particular example: rugs can't be hand dragged, so any "flying carpet" will be stuck in the inventory of any sim that uses it. You'll probably need Master Controller to transfer it to the family inventory to remove it.

More (Practical) Example Uses

1. "Upgrade" beds and vehicles by giving them the script class of a higher quality bed or a faster vehicle (the Into the Future ones especially give interesting results ).

2. Change rabbithole exteriors: you could for example turn a combo city hall/police station/military building into just a city hall by giving the building the regular city hall script class. The Lunar Lakes portal versions for rabbitholes from later expansions can also be created this way. (You may want to avoid the movie studio and the default resort tower script classes, the studio will glitch if the game is unable to place the set prop attached to it, the resort towers script will place the default tower models over your object)

(Note on rabbithole rugs/doors: You can't just take an ordinary rug/door and give it the script of a rabbithole to create a rabbithole rug/door unfortunately, the resulting "rabbithole" is usually unusable since the object does not have the rabbithole entrance slots required for sims to enter. You CAN however use an exisiting rabbithole rug/door and change its script class to that of another rabbithole)

4. Make Store/CC beds Nraas SleepFreedom compatible: if you have a double bed unaffected by SleepFreedom (i.e. still uses one of the default double bed scripts), just copy and paste its current script name and add NRaas at the end (e.g. Sims3.Gameplay.Objects.Beds.Mimics.BedDoubleColonial -> Sims3.Gameplay.Objects.Beds.Mimics.BedDoubleColonialNRaas)

5. Remove object functionality: if you want to have an object for its aesthetic purposes but don't want sims to interact with it at all (the urinal display in the Bridgeport art museum comes to mind...), consider giving it the script class of any generic sculpture/decoration.

You can give any object any existing script class really, but there is NO GUARANTEE that the newly created object will actually work as intended if at all. The most common failure is that sims can't use the new object because the interactions attached to the script require slots that the object does not have. Another being certain script classes require additional data that the mod is unable to provide. I leave it to your imaginations to see what combinations of object and script work or fail.

Note on Lot Sharing

What happens if you want to share a lot that has objects with script classes changed by this mod?

I've only tested with saving lots to the library and placing copies of the lot. The results always went along the lines of:

1. Used mod to give object A the script class B.

2. Save lot to library. Place a copy of the lot from library (even in a new world/save file)

3. Check the new copy of the lot. Object A on this lot still has script class B (Yay!)

4. Save, quit, reload, check lot again. Object A on this lot has reverted back to script class A (Boo...) (Object A on the original lot still has script class B at least)

Why this happens, I have no clue. The only workaround I can think of is after placing the lot from the library, use the mod to manually reapply the script class on the object(s) before saving/quitting. Since the affected object still has the new script before quitting, just using Copy Script and Change Script once on the object itself should be enough (no need to go searching the catalog for object B again)

End Notes

Built on patch 1.67 but should be usable on all patch levels. No expansions required.

You can remove the mod at any time, changes made to objects are permanent and do not require the mod to still be installed.

Oh, if you're wondering about the name, I was just feeling nostalgic and decided to nickname the mod after a modding tool for The Sims 1 back in the day (has absolutely nothing to do with its functionality though)

Key: - File was updated after upload was posted

Filename - Tip: You can click the magnifying glass to see the archive contents