List surfaceProviders = new List(); int tick = 0; public Program() { Runtime.UpdateFrequency = UpdateFrequency.Update10; } public void Main(string argument, UpdateType updateSource) { surfaceProviders.Clear(); GridTerminalSystem.GetBlocksOfType(surfaceProviders); tick++; foreach(var surfaceProvider in surfaceProviders) { var block = (IMyTerminalBlock)surfaceProvider; Echo($"Drawing on {block.CustomName}"); for(int index = 0; index < surfaceProvider.SurfaceCount; index++) { var surface = surfaceProvider.GetSurface(index); Draw(surface, index); } } surfaceProviders.Clear(); } void Draw(IMyTextSurface surface, int surfaceIndex) { var str = $"Index={surfaceIndex}\n" + $"SurfaceSize={surface.SurfaceSize.X}x{surface.SurfaceSize.Y}\n" + $"Tick={tick}\n" + $"...More\n" + $"Lines\n" + $"To\n" + $"Show\n" + $"Cropping."; surface.ContentType = ContentType.TEXT_AND_IMAGE; surface.WriteText(str); }