Перейти к содержанию

📄 PalSummon.json

Файл PalSummon определяет встречу с фиксированным местоположением, запускаемую с помощью /summon <filename>. Сохраняйте файлы в <PalServer>/Pal/Binaries/Win64/PalDefender/Pals/Summons/, а ссылки на PalTemplates — в Pals/Templates/.

Поиск идентификаторов

Используйте paldeck.cc/pals для PalID, paldeck.cc/passives для пассивных способностей и paldeck.cc/skills для идентификаторов навыков, используемых в указанном шаблоне.

Ключи встречи

Ключ Тип По умолчанию Описание
PalTemplate string Требуется Имя файла шаблона в Pals/Templates/; .json можно опустить.
BossBattleName string Идентификатор Pal Отображаемое имя, используемое в объявлениях, журналах, вебхуках и результатах урона.
Uncapturable bool false Предотвращает захват вызванного Pal.
CapturableAtHealthPercent номер 15 Если возможен захват, разрешает захват только при этом проценте HP или ниже (0–100). Игнорируется, если Uncapturable равен true.
DisableAI bool false Отключает обычный ИИ. Некоторое пассивное поведение, например уклонение, все еще может иметь место.
DisableDamageMeter bool false Отключает отслеживание, диалоговое окно результатов и награды за ранги. Вместо этого награда Default предоставляется всем онлайн-игрокам.
SpawnScale номер 1.0 Визуальный и физический множитель размера; неположительные значения возвращаются к 1.0.
DamageTakenMultiplier номер 1.0 Множитель полученного урона; отрицательные значения возвращаются к 1.0.
DamageDealtMultiplier номер 1.0 Множитель нанесенного урона; отрицательные значения возвращаются к 1.0.
X, Y, Z номер Требуется Координаты карты. Используйте /getpos, чтобы получить их.
DisableStatuses array Пусто Имена статусов, которые нужно скрыть. Недопустимые имена пропускаются. Допустимые названия.
Rewards object или array Пусто Необязательные определения наград для отдельных мест и награды по умолчанию. Рекомендуется использовать форму object.

CapturableAt, CapturableAtPercent и capturable_at являются допустимыми псевдонимами совместимости. AdditionalEnemyReceiveDamageRate и AdditionalEnemyInflictDamageRate также принимаются, но имена из таблицы являются предпочтительными.

Миграция максимального HP

Максимальный HP призванного Pal теперь берётся из HP указанного PalTemplate. HealthMultiplier, HPMultiplier и AdditionalEnemyMaxHPRate больше не поддерживаются; удалите эти поля из существующих файлов PalSummon.

Отключение статусов

DisableStatuses — массив названий статусов в виде строк. Указанные статусы удаляются у призванного Пала и больше не могут быть наложены на него. Регистр букв не учитывается; используйте английские идентификаторы без перевода, сохраняя символы подчёркивания. Пустой массив [] не отключает никакие статусы. Пустые строки и недопустимые названия пропускаются; None использовать нельзя.

Пример: заблокировать отравление, горение, заморозку, электрические эффекты, оглушение и сон.

"DisableStatuses": ["Poison", "Burn", "Freeze", "Electrical", "Stun", "Sleep"]

Полный список включает также усиления и внутренние статусы игры, а не только вредоносные эффекты.

Все допустимые названия статусов
ControlSP
GainHP
StepCooldown
DrownCheck
Poison
UNKOTimer
Stun
Coma
Sleep
Overwork
Happiness
Resistance
Moratorium
Drown
Dying
ShieldRecovery
FallDamage
LavaDamage
Burn
Wetness
Freeze
Electrical
Muddy
IvyCling
Darkness
AttackUp
DefenseUp
AttackDown
CollectItem
LifeSteal
RaidBossStatusChange
RarePalEffect
MorphChange
PalEnhancement
PalEnhancement2
PalEnhancement3
PartBreak
FishingSpotElectrical
HPLock
AcidDamage
WorldTreeAuraPalEffect
AwakeningAuraEffect
ToxicGas
ToxicGas_FromAttack
Stealth
TeleportStealth
LowGravity
PlayerLowHealthBlast
PlayerElementStepAttack_Fire
PlayerElementStepAttack_Water
PlayerElementStepAttack_Leaf
PlayerInflictEffect_AttackBurning_ApplyExplosion
PlayerInflictEffect_AttackIvyCling_ApplyExplosion
PlayerInflictEffect_AttackBurning_ApplyFireVortex
PlayerInflictEffect_AttackElectrified_ApplySpark
PlayerInflictEffect_AttackPoisoned_ApplyAttackDown
PlayerInflictEffect_AttackMuddy_ApplyAttackDown
PlayerInflictEffect_MeleeHitBarrier
PlayerInflictEffect_AttackWet_ApplyFreeze
PlayerInflictEffect_AttackWet_ApplyFreeze_Resist
Player_ArrowExplosion
BulletHit_StackBuff
DefeatEnemy_StackBuff
MapObjectOverHeat
JumpingFrog
JumpingFrog_dark
LifeDrainPower_AttackUp
AttackRateHPThresholdPassive
DefenseRateHPThresholdPassive
WeakPointHitDamageUp
WeakPointHitDamageUp_Buff
SwimSpeedUp
WorldTreeHolyWaterEffect
DefeatEnemy_ActiveSkillCoolTime_Decrease
DefeatEnemy_RecoverHP
RecoverHPOnHPThresholdPassive
FloatStun

Счетчик урона и награды

Награды разыгрываются после того, как призванный Pal умрет или будет захвачен. Таблица лидеров урона отсортирована от самого высокого до самого низкого урона. Диалоговое окно результатов показывает пятерку лучших, выделяет тройку лучших, а также показывает собственную позицию принимающего игрока, когда этот игрок не входит в пятерку лучших.

Если включено отслеживание повреждений, с каждым участвующим игроком обращаются следующим образом:

  1. PalDefender ищет числовой ключ Rewards, соответствующий окончательному рангу этого игрока.
  2. Если такого точного ранга не существует, PalDefender использует Rewards.Default.
  3. Если ни того, ни другого не существует, этот игрок не получает награды.
  4. Выбранная награда выпадает отдельно для этого игрока. Таким образом, два игрока, использующие одно и то же определение Default, могут получить разные случайные результаты.

Только участники, которые всё ещё находятся в сети и имеют доступный контроллер игрока на момент завершения боя, могут получить ранговые награды. Пронумерованная награда не включает награду Default; она заменяет её для соответствующего места.

"Rewards": {
    "1": {
        "Drops": [
            { "ItemID": "Money", "Count": 50000 },
            { "TechnologyPoints": 5 }
        ]
    },
    "2": {
        "Drops": [
            { "EXP": { "Min": 10000, "Max": 20000 } }
        ]
    },
    "Default": {
        "Drops": [
            { "ItemID": "Money", "Count": 1000, "Chance": 75 }
        ]
    }
}

В этом примере первое место получает обе гарантированные награды, второе — случайное количество опыта, а каждый из остальных участников рейтинга независимо получает шанс 75 % получить 1 000 единиц валюты.

Ключи ранга должны представлять собой положительные целые числа, записанные как ключи JSON object, например "1", "2" или "10". "0", отрицательные ранги и произвольные имена недействительны. Default сопоставляется без учета регистра.

форма Array

Rewards также может быть array. Array элемент 0 имеет ранг 1, элемент 1 — ранг 2 и т. д. Форма array не может определить Default, поэтому форма object более понятна и рекомендуется.

"Rewards": [
    { "Drops": [ { "ItemID": "Money", "Count": 50000 } ] },
    { "Drops": [ { "ItemID": "Money", "Count": 25000 } ] }
]

Структура определения вознаграждения

Каждый ранг и Default содержат одно определение награды. Определение может содержать оба:

  • Drops: записи оцениваются напрямую и независимо.
  • Pools: группы, управляющие выбором записей.

Он также может содержать сокращения прогрессии EXP, TechnologyPoints и AncientTechnologyPoints. Сокращения гарантированы и полезны, когда им не нужны собственные настройки Chance, Weight или Unique.

{
    "EXP": { "Min": 10000, "Max": 20000 },
    "TechnologyPoints": 2,
    "AncientTechnologyPoints": 1,
    "Drops": [
        { "ItemID": "Money", "Count": 5000 }
    ],
    "Pools": [
        {
            "Entries": [
                { "ItemID": "AncientArmor", "Weight": 1 },
                { "ItemID": "AncientHelmet", "Weight": 1 }
            ]
        }
    ]
}

Типы вознаграждений

Каждая запись должна определять ровно один тип вознаграждения. Не объединяйте поле предмета, яйца и прогресса в одной записи.

Награда Обязательные поля Необязательные поля Примечания
Товар ItemID Count, Chance, Weight, Unique Count по умолчанию равен 1.
Pal яйцо EggID, PalTemplate Count, Level, Chance, Weight, Unique Count по умолчанию равен 1; Level: 0 использует уровень шаблона.
Опыт EXP Chance, Weight, Unique Значение EXP — это сумма или диапазон.
Технологические точки TechnologyPoints Chance, Weight, Unique Значением поля является сумма или диапазон.
Древние технологические точки AncientTechnologyPoints Chance, Weight, Unique Значением поля является сумма или диапазон.

Chance, Weight и Unique эффективны только в контекстах, описанных ниже. То, что поле принимается анализатором, не означает, что оно влияет на каждый режим распространения.

Рекомендуется использовать приведенные выше канонические имена полей. Парсер также принимает следующие псевдонимы:

Каноническое поле Принятые псевдонимы
ItemID ItemId, ID
EggID EggId
PalTemplate Template
Count Amount, Num
EXP Exp, Experience
TechnologyPoints TechPoints
AncientTechnologyPoints BossTechnologyPoints

Фиксированные значения, диапазоны и шансы

Суммы могут быть фиксированным целым числом или инклюзивным диапазоном:

{
    "Drops": [
        { "ItemID": "Money", "Count": 25000 },
        { "ItemID": "AssaultRifleBullet", "Count": { "Min": 100, "Max": 250 } },
        { "EXP": { "Min": 10000, "Max": 20000 } },
        { "TechnologyPoints": 2 }
    ]
}
  • Count, количество опыта и технологических очков должно быть целым числом не ниже 1.
  • Для диапазона требуются как Min, так и Max, а Max не должен быть ниже Min.
  • Текстовые диапазоны, такие как "1-3", недействительны; используйте { "Min": 1, "Max": 3 }.
  • Яйцо Level может быть 0; это сохраняет уровень из указанного PalTemplate. Положительный уровень переопределяет уровень шаблона и ограничивается уровнем 255, когда яйцо предоставляется.
  • Chance принимает число или числовой текст с необязательным %, например 30, 30.5 или "30%".
  • Chance: 0 никогда не завершается успешно, Chance: 100 всегда завершается успешно, а значения должны находиться в диапазоне от 0 до 100.
  • Для шанса строго от 0 до 100 сгенерированный бросок должен быть ниже настроенного значения. Таким образом, бросок ровно 30.0 не дает результата Chance из 30.

Прямые капли

Каждая запись в Drops оценивается независимо. Между соседними записями нет отношения выбора одного. Отсутствие Chance означает 100.

{
    "Drops": [
        { "ItemID": "Money", "Count": { "Min": 25000, "Max": 75000 } },
        { "ItemID": "AssaultRifleBullet", "Count": { "Min": 100, "Max": 250 }, "Chance": 30 },
        { "EXP": 15000, "Chance": "50%" },
        { "TechnologyPoints": 2, "Chance": 10 }
    ]
}

Деньги гарантированы. Боеприпасы, опыт и технологические очки имеют свой собственный шанс. Ноль, один, два или все три дополнительных сброса могут быть успешными.

Weight и Unique не работают напрямую с Drops и выдают предупреждения. Используйте Chance для необязательного прямого сброса.

Пулы добычи

Пул сначала создает свой собственный Chance. Если пул выходит из строя, ни одна из его записей не учитывается. В случае успеха Mode решает, как оценивать записи.

Ключ от бассейна Тип По умолчанию Описание
Name string Пусто Дополнительная диагностическая этикетка. Это не влияет на выбор.
Mode string OneOf OneOf, Pick, All или Independent. Сопоставление нечувствительно к регистру.
Chance число или процентный текст 100 Шанс, что активируется весь пул.
Rolls целое число 1 Количество вариантов в Pick; игнорируется другими режимами.
Unique bool true Политика повторения по умолчанию для Pick; запись может переопределить ее.
Entries array Требуется Непустой список записей вознаграждений.

One принимается как псевдоним для OneOf, а PickN как псевдоним для Pick, но рекомендуется использовать канонические имена режимов.

Режим Сколько заявок может быть предоставлено? Использует Weight? Использует запись Chance? Использует Rolls/Unique?
OneOf Ровно один, если пул успешен Да Нет Нет
Pick До Rolls выбора Да Нет Да
All Каждая запись один раз, если пул успешен Нет Нет Нет
Independent Ноль во всех записях Нет Да Нет

Все четыре режима по-прежнему используют Chance уровня пула. Несколько пулов в одном определении вознаграждения обрабатываются независимо, и их результаты добавляются в прямой Drops.

OneOf: один взвешенный результат

OneOf — режим по умолчанию. Если его шанс на уровне пула успешен, выбирается ровно одна запись. Вероятность записи равна ее Weight, деленному на сумму всех весов записей.

{
    "Pools": [
        {
            "Name": "Equipment jackpot",
            "Mode": "OneOf",
            "Chance": 35,
            "Entries": [
                { "ItemID": "AncientArmor", "Weight": 7 },
                { "ItemID": "AncientHelmet", "Weight": 7 },
                { "ItemID": "SkyAssaultRifle", "Weight": 5 },
                { "EggID": "PalEgg_Dark_05", "PalTemplate": "RaidReward.json", "Weight": 1 }
            ]
        }
    ]
}

Сумма весов равна 20. При условии успеха пула четыре записи имеют вероятности 35%, 35%, 25% и 5%. Поскольку сам пул активируется только в 35% случаев, абсолютная вероятность яйца равна 35% × 5% = 1.75%.

  • Отсутствующий Weight по умолчанию равен 1.
  • Weight должно быть целым числом не ниже 1; удалить запись вместо присвоения веса 0.
  • Rolls игнорируется и выдает предупреждение, поскольку OneOf всегда выбирает один раз.
  • Начальный уровень Chance игнорируется и выдает предупреждение. Используйте Weight для управления относительной вероятностью выбора.
  • Unique не имеет практического эффекта, поскольку выбирается только одна запись.

Pick: множественные взвешенные результаты без повторов

Pick повторяет взвешенный выбор Rolls раз. При использовании значения по умолчанию Unique: true выбранная запись удаляется перед следующим выбором и не может быть выбрана снова. Веса пересчитываются из оставшихся записей после каждого выбора.

{
    "Pools": [
        {
            "Name": "Choose two different rewards",
            "Mode": "Pick",
            "Rolls": 2,
            "Unique": true,
            "Entries": [
                { "ItemID": "AncientArmor", "Weight": 1 },
                { "ItemID": "AncientHelmet", "Weight": 1 },
                { "ItemID": "SkyAssaultRifle", "Weight": 1 }
            ]
        }
    ]
}

Это дает две разные записи. Если Rolls превышает количество доступных уникальных записей, выбор прекращается, когда записей не остается; это не ошибка.

Pick: разрешение повторных результатов

Установите для Unique пула значение false, чтобы выбранные записи оставались доступными для последующих обновлений. Повторные гранты одного и того же предмета перед доставкой объединяются.

{
    "Pools": [
        {
            "Name": "Three supply rolls",
            "Mode": "Pick",
            "Rolls": 3,
            "Unique": false,
            "Entries": [
                { "ItemID": "Money", "Count": 5000, "Weight": 5 },
                { "ItemID": "AssaultRifleBullet", "Count": 100, "Weight": 2 }
            ]
        }
    ]
}

Все три броска могут выбрать деньги, все могут выбрать боеприпасы, или результаты могут быть смешанными. Например, двойной выбор «Деньги» дает один денежный грант в размере 10 000, а не два отдельных гранта.

Pick: переопределение Unique для каждой записи

Unique начального уровня переопределяет значение пула по умолчанию только для этой записи. Это позволяет повторять общие награды и разовые джекпоты в одном и том же пуле.

{
    "Pools": [
        {
            "Name": "Repeatable currency with unique jackpots",
            "Mode": "Pick",
            "Rolls": 3,
            "Unique": true,
            "Entries": [
                { "ItemID": "Money", "Count": { "Min": 5000, "Max": 7000 }, "Weight": 10, "Unique": false },
                { "ItemID": "AncientArmor", "Weight": 1 },
                { "ItemID": "AncientHelmet", "Weight": 1 }
            ]
        }
    ]
}

Деньги остаются в списке кандидатов после выбора, поскольку в их записи указано Unique: false. Броня и шлем наследуют Unique: true из пула и удаляются после выбора. Обратное также справедливо: пул может использовать Unique: false, в то время как конкретная запись использует Unique: true.

All: предоставить каждую запись

All предоставляет каждую запись ровно один раз, когда Chance уровня пула завершается успешно.

{
    "Pools": [
        {
            "Name": "Complete reward bundle",
            "Mode": "All",
            "Chance": 100,
            "Entries": [
                { "ItemID": "Money", "Count": 10000 },
                { "ItemID": "AssaultRifleBullet", "Count": { "Min": 100, "Max": 250 } },
                { "EXP": 15000 },
                { "TechnologyPoints": 2 },
                { "EggID": "PalEgg_Dark_05", "PalTemplate": "RaidReward.json", "Level": 50 }
            ]
        }
    ]
}

Weight, Chance начального уровня и Unique не влияют на All. Rolls игнорируется и выдает предупреждение. Чтобы сделать весь пакет необязательным, установите для пула Chance; чтобы сделать отдельные записи необязательными, вместо этого используйте Independent или напрямую Drops.

Independent: прокручивать каждую запись отдельно

Independent проверяет каждую запись и использует собственный Chance каждой записи. Он может предоставить ни одной записи, одну запись, несколько записей или все записи.

{
    "Pools": [
        {
            "Name": "Independent bonus rolls",
            "Mode": "Independent",
            "Chance": 80,
            "Entries": [
                { "ItemID": "Money", "Count": 10000 },
                { "ItemID": "AssaultRifleBullet", "Count": 250, "Chance": 50 },
                { "ItemID": "AncientArmor", "Chance": 10 },
                { "EggID": "PalEgg_Dark_05", "PalTemplate": "RaidReward.json", "Level": { "Min": 45, "Max": 55 }, "Chance": 5 }
            ]
        }
    ]
}

Во-первых, пул имеет 80% шанс активироваться. Если он активируется, Money гарантированно, поскольку в его записи отсутствует Chance; остальные три участника получают 50%, 10% и 5% независимо.

  • Отсутствующая запись Chance по умолчанию имеет значение 100.
  • Weight и Unique не влияют на этот режим.
  • Rolls игнорируется и выдает предупреждение, поскольку каждая запись проверяется один раз.

Объединение прямых капель и нескольких пулов

Используйте несколько пулов, когда один получатель должен получить несколько независимо структурированных уровней вознаграждения.

{
    "Drops": [
        { "ItemID": "Money", "Count": 10000 },
        { "EXP": 5000 }
    ],
    "Pools": [
        {
            "Name": "One equipment item",
            "Mode": "OneOf",
            "Entries": [
                { "ItemID": "AncientArmor", "Weight": 1 },
                { "ItemID": "AncientHelmet", "Weight": 1 }
            ]
        },
        {
            "Name": "Two supply rolls",
            "Mode": "Pick",
            "Rolls": 2,
            "Unique": false,
            "Entries": [
                { "ItemID": "Money", "Count": 5000, "Weight": 3 },
                { "ItemID": "AssaultRifleBullet", "Count": 100, "Weight": 1 }
            ]
        },
        {
            "Name": "Rare independent bonuses",
            "Mode": "Independent",
            "Entries": [
                { "TechnologyPoints": 1, "Chance": 20 },
                { "AncientTechnologyPoints": 1, "Chance": 5 }
            ]
        }
    ]
}

Прямые деньги и опыт всегда применяются. Первый пул добавляет один предмет снаряжения, второй делает два взвешенных выбора снабжения с заменой, а третий делает два независимых бонусных броска. Игрок может получать результаты из каждого пула, поскольку пулы не конкурируют друг с другом.

Pal награды за яйца

Яйцу необходимы как EggID, так и PalTemplate. Шаблон загружается из Pals/Templates/, а .json можно опустить. Count контролирует количество предоставляемых яиц. Level: 0 или пропущенный уровень сохраняет уровень шаблона; положительное фиксированное значение или диапазон переопределяет его.

{
    "Pools": [
        {
            "Name": "One random egg reward",
            "Mode": "OneOf",
            "Entries": [
                {
                    "EggID": "PalEgg_Dark_05",
                    "PalTemplate": "RaidReward.json",
                    "Count": 1,
                    "Level": { "Min": 45, "Max": 55 },
                    "Weight": 3
                },
                {
                    "EggID": "PalEgg_Dragon_05",
                    "PalTemplate": "DragonReward.json",
                    "Count": { "Min": 1, "Max": 2 },
                    "Level": 50,
                    "Weight": 1
                }
            ]
        }
    ]
}

Если шаблон яйца не может быть импортирован при предоставлении вознаграждения, PalDefender регистрирует ошибку и пропускает это вознаграждение в виде яйца.

Объединение повторяющихся результатов

Результаты прямых капель и всех пулов перед доставкой объединяются:

  • Элементы с одинаковым ItemID объединяются путем сложения их количества.
  • Яйца сливаются только тогда, когда EggID, PalTemplate и свернутый Level идентичны.
  • Опыт, технологические очки и очки древних технологий суммируются.
  • Общее количество предоставляемых предметов и технологических очков ограничено 32-битным знаком (2,147,483,647).

Это означает, что повторяющиеся результаты Pick не создают повторяющиеся строки инвентаря в запросе вознаграждения. Яйца с разным выпавшим уровнем остаются отдельной наградой.

DisableDamageMeter распространение

Если DisableDamageMeter равен true, PalDefender не строит таблицу лидеров по урону и не использует числовые награды за ранги. Вместо этого он выбрасывает Rewards.Default отдельно для каждого игрока, находящегося в сети на момент завершения боя, включая игроков, которые не нанесли урон вызванному Pal.

{
    "DisableDamageMeter": true,
    "Rewards": {
        "Default": {
            "Drops": [
                { "ItemID": "Money", "Count": 5000 }
            ],
            "Pools": [
                {
                    "Mode": "Independent",
                    "Entries": [
                        { "TechnologyPoints": 1, "Chance": 25 },
                        { "AncientTechnologyPoints": 1, "Chance": 5 }
                    ]
                }
            ]
        }
    }
}

Деньги предоставляются каждому онлайн-игроку. Каждый игрок самостоятельно бросает два дополнительных очка. Если Default отсутствует или пуст, в этом режиме никто не получает вознаграждение, а PalDefender записывает предупреждение в журнал.

Неверные и игнорируемые комбинации

Неверные данные вознаграждения препятствуют загрузке файла PalSummon. Неизвестные или игнорируемые по контексту поля выдают предупреждения, поэтому орфографические ошибки и неэффективные настройки отображаются в журнале PalDefender.

Конфигурация Результат
Одна запись содержит как ItemID, так и EXP Ошибка: запись может определять только один тип вознаграждения.
В записи о награде нет поля предмета, яйца или прогресса Ошибка: PalDefender не знает, что предоставить.
Count: 0, Weight: 0 или Rolls: 0 Ошибка: эти значения должны быть не ниже 1.
В диапазоне отсутствуют Min или Max или имеется Max < Min Ошибка.
Chance находится за пределами 0–100 Ошибка.
В пуле нет Entries, пустого Entries array или значения, отличного от array Ошибка.
Chance помещается в запись OneOf, Pick или All Предупреждение; шанс входа игнорируется.
Rolls установлен на OneOf, All или Independent Предупреждение; Rolls игнорируется.
Weight или Unique помещается в прямой Drops Предупреждение; используйте Chance для прямого сброса.
Присутствует неизвестное поле, например Wieght Предупреждение; поле не используется.

Используйте действительный JSON без комментариев и запятых. Просматривайте предупреждения о загрузке, даже если призыв все еще загружается: предупреждения обычно указывают на настройку, которая не имеет никакого эффекта.

Полный пример

{
    "PalTemplate": "ArenaBoss.json",
    "BossBattleName": "Arena Anubis",
    "Uncapturable": false,
    "CapturableAtHealthPercent": 10,
    "DisableAI": false,
    "DisableDamageMeter": false,
    "SpawnScale": 1.5,
    "DamageTakenMultiplier": 0.75,
    "DamageDealtMultiplier": 2.0,
    "X": 230,
    "Y": -486,
    "Z": 4097,
    "DisableStatuses": ["Poison", "Burn", "Freeze"],
    "Rewards": {
        "1": {
            "Drops": [
                { "ItemID": "Money", "Count": 50000 },
                { "AncientTechnologyPoints": 3 }
            ],
            "Pools": [
                {
                    "Name": "Winner bonus",
                    "Mode": "Pick",
                    "Rolls": 2,
                    "Unique": true,
                    "Entries": [
                        { "ItemID": "AncientCivilizationParts", "Count": { "Min": 1, "Max": 3 }, "Weight": 5 },
                        { "EggID": "PalEgg_Dark_05", "PalTemplate": "RaidReward.json", "Level": { "Min": 45, "Max": 55 }, "Weight": 1 }
                    ]
                }
            ]
        },
        "Default": {
            "Drops": [
                { "EXP": 5000 },
                { "TechnologyPoints": 1 }
            ]
        }
    }
}

Контрольный список проверки

  1. Сначала протестируйте указанный шаблон с помощью /givemepal_j <template>.
  2. Используйте /getpos для X, Y и Z; RCON должен предоставить идентификатор пользователя /getpos.
  3. Используйте действительный JSON без комментариев и запятых.
  4. Используйте только один тип вознаграждения для каждой записи о вознаграждении.
  5. Убедитесь, что каждый пул имеет непустой Entries array и использует только поля, которые влияют на выбранный им Mode.
  6. Запустите /summon <filename> и проверьте журнал PalDefender на наличие точных ошибок проверки и предупреждений.