Рабочий код, хотя метода IContext.Log (string text, Color color) и помечает как устаревший. Даже запустил, чтобы проверить - работает. Скорее всего этот скрипт под 1.2 писался, так что если пытаетесь в 2.0 запустить убедитесь, что у вас в референсес библиотеки от 2.0 подключены.
В 1.2 насколько я знаю нельзя было "защитить" кэш от стирания, поэтому все это не очень то надежно работало. В 2.0 можно:
ctx.StoreObject("counter", counter, true);