Red Forest Data Structure Version 2

The Version 2 data structure viewed using Notepad++. This file was generated by Red Forest 0.4.0.

The Red Forest Data Structure Version 2 was created in 2025 with one objective: To make Red Forest save files easier to use, read and understand for the developer and the players of the game. Just like Version 1, it uses a text file format in a file without extension name, yet uses a slightly more adjustable format. It was slightly inspired by the Named Binary Tag (also known as “NBT”) format and its flexible structure. The new data structure had to be created to increase the efficiency of development that goes into Red Forest, as there are new features for each major update and updating the data structure for each update would be very tedious and annoying for both players and the developer. By creating Version 2, the developer can make sure every future update since Version 0.4 will be easily convertible to the latest version without the extra work of redesigning the entire data structure format. This also allowed the game to finally save the instances of planted ball seeds. With this new Red Forest data structure, more updates can be made and released with a little less work and more efficiency.

DataType Standards

The Red Forest Data Structure Version 2 must always strictly follow these standards.
  1. Square brackets are used for objects.
  2. Angle brackets are used for variables.
  3. Variables must ALWAYS start their set with Value=.
  4. For the saving and loading of files, the order of components in a DataType’s set must be proper. Otherwise errors will occur.
  5. A lonely variable cannot have anymore components than Value=.
  6. Categorization works as follows: (name).(category)
  7. Each object has lines called components, which are variables for objects.
  8. All DataTypes in the valid DataType script must be used in the load and save function, otherwise some data will not be properly loaded or saved.

List of DataTypes

This list is written in the order of how the game’s save function was coded.

<CashValue>
A lonely variable for the amount of cash owned.

<BallSeeds.Inventory>
A lonely variable for the amount of Ball Seeds in inventory.

<BallBomb.Inventory>
A lonely variable for the amount of Ball Bombs in inventory.

<BallMower.Inventory>
A lonely variable for the amount of Ball Mowers in inventory

<BallMowerLite.Inventory>
A lonely variable for the amount of Ball Mower Lite in inventory

<GemsValue>
A lonely variable for the number of gems owned.

<TCValue>
A lonely variable for the player’s True Clear score.

[Ball]
An object for a ball in the farm.
Set: X, Y, Size
X is a pixel-perfect x-axis location of the object.
Y is a pixel-perfect y-axis location of the object.
Size is a component that represents the ball’s scale value.

[BallSeed]
An object for a growing Ball Seed planted in a farm.
Set: X, Y, Maturity
X is a pixel-perfect x-axis location of the object.
Y is a pixel-perfect y-axis location of the object.
Maturity is a component that represents the ball seed’s stage of maturity. Its value can only be at a range between 0 and 4.

[BallBomb]
An object for a Ball Bomb placed in a farm.
Set: X, Y, Fuse
X is a pixel-perfect x-axis location of the object.
Y is a pixel-perfect y-axis location of the object.
Fuse is a component that represents the ball’s fuse or the amount of buildup. Its value can only be at a range between 0 and 3.

<FarmVersion>
A lonely variable that marks the version used to write the farm file.