# packsquash.toml — конфиг для PackSquash, интегрированного в Nexo
# Кладётся в plugins/Nexo/pack/packsquash/packsquash.toml
# (путь берётся из settings.yml -> Pack.generation.packsquash.settings_path)
# ВАЖНО про pack_directory:
# Nexo сам генерирует ресурспак перед запуском PackSquash. Обычно это
# plugins/Nexo/pack/generated (папка с уже собранными assets).
# Проверь, куда Nexo реально кладёт сгенерированный пак ПЕРЕД запуском
# PackSquash (можно глянуть в папке plugins/Nexo/pack/ после генерации
# с packsquash.enabled=false один раз) и поправь путь ниже при необходимости.
pack_directory = 'plugins/Nexo/pack/generated'
output_file_path = 'plugins/Nexo/pack/pack.zip'
# --- Глобальные настройки сжатия ---
# Сжимать по новой даже уже сжатые файлы (ogg/png) — чуть медленнее генерация,
# зато капля дополнительной экономии.
recompress_compressed_files = true
# Уровень Zopfli-сжатия ZIP-содержимого. 20 — уже хорошо, можно поднять
# до 30, но генерация пака будет заметно дольше.
zip_compression_iterations = 20
# Пусть PackSquash сам разбирается, какие костыли под старые версии MC нужны.
automatic_minecraft_quirks_detection = true
automatic_asset_types_mask_detection = true
# Без OptiFine/MTR — если пак их не использует, не включай, чтобы не
# рисковать лишними файлами в архиве.
allow_mods = []
# Иконка сервер-пака всё равно не показывается в большинстве версий —
# можно убрать, чтобы не тратить место.
skip_pack_icon = true
validate_pack_metadata_file = true
ignore_system_and_hidden_files = true
# balanced = дедупликация одинаковых файлов (текстуры/звуки-дубликаты
# схлопываются в один), при этом архив остаётся читаемым почти всеми
# программами. Если хочешь совсем без риска — поставь 'high'.
zip_spec_conformance_level = 'balanced'
never_store_squash_times = false
# --- Настройки под конкретные типы файлов ---
# PNG — большинство экономии обычно именно тут
['**/*?.png']
image_data_compression_iterations = 15
# 'auto' сам решает, квантовать ли цвет — безопасный вариант.
# Если увидишь артефакты на текстурах — смени на 'none' для конкретных
# файлов через отдельную секцию с их путём/маской.
color_quantization_target = 'auto'
color_quantization_dithering_level = 0.85
skip_alpha_optimizations = false
downsize_if_single_color = true
# Звук — сильно жмём, но не режем частоту слишком агрессивно, чтобы не
# было слышно деградации на кастомных саундах.
['**/*?.ogg']
transcode_ogg = true
two_pass_vorbis_optimization_and_validation = true
empty_audio_optimization = true
['**/*?.{flac,wav}']
transcode_ogg = true
channels = 2
sampling_frequency = 44100
# JSON — минификация + удаление мусорных ключей (авторские метаданные и т.п.)
['**/*?.json']
minify_json = true
delete_bloat_keys = true
sort_json_object_keys = true
['**/*?.mcmeta']
minify_json = true
delete_bloat_keys = true
# NBT-структуры (если есть datapack-часть)
['**/*?.nbt']
nbt_compression_iterations = 20