Summary:
This task is a little more difficult than the others, since it requires some indepth understanding of SimAntics. The main idea here is that objects from TS1 are roughly compatible with The Sims Online; the only problems preventing them from running are differences in the environments, such as what functions have what ID in the global resources, and what the object GUIDs are.
You should use a combination of Volcanic, Codex and The Sims Transmogrifier to restore the functionality of one such object. If it works out of the box, it doesn't count!
Prerequisites
To do this task, you may need the following programs (depending on the object)
Process:
Let's take an example object already in the game, but crashes due to not being converted for The Sims Online. "bunnyrabbit.iff" seems like a good candidate.
When you attempt to spawn this object, there is very clearly something wrong. The rabbit never moves and it is forever hopping on the spot...
From this, we can gather that there is something wrong with the function in which the rabbit moves. Tracing through "main - duck" to see how the self movement works, we find that the rabbit first calls "Sub - Setup for Move" before it starts moving. Within this tree, we should look for anything wrong with the references, that is, Object GUIDs which are invalid and "Global:" or "SemiGlobal:" calls which are invalid or incorrect.
We quickly find that something isn't quite right here. When something expecting an Object Type is displaying the GUID in hex, it means that it could not find the object. This "Create New Object Instance" block will always fail and return false!
The next step is to find out what the interaction is meant to look like. For this we should use The Sims Complete collection in combination with Codex & The Sims Transmogrifier, available from the pre-requisites section above.
Since codex does not show names for Create New Object Instance, we have to do a little guessing. Open up Transmogrifier, and find the "bunnyrabbit" iff file.
We see that this object uses a secondary part. Could this be the object the BHAV was trying to create? Click "View Object", then "Edit Definition..." then find the GUID:
Bingo, it's a match! The BHAV is definitely trying to create the Rabbit - Reserve Tile. We just need to fix this reference.
Switch back to Volcanic, and click "Edit" on "Object Type". Search for the object, and select it. If you cannot find the object, you likely cannot fix it without importing more objects!
Go back to the game, spawn your object again, and look for more problems. In the case of the rabbit, we're all done!
For other objects, you will likely have to fix more bugs, remove references to Global methods such as this intended to reference "Is Downtown Lot", or use the information printed out in the SimAntics Exception dialog box to find where the problems are happening.
For example, in the above dialog we can see that the error occured in "Trash: Create Trash Pile By Size" when attempting to run a "Create Object Instance" primitive, which was called by "Drink Soda", which was called by "Interaction - Have a Snack". We would need to go to that primitive to see what went wrong.
Submitting Feedback:
After translating your object, go open up the main window, go to the Resources tab, and click "Save All".
If your object is an original game object, this will save your changes to "Content/User/objectname.str.piff" and "Content/User/objectname.piff" relative to the FreeSO folder, where objectname is name of the object file you modified.
If your object is completely custom, it will be saved back to the .iff file in the "Content/Objects" folder. It will be permanently modified, so watch out!
Upload all files like these to the internet somehow, and create a post like below showing screenshots of it in action and linking to the files. You should also include some feedback on how it went - this is the most important part!!!
This task is a little more difficult than the others, since it requires some indepth understanding of SimAntics. The main idea here is that objects from TS1 are roughly compatible with The Sims Online; the only problems preventing them from running are differences in the environments, such as what functions have what ID in the global resources, and what the object GUIDs are.
You should use a combination of Volcanic, Codex and The Sims Transmogrifier to restore the functionality of one such object. If it works out of the box, it doesn't count!
Prerequisites
To do this task, you may need the following programs (depending on the object)
- The Sims Complete Collection
- Codex (BHAV Editor for TS1)
- The Sims Transmogrifier (Metadata viewer/editor for TS1 by Don Hopkins)
Process:
Let's take an example object already in the game, but crashes due to not being converted for The Sims Online. "bunnyrabbit.iff" seems like a good candidate.
When you attempt to spawn this object, there is very clearly something wrong. The rabbit never moves and it is forever hopping on the spot...
From this, we can gather that there is something wrong with the function in which the rabbit moves. Tracing through "main - duck" to see how the self movement works, we find that the rabbit first calls "Sub - Setup for Move" before it starts moving. Within this tree, we should look for anything wrong with the references, that is, Object GUIDs which are invalid and "Global:" or "SemiGlobal:" calls which are invalid or incorrect.
We quickly find that something isn't quite right here. When something expecting an Object Type is displaying the GUID in hex, it means that it could not find the object. This "Create New Object Instance" block will always fail and return false!
The next step is to find out what the interaction is meant to look like. For this we should use The Sims Complete collection in combination with Codex & The Sims Transmogrifier, available from the pre-requisites section above.
Since codex does not show names for Create New Object Instance, we have to do a little guessing. Open up Transmogrifier, and find the "bunnyrabbit" iff file.
We see that this object uses a secondary part. Could this be the object the BHAV was trying to create? Click "View Object", then "Edit Definition..." then find the GUID:
Bingo, it's a match! The BHAV is definitely trying to create the Rabbit - Reserve Tile. We just need to fix this reference.
Switch back to Volcanic, and click "Edit" on "Object Type". Search for the object, and select it. If you cannot find the object, you likely cannot fix it without importing more objects!
Go back to the game, spawn your object again, and look for more problems. In the case of the rabbit, we're all done!
For other objects, you will likely have to fix more bugs, remove references to Global methods such as this intended to reference "Is Downtown Lot", or use the information printed out in the SimAntics Exception dialog box to find where the problems are happening.
For example, in the above dialog we can see that the error occured in "Trash: Create Trash Pile By Size" when attempting to run a "Create Object Instance" primitive, which was called by "Drink Soda", which was called by "Interaction - Have a Snack". We would need to go to that primitive to see what went wrong.
Submitting Feedback:
After translating your object, go open up the main window, go to the Resources tab, and click "Save All".
If your object is an original game object, this will save your changes to "Content/User/objectname.str.piff" and "Content/User/objectname.piff" relative to the FreeSO folder, where objectname is name of the object file you modified.
If your object is completely custom, it will be saved back to the .iff file in the "Content/Objects" folder. It will be permanently modified, so watch out!
Upload all files like these to the internet somehow, and create a post like below showing screenshots of it in action and linking to the files. You should also include some feedback on how it went - this is the most important part!!!
Last edited: