Volcanic

**Release date(s)** | March, 2016

FSO.IDE also known as project "Volcanic" is a object development environment tool developed by Rhys Simpson "riperiperi" as his university 4th Year project for FreeSO. The IDE program allows users to create, debug, modify or patch objects inside of FreeSO by creating .piff files to "patch" contents of the object's IFF file in TSO client. The features in Volcanic mimics IFFPencil2 and FarEd but in a much simple and brighter form for a much better user experience. The program's internal coding uses C# and Monogame for it's features to work with the game client, making it become part of the system.

## **Using Volcanic**

While it is made to allow users to create and modify objects in the game, Volcanic has a variety of things to use from. From creating new or editing .IFF files to exporting them as .FSOM for remeshes to making the object functions with a simplified SimAntics tree tables. The program is basically the *All in One* for an all day's work.

### **Resources**

This section gives you two options to work with. Whatever changes are made to an IFF are suggested into this tab for confirmation. This prevents the user making unprecedented changes to the file before saving them. Select a change you want to save or discard it then it will overwrite these changes to the IFF the next time you reload the game for these changes to take effect.

### **Object Browser**

A search criteria that narrows down available IFF file names existed in the TSO game contents or in FreeSO. This is where you are always going to be looking at if you like to work on something. Once you find an object, you can choose anyone of these options below.

* **Edit Object** - Opens a new window to edit the object's IFF contents.
* **Create New Object Instance** - Spawns a new object instance into the world via camera view.
* **Create New Object** - Opens a new window to create a new IFF for a new object or objects entirely from scratch. (Custom Content creation)
* **Clone Object (.piff)** - Duplicates the IFF file as a patch file (.piff) in a separate location.

### **VMEntity Inspector**

This tab reveals a list of all objects, sources, controllers and sims in the game world concurrent. This is where you can see detailed information of each of them through their ID, Name, Multititle Lead, Container and Slot#. It's purpose is to become a "reference sheet" and is a alternate way to access the object's edit modes.

## Tools

### Avatar Tool

This tool allows you to create or edit sim animation scenes to use when interacting with objects assigned to them.

## Editing an Object

Editing objects is not as easy as pie as you think about it. Objects in the game are all unique and their data is all put together to complete the object and it's purpose. Here is what you might need to know about the details on the main tab.

* **GUID** - The object's GUID is their "unique" code and is very important to know that every object in the game has it's own GUID. Without this means objects can't function properly and couldn't be loaded into the game. The GUID is generated.
* **Name** - Name of the object instance. Primarily used in the dialogues unless added with a Catalog String.
* **Multitile** - Provide the object with new tiles and offset them at the correct position. Master tiles are always at the center position since they are starter tiles.
* **Catalog** - Set the object with all catalog details and how it's sorted in the Buy/Build Mode. Manage the motive ratings, skill flags, lot category availability, set sale price, show on buy or build mode etc.
* **Thumbnail** - Regenerate a new thumbnail of the objects shown on left side or open a edited version.

### Trees and Resources

In this tab is where you can add strings, set trees and tree tables, Catalog strings, constraints, slots and sprites. This happens to be the first place you look to import your graphics for your new IFF object.

### Entry Points

In this tab is where you can set action and check trees to provide the object laws in the game world. For the object to function normally it requires a main and init function set for it here.

### Appearance

In this tab is where the sprites are allocated to a tile. Dynamic Sprites is a stop motion picture method for multiple sprite images to change dynamically in a loop. This what gives the object "movement" when in use in 2D and 3D. Notice the Drawgroup panel on the left, this is where graphic states are set. States don't require you to use the object to make them appear but it is for keeping the state of that object after use. Do note that every drawgroup in the list is a different graphic and state.

### 3D Mode

Like the Appearance tab, this also has a drawgroup list but this is obviously where a remesh takes place. 3D mode takes a sprite graphic state and transforms it into a generated mesh. However the results are unexplanatory. Users can export the mesh and recreate it through a external 3D modeling program preferably Blender 3D. Their finished projects are imported through custom mesh import. Certain conditions have to be met before the importing process can be successful.