By Kevin and SimGoober
What are the BSC-Simtropolis Indices?
When the SC4 community began adding custom content to the game, there was a lot of tinkering going on. Many mistakes were made, but we learned from our mistakes. About the time it became possible to add custom textures (base or overlay) to the game, it was figured out that the number ranges used on these textures was very important.
The indices are records of the number ranges (Instance IDs) assigned to individual developers. The goal is to prevent possible duplications and conflicts.
Um . . . duplications and conflicts?
Yes, if two developers happen to use the same numbers, and a player decides to download both of their lots, it could cause a conflict. The lots wouldn’t work and the game itself could be frozen, depending on where the conflict is exactly.
So, the purpose of using the indices is so developers don’t trip over each other’s feet and keep things working for the players?
Exactly. Not using the indices can mess up the game. Think of it as two different things trying to use the same “space” in your computer. Computers don’t like that.
Ok, back up a bit… what are these numbers for?
The "vanilla" game is made up of several data files, which have the extension ".dat" . Inside these files are numerous smaller "files" which tell the game just about everything as to the content of the cities. Props, Buildings, Automata, Textures.. etc. These files are tracked using a set of 3 "numbers", expressed in hexadecimal format.
Hexadecimal is base 16 instead of base 10. (Remember in class when you did math using different bases?) The “numbers” go from 1 to 16 (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F), instead of our normal decimal system (0 - 9).
All of the "numbers" are 8 digits long. When you put 8 hexadecimal characters in a chain together, the possible combinations of those numbers are in the billions...
Thanks, now back to these Instance IDs…
These three sets of numbers are further defined; the first set defines the "Type", the second set the "Group", and the third the "Instance". Thus, this defining number is called the "TGI" of the file. Sometimes, each individual element is referred to as an ID. So an IID is the Instance ID of a file.
Still not making sense… could you go into more detail?
As you might imagine, the Type refers to what type of file you are dealing with ; a Texture, a Prop, etc. Groups are similar. Then the Instance is the unique number assigned to this particular thing.
So what does this all have to do with the index?
Some of the IIDs must be formatted a certain way. Base and overlay textures, for example, read each digit, and some of them tell the game things about this texture: Which zoom level it is used for, which wealth level... etc. So the possible random combinations of these IIDs is much smaller than for other types of files.
This is why it was decided to keep a record of these numbers, and then later decided to assign ranges to individual developers. This helps prevent possible duplications, and conflicts, in these numbers. Tutorials were also written on how to format these numbers correctly.
Thanks… who figured this all out anyway?
The people who did most of the initial research to figure this out were Geoffhaw, Daeley, BarbyW, SimGoober, and Pegasus. Others were also involved; and input was accepted from everyone. Since all of the people mentioned were members of BSC, it fell upon the BSC to maintain the indices.
All SimTropolis members making custom content are welcome to request individual ranges. There are indices for the two most commonly used types of Instance IDs : Textures (base or overlay) and Building/ Prop families.