Для создания собственного скрипт-файла достаточно:

  1. Создать пустой файл с расширением .json и дать ему название, полностью соответствующее названию карты (к которой прикрепляется скрипт).
  2. Скопировать пример, приведенный ниже, в этот новый пустой файл.
  3. Модифицировать пример как угодно.

{
	"counters":
	[
		{
			"sid": "counter_unique_descriptive_id",
			"comment": "краткое пояснение, для чего используется счетчик | 'sharing', 'value', 'minValue', 'maxValue' можно не задавать",
			
			"sharing": "Clone",
			"value": 0,
			"minValue": 0,
			"maxValue": 4
		}
	],

	"interruptions":
	[
		{
			"sid": "interruption_unique_descriptive_id",
			"interruption": "AfterHeroWinVsHero",
			"activeOnStart": true,
			"p": [ "winner_hero_sid", "loser_hero_sid" ],

			"actions":
			[
				{ "a": "Dialog", "p": [ "dialogue_unique_id" ] }
			]
		}
	],
		
	"quests":
	[
		{
			"sid": "quest_unique_descriptive_id",
			"comment": "краткое пояснение, про что этот квест и что в нем происходит | 'name' - единственное обязательное поле, все остальные по умолчанию = false",
			
			"sharing": "Clone",
			"activeOnStart": true,
			"hidden": true,
			"main": true,

			"name": "quest_name_localization_id",
			"desc": "quest_description_localization_id",

			"subQuests":
			[	
				{
					"sid": "subquest_unique-within-quest_id",
					"comment": "краткое пояснение, какие задачи несет сабквест и/или какие триггеры содержит",
						
					"activeOnStart": true,
					
					"name": "subquest_name_localization_id",

					"triggers":
					[
						{
							"conditionsLogic": "Or",
							"repeat": true,

							"conditions":
							[
								{ "c": "Counter", "p": [ "counter_unique_descriptive_id", ">=", "2" ] },
								{ "c": "UnitKill", "p": [ "skeleton" ], "counter": 100 }
							],

							"actions":
							[
								{ "a": "InitiateInteract", "p": [ "entity_to_interact_with" ] },
								{ "a": "NextQuest" }
							]
						}
					]
				}
			]
		}
	]
}