# Modding Key Terms

This page is a list of key terms that are used often in modding pages. This page will be edited as more values appear.

## Contents

# Collection Types

## Blob

In terms of Staxel, "blob" is a generic term for anything that contains a number of properties. Blobs are always contained between ` { } `

. Every single new file you create is actually known as a blob, as each file will always start with `{`

and end with `}`

otherwise it would not work.

In terms of what this means when modding. A blob is just a collection of properties that can be edited. Whenever this term comes up, just know that it will make use of `{ }`

.

## List

When writing files, you'll occasionally be asked to make a list of items. What this means is that you can specify multiple things that will generally all act the same. This comes up most times whenever a file can do multiple things. Files such as Treasures make use of this type heavily.

When making lists you will need to do the following;

"propertyName" : [ item1, item2 ]

All lists start with a property name as usual. This is followed up by the opening square bracket. Square brackets **always** denote a list. With that you can now add items. In a lot of cases this will be #Strings that are seperated by commas. Each comma is needed to specify a new item will follow afterwards. (Though it is fine to have a final comma with no item.) After all of this, you can follow up with the closing square bracket to finish the list off.

An example of this would be;

"particles" : [ "staxel.particle.dirt.Dirt", "staxel.particle.dirt.Dirt2" ],

# Variable Types

## String

A string is anything that is a collection of letters. Strings can take any valid string characters, with only a couple exceptions. A string will always be encased in quotation marks. An example is provided below;

"propertyName" : "This is a string. It allows anything that is normal text. Even, The quick brown fox jumped over the lazy dog."

## Colour

Colour is a very specifically formatted string. This string is a collection of Hexadecimal numbers (0-9 + A-F) that either is 6 characters long or 8 characters long. If it is 6 characters long then it will be interpretted as "RRGGBB" where R is red, G is green and B is blue. If it is 8 characters long then it will be interpretted as "AARRGGBB" where A is the Alpha, R is red, G is green and B is blue. You can often get these hexadecimal values from any image editor or from the internet.

When used in file, they will look like;

"propertyName" : "FF153256", "propertyName2" : "A392F1"

## Bool

A Bool only has two values. These values are "True" or "False". These values, when used, are often used as toggles for certain features. When placed in a file they will look like;

"thisIsATrueProperty" : true, "thisIsAFalseProperty" : false

As a note both True and true work, the same goes with False and false.

## Integer

An integer is a number that has no decimal part, otherwise known as a whole number. These will look like the following;

"propertyName" : 1,

Note that when a integer is specified, you cannot have decimal numbers. This is not the same in reverse (e.g. An integer can be used in #Float)

## Float

An float is a number that has decimal part, otherwise known as a decimal number. These will look like the following;

"propertyName" : 1.5,

Note that there is a maximum precision to a float, which is roughly 7 digits of precision. Also note that convention means that integer numbers will still have `.0`

afterwards to make sure that it is clear.

For more information on what a Float actually is, look up scientific notation. Floats are the computer equivalent to scientific notation.

## Double

An double is exactly the same as a #Float but with one change. A Double has about 16 digits of precision, which is much more than float's roughly 7 digits of precision.

## Vector 3

A Vector 3, is a mathematical term for an object that has 3 numbers. Vectors are used most often when specifying a location in Staxel's world. All Vector 3's come in the following form;

"propertyName" : { "x": 0.0, "y": 0.0, "z": 0.0 }

Note that the numbers can change depending on the type. They can be Integers, Floats or Doubles. Each of these are just slightly different from each other.

## Vector 2

A Vector 2, is a mathematical term for an object that has 2 numbers. Vectors are used most often when specifying a location in Staxel's world. All Vector 2's come in the following form;

"propertyName" : { "x": 0.0, "y": 0.0 }

Note that the numbers can change depending on the type. They can be Integers, Floats or Doubles. Each of these are just slightly different from each other.