Hello, I'm trying to make a custom window to edit the towers in my game. Each tower has different variables. Here's how I'm initializing them: Code (CSharp): public class Tower : MonoBehaviour { public struct tower_base{ public string tower_name; public GameObject prefab; public int metal_cost; public int crystal_cost; }; public tower_base[] tower = new tower_base[0]; } Now, on the custom window codes, I'm creating a window for each tower and a button to add a new tower. When I add a new tower, I add that tower to the tower_base variable from the gameobject holding the Tower script, and ofc I duplicate the array to add +1 to its size and then set the values back. All of this works, but when I start the game, everything goes back to zero. All the towers are lost. Why is this happening? Shouldn't it be saved since the variables are in a game object?