Константы для нашего удобства - дабы видеть, что подразумевается под конкретным числом и не переписывать его, в случае чего, во всех местах где оно употребляется. Во всех местах где мы употребим именованную константу, модулька заменит её заранее определённым для неё числом, что делаем в module_constants. Короче, вполне понятное правило: константа, прежде чем быть использованной, должна быть инициализирована конкретным числом.
Смотрим:
city_merchant_begin = "trp_city_merchant_1" # "trp_city_merchant_1" определено как число
city_merchant_end = tavern_minstrels_begin # tavern_minstrels_begin определена ранее
tavern_booksellers_begin = "trp_tavern_bookseller_1" # присвоено число
tavern_booksellers_end = city_merchant_begin # city_merchant_begin присвоено число (чуть выше)
Всё в порядке.
Было:
tavern_booksellers_begin = "trp_tavern_bookseller_1" # порядок
tavern_booksellers_end = city_merchant_begin # что такое city_merchant_begin? на данный момент, явно, не число
# мы словили ошибку - прерываем
city_merchant_begin = "trp_city_merchant_1"
city_merchant_end = tavern_minstrels_begin
А разбрасывать записи нигде не надо. Например, вам нужно заспавнить ряд персонажей на сценах городов с общим шаблоном миссии, каждого в своём городе. Располагаете записи персонажей стопкой в том же порядке, что и города и обозначаете начало списка константой. Теперь, прибавив к началу списка персонажей разность конца и начала списка городов, получаем идентификатор того кого надо спавнить. Простой как репа расчёт нужного идентификатора, да и ориентироваться гораздо удобнее.