Пока напишу коротко.
Структура utx файлов есть в интернете, например
вот.
Теперь о самих данных внутри.
В оригинальном формате большинство объектов состоят из блока Properties и собственно данных. В клиенте Lineage 2 формат немного изменен, и между ними находится еще один информационный блок. Теперь более подробно о структуре этого блока.
Prelude-Interlude:
В клиентах этих версий он состоит из 4 нулевых байт. Может быть они были добавлены про запас(или как примитивная защита от редактирования через Unreal Editor), но так и не были использованы. Структура очень простая, поэтому пакеты легко конвертируются из Unreal в Lineage 2 и обратно.
Kamael-Gracia Part 2:
Ну тут корейцы разошлись.
Я не до конца уверен, но мой вариант структуры такой:
byte[1067] - понятия не имею что за информация, в основном нули.
string[16] - похож на Material Tree.
string - текст скрипта
short - ???
short - предположительно версия пакета.
Gracia Final-..
Видимо просто оптимизация структуры.
byte[1067] -> byte[36]
string[16] -> string[][](в hex-редакторе думаю разберетесь со структурой)
string
short
short
Еще немного общей информации:
Строки.
Вы наверно замечали что файл Icon.utx во многих программах открывается криво.
В оригинальном формате строка записывается как 1 байт длина + строка с нулевым символом в конце. В клиенте Lineage 2 немного по-другому: длина это INDEX, если она положительна то это ASCII строка, и каждый символ занимает 1 байт, если отрицательна, то это UTF-16, и символ занимает 2 байта. Строка так же заканчивается нулевым символом.
Блок Properties.
Он тоже немного изменен, поэтому на некоторых объектах Unreal Editor критует.
Реализацию думаю напишите. Если будут вопросы, постараюсь ответить.