вот мэйн моей эры:
#textdomain wesnoth-2
[textdomain]
name="wesnoth-2"
path="data/add-ons/Silver_Age/translations"
[/textdomain]
#ifdef MULTIPLAYER
[binary_path]
path=data/add-ons/Silver_Age
[/binary_path]
{~add-ons/Silver_Age/utils/filters.cfg}
{~add-ons/Silver_Age/utils/traits.cfg}
{~add-ons/Silver_Age/utils/alignments.cfg}
{~add-ons/Silver_Age/utils}
[+units]
{~add-ons/Silver_Age/utils/races.cfg}
{~add-ons/Silver_Age/utils/movetypes.cfg}
{~add-ons/Silver_Age/units/royal-army/}
{~add-ons/Silver_Age/units/mfnu/}
{~add-ons/Silver_Age/units/tribes/}
{~add-ons/Silver_Age/units/eldahosse/}
{~add-ons/Silver_Age/units/robbers/}
{~add-ons/Silver_Age/units/monsters/}
{~add-ons/Silver_Age/units/higher-beings/}
[/units]
{~add-ons/Silver_Age/factions}
#endif
это не кампания, но принцип подключения папок тот же самый. в той строке где ты подключаешь папку веснот открывает ее и просматривает все .кфг файлы. если среди них будет файл сценария или юнита, он запомнит айди и не будет говорить, что он ему неизвестен
p.s. в твоем случае вместо ifdef MULTIPLAYER ты пишешь например ifdef CAMPAIGN_MYCAMPAIGN а перед тем в строке define пишешь define=CAMPAIGN_MYCAMPAIGN
например так:
id=Legion
name= _ "Birth of the Legion"
abbrev= _ "BotL"
start_year="652 YW"
end_year="657 YW"
rank=425
first_scenario=Gold_Rush
define=CAMPAIGN_LEGION
#ifdef CAMPAIGN_LEGION
[binary_path]
path=data/add-ons/Legion
[/binary_path]
{~add-ons/Legion/maps}
{~add-ons/Legion/scenarios}
#endif