From 27047e807169a9219471211fcaf7e118de314d34 Mon Sep 17 00:00:00 2001 From: sasheg dev <152582704+SashegDev@users.noreply.github.com> Date: Wed, 21 Oct 2026 19:31:51 +0300 Subject: [PATCH] =?UTF-8?q?=D0=91=D0=B0=D0=B7=D0=B0=20=D0=B8=D0=B7=20?= =?UTF-8?q?=D1=80=D0=B5=D0=BC=D0=B5=D0=B9=D0=BA=D0=B0:=20=D0=B0=D1=81?= =?UTF-8?q?=D1=81=D0=B5=D1=82=D1=8B,=20=D0=BF=D1=80=D0=B5=D0=B4=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D1=8B,=20=D0=B7=D0=B2=D1=83=D0=BA=D0=B8=20=D0=B8?= =?UTF-8?q?=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Выгрузили из ремейка Rustex всё, на чём будем работать, и переписали план под реальные цифры. Ассеты: - tools/extract-rustex-assets.py распаковывает res/ и game.jar и декодирует однобайтовый XOR (ключ по сигнатуре: PNG ^0x89, OGG ^0x4F, JSON ^0x7B). Итог: assets/rustex, 1.65 ГБ, 19 тыс. файлов. В репозиторий не кладём. - Не прочитались 553 .obj, 106 .rrs, 113 .nbt: у них другой шифр, нужен разбор кода (REA). Таблицы (в репозитории): - items.csv: 218 предметов с уроном, дальностью, темпом, прочностью, добычей за удар, материалом, иконкой и моделью; - sounds.csv: 505 звуковых событий с файлами; - item-texts.json: 543 названия и описания предметов. План (PLAN.md): - Сбор теперь по балансу ремейка: камень берёт 50 дерева и 35 руды, топор 85 дерева, каменная кирка 80 руды. Дерево 750 топором рубится за 9 ударов, с меткой за 6-7 - ровно те 7-10 ударов, которых ждали. - Исследования - версия после 2020: два пути. Стол (15/30/60/120, нужен сам предмет, превращается в чертёж) и тех-дерево верстака (125/250/500, ветки с предками, разблокировка личная). Утверждение "тех-дерево бесплатно" было ошибкой community-вики. - Лозы больше нет: она из джунглей, а джунглей нет. Выкинута из HP-таблицы, цен, таймеров гниения и правил шкафа. - Новые разделы 1.10 (мусорка на дороге: серая бочка - скрап, синяя - компоненты, красная - нефть и топливо, плюс ящики с едой) и 1.11 (дороги: сетка 3-4 полос плюс кольцо, сегменты - точки спавна мусорки). - Первый источник скрапа - мусорка, лутбоксы отложены: вопрос о прогрессии крафта снят. - Узлы: руда - своя 3D-модель с AABB, деревья - пока блоки мира. --- .gitignore | 8 +- PLAN.md | 614 ++-- README.md | 22 + .../src/main/resources/items/item-texts.json | 2715 +++++++++++++++++ .../src/main/resources/items/items.csv | 219 ++ .../src/main/resources/items/sounds.csv | 2005 ++++++++++++ tools/extract-items.py | 279 ++ tools/extract-rustex-assets.py | 213 ++ tools/extract-sounds.py | 72 + 9 files changed, 5937 insertions(+), 210 deletions(-) create mode 100644 rsx-protocol/src/main/resources/items/item-texts.json create mode 100644 rsx-protocol/src/main/resources/items/items.csv create mode 100644 rsx-protocol/src/main/resources/items/sounds.csv create mode 100644 tools/extract-items.py create mode 100644 tools/extract-rustex-assets.py create mode 100644 tools/extract-sounds.py diff --git a/.gitignore b/.gitignore index 68ac6ea..8f9bae9 100644 --- a/.gitignore +++ b/.gitignore @@ -30,8 +30,14 @@ target/ *.jar !rsx-client/third_party/**/*.jar +# The assets of the Rustex remake. They are a temporary base and they are +# 1.65 GB, so they live on disk and are not in the repository. The scripts +# that unpack them are in tools/, and the small tables we derived from them +# (items.csv, sounds.csv, item-texts.json) are committed. +assets/rustex/ +logs/ + # python -__cache__/ __pycache__/ *.pyc diff --git a/PLAN.md b/PLAN.md index fdd679f..5ada27a 100644 --- a/PLAN.md +++ b/PLAN.md @@ -12,24 +12,29 @@ | модуль | что в нём | состояние | |---|---|---| -| `rsx-protocol` | формат провода: кадрирование, буфер, рукопожатие, игровые пакеты | рабочий, 22 теста | +| `rsx-protocol` | формат провода: кадрирование, буфер, рукопожатие, игровые пакеты | рабочий, 24 теста | | `rsx-auth` | свои аккаунты сервера (PBKDF2, токены, троттлинг) | рабочий, используется только когда лаунчер не настроен | -| `rsx-server-core` | тик-луп, мир (чанки, генерация, сохранение), сессии, вход через лаунчер | рабочий, 49 тестов | +| `rsx-server-core` | тик-луп, мир (чанки, генерация, сохранение), сессии, вход через лаунчер, инвентарь | рабочий, 57 тестов | | `rsx-client` | загрузчик модов, API модов, хуки в клиент | рабочий, 128 тестов | | `game-fork` | форк Minecraft 1.12.2: свой сетевой слой, свой экран входа, свой HUD | собирается чисто, 3275 классов | +| `tools` | извлечение ассетов ремейка: `extract-rustex-assets.py`, `extract-items.py`, `extract-sounds.py` | рабочий, ассеты выгружены (1.65 ГБ) | +| `assets/rustex` | ассеты ремейка: модели, текстуры, звуки, иконки, база предметов, карты | выгружено, **временная база** | Уже работает целиком: клиент заходит на сервер по токену лаунчера → сервер спрашивает лаунчер «этот ваш?» → клиент получает мир → чанки приходят и рисуются → -игрок ходит и ломает блоки. +игрок ходит и ломает блоки → сервер выдаёт камень в руку (инвентарь есть). -Не сделано: предметы, инвентарь, крафт, верстаки, изучение чертежей, узлы-ресурсы -(деревья/камни/руда как разрушаемые объекты), постройка баз, нормальная генерация -мира, транспорт на NIO, дальний вид (DistantView). +Не сделано: клиентский рендер своих предметов, крафт, верстаки, исследование +(стол + тех-дерево), узлы-ресурсы (деревья/камни/руда как разрушаемые объекты), +мусорка и дороги, постройка баз, нормальная генерация мира, транспорт на NIO, +дальний вид (DistantView). **Данные оригинала** — раздел 1: срез Rust на **06.11.2025** («Pivot Or Die»). -Упрощения проекта поверх оригинала: **без тех-дерева верстака**, **без автоматизации** -(Industrial Crafter), **без биомов и джунглей**, **стартовые предметы не исследуются**. -Все числа раздела 1 помечены: ✅ подтверждено · 🟡 косвенно · ❌ не подтверждено. +Упрощения проекта поверх оригинала: **без автоматизации** (Industrial Crafter), +**без биомов и джунглей** (значит, без лозы), **стартовые предметы не исследуются**. +**Баланс берём из ремейка**, а не из вики (п. 1.1) — там есть все 218 предметов +с характеристиками. Все числа раздела 1 помечены: ✅ подтверждено · 🟡 косвенно · +❌ не подтверждено. --- @@ -93,24 +98,38 @@ fandom: `…/api.php?action=query&prop=revisions&titles=&rvlimit=1 темп удара 0.8 с, дальность 1.2, радиус удара 0.2. ✅ О Руки/ноги — 8 (только С, и это **частный случай**: единого правила «руки/ноги = 0.8» в Rust нет — у разного оружия доли рук 0.63–1.0, ног 0.48–0.9). 🟡 -- **Сбор:** дерево — 10 дерева за удар (±10 %), руда — 5 руды за удар (±20 %), - плоть — 10 урона; потеря прочности 0.3 за удар по дереву и руде. ✅ О -- **Прочность:** официальной вики **нет поля HP** ни у одного предмета. Ориентир — - шкала 0…100 (ремонт = ровно 20 % рецепта), значит камень выдерживает ~333 удара - по дереву. ❌ Точное значение официально не подтверждено. -- **Урон по постройкам:** камнем **лоза ломается с одного удара** (HP лозы 10 = урон - камня 10). На дерево нужно 37 камней (370 камней-ресурса), на камень — 74, - на лист — 295, на броню — 589. ✅ О (HP) + С (расчёт) +- **Сбор:** за удар инструмент берёт из узла столько, сколько у него в таблице + (у камня 50 дерева и 35 руды, у каменного топора 80 дерева, у топора 85 + дерева, у каменной кирки 80 руды, у ледяной кирки 100 руды) — п. 1.6. + ✅ (ремейк, `stacks.json`, у нас `rsx-protocol/.../items/items.csv`) +- **Прочность:** шкала 0…100 у камня, 160 у каменных инструментов, 300 у + топора, 400 у молотка, 1500 у ледяной кирки. ✅ (ремейк) +- **Урон по постройкам:** считаем от HP постройки и урона оружия (п. 5.1). Числа «9 / 0.2 / 0.1» из старой версии плана — **неверны** (см. 1.9). -**Сколько ударов на ресурс (реально):** +**Сколько ударов на ресурс:** -| ресурс | ресурса в узле | камень | каменная кирка | каменный топор | -|---|---|---|---|---| -| дерево | ~500 дерева | ~50 ударов | — | ~25–28 ударов | -| узел камня | 750 Stones | ~150 ударов | ~47 ударов | — | -| узел металла | 500 Metal Ore | ~100 ударов | ~31 удар | — | -| узел серы | 200 Sulfur Ore | ~40 ударов | ~13 ударов | — | +Узел — это запас (HP) ресурса. За удар инструмент забирает своё число из +таблицы п. 1.6; последний удар отдаёт остаток узла, поэтому дерево всегда +даёт ровно свой запас. **Метка** (светящийся «крестик» на дереве, «горячая +точка» на руде) увеличивает урон за удар: по дереву до ×2, по руде до ×3, +по серии ударов по метке бонус растёт. С меткой ударов примерно на треть +меньше — «7 идеальных» против «10 обычных» у топора по берёзе. + +| узел | запас | камень | каменная кирка | топор | ледяная кирка | +|---|---|---|---|---|---| +| дерево (нищий дуб) | 500 дерева | 10 | — | 6 | — | +| дерево (берёза) | 750 дерева | 15 | — | 9 | — | +| дерево (мёртвое) | 1000 дерева | 20 | — | 12 | — | +| узел камня | 750 Stones | 21 | 9 | — | 8 | +| узел металла | 500 Metal Ore | 14 | 6 | — | 5 | +| узел серы | 200 Sulfur Ore | 6 | 3 | — | 2 | + +✅ (запасы узлов — официальная вики и rustpedia; урон за удар — ремейк) +⚠️ Официальная вика даёт другие числа сбора (камень по дереву 10, руда 5) — +это баланс оригинального Rust. **Мы берём баланс ремейка**: он совпадает с +ощущением «7–10 ударов на дерево», и по нему у нас есть все 218 предметов +с точными характеристиками (п. 1.6). ### 1.2 Верстак (Workbench) — 3 уровня @@ -119,8 +138,8 @@ fandom: `…/api.php?action=query&prop=revisions&titles=&rvlimit=1 **Верстак — станция крафта с требованием уровня.** Уровень верстака = минимальный уровень, на котором рецепт доступен: предмет уровня 1 крафтится на верстаке 1 (и на любом более высоком), уровня 2 — только на верстаке 2 и выше, и так далее. Знание рецепта добывается -отдельно — столом исследований (п. 1.3) либо тех-деревом верстака (в оригинале есть, -у нас не делаем). +отдельно — столом исследований (п. 1.3) **или** тех-деревом верстака (в оригинале есть, +**у нас делаем** — п. 1.3). | уровень | рецепт | где крафтится | время крафта | |---|---|---|---| @@ -160,15 +179,38 @@ craftTime(tier) = max( floor( base × 0.5 ^ min( max(tier − requiredTier, 0), **Кто что открывает** — по каждому предмету указано в п. 1.7 (уровень верстака). -### 1.3 Стол исследований (Research Table) и чертежи (Blueprints) +### 1.3 Исследование: стол и тех-дерево (версия после 2020) + +**Два пути, оба рабочие:** + +1. **Стол исследований (Research Table)** — «исследовать сразу», но нужен сам предмет. +2. **Тех-дерево верстака** — «пройти ветку до нужного предмета, тратя скрап». **Сам стол:** 200 Metal Fragments + 20 Scrap, крафтится **на верстаке 1**, время 30 с (L1) / 15 с (L2) / 7 с (L3). ✅ -**Как исследуют:** кладёшь **один** нужный предмет в верхний слот → показывается требуемый -скрап (в нижний слот) → кнопка «Research» → **10 секунд** → в верхнем слоте появляется -**чертёж**, **предмет уничтожается**. 🟡 -_(вся механика исследования — только по community-вики; официальная вики её не описывает)_ +**Путь 1 — стол.** Кладёшь **один** нужный предмет в верхний слот → показывается +требуемый скрап (в нижний слот) → кнопка «Research» → **10 секунд** → **предмет +превращается в чертёж** (в инвентаре: текстура чертежа, а поверх неё — сам +исследуемый предмет) и **уничтожается как предмет**. Предмет должен **быть у +тебя** — буквально разобрать, чтобы понять, из чего он сделан. 🟡 +_(механика — по community-вики; официальная вики подтверждает итог: «Blueprints +can be used to learn how to craft an item… obtained by using a research table with +scrap and the item you want to research»)_ + +**Путь 2 — тех-дерево верстака.** У каждого уровня верстака **своё дерево**: +ветки, в вершинах — предметы. Чтобы открыть предмет, заплати скрап и пройди по +ветке до него (предки сначала). Разблокировка **личная и непередаваемая**. + +| верстак | цена узла | что открывает | +|---|---|---| +| L1 | **125** скрапа | каменные → металлические инструменты, меч, тесак | +| L2 | **250** скрапа | salvage-топор, ледяная кирка, металлический клинок, гаражные ворота, большая печь, автотурель | +| L3 | **500** скрапа | шестерни, металлическая труба, бронедверь, C4, взрывчатка | +| Engineering | **250** скрапа | промышленный крафтер, автотурель, телефон | + +✅ (официальная вики: у каждого предмета в блоке Research **две** строки — +«Research Table» со своей ценой и «Workbench Level N – Tech Tree» со своей) - Прочность предмета на результат не влияет (если предмет не сломана — иначе не работает). 🟡 - Исследование **продолжается**, если закрыть интерфейс стола. 🟡 @@ -181,7 +223,14 @@ _(вся механика исследования — только по communi Официальная вики подтверждает косвенно: предмет `researchpaper` — *«Use this item in a Research Bench to create blueprints of items»*. ✅ -**Цена исследования — по редкости предмета** (после «Pivot Or Die», 06.11.2025): +**Результат в тех-дереве** — не чертёж, а **открытый рецепт**: предмет можно сразу +крафтить. Физический чертёж (для промышленного крафтера) получают через стол. + +**Известен по умолчанию** — рецепт открыт с начала игры: ни стола, ни скрапа не нужно. +У камня, каменных инструментов, молота, строительного плана, верстаков 1–3, стола +исследований, дверей и замков — пометка «known by default» в официальной вики. + +**Цена стола** — по редкости предмета (после «Pivot Or Die», 06.11.2025): | редкость | скрап | сколько предметов | |---|---|---| @@ -195,11 +244,24 @@ Research Bench to create blueprints of items»*. ✅ обновление. Шкалы «по тирам предмета» в Rust **нет**: цена привязана к редкости, а не к уровню верстака. -**Тех-дерево верстака** (в оригинале есть, у нас **не делаем** — оверхед): разблокировка -прямо в верстаке, по веткам. На 06.11.2025 **тех-дерево бесплатно** — в «Pivot Or Die» -убрали «tech tree tax», так что платить за разблокировку в нём не нужно; 15/30/60/120 — -это цена **физического чертежа** на столе исследований. Колонка «125 / 250 / 500» в вике — -**устаревшая** (это старый налог тех-дерева по уровню верстака, снят 06.11.2025). ✅ О-нов +**Цена тех-дерева — своя у каждого уровня верстака** (125 / 250 / 500 / 250, см. выше). +Это **отдельная плата** от цены стола: предмет можно получить и через стол (дёшево, но +нужен найденный предмет), и через дерево (дороже, но предмет не нужен — нужен только +скрап и время). Официальная вики даёт обе цены рядом: + +| предмет | стол | тех-дерево | +|---|---|---| +| Топор (Hatchet) | 30 | L1 — 125 | +| Кирка (Pickaxe) | 30 | L1 — 125 | +| Меч (Salvaged Sword) | 15 | L1 — 125 | +| Верстак 1 / 2 / 3 | 60 / 30 / 30 | — | +| Промышленный крафтер | 30 | Engineering — 250 | +| Автотурель | 120 | Engineering — 250 | +| Телефон | 30 | Engineering — 125 | + +⚠️ Утверждение прошлой версии плана («тех-дерево бесплатно с 06.11.2025, колонка +125 / 250 / 500 устарела») — **неверно**: это данные community-вики. Официальная вики +показывает обе цены и сейчас. **Делаем как в оригинале: два пути.** **Монументы:** официально задокументирован только **Outpost** (Workbench L1 + Research Table). По community-вике столы есть также на аэродроме, электростанции, спутниковой @@ -218,9 +280,12 @@ Table). По community-вике столы есть также на аэродр андроидов; разрушение построек скрапа **не даёт**. ✅ О (раздел Loot Sources) - **Не крафтится** (Craftable: False). ✅ О - **В рецептах верстаков скрапа нет** (убрали 06.11.2025). Тратится на исследование - (15/30/60/120) и на разблокировку в тех-дереве. ✅ О-нов + (15/30/60/120) и на разблокировку в тех-дереве (125/250/500). ✅ О - Основные источники (О): базовый ящик 3, синий и жёлтый бочонок 2, военный ящик 8, элитный 25, аирдроп 140–160, учёный 8–24. +- **Первый источник в нашей игре — мусорка на дороге** (§1.11): серая бочка даёт + до 15 скрапа. Лутбоксы (монументы) отложены — фундамента для них ещё нет, а + прогрессию исследования скрап должен закрывать уже сейчас. - Косвенно: в Outpost можно обменять металл на скрап (1 скрап = 20 металла). 🟡 - Фрагменты чертежей скрап **не заменяют** — это отдельная валюта (п. 1.2). @@ -229,7 +294,7 @@ Table). По community-вике столы есть также на аэродр **Как ставится.** Строительный план (Building Plan, **20 дерева**, крафт 15 с) — разворачиваемый предмет: кладёшь в хотбар, ПКМ открывает колесо конструкций, выбираешь объект, видишь «призрак»; **ПКМ + движение мышью** перебирает варианты, **ЛКМ** ставит. -✅ План ставит **только лозу**; все старшие уровни получаются **улучшением молотком**. ✅ +✅ План ставит **деревянный** уровень; все старшие уровни получаются **улучшением молотком**. ✅ **Два слоя объектов:** @@ -248,21 +313,23 @@ Table). По community-вике столы есть также на аэродр | уровень | HP | |---|---| -| Twig (лоза) | **10** | | Wood (дерево) | **250** | -| Stone (камень) | **500** | +| Stone (камни) | **500** | | Sheet Metal (лист) | **1000** | | Armored (броня) | **2000** | -**Стоимость детали по уровням.** Лоза платится деревом; **улучшение молотком стоит как -целевой уровень** (лоза→камень = столько же камней, сколько дерево→камень); понизить -уровень нельзя. +❌ **Уровня «лоза» (twig) у нас нет:** в Rust лоза — из джунглей, джунглей в нашем мире +нет (п. 5.1), поэтому её выкидываем отовсюду: из HP-таблицы, из цен, из таймеров гниения +и из правил шкафа. -| деталь | Twig (дерево) | Wood (дерево) | Stone (камни) | Sheet Metal (металл) | Armored (ХМ) | -|---|---|---|---|---|---| -| стена, фундамент, полустена, лестница | 50 | 200 | 300 | 200 | 25 | -| треугольный фундамент, ступени, пол, рамка пола, треугольный пол, рамка треугольного пола, низкая стена, большой проём, крыша, рампы | 25 | 100 | 150 | 100 | 13 | -| малый дверной проём, окно | 35 | 140 | 210 | 140 | 18 | +**Стоимость детали по уровням.** **Улучшение молотком стоит как целевой уровень** +(дерево→камень = столько же камней, сколько металл→камень); понизить уровень нельзя. + +| деталь | Wood (дерево) | Stone (камни) | Sheet Metal (металл) | Armored (ХМ) | +|---|---|---|---|---| +| стена, фундамент, полустена, лестница | 200 | 300 | 200 | 25 | +| треугольный фундамент, ступени, пол, рамка пола, треугольный пол, рамка треугольного пола, низкая стена, большой проём, крыша, рампы | 100 | 150 | 100 | 13 | +| малый дверной проём, окно | 140 | 210 | 140 | 18 | Скрап и ХМ в постройке не участвуют (кроме армированного уровня — там ХМ). @@ -298,10 +365,10 @@ meter radius of it»), радиус «проецируется фундамен вика), но помечаем как спорное. ✅/⚠️ Блокирует и постройку, и предметы (спальники, сундуки) внутри. Аптейп — **доля от стоимости постройки**, списывается раз в **24 ч**; уничтоженный шкаф съедает до 24 ч -аптейпа. ✅ Неавторизованные могут ставить **лозовые полы и деревянные лестницы**, всё -остальное — «BUILDING BLOCKED». ✅ (в плане было верно) +аптейпа. ✅ Неавторизованные не могут ставить **ничего** — всё «BUILDING BLOCKED» +(исключение про лозовые полы выкинуто вместе с лозой). ✅ (в плане было верно) -**Гниение (decay):** когда аптейп кончился: лоза **1 ч**, дерево **3 ч**, камень **5 ч**, +**Гниение (decay):** когда аптейп кончился: дерево **3 ч**, камень **5 ч**, лист **8 ч**, броня **12 ч**. Внутри здания — **в 10 раз дольше** (деревянная дверь 30 ч, листовая 80 ч, бронедверь 120 ч). Открытие/закрытие двери с замком сбрасывает таймер. 🟡 ⚠️ В вики 2020 г. эти же числа стояли как **1 / 2 / 4 / 8 / 12 ч** — таймеры дерева и @@ -317,59 +384,44 @@ meter radius of it»), радиус «проецируется фундамен ### 1.6 Инструменты: сбор, урон, износ -**Что значат три числа у пары «инструмент × ресурс»** (официальная вика, таблица Gather Rates): -**Gather Damage** — сколько ресурса снимает удар, **Bonus** — разброс этого количества -(±10 % для дерева и плоти, ±20 % для руды), **Condition Loss** — сколько прочности -инструмента уходит за удар. +**Откуда цифры.** Основной источник — **база предметов ремейка** +(`rsx-protocol/src/main/resources/items/items.csv`, выгружена из `models/stacks.json`): +там у каждого предмета урон, дальность, темп, прочность, сколько ресурса он берёт +за удар и из чего сделан. Официальная вики даёт **другой** баланс (оригинальный +Rust) — см. предупреждение в п. 1.1. ✅ (ремейк, 218 предметов) -| инструмент | цель | Gather Damage | Bonus | Condition Loss | -|---|---|---|---|---| -| **Камень** | дерево | 10 | 1 | 0.3 | -| | руда | 5 | 1 | 0.3 | -| | плоть | 10 (урон) | 1 | — | -| **Каменный топор** | дерево | 20 | 2 | 0.3 | -| | плоть | 10 | 1 | 0.3 | -| **Каменная кирка** | руда | 16 | 3.2 | 0.3 | -| | плоть | 10 | 1 | 1 | -| **Salvaged Hammer** | дерево | 20 | 2 | 0.5 | -| | руда | 20 | 4 | 0.5 | -| | плоть | 10 | 1 | 0.5 | -| **Salvaged Axe** | дерево | 50 | 5 | 0.3 | -| | плоть | 15 | 1.5 | 1 | -| **Salvaged Icepick** | руда | 50 | 10 | 0.3 | -| | плоть | 5 | 0.5 | 0.5 | -| **Salvaged Sword** | плоть | 10 | 1 | 0.5 | -| **Salvaged Cleaver** | плоть | 10 | 1 | 0.5 | -| **Топор (Hatchet)** | дерево | 30 | 3 | 0.3 | -| | плоть | 12 | 1.2 | 1 | -| **Кирка (металл)** | руда | 30 | 6 | 1 | -| | плоть | 5 | 0.5 | 1 | -| **Молот** | постройки | добычи нет | | | +**За удар инструмент берёт** из дерева `rwood`, из руды `rore`, из плоти — свой урон. +**Темп** — `rcooldown` в тиках (20 тиков = 1 с). **Прочность** — `rdurability`. -✅ Перекрёстная проверка: вики 2020 г. (правка 2018–2020) даёт те же числа — -камень 10/5, каменный топор 20 по дереву, каменная кирка 16 по руде, топор 30, кирка 30, -Salvaged Axe 50, Icepick 50, Hammer 15 по дереву. Расхождений в самих значениях нет. +| инструмент | урон | дальность | темп (тики / с) | прочность | дерево за удар | руда за удар | +|---|---|---|---|---|---|---| +| **Камень** | 10 | 2 | 40 / 2.0 | 100 | 50 | 35 | +| **Каменный топор** | 15 | 3 | 32 / 1.6 | 160 | 80 | — | +| **Каменная кирка** | 17 | 3 | 32 / 1.6 | 160 | — | 80 | +| **Топор (Hatchet)** | 25 | 3 | 31 / 1.55 | 300 | 85 | — | +| **Кирка (Pickaxe)** | 30 | 3 | 32 / 1.6 | 300 | — | 100 | +| **Молот** | 0 | 3 | 32 / 1.6 | 300 | — | — | +| **Salvaged Hammer** | 30 | 3 | 19 / 0.95 | 400 | 40 | 59 | +| **Salvaged Axe** | 40 | 3 | 28 / 1.4 | 1500 | 100 | — | +| **Salvaged Icepick** | 40 | 3 | 28 / 1.4 | 1500 | — | 100 | +| **Salvaged Sword** | 50 | 3 | 25 / 1.25 | 300 | — | — | +| **Salvaged Cleaver** | 60 | 3 | 35 / 1.75 | 400 | — | — | +| **Дубинка (Bone Club)** | 16 | 3 | 16 / 0.8 | 300 | 60 | 44 | +| **Нож (костяной)** | 16 | 3 | 16 / 0.8 | 250 | — | — | +| **Нож (боевой)** | 35 | 3 | 16 / 0.8 | 250 | — | — | +| **Мачете** | 35 | 3 | 20 / 1.0 | 300 | — | — | +| **Булава (Mace)** | 60 | 3 | 35 / 1.75 | 300 | — | — | +| **Длинный меч** | 75 | 3 | 35 / 1.75 | 400 | — | — | +| **Копьё (каменное)** | 35 | 5 | 32 / 1.6 | 400 | — | — | +| **Копьё (деревянное)** | 25 | 4 | 32 / 1.6 | 250 | — | — | -**Боевая статистика** (официальная вика): «урон» — базовый по торсу, «×2» — множитель -в голову, «темп» — секунд между ударами, «дальность» — максимум. +⚠️ Поле `skinning` (0.45…1) в базе есть, но смысл его не разобран — **пока не +применяем**. Поле `rmaterial` (stone / metalwood / metalmediumrattley / gun / cloth / +leather …) — «материал» предмета: по нему считается цена ремонта и уровень брони. -| инструмент | урон | в голову | темп | дальность | радиус | -|---|---|---|---|---|---| -| Камень | 10 | ×2 | 0.8 | 1.2 | 0.2 | -| Каменный топор | 15 | ×2 | 1.1 | 1.5 | 0.3 | -| Каменная кирка | 17 | ×2 | 1.1 | 1.5 | 0.3 | -| Каменное копьё | 35 | ×2 | 0.7 | 2.8 | 0.2 | -| Молот | 0 | — | 2.0 | 1.5 | 0.3 | -| Топор (Hatchet, металл) | 25 | ×2 | 1.1 | 1.5 | 0.3 | -| Кирка (металл) | 30 | ×2 | 0.7 | 1.5 | 0.3 | -| Булава (Mace) | 60 | ×2 | 0.5 | 1.5 | 0.3 | -| Длинный меч | 75 | ×2 | 0.5 | 1.5 | 0.3 | -| Salvaged Hammer | 40 | ×2 | 1.0 | 1.5 | 0.3 | -| Salvaged Axe | 40 | ×2 | 0.8 | 1.5 | 0.3 | -| Salvaged Icepick | 40 | ×2 | 0.8 | 1.5 | 0.3 | -| Salvaged Sword | 50 | ×2 | 0.8 | 1.5 | 0.3 | -| Salvaged Cleaver | 60 | ×2 | 0.5 | 1.5 | 0.4 | -| Дубинка (Bone Club) | 12 | ×2 | 1.4 | 1.5 | 0.2 | +**Для сравнения — баланс оригинального Rust** (официальная вики, Gather Rates): +камень 10 дерева / 5 руды, каменный топор 20, каменная кирка 16, топор 30, кирка 30, +Salvaged Axe 50, Icepick 50, Hammer 15. **Не берём** — у нас баланс ремейка (п. 1.1). **Урон по частям тела** (вики 2020 г., проверено современной вики по базовому урону): камень **20/10/8/8**, каменный топор **27/15/12/12**, каменная кирка **35/17/13/13**. @@ -377,27 +429,17 @@ Salvaged Axe 50, Icepick 50, Hammer 15 по дереву. Расхождений Для нашей модели достаточно «голова ×2, торс ×1, руки/ноги — общая доля», но в Rust это не так. 🟡 -**Прочность:** официальной вики **нет поля HP** ни у одного предмета. Ремонт стоит -ровно 20 % рецепта → шкала 0…100 → камень (0.3 за удар) живёт ~333 удара по дереву, -кирка по плоти (1.0) — 100 ударов. ❌ Значение «100» — вывод из ремонта, не подтверждение. +**Прочность:** в ремейке у каждого предмета своё число (камень 100, каменные +инструменты 160, топор 300, молот 400, ледяная кирка 1500). Износ за удар считаем +пропорционально износу вики (0.3 за удар по дереву и руде, 1.0 по плоти). ✅/С -**Сколько ударов на ресурс** (узел = 750 Stones / 500 Metal Ore / 200 Sulfur Ore, -дерево ≈ 500–700 дерева): - -| инструмент | дерево | узел камня | узел металла | узел серы | -|---|---|---|---|---| -| Камень | ~50–70 | ~150 | ~100 | ~40 | -| Каменный топор | ~25–35 | — | — | — | -| Каменная кирка | ~60–120 (в вике 2020 — 5 дерева за удар) | ~47 | ~31 | ~13 | -| Топор (Hatchet) | ~17–23 | — | — | — | -| Кирка (металл) | ~50–70 | ~25 | ~17 | ~7 | -| Salvaged Axe | ~11–14 | — | — | — | -| Salvaged Icepick | ~50–70 | ~15 | ~10 | ~4 | +**Сколько ударов на ресурс** — таблица в п. 1.1 (запасы узлов: 500/750/1000 дерева, +750 камней, 500 металла, 200 серы; урон за удар — из п. 1.6). **Урон по постройкам:** официальной вики **нет** данных «урон инструмента по уровню постройки». Есть HP блоков (п. 1.5) и расчёт «сколько инструментов надо взять» из -игровых зеркал: камнем лозу — **1 удар**, дерево — **37 камней**, камень — **74**, -лист — **295**, броню — **589**. Таблица «лоза 9, дерево 0.2, металл 0.1» — из +игровых зеркал: камнем — **37 камней** на дерево, **74** на камень, **295** на лист, +**589** на броню. Таблица «лоза 9, дерево 0.2, металл 0.1» — из экспериментальной вики 2015–16, **не использовать**. ❌ ⚠️ Логическая нестыковка: 250 HP / 10 урона = 25 ударов, а зеркала дают 37 — значит у оружия есть множитель урона по постройкам, который **нигде не опубликован**. Для нас: @@ -405,7 +447,7 @@ Salvaged Axe 50, Icepick 50, Hammer 15 по дереву. Расхождений **Кого чем:** топоры и камень бьют по дереву, кирки — по руде, камень умеет и то и другое, Salvaged Hammer — и дерево и руду. Мечи и тесаки — только по плоти: у них -на официальной вики нет строк Tree/Ore. ✅ +в базе ремейка нет ни дерева, ни руды. ✅ **Броня** (официальная вика, таблица Protection). Слои: голова/торс/ноги — по 2 слота (L1 — одежда, L2 — броня), руки и ступни — по одному; **оба слота дают защиту**. @@ -441,51 +483,61 @@ heavy plate helmet 90 % пули, hazmat 30/30; по футболке источ **`bench`** — минимальный уровень верстака для крафта: 0 = крафтится без верстака, 1 / 2 / 3 = нужен верстак соответствующего уровня. **«По умолчанию»** — рецепт открыт с начала игры (знать не нужно, чертёж не нужен). -**Чертёж** — цена физического чертежа на столе исследований (если рецепт не открыт -по умолчанию). Стол тратит 15 / 30 / 60 / 120 скрапа по редкости. +**Стол** — цена физического чертежа на столе исследований (если рецепт не открыт +по умолчанию): 15 / 30 / 60 / 120 скрапа по редкости. +**Дерево** — путь через тех-дерево верстака: уровень верстака и цена узла +(125 / 250 / 500 / 250). `—` = пути нет (рецепт по умолчанию или предмет не в дереве). -| предмет | bench | крафт | время | чертёж | по умолчанию | -|---|---|---|---|---|---| -| Камень (Rock) | 0 | 10 камня | 5 с | 120 | **да** | -| Каменный топор | 0 | 200 дерева + 100 камня | 15 с | 120 | **да** | -| Каменная кирка | 0 | 200 дерева + 100 камня | 15 с | 120 | **да** | -| Каменное копьё | 0 | 1 деревянное копьё + 20 камня | 10 с | 120 | **да** | -| Строительный план | 0 | 20 дерева | 15 с | 120 | **да** | -| Молот | 0 | 100 дерева | 15 с | — | да | -| **Верстак 1** | 0 | 500 дерева + 100 металла | 30 с | 60 | **да** | -| **Верстак 2** | 1 | 500 металла + 20 ХМ + **5 Basic Fragment** | 45 с | 30 | **да** | -| **Верстак 3** | 2 | 1000 металла + 100 ХМ + **5 Advanced Fragment** | 60 с | 30 | **да** | -| Стол исследований | 1 | 200 металла + 20 скрапа | 30 с | 60 | **да** | -| Инструментальный шкаф | 0 | 1000 дерева | 30 с | 120 | **да** | -| Верстак для ремонта | 1 | 125 металла | 30 с | 120 | **да** | -| Деревянная дверь | 0 | 300 дерева | 30 с | 120 | **да** | -| Двойная деревянная дверь | 0 | 350 дерева | 30 с | 60 | **да** | -| Листовая дверь | 0 | 150 металла | 30 с | 60 | **да** | -| Двойная листовая дверь | 0 | 200 металла | 30 с | 120 | **да** | -| Кодовый замок | 0 | 100 металла | 30 с | 120 | **да** | -| Ключевой замок | 0 | 75 дерева | 15 с | 120 | **да** | -| Топор (Hatchet) | 1 | 100 дерева + 75 металла | 30 с | 30 | нет | -| Кирка (Pickaxe) | 1 | 100 дерева + 125 металла | 30 с | — | нет | -| **Salvaged Hammer** | 1 | 1 металл. труба + 50 металла | 30 с | 30 | нет | -| **Salvaged Sword** | 1 | 1 металл. клинок + 15 металла | 30 с | 15 | нет | -| **Salvaged Cleaver** | 1 | 1 дорожный знак + 50 металла | 30 с | 30 | нет | -| **Salvaged Axe** | 2 | 1 металл. труба + 5 металл. клинков | 30 с | 60 | нет | -| **Salvaged Icepick** | 2 | 1 металл. труба + 5 металл. клинков | 30 с | 60 | нет | -| Металлический клинок | 2 | — | 1 с | 30 | нет | -| Шестерни | 3 | — | 1 с | 60 | нет | -| Металлическая труба | 3 | — | 1 с | 60 | нет | -| Металлическая пружина | 3 | — | 1 с | 60 | нет | -| Большая печь | 2 | 600 дерева + 500 камня + 75 топлива | 40 с | 60 | нет | -| Гаражные ворота | 2 | 300 металла + 2 шестерни | 30 с | 30 | нет | -| Автотурель | 2 | — | 45 с | 120 | нет | -| **Бронедверь** | 3 | 20 ХМ + 5 шестерён | 30 с | 120 | нет | -| Бронедвойная дверь | 3 | 25 ХМ + 5 шестерён | 30 с | 120 | нет | -| **Взрывчатка** (Explosives) | 3 | — | 5 с | 120 | нет | -| **Timed Explosive Charge** (C4) | 3 | — | 30 с | 120 | нет | +| предмет | bench | крафт | время | стол | дерево | по умолчанию | +|---|---|---|---|---|---|---| +| Камень (Rock) | 0 | 10 камня | 5 с | 120 | — | **да** | +| Каменный топор | 0 | 200 дерева + 100 камня | 15 с | 120 | — | **да** | +| Каменная кирка | 0 | 200 дерева + 100 камня | 15 с | 120 | — | **да** | +| Каменное копьё | 0 | 1 деревянное копьё + 20 камня | 10 с | 120 | — | **да** | +| Строительный план | 0 | 20 дерева | 15 с | 120 | — | **да** | +| Молот | 0 | 100 дерева | 15 с | — | — | да | +| **Верстак 1** | 0 | 500 дерева + 100 металла | 30 с | 60 | — | **да** | +| **Верстак 2** | 1 | 500 металла + 20 ХМ + **5 Basic Fragment** | 45 с | 30 | — | **да** | +| **Верстак 3** | 2 | 1000 металла + 100 ХМ + **5 Advanced Fragment** | 60 с | 30 | — | **да** | +| Стол исследований | 1 | 200 металла + 20 скрапа | 30 с | 60 | — | **да** | +| Инструментальный шкаф | 0 | 1000 дерева | 30 с | 120 | — | **да** | +| Верстак для ремонта | 1 | 125 металла | 30 с | 120 | — | **да** | +| Деревянная дверь | 0 | 300 дерева | 30 с | 120 | — | **да** | +| Двойная деревянная дверь | 0 | 350 дерева | 30 с | 60 | — | **да** | +| Листовая дверь | 0 | 150 металла | 30 с | 60 | — | **да** | +| Двойная листовая дверь | 0 | 200 металла | 30 с | 120 | — | **да** | +| Кодовый замок | 0 | 100 металла | 30 с | 120 | — | **да** | +| Ключевой замок | 0 | 75 дерева | 15 с | 120 | — | **да** | +| Топор (Hatchet) | 1 | 100 дерева + 75 металла | 30 с | 30 | L1 — 125 | нет | +| Кирка (Pickaxe) | 1 | 100 дерева + 125 металла | 30 с | 30 | L1 — 125 | нет | +| **Salvaged Hammer** | 1 | 1 металл. труба + 50 металла | 30 с | 30 | L1 — 125 | нет | +| **Salvaged Sword** | 1 | 1 металл. клинок + 15 металла | 30 с | 15 | L1 — 125 | нет | +| **Salvaged Cleaver** | 1 | 1 дорожный знак + 50 металла | 30 с | 30 | L1 — 125 | нет | +| **Salvaged Axe** | 2 | 1 металл. труба + 5 металл. клинков | 30 с | 60 | L2 — 250 | нет | +| **Salvaged Icepick** | 2 | 1 металл. труба + 5 металл. клинков | 30 с | 60 | L2 — 250 | нет | +| Металлический клинок | 2 | — | 1 с | 30 | L2 — 250 | нет | +| Шестерни | 3 | — | 1 с | 60 | L3 — 500 | нет | +| Металлическая труба | 3 | — | 1 с | 60 | L3 — 500 | нет | +| Металлическая пружина | 3 | — | 1 с | 60 | L3 — 500 | нет | +| Большая печь | 2 | 600 дерева + 500 камня + 75 топлива | 40 с | 60 | L2 — 250 | нет | +| Гаражные ворота | 2 | 300 металла + 2 шестерни | 30 с | 30 | L2 — 250 | нет | +| Автотурель | 2 | — | 45 с | 120 | L2 — 250 | нет | +| **Бронедверь** | 3 | 20 ХМ + 5 шестерён | 30 с | 120 | L3 — 500 | нет | +| **Бронедвойная дверь** | 3 | 25 ХМ + 5 шестерён | 30 с | 120 | L3 — 500 | нет | +| **Взрывчатка** (Explosives) | 3 | — | 5 с | 120 | L3 — 500 | нет | +| **Timed Explosive Charge** (C4) | 3 | — | 30 с | 120 | L3 — 500 | нет | ✅ (вики на 11.2025). «По умолчанию» = рецепт открыт без чертежа — **для нас это значит «не исследуется»** (см. правило в шапке раздела). +**Ветки наших тех-деревьев** (предок → потомок; цена узла одна на уровень верстака): + +| верстак | ветка | +|---|---| +| L1 (125) | молот → топор → кирка → меч → тесак | +| L2 (250) | salvage-топор → ледяная кирка; металлический клинок; большая печь; гаражные ворота; автотурель | +| L3 (500) | шестерни → металлическая труба → бронедверь; C4; взрывчатка | + **Что НЕ существует** (в плане раньше было — убрано): `Salvaged Hatchet`, `Salvaged Pick Axe`, `M16` (есть LR-300), `Doorway (small)` как предмет, `Oil Refinery` (есть только Small Oil Refinery), `Refrigerator` (есть Fridge), @@ -494,6 +546,10 @@ heavy plate helmet 90 % пули, hazmat 30/30; по футболке источ **Ресурсы** (дерево, камни, металл, ХМ, сера, скрап, ткань, кожа) не крафтятся, а собираются — рецепта нет вовсе. +**Полный список предметов с характеристиками** — в +`rsx-protocol/src/main/resources/items/items.csv` (218 шт, выгружено из ремейка, +п. 1.6). Названия и описания — в `assets/rustex/data/item-texts.json` (543 шт). + ### 1.8 Строительные объекты и сокеты **Объекты** (набор одинаков для всех уровней): квадратный фундамент, треугольный @@ -533,13 +589,14 @@ inside door frames.»* 🟡 | сумма цен исследования по редкости | 144 + 133 + 96 + 212 = **585** исследовабельных предметов — совпадает с разобранным реестром ✅ | | сумма тех-дерева | 87 + 78 + 20 (верстаки) + 39 + 47 + 7 (Eng-верстак) = **278** ✅ | | сумма уровней верстаков | 269 + 167 + 131 + 27 = **594** крафтбельных с указанным уровнем ✅ | -| узел камня ÷ камень | 750 Stones ÷ 10 за удар = **75 камней** на узел; 750 ÷ 5 = 150 ударов ✅ | -| узел ÷ каменная кирка | 750 ÷ 16 = **47 ударов** ✅ | -| дерево ÷ камень | ~500–700 дерева ÷ 10 = **50–70 ударов** ✅ | -| расход прочности | камень: 150 ударов × 0.3 = 45 прочности на узел камня (шкала 100 → ~2 узла на камень) ✅ правдоподобно | -| прогрессия уровней постройки | HP 10 → 250 → 500 → 1000 → 2000 при цене 50 → 200 → 300 → 200 → 25 — растёт по HP, стоимость листа дешевле камня (но нужна переплавка) ✅ | +| **удары по узлу (наши цифры)** | камень 750 ÷ 35 за удар = **21 удар**; ÷ 80 (каменная кирка) = **9**; ÷ 100 (кирка) = **8** ✅ | +| **удары по дереву (наши цифры)** | 500 ÷ 50 (камень) = **10**; ÷ 85 (топор) = **6**; 750 ÷ 85 = **9**; 1000 ÷ 85 = **12** ✅ | +| **ощущение «7–10 ударов»** | топор по берёзе (750) — 9 ударов, с меткой ≈ 6–7 ✅ совпадает с ожиданием игрока | +| **расход прочности** | камень: 21 удар по узлу × 0.3 = 6.3 прочности (шкала 100 → ~16 узлов на камень) ✅ | +| прогрессия уровней постройки | HP 250 → 500 → 1000 → 2000 при цене 200 → 300 → 200 → 25 — растёт по HP, стоимость листа дешевле камня (но нужна переплавка) ✅ | | двери | дерево 200 HP / 300 дерева, лист 250 / 150 металла, броня 1000 / 20 ХМ ✅ | | формула времени крафта | 589 предметов, 0 расхождений с формулой п. 1.2 ✅ | +| **база ремейка против наших таблиц** | 218 предметов в `items.csv`; все наши числа (урон, темп, прочность, добыча) взяты оттуда ✅ | **Не сошлось (требует решения проекта, п. 5):** @@ -549,8 +606,10 @@ inside door frames.»* 🟡 | радиус шкафа | 50 м (официальная вика) против 16 м (старая вики) | | HP броневой двери | 1000 (зеркала) против 800 (fandom, 2020) | | таймеры гниения | 1/3/5/8/12 ч против 1/2/4/8/12 ч (2020) | -| таблица «урон по постройкам» 2018 г. | лоза 9 / дерево 0.2 / металл 0.1 — не публикуется современной викой и не сходится с калькулятором | +| таблица «урон по постройкам» 2018 г. | лоза 9 / дерево 0.2 / металл 0.1 — не публикуется современной викой и не сходится с калькулятором; лозы у нас нет | | скрап на исследование | вики до 06.11.2025 давала плоские 20/75/125/500; после обновления — 15/30/60/120 **по редкости**, а не по уровню верстака. У нас нет ни ящиков с лутом по тирам, ни «редкости» предмета — тиры придётся задавать вручную | +| **баланс вики против баланса ремейка** | вики: камень 10 дерева / 5 руды; ремейк: 50 / 35. Берём **ремейк** (п. 1.1) — под него и под «7–10 ударов» подобраны все числа | +| **огнестрел: урон/отдача/спрей** | в базе ремейка только магазин, тип патрона, ADS-зум, прочность, reach. Остальное — серверные данные; ищем в коде (п. 5.2 п. 5) | **Как перепроверять:** страница предмета `wiki.facepunch.com/rust/item/` даёт блоки **Craft** (рецепт, требование верстака, «Craft Time by Workbench»), **Research** (цена @@ -558,6 +617,55 @@ inside door frames.»* 🟡 Состояние страницы на дату — через `~history` / `~diff:`; для эпохи до 03.12.2020 — через MediaWiki API fandom с `rvstart`/`rvdir=older`; резерв — Wayback. +### 1.10 Мусорка (Roadside Junk Pile) — первый источник скрапа + +**Что это.** Небольшой макро-монумент на дороге: брошенная машина / куча мусора. +В Rust это «Roadside Junk Pile»: спавнится **только на дороге**, внутри **1–4 бочки** +и изредка один ящик еды, обновляется примерно раз в 20 минут. 🟡 +У нас — своя версия: **2–4 бочки + 0–2 ящика еды**. + +**Состав и лут:** + +| бочка | что даёт | примечание | +|---|---|---| +| **серая** | скрап **1–15** + один случайный предмет-мусор | мусор логичный: дорожные знаки, ящики, пустая банка, рваная одежда, гитара, бочка для воды | +| **синяя** | один случайный **компонент**: электропредохранитель, шестерни, металлическая труба, металлическая пружина, дорожные знаки, лист металла, **корпус полу-автомата** | корпуса SMG и винтовки **не выпадают** (как в оригинале: только из «технических» ящиков) | +| **красная** | **сырая нефть 10–20** + **топливо низкого качества 5–15** | топливная бочка | + +**Ящики с едой** (1–2 слота): еда (фрукты, ягоды, консервы, шоколад, картошка) и вода — +вода необязательна, второй слот может быть тоже едой. + +**Как это работает у нас:** +- бочки **разрушаемые** (HP 35 обычная / 50 топливная) — при разрушении выпадает лут; +- ящики с едой — обычный контейнер, его обыскивают; +- когда всё опустошено, мусорка **пропадает через 60–180 с** (случайно) и + **появляется на другом участке дороги**, preferably рядом с игроками (но не на глазах); +- сервер сам решает точки спавна по сегментам дороги (п. 1.11). + +✅ О (официальные вики-страницы контейнеров: yellow barrel, blue barrel, oil barrel, +tech parts 1, food box) + 🟡 (roadside junk pile — community-вики) + С (наши решения: +3–4 бочки, время жизни, выбор точки). + +**Модели и звуки — из ремейка**: `nextgen/models/barrel_blue`, `barrel_red`, +`barrel_white`, `crate`, `foodcrate`, `dieselbarrelloot`, `primitivecrate`, +`lockcrate`, `medicalcrate`; звуки бочки/ящика — из `sounds.csv`. + +### 1.11 Дороги + +**Сеть дорог** — сетка из 3–4 пересекающихся дорог через остров **плюс кольцо** +вдоль берега. Ширина — 6–8 блоков, покрытие — свой блок «асфальт» (новый id +в общем словаре блоков). + +**Генерация:** дорога выравнивает рельеф (по своей линии, со скруглением на поворотах) +и кладёт покрытие; пересечения сливаются в площади. Кольцо идёт по берегу, вдоль +линии прилива. + +**Точки спавна мусорки** (п. 1.10) — дискретные **сегменты** дороги: сервер держит +список точек вдоль всех дорог, из них выбирает свободную ближе к игрокам. + +**Слой дорог — часть генератора мира** (Шаг D), но нужен раньше мусорки, поэтому +генерацию дорог тянем в Шаг C. + ## 2. Решения по проекту ### 2.1 Кто такой админ @@ -590,35 +698,57 @@ ROLE_ELDER / ROLE_CREATOR`). ### 2.4 Предметы - Все предметы игрока — **кастомные, через наш код и наше API** (не ванильные `ItemStack`). -- У предмета: **прочность**, **урон**, **значение bench**, **знание по умолчанию**. +- У предмета: **прочность**, **урон**, **значение bench**, **знание по умолчанию**, + **цена исследования**, **ветка тех-дерева**, **тег `admin`**. - `bench` — **минимальный уровень верстака**, на котором рецепт доступен (0 = крафтится без верстака, 1/2/3 = нужен верстак этого уровня или выше). Это **гейт крафта, а не знания** — в Rust это разные вещи. - `knownByDefault` — рецепт открыт с начала игры: **не исследуется, скрап не нужен** (по вики такую пометку имеют 97 предметов из 380 с указанным уровнем верстака). + - `researchScrap` — цена физического чертежа на столе (0 = не исследуется). + - `techTreeBench` + `techTreeScrap` + `techTreeParent` — верстак, цена узла и + **предок** в тех-дереве (0 = предка нет, узел — корень ветки). + - `admin` — **тег блока/предмета**: без тега может всё, с тегом — только админы + сервера; **креатив прав не даёт** (п. 2.2). - Знание рецепта — **состояние игрока** (`knownRecipes`), а не свойство предмета. - У предмета есть **класс инструмента** (NONE / PICKAXE / AXE / SWORD / …) и **класс ресурса**, который он добывает. -- Все числа берём из п. 1.6–1.7 (срез 06.11.2025), ничего не выдумываем. +- Все числа берём из п. 1.6–1.7, **источник — база ремейка** + (`rsx-protocol/src/main/resources/items/items.csv`, 218 предметов), ничего не + выдумываем. ### 2.5 Крафт -- Как в Rust (срез 06.11.2025): **верстаки трёх уровней** (разворачиваемый предмет, - надо стоять рядом) и **чертежи** (стол исследований: нужен найденный предмет + скрап; - получается физический чертёж, который изучается и открывает рецепт). -- **Тех-дерево верстака и эксперимент на верстаке не делаем** — это оверхед (п. 1). +- Как в Rust (после 2020): **верстаки трёх уровней** (разворачиваемый предмет, + надо стоять рядом) и **два пути исследования** (п. 1.3): + - **стол**: нужен найденный предмет + скрап → получается **физический чертёж**, + который изучается и открывает рецепт; + - **тех-дерево верстака**: платишь скрап и открываешь узел, рецепт становится + доступен; разблокировка личная, чертёж не выдаётся. +- **Эксперимент на верстаке** (75 / 300 / 1000 скрапа → случайный чертёж) — механика + 2017–2020, **не реализуем**. - Знание рецепта — **состояние игрока**, а не свойство предмета. -- Время крафта, множитель от уровня верстака, стоимость скрапа — как в Rust. +- Время крафта, множитель от уровня верстака, цены скрапа — как в Rust. - То, что игрок получает **на старте**, не исследуется вообще. ### 2.6 Структуры вместо блоков мира Руда, деревья и камни — **не блоки мира, а разрушаемые объекты** (как узлы в Rust): -у них есть прочность, они бьются инструментом и дают дроп. Мир меняют только админы. +у них есть **HP**, **запас ресурса** и **метка** («крестик» на дереве, «горячая точка» +на руде), они бьются инструментом и дают дроп. Последний удар отдаёт остаток запаса. +Мир меняют только админы. + +- **Руда** — своя 3D-модель (в ремейке есть `ore/stone`, `ore/metal`, `ore/sulfur`) + + свой AABB; **деревья** — пока обычные блоки мира, у которых сервер держит + HP и запас узла. +- **Мусорка** (п. 1.10) — тоже структура: бочки и ящики, у неё есть состояние + (что опустошено) и таймер исчезновения. ### 2.7 Текстуры -- Текстуры предметов пока **временные**, взяты из ремейка как заглушки. +- Текстуры предметов пока **временные**, взяты из ремейка как заглушки: + иконки — из атласа `assets/rustex/gamejar/assets/rustex/icons/atlas.png` + (MTSDF, 2048×2048, тайлы 64×64) по именам `rusticon` из базы предметов. - **Пометка: заменить на свои** (см. п. 6). --- @@ -677,18 +807,25 @@ ROLE_ELDER / ROLE_CREATOR`). ### Шаг A. Фундамент предметов и инвентаря (следующий) +- [x] **База предметов выгружена из ремейка**: `rsx-protocol/src/main/resources/items/items.csv` + (218 предметов) + `sounds.csv` (505 событий) + описания в + `assets/rustex/data/item-texts.json`. Инструменты: `tools/extract-rustex-assets.py`, + `tools/extract-items.py`, `tools/extract-sounds.py`. - [ ] `ItemType`: id, имя, класс инструмента, класс ресурса, прочность, урон по частям тела, - скорость сбора, `bench`, `knownByDefault`, рецепт. -- [ ] **Данные предметов — из п. 1.6/1.7** (срез 06.11.2025): держать отдельным - ресурсом/таблицей, чтобы числа не расходились с планом. + скорость сбора, `bench`, `knownByDefault`, `researchScrap`, `techTreeBench`, + `techTreeScrap`, `techTreeParent`, `admin`, рецепт. +- [ ] **Данные предметов — из п. 1.6/1.7** (база ремейка): держать таблицей, чтобы + числа не расходились с планом. - [ ] Модель знания: `knownByDefault` у типа + `knownRecipes` у игрока; стол исследований - выдаёт физический чертёж, изучение открывает рецепт навсегда (п. 1.3). + выдаёт физический чертёж, изучение открывает рецепт навсегда (п. 1.3); + тех-дерево открывает рецепт лично и бесплатно после оплаты скрапа. - [ ] `ItemStack`: тип + количество + прочность + `ItemData` (свой ключ→значение). - [ ] `Inventory`: слоты, хотбар, что в руках. **Сервер — источник истины.** - [ ] Реестр предметов + протокол `Inventory` / `InventorySlot`. - [ ] Клиент: свой реестр + свои текстуры + свой рендер предмета в руке и в слоте (наши предметы не ванильные `IItem`). -- [ ] **Текстуры предметов — временные** (взяты из ремейка как заглушки). +- [ ] **Текстуры предметов — временные** (взяты из ремейка как заглушки, иконки из + атласа `icons/atlas.png`). **ПОМЕТКА: заменить на свои.** - [ ] Стартовый набор: **камень** — решение проекта (в Rust официально не документировано, п. 1.1); выдаём в первый слот хотбара, отдельным флагом конфига. @@ -715,19 +852,32 @@ ROLE_ELDER / ROLE_CREATOR`). игроку не ломается ни в выживании, ни в креативе; у остальных — ломается инструментом того класса, который нужен. -### Шаг C. Структуры, узлы, постройка +### Шаг C. Узлы, мусорка, дороги, крафт и постройка - [ ] `StructureTemplate` (блоки + AABB + меш + HP + дроп), `StructureInstance`, `StructureWorld`. Деревья/камни/руда — **узлы**, не блоки мира. -- [ ] Сбор: попадание инструментом → урон по классу ресурса → разрушение → дроп. - Узлы: камень 750 Stones, металл 500 Metal Ore, сера 200 Sulfur Ore; добыча за удар - и потеря прочности — п. 1.6. +- [ ] `ResourceNode`: класс ресурса, **HP = запас**, **метка** (дерево ×1→×2, руда + ×1→×3), дроп. Запасы: дерево 500/750/1000, камень 750, металл 500, сера 200; + урон за удар — п. 1.6; последний удар отдаёт остаток. +- [ ] Сбор: попадание инструментом → урон по классу ресурса × метка → разрушение → дроп. +- [ ] **Дороги** (п. 1.11): сетка 3–4 полос + кольцо, выравнивание рельефа, покрытие, + список сегментов для спавна. +- [ ] **Мусорка** (п. 1.10): 2–4 бочки (серая/синяя/красная) + 0–2 ящика еды; лут-таблицы; + разрушаемые бочки; после опустошения исчезновение через 60–180 с и респавн + на другом участке дороги ближе к игрокам. +- [ ] **Крафт и исследование** (п. 1.3): `CraftingStation` (поставленный верстак), + проверка рецепта (уровень верстака + знание + ингредиенты), `ResearchTable` + (предмет + скрап → 10 с → **чертёж**), разблокировка в тех-дереве. - [ ] Постройка: игрок ставит **наши** кастомные предметы-конструкции (не блоки мира). Снаппинг и сокеты — п. 1.5 и 1.8; HP и цены по уровням — п. 1.5; аптейп инструментального шкафа и гниение — п. 1.5. - [ ] Растительность и руда в генерации — через шаблоны структур. -- [ ] Модель урона по постройкам — **решить до реализации** (п. 5): без множителя - «оружие → уровень постройки» рейд не считается. +- [ ] Модель урона по постройкам — **своя**: ударов = HP постройки ÷ урон оружия (п. 5.1). +- [ ] Клиент: модель рудного узла (3D + AABB), метки (крестик / горячая точка). + +Критерий готовности: игрок рубит дерево (7 ударов по метке, 9 без), ломает узел камня +за 9 ударов каменной киркой, разбирает мусорку и получает скрап, крафтит верстак 1, +исследует предмет на столе и получает чертёж, строит стену. ### Шаг D. Мир один раз, конфиг, барьер @@ -761,22 +911,33 @@ ROLE_ELDER / ROLE_CREATOR`). |---|---| | **Роли: из лаунчера или свои на сервере?** | **Свои на сервере.** Лаунчер может подсказать роль, но решение — за сервером: админ это свойство конкретного сервера, а не проекта | | **Урон по частям тела** | По таблице п. 1.6: голова ×2, торс ×1, руки/ноги — своей долей у оружия. Общего «общего урона» не вводим | -| **Множитель урона по постройкам** | **Своя модель: ударов = HP постройки ÷ урон оружия.** Без скрытого множителя. Лоза (10 HP) от камня (10 урона) — 1 удар, дерево (250) — 25, камень (500) — 50, лист (1000) — 100, броня (2000) — 200. Зеркальные 37/74/295/589 — не воспроизводим, но и не мешают: считаем от HP | +| **Множитель урона по постройкам** | **Своя модель: ударов = HP постройки ÷ урон оружия.** Без скрытого множителя. Дерево (250) от камня (10 урона) — 25, камень (500) — 50, лист (1000) — 100, броня (2000) — 200. Зеркальные 37/74/295/589 — не воспроизводим, но и не мешают: считаем от HP | | **Бронедверь** | **1000 HP** (игровые зеркала; fandom 800 — устарело) | -| **Прочность инструментов** | **Шкала 0…100**, ремонт = 20 % рецепта (как в Rust, выведено из цены ремонта) | -| **Джунгли и биомы** | **Не делаем.** Мир один, без джунглевого лута (джунгли в игре появились 01.05.2025, за пределами нашего среза) | +| **Прочность инструментов** | **Из базы ремейка**: камень 100, каменные 160, топор 300, молот 400, ледяная кирка 1500. Ремонт = 20 % рецепта | +| **Джунгли, лоза, биомы** | **Не делаем.** Мир один, джунглей нет → **лозы (twig) у нас тоже нет**: выкинута из HP-таблицы, цен, таймеров гниения и правил шкафа | | **Строительные детали и сетка** | Не «свободно и без сетки»: **сетка мира не важна**, но есть **строительная сетка** (фундамент 3×3) и привязка внутренних блоков к уже поставленным строительным. Слова «не привязываясь к сетке мира» — про сетку мира, не про строительную | +| **Исследования** | **Версия после 2020**: два пути — стол (предмет + скрап → чертёж) и тех-дерево верстака (125/250/500, ветки с предками, разблокировка личная) | +| **Тех-дерево** | **Делаем**, с ветками и предками (не плоский список) | +| **Баланс предметов** | **Из ремейка** (`items.csv`, 218 шт), а не из вики: у нас есть все характеристики, и цифры совпадают с ощущением «7–10 ударов на дерево». Вика — только для сверки | +| **Скрап на первом срезе** | Даёт **мусорка на дороге** (серая бочка, 1–15 скрапа) — лутбоксы отложены, а прогрессия исследования скрап закрывать должна уже сейчас | +| **Дороги** | **Сетка 3–4 полос + кольцо** по берегу; сегменты дороги — точки спавна мусорки | +| **Вид узлов** | **Руда** — своя 3D-модель + AABB (модели `ore/*` из ремейка); **деревья** — пока блоки мира, у которых сервер держит HP и запас | +| **Ассеты** | Временная база из ремейка: `assets/rustex/` (1.65 ГБ), иконки из атласа, звуки из реестра. **ПОМЕТКА: заменить на свои** | ### 5.2 Нужно решение (блокирует реализацию) -1. **Крафт упирается в лутбоксы.** По п. 1.4 скрап падает **только** из ящиков, бочек, аирдропов и учёных, а чертёж требует **найденного** предмета. То есть без лутбоксов нельзя ни изучить рецепт, ни потратить скрап: прогрессия крафта не запускается. - Варианты: - - **(а)** перенести лутбоксы вперёд (они нужны раньше крафта); - - **(б)** первый срез без прогрессии: все рецепты «по умолчанию» (`knownByDefault`), стол исследований и скрап — позже, вместе с лутбоксами; - - **(в)** свой источник скрапа (например, из узлов) — но это уже не Rust. -2. **Фрагменты чертежей для верстаков 2 и 3** (5 Basic / 5 Advanced) — они тоже из лутбоксов. Повторяем или заменяем скрапом, как до 02.10.2025? Пока лутбоксов нет — вопрос отложен. -3. **Скрап как валюта** — если исследование только для найденных вещей, скрап нужен редко. Оставляем ли его в прогрессии вообще? -4. **Стоимость и время каждого рецепта**, который будем реализовывать — в п. 1.7 есть только по ключевым. Долить по мере надобности. +1. ~~**Крафт упирается в лутбоксы.**~~ **Снято:** источник скрапа на первом срезе — + **мусорка на дороге** (п. 1.10). Лутбоксы (монументы) остаются на потом. +2. **Фрагменты чертежей для верстаков 2 и 3** (5 Basic / 5 Advanced) — они тоже из лутбоксов. + Повторяем или заменяем скрапом, как до 02.10.2025? Пока лутбоксов нет — вопрос отложен. +3. **Скрап как валюта** — цена стола 15–120, цена дерева 125–500. Скрапа с мусорки + (1–15 за бочку) хватает, но как быстро — решаем по факту. +4. **Стоимость и время каждого рецепта**, который будем реализовывать — в п. 1.7 есть только + по ключевым. Долить по мере надобности. +5. **Огнестрел: урон, отдача, спрей, темп** — в клиенте ремейка этих чисел нет (это + серверные данные в Rust-подобных играх), в базе предметов есть только магазин, тип + патрона, ADS-зум и прочность. Ищем таблицу по `rweaponid` в коде ремейка (1–21); + пока не нашли — берём с официальной вики как страховку. --- @@ -810,27 +971,37 @@ rsx-client\scripts\run-game.ps1 # клиент ### 6.3 Что не сделано (по порядку) -1. **Шаг A** — предметы, инвентарь, реестр, протокол инвентаря, рендер предмета - в руке и в слоте, стартовый камень. +1. **Шаг A** — добить: клиентский рендер своих предметов (хотбар и рука) и иконки + из атласа; поля исследования в `ItemType`; `NodeType`; `TechTree`. 2. **Шаг B** — `Dig`/`BreakProgress` в протоколе, состояние ломания на сервере, правила инструмента, тег `admin`, 4 клиентских патча. -3. **Шаг C** — структуры (узлы), сбор, постройка по сокетам. +3. **Шаг C** — узлы (дерево/камень/металл/сера) с метками, дороги, мусорка, + крафт и исследование (стол + тех-дерево), постройка по сокетам. 4. **Шаг D** — конфиг, мир 4000×4000 один раз, барьер. 5. **Шаг E** — транспорт на NIO. 6. **Шаг F** — DistantView. +7. **REA** — найти в коде ремейка таблицу оружия по `rweaponid` (урон, отдача, спрей, + темп) и шифр конфигов `.obj/.rrs/.nbt`; до этого — цифры с официальной вики. ### 6.4 Мелочи, которые легко упустить -- **Текстуры предметов — временные** (взяты из ремейка как заглушки). **ПОМЕТКА: - заменить на свои.** Ассеты ремейка обфусцированы: каждый файл **XOR-ится одним - байтом**, ключ = `файл[0] ^ 0x89` (у `rock.png` это 0x20). Декод: - `key = b[0] ^ 0x89; for (i) b[i] ^= key;` +- **Ассеты ремейка обфусцированы:** каждый файл **XOR-ится одним байтом**, ключ + восстанавливается по сигнатуре формата: PNG — `b[0] ^ 0x89`, OGG — `b[0] ^ 0x4F`, + JSON — `b[0] ^ 0x7B`. Уже декодировано: `assets/rustex/` (1.65 ГБ, 19 тыс. файлов). + Скрипты: `tools/extract-rustex-assets.py`, `tools/extract-items.py`, + `tools/extract-sounds.py`. **Осталось непрочитанным:** 553 `.obj`, 106 `.rrs`, + 113 `.nbt` — у них не однобайтовый шифр, нужен разбор кода. +- **Текстуры предметов — временные** (взяты из ремейка как заглушки, иконки из + `assets/rustex/gamejar/assets/rustex/icons/atlas.png`). **ПОМЕТКА: заменить на свои.** +- **База предметов** — `rsx-protocol/src/main/resources/items/items.csv` (218 шт, + из `models/stacks.json`), описания — `assets/rustex/data/item-texts.json` (543 шт), + звуки — `rsx-protocol/src/main/resources/items/sounds.csv` (505 событий). - Пути: `G:\RustNotMC` (репозиторий), `G:\decompiled-rustex` (референс, только читать), - `G:\rustexremake` (исходники ремейка с ассетами). + `G:\rustexremake` (ремейк: `gamefiles\res`, `gamefiles\game.jar`, `working_dir`). - ⚠️ **`G:\decompiled-rustex` — НЕ источник фактов.** Он копиял community-вику 2017–2020 (отсюда шкала скрапа 20/75/125/500, «урон по постройкам» 9/0.2/0.1, списки верстаков - с перемешанными уровнями). Проверять числа по официальной вики Facepunch и по истории - её правок (рецепт запроса — в шапке раздела 1). + с перемешанными уровнями). Проверять числа по официальной вики Facepunch, по базе + ремейка и по истории правок вики (рецепт запроса — в шапке раздела 1). - Скрипты — **ASCII без BOM** (PS 5.1 читает без BOM в ANSI и ломает парсер). - В PowerShell **нет heredoc**: сообщения коммитов пишем в файл и `git commit -F`. - Класс-паттерн SSH: `git config core.sshCommand "ssh -i C:/Users/User/.ssh/id_ed25519_zernmc -o IdentitiesOnly=yes"`. @@ -840,14 +1011,16 @@ rsx-client\scripts\run-game.ps1 # клиент ### 6.5 Дописать в этот файл - [x] Полные таблицы предмет→верстак (п. 1.2, 1.7) и предмет→скрап/чертёж (п. 1.3, 1.7). -- [x] Таблица сбора по классам ресурсов (п. 1.6). +- [x] Таблица сбора по классам ресурсов (п. 1.6) — **из базы ремейка**. - [x] Список строительных объектов с сокетами (п. 1.8) — пересобран по игровым данным. -- [ ] Что решили по ролям: из лаунчера или свои на сервере (вопрос в п. 5). +- [x] Мусорка (п. 1.10) и дороги (п. 1.11). +- [x] Что решили по ролям: свои на сервере (п. 2.1, 5.1). - [ ] Стоимость и время каждого рецепта, который будем реализовывать (пока есть по ключевым предметам, п. 1.7). - [ ] Завести в репозитории выгрузку данных оригинала **на дату 06.11.2025** (страницы вики + история правок), чтобы цифры не разъезжались при перечитывании. -- [ ] Решить модель урона по постройкам (п. 5, п. 1.11) — без неё рейд не считается. +- [ ] Таблица оружия по `rweaponid` из кода ремейка (REA) — урон, отдача, спрей, темп. +- [ ] Модель урона по постройкам — своя: ударов = HP ÷ урон оружия (п. 5.1). --- @@ -939,3 +1112,26 @@ rsx-client\scripts\run-game.ps1 # клиент датированной вики нет (на странице в 2017 г. стоял текст «has X health»). 19. **Взрыв у Heavy Plate** (8/12/12 % против 17/17/17 % против 100 %) — не подтверждён. +### П.3 Правки 21.10.2026 (база из ремейка) + +Что поменялось после того, как выгрузили ассеты и базу предметов ремейка. + +| было в плане | как на самом деле | метка | +|---|---|---| +| Сбор по вики: камень 10 дерева / 5 руды, топор 30, кирка 30; узлы 750/500/200 | **База ремейка**: камень 50 дерева / 35 руды, каменный топор 80, топор 85, каменная кирка 80, кирка 100. Удары: дерево 750 ÷ 85 = **9** (с меткой ≈ 6–7) — ровно «7–10 ударов», которые и ждал игрок | ✅ | +| «Тех-дерево не делаем, оно бесплатно с 06.11.2025, колонка 125/250/500 устарела» | **Официальная вики показывает обе цены**: «Research Table» (15/30/60/120) и «Workbench Level N – Tech Tree» (125/250/500). Это community-вика была неправа | ✅ | +| Исследование только через стол | **Два пути**: стол (нужен сам предмет → чертёж) и тех-дерево (только скрап, личная разблокировка) | ✅ | +| В мире есть лоза (twig): HP 10, цены, гниение 1 ч, «лозовые полы» | **Лозы у нас нет** — она из джунглей, а джунглей нет. Выкинута отовсюду | ✅ | +| Скрап только из лутбоксов; прогрессия не запускается | **Мусорка на дороге** даёт скрап (серая бочка, 1–15), компоненты (синяя) и топливо (красная) | С | +| Узлы-руда — как в Rust | Руда — **3D-модель + AABB** (модели `ore/*` из ремейка), деревья — пока блоки мира с серверным HP | С | +| Дорог в мире нет | **Сетка 3–4 дорог + кольцо** по берегу; сегменты дороги — точки спавна мусорки | С | + +**Что выгружено из ремейка** (инструменты в `tools/`, результат в `assets/rustex/`): +1.65 ГБ, 19 тыс. файлов. Ассеты зашифрованы одним байтом (ключ по сигнатуре формата), +декод делает `extract-rustex-assets.py`. Не прочитались 553 `.obj`, 106 `.rrs`, 113 `.nbt` — +у них другой шифр, нужен разбор кода (REA). + +**Что теперь не подтверждено:** урон/отдача/спрей/темп огнестрела — в клиенте ремейка +этих чисел нет (серверные данные), есть только магазин, тип патрона, ADS-зум, прочность, +reach и `rweaponid` (1–21). Ищем таблицу в коде; до этого — цифры с официальной вики. + diff --git a/README.md b/README.md index 585133c..ee8f6cc 100644 --- a/README.md +++ b/README.md @@ -216,10 +216,32 @@ starts, `play()` is called, nothing is found, and paulscode says nothing. `tools\materialize_assets.py` lays the tree out and `run-game.ps1` calls it on every launch, so this cannot be forgotten again. +### The base from the remake + +The item models, textures, sounds and the whole item database are taken from +the Rustex remake as a temporary base. `tools\extract-rustex-assets.py` unpacks +them into `assets\rustex` (1.65 GB, not in the repository) and decodes the +one-byte XOR the remake uses. What we derived from that and keep in the +repository: + +| File | What | +|---|---| +| `rsx-protocol\src\main\resources\items\items.csv` | 218 items: damage, range, tempo, durability, harvest per hit, material, icon, model | +| `rsx-protocol\src\main\resources\items\sounds.csv` | 505 sound events with their files | +| `rsx-protocol\src\main\resources\items\item-texts.json` | 543 item titles and descriptions | + +These numbers are the balance we build on, and they are the ones the official +wiki contradicts (the wiki describes original Rust, the remake is faster). The +item icons come from the atlas of the remake and are placeholders: **replace +them with our own.** + ## Tools | Script | Purpose | |---|---| +| `tools\extract-rustex-assets.py` | unpacks the assets of the Rustex remake and decodes them: every file is XOR-ed with one byte, the key comes from the format signature (PNG `^0x89`, OGG `^0x4F`, JSON `^0x7B`) | +| `tools\extract-items.py` | turns `models/stacks.json` of the remake into `rsx-protocol\...\items\items.csv`: 218 items with damage, range, tempo, durability, harvest per hit, material, icon, model | +| `tools\extract-sounds.py` | the sound registry of the remake into `sounds.csv`: 505 events with their files | | `rsx-client\tools\merge_srg_mcp.py` | vanilla SRG plus MCP CSVs into one obf to MCP SRG | | `rsx-client\tools\apply_patches.py` | re-applies the hand fixes, fails loudly if one misses | | `rsx-client\tools\add_patch.py` | appends a reviewed patch to the fix file | diff --git a/rsx-protocol/src/main/resources/items/item-texts.json b/rsx-protocol/src/main/resources/items/item-texts.json new file mode 100644 index 0000000..5195e33 --- /dev/null +++ b/rsx-protocol/src/main/resources/items/item-texts.json @@ -0,0 +1,2715 @@ +{ + "toolcupboard": { + "category": "building", + "title": "Tool Cupboard", + "disc": "Placing and authorising with the cupboard will make it so only you can build in a 50 meter radius of it. If you want your friends to build, they'll need to auth too. You should protect this." + }, + "building_plan": { + "category": "building", + "title": "Building Plan", + "disc": "A building plan. You can use this to craft buildings - right click when equipped for more options." + }, + "keylock": { + "category": "building", + "title": "Key Lock", + "disc": "Place on a door to avoid any unwelcome guests. To craft your key first place the lock on a door and hold E while looking at the Key lock and select 'Create Key', a key will now be added to your crafting queue. If the key is lost, you cannot make another, so don't forget to make extras and put them in a safe place!" + }, + "codelock": { + "category": "building", + "title": "Code Lock", + "disc": "An electronic lock. Locked and unlocked with four-digit code." + }, + "woodendoor": { + "category": "building", + "title": "Wooden Door", + "disc": "A Cheap door to secure your base. Its vulnerability to fire and weak explosive resistance makes the door a temporary solution to securing your base. Due to its flaws you should look at upgrading to a higher tier door such as Sheet Metal.\\n\\nThe Wooden Door can take two kinds of locks the basic Key Lock and the Code Lock. To pick up the door, remove any locks and open, hold down the E (USE) key and select 'Pickup'." + }, + "wooddoubledoor": { + "category": "building", + "title": "Wood Double Door", + "disc": "A Cheap door to secure your base. Its vulnerability to fire and weak explosive resistance makes the door a temporary solution to securing your base. Due to its flaws you should look at upgrading to a higher tier door such as Sheet Metal.\\n\\nThe Wooden Door can take two kinds of locks the basic Key Lock and the Code Lock. To pick up the door, remove any locks and open, hold down the E (USE) key and select 'Pickup'." + }, + "sheetmetaldoor": { + "category": "building", + "title": "Sheet Metal Door", + "disc": "Medium strength door, vulnerable to explosives." + }, + "sheetmetaldoubledoor": { + "category": "building", + "title": "Sheet Metal Double Door", + "disc": "Medium strength door, vulnerable to explosives." + }, + "armoreddoor": { + "category": "building", + "title": "Armored Door", + "disc": "Extremely strong door with a hatch to see and shoot out of." + }, + "armoreddoubledoor": { + "category": "building", + "title": "Armored Double Door", + "disc": "Extremely strong door with a hatch to see and shoot out of." + }, + "garagedoor": { + "category": "building", + "title": "Garage Door", + "disc": "A garage door that rolls up and down." + }, + "woodenladder": { + "category": "building", + "title": "Wooden Ladder", + "disc": "A ladder will help you climb walls in any base." + }, + "barbedwoodenbarricade": { + "category": "building", + "title": "Barbed Wooden Barricade", + "disc": "A wooden barricade with barbed wire, made of Wood and Metal Fragments. The barbed wire causes damage and will also slow player movement." + }, + "chainlinkfence": { + "category": "building", + "title": "Chainlink Fence", + "disc": "A Chainlink Fence" + }, + "chainlinkfencegate": { + "category": "building", + "title": "Chainlink Fence Gate", + "disc": "Chainlink Fence Gate" + }, + "concretebarricade": { + "category": "building", + "title": "Concrete Barricade", + "disc": "A barricade made out of Stones." + }, + "doorcloser": { + "category": "building", + "title": "Door Closer", + "disc": "Auotmatically closes your doors when left open." + }, + "floorgrill": { + "category": "building", + "title": "Floor grill", + "disc": "A floor grill must be placed in floor frames. Perfect for placing above a large furnace." + }, + "floortrianglegrill": { + "category": "building", + "title": "Floor triangle grill", + "disc": "A floor grill must be placed in floor frames. Perfect for placing above a large furnace." + }, + "highexternalstonegate": { + "category": "building", + "title": "High External Stone Gate", + "disc": "A high stone gate, allowing access in and out of your compound." + }, + "highexternalwoodengate": { + "category": "building", + "title": "High External Wooden Gate", + "disc": "A high wooden gate, allowing access in and out of your compound." + }, + "highexternalstonewall": { + "category": "building", + "title": "High External Stone Wall", + "disc": "A high stone wall used to keep people off your property." + }, + "highicewall": { + "category": "building", + "title": "High Ice Wall", + "disc": "A very high ice wall to protect your property." + }, + "highexternalwoodenwall": { + "category": "building", + "title": "High External Wooden Wall", + "disc": "A high wooden wall used to keep people off your property." + }, + "ladderhatch": { + "category": "building", + "title": "Ladder Hatch", + "disc": "A hatch that opens and changes into a ladder." + }, + "largewatercatcher": { + "category": "building", + "title": "Large Water Catcher", + "disc": "Collects drinkable water from the air via rain and dew. Can be connected to other entities to provide water, 20ml a second." + }, + "metalbarricade": { + "category": "building", + "title": "Metal Barricade", + "disc": "A tough metal barricade with barbed wire, made from Metal Fragments. The barbed wire causes damage and will also slow player movement." + }, + "metalshopfront": { + "category": "building", + "title": "Metal Shop Front", + "disc": "A bulletproof shop front for secure trades." + }, + "metalverticalembrasure": { + "category": "building", + "title": "Metal Vertical embrasure", + "disc": "Static shutter that forms a metal vertical embrasure over your window frame." + }, + "metalwindowbars": { + "category": "building", + "title": "Metal Window Bars", + "disc": "Metal window bars made to fit a normal sized window." + }, + "metalhorizontalembrasure": { + "category": "building", + "title": "Metal horizontal embrasure", + "disc": "Static shutter that forms a metal horizontal embrasure over your window frame." + }, + "netting": { + "category": "building", + "title": "Netting", + "disc": "Netting you can climb." + }, + "prisoncellgate": { + "category": "building", + "title": "Prison Cell Gate", + "disc": "A prison cell gate to lock things behind bars" + }, + "miningquarry": { + "category": "building", + "title": "Mining Quarry", + "disc": "Extracts minerals from the ground. Use a Survey Charge to determine the amount of minerals available for extraction in any given area." + }, + "pumpjack": { + "category": "building", + "title": "Pump Jack", + "disc": "Extracts oil from the ground. Use a Survey Charge to determine the amount of oil available for extraction in any given area." + }, + "reinforcedglasswindow": { + "category": "building", + "title": "Reinforced Glass Window", + "disc": "Window bars to fit a standard window. These bars are made out of reinforced metal and contain a thick surround to protect from incoming projectiles." + }, + "sandbagbarricade": { + "category": "building", + "title": "Sandbag Barricade", + "disc": "A protective barricade made out of Sand Bags." + }, + "shopfront": { + "category": "building", + "title": "Shop Front", + "disc": "A shop front to do commerce" + }, + "shorticewall": { + "category": "building", + "title": "Short Ice Wall", + "disc": "A short wall made of solid ice." + }, + "smallwatercatcher": { + "category": "building", + "title": "Small Water Catcher", + "disc": "Collects drinkable water from the air via rain and dew. Can be connected to other entities to provide water, 20ml a second." + }, + "stonebarricade": { + "category": "building", + "title": "Stone Barricade", + "disc": "Perfect for cover when engaging in gun fights. Decays rapidly when placed outside of building privilege." + }, + "strengthenedglasswindow": { + "category": "building", + "title": "Strengthened Glass Window", + "disc": "A strengthened glass window." + }, + "watchtower": { + "category": "building", + "title": "Watch Tower", + "disc": "A high wooden watchtower with a ladder" + }, + "triangleladderhatch": { + "category": "building", + "title": "Triangle Ladder Hatch", + "disc": "A hatch that opens and changes into a ladder." + }, + "woodenbarricade": { + "category": "building", + "title": "Wooden Barricade", + "disc": "A wooden barricade. Will hurt players and animals that run into it." + }, + "woodenbarricadecover": { + "category": "building", + "title": "Wooden Barricade Cover", + "disc": "Perfect for cover when engaging in gun fights. Decays rapidly when placed outside of building privilege." + }, + "woodshutters": { + "category": "building", + "title": "Wood Shutters", + "disc": "Wood shutters that you can open and close." + }, + "woodenwindowbars": { + "category": "building", + "title": "Wooden Window Bars", + "disc": "Window bars made out of wood. They'll stop people climbing through your window, but probably not for very long." + }, + "legacywoodshelter": { + "category": "building", + "title": "Legacy Wood Shelter", + "disc": "The classic s*** shack. A great starter base for any fresh spawn. You can only have one shelter deployed at anytime." + }, + "16xzoomscope": { + "category": "weapon", + "title": "16x Zoom Scope", + "disc": "A large 16x zoom scope." + }, + "8xzoomscope": { + "category": "weapon", + "title": "8x Zoom Scope", + "disc": "A small 8x zoom scope." + }, + "assaultrifle": { + "category": "weapon", + "title": "Assault Rifle", + "disc": "High damage machine rifle." + }, + "beancangrenade": { + "category": "weapon", + "title": "Beancan Grenade", + "disc": "Unreliable explosive device." + }, + "boltactionrifle": { + "category": "weapon", + "title": "Bolt Action Rifle", + "disc": "A High powered, highly accurate, long range rifle." + }, + "boneclub": { + "category": "weapon", + "title": "Bone Club", + "disc": "A blunt weapon made from a femur. All around basic gathering tool." + }, + "boneknife": { + "category": "weapon", + "title": "Bone Knife", + "disc": "Melee weapon crafted from bone fragments. Good for harvesting carcases." + }, + "butcherknife": { + "category": "weapon", + "title": "Butcher Knife", + "disc": "A sharp butcher knife. Extremely good at harvesting flesh from both dead or alive bodies." + }, + "combatknife": { + "category": "weapon", + "title": "Combat Knife", + "disc": "Combat knife designed for close combat engagements, can attack while sprinting. Best in class at harvesting flesh." + }, + "compoundbow": { + "category": "weapon", + "title": "Compound Bow", + "disc": "A very powerful bow. Can only be fully drawn while stationary. Keep still for bonus damage and speed." + }, + "crossbow": { + "category": "weapon", + "title": "Crossbow", + "disc": "A very accurate ranged weapon." + }, + "customsmg": { + "category": "weapon", + "title": "Custom SMG", + "disc": "A rapid-firing Machine Gun. Sacrifices accuracy and distance for speed." + }, + "doublebarrelshotgun": { + "category": "weapon", + "title": "Double Barrel Shotgun", + "disc": "A Shotgun with two barrels allowing two shots to be fired in quick succession before needing to reload." + }, + "eokapistol": { + "category": "weapon", + "title": "Eoka Pistol", + "disc": "A very cheap, very ineffective, and very unreliable pistol that fires shells." + }, + "flamethrower": { + "category": "weapon", + "title": "Flame Thrower", + "disc": "A Flamethrower. Uses low grade fuel as ammunition." + }, + "holosight": { + "category": "weapon", + "title": "Holosight", + "disc": "Uses laser projection to create a holographic sight which is always pointing at the target regardless of view angle." + }, + "huntingbow": { + "category": "weapon", + "title": "Hunting Bow", + "disc": "Hunting Bow, useful for short to medium range combat and hunting." + }, + "l96rifle": { + "category": "weapon", + "title": "L96 Rifle", + "disc": "A military grade high powered, long range rifle with great accuracy." + }, + "lr300assaultrifle": { + "category": "weapon", + "title": "LR-300 Assault Rifle", + "disc": "Stalk your enemies with this high powered light assault rifle." + }, + "longsword": { + "category": "weapon", + "title": "Longsword", + "disc": "A powerful 2-handed melee weapon with good range and high damage." + }, + "m249": { + "category": "weapon", + "title": "M249", + "disc": "High damage, high rate of fire, belt fed light machine gun." + }, + "m39rifle": { + "category": "weapon", + "title": "M39 Rifle", + "disc": "Military grade semi auto rifle" + }, + "m92pistol": { + "category": "weapon", + "title": "M92 Pistol", + "disc": "A semi-automatic Pistol. Fires rapidly and with good accuracy. Military Grade" + }, + "mp5a4": { + "category": "weapon", + "title": "MP5A4", + "disc": "A medium damage machine gun." + }, + "mace": { + "category": "weapon", + "title": "Mace", + "disc": "A powerful 2-handed melee weapon, It's unique design makes it easier to hit your target when compared to other more traditional weapons." + }, + "machete": { + "category": "weapon", + "title": "Machete", + "disc": "A brutal weapon with good range." + }, + "multiplegrenadelauncher": { + "category": "weapon", + "title": "Multiple Grenade Launcher", + "disc": "A 40MM six barrel, semi automatic grenade launcher" + }, + "muzzleboost": { + "category": "weapon", + "title": "Muzzle Boost", + "disc": "Increases weapon fire rate by channeling gasses back into the weapon cycling it faster, at the cost of bullet velocity and accuracy." + }, + "muzzlebrake": { + "category": "weapon", + "title": "Muzzle Brake", + "disc": "Lowers recoil felt by the operator but can make bullet path more unpredictable and dealing slightly less damage to your foes." + }, + "nailgun": { + "category": "weapon", + "title": "Nailgun", + "disc": "A construction tool turned deadly" + }, + "paddle": { + "category": "weapon", + "title": "Paddle", + "disc": "A versatile melee weapon that can also be used to paddle a kayak." + }, + "pitchfork": { + "category": "weapon", + "title": "Pitchfork", + "disc": "A 3 pronged pitchfork. Extremely easy to hit targets with." + }, + "pumpshotgun": { + "category": "weapon", + "title": "Pump Shotgun", + "disc": "A Shotgun. Fires 8 rounds." + }, + "pythonrevolver": { + "category": "weapon", + "title": "Python Revolver", + "disc": "A High Powered six-shooter." + }, + "revolver": { + "category": "weapon", + "title": "Revolver", + "disc": "A standard eight shot revolver." + }, + "rocketlauncher": { + "category": "weapon", + "title": "Rocket Launcher", + "disc": "Shoots rockets slightly farther than North Korea." + }, + "salvagedcleaver": { + "category": "weapon", + "title": "Salvaged Cleaver", + "disc": "A powerful 2-handed melee weapon with high damage." + }, + "salvagedsword": { + "category": "weapon", + "title": "Salvaged Sword", + "disc": "A powerful melee weapon made from a filed-down wrench. Great durability, good damage." + }, + "semiautomaticpistol": { + "category": "weapon", + "title": "Semi-Automatic Pistol", + "disc": "A semi-automatic pistol, fires rapidly and with good accuracy." + }, + "semiautomaticrifle": { + "category": "weapon", + "title": "Semi-Automatic Rifle", + "disc": "A Semi Automatic Rifle." + }, + "silencer": { + "category": "weapon", + "title": "Silencer", + "disc": "Significantly reduces the sound of gunfire, and completely removes any visible muzzle flash." + }, + "simplehandmadesight": { + "category": "weapon", + "title": "Simple Handmade Sight", + "disc": "A poorly made sight, slightly better than iron sights." + }, + "snowball": { + "category": "weapon", + "title": "Snowball", + "disc": "A snowball, throw it!" + }, + "snowballgun": { + "category": "weapon", + "title": "Snowball Gun", + "disc": "Load snowballs and lay waste to your foes with Christmas cheer." + }, + "spas12shotgun": { + "category": "weapon", + "title": "Spas-12 Shotgun", + "disc": "A semi automatic military issue shotgun" + }, + "speargun": { + "category": "weapon", + "title": "Speargun", + "disc": "A speargun which can only be fired underwater. Excellent for hunting Sharks." + }, + "stonespear": { + "category": "weapon", + "title": "Stone Spear", + "disc": "A stone-tipped wooden Spear. Slightly longer range." + }, + "thompson": { + "category": "weapon", + "title": "Thompson", + "disc": "A medium damage machine gun." + }, + "watergun": { + "category": "weapon", + "title": "Water Gun", + "disc": "A large water gun with pumpable pressure. Hold reload to pump!" + }, + "waterpistol": { + "category": "weapon", + "title": "Water Pistol", + "disc": "A small water gun that doesn't require pumping, but has a lower range and output." + }, + "waterpipeshotgun": { + "category": "weapon", + "title": "Waterpipe Shotgun", + "disc": "A Shotgun. Fires a single round before reloading." + }, + "weaponlasersight": { + "category": "weapon", + "title": "Weapon Lasersight", + "disc": "Attaches to a weapon. Provides user with a guiding laser and reduces weapon sway." + }, + "weaponflashlight": { + "category": "weapon", + "title": "Weapon flashlight", + "disc": "Attaches to a weapon. Provides user with a beam of light. Pressing F (default) to toggle light." + }, + "woodenspear": { + "category": "weapon", + "title": "Wooden Spear", + "disc": "Primitive weapon, perfect for hunting your foes. Can be upgraded to Stone Spear." + }, + "hmlmg": { + "category": "weapon", + "title": "HMLMG", + "disc": "High damage, high rate of fire, belt fed light machine gun." + }, + "handmadesmg": { + "category": "weapon", + "title": "Handmade SMG", + "disc": "An extremely basic automatic firearm. Low damage and accuracy." + }, + "sks": { + "category": "weapon", + "title": "SKS", + "disc": "A Military-Grade Semi Automatic Rifle." + }, + "highcaliberrevolver": { + "category": "weapon", + "title": "High Caliber Revolver", + "disc": "A High Caliber six-shooter." + }, + "adventcalendar": { + "category": "items", + "title": "Advent Calendar", + "disc": "Decorative Baubels you can hang on your Christmas tree" + }, + "largewoodbox": { + "category": "items", + "title": "Large Wood Box", + "disc": "Keep your things in this wooden storage box. Stores up to 48 items." + }, + "barbeque": { + "category": "items", + "title": "Barbeque", + "disc": "A makeshift Barbeque. You can cook significant amounts of food with this." + }, + "bed": { + "category": "items", + "title": "Bed", + "disc": "A Bed. Placing this will give you a place to respawn and can be used much more frequently than a sleeping bag. Note: Must be placed inside a building." + }, + "botabag": { + "category": "items", + "title": "Bota Bag", + "disc": "A canteen used to carry Water. Left click to drink, right click to fill from water sources, or to pour out." + }, + "campfire": { + "category": "items", + "title": "Camp Fire", + "disc": "A small camp fire. Provides warmth and light, and you can cook with it." + }, + "cardtable": { + "category": "items", + "title": "Card Table", + "disc": "A table for playing card games" + }, + "carvablepumpkin": { + "category": "items", + "title": "Carvable Pumpkin", + "disc": "A pumpkin that you can carve.\\n\\nRequires wood as a fuel source." + }, + "chair": { + "category": "items", + "title": "Chair", + "disc": "Every home needs a chair. A decorative item which provides comfort while seated." + }, + "chineselantern": { + "category": "items", + "title": "Chinese Lantern", + "disc": "A Chinese paper lantern to celebrate Chinese New Year" + }, + "chippyarcadegame": { + "category": "items", + "title": "Chippy Arcade Game", + "disc": "An Arcade Machine" + }, + "christmasdoorwreath": { + "category": "items", + "title": "Christmas Door Wreath", + "disc": "Get into the christmas spirit with this holiday door wreath." + }, + "christmaslights": { + "category": "items", + "title": "Christmas Lights", + "disc": "A string of colored lights to decorate your home" + }, + "xmastree": { + "category": "items", + "title": "Christmas Tree", + "disc": "Get into the holiday spirit with this decorative Christmas tree" + }, + "composter": { + "category": "items", + "title": "Composter", + "disc": "Produces fertilizer from compostable items." + }, + "doublesignpost": { + "category": "items", + "title": "Double Sign Post", + "disc": "A double sign post that you can plant into terrain." + }, + "dragondoorknocker": { + "category": "items", + "title": "Dragon Door Knocker", + "disc": "A Dragon Door Knocker, Happy Chinese New Year!" + }, + "dropbox": { + "category": "items", + "title": "Drop Box", + "disc": "This item can be deployed on walls so that players can input items from the exterior of the building for safe keeping. You can only access the submitted contents of the Drop Box from the rear." + }, + "easterdoorwreath": { + "category": "items", + "title": "Easter Door Wreath", + "disc": "A beautiful, hand crafted Easter themed door wreath." + }, + "festivedoorwaygarland": { + "category": "items", + "title": "Festive Doorway Garland", + "disc": "A Festive decoration to spruce up your doorway during the holdiays!" + }, + "festivedoubledoorwaygarland": { + "category": "items", + "title": "Festive Double Doorway Garland", + "disc": "A Festive decoration to spruce up your doorway during the holdiays!" + }, + "festivewindowgarland": { + "category": "items", + "title": "Festive Window Garland", + "disc": "A Festive decoration to spruce up your windows during the holdiays!" + }, + "frankensteintable": { + "category": "items", + "title": "Frankenstein Table", + "disc": "Place a monsters head, torso and legs into the table to summon Frankensteins monster." + }, + "fridge": { + "category": "items", + "title": "Fridge", + "disc": "A fridge you can store food into!" + }, + "furnace": { + "category": "items", + "title": "Furnace", + "disc": "A Furnace. Use it to smelt mined ore." + }, + "hitchtrough": { + "category": "items", + "title": "Hitch & Trough", + "disc": "A Hitching post and Trough. Dismounting your horses here will keep them healthy and fed as long as it is kept stocked with food." + }, + "hobobarrel": { + "category": "items", + "title": "Hobo Barrel", + "disc": "A vagabond staple. Use this repurposed oil barrel to stay warm." + }, + "hugewoodensign": { + "category": "items", + "title": "Huge Wooden Sign", + "disc": "A 6-meter by 3-meter wooden sign that you can write on." + }, + "jackolanternangry": { + "category": "items", + "title": "Jack O Lantern Angry", + "disc": "A Lantern. Place it where you need light." + }, + "jackolanternhappy": { + "category": "items", + "title": "Jack O Lantern Happy", + "disc": "A Lantern. Place it where you need light." + }, + "kayak": { + "category": "items", + "title": "Kayak", + "disc": "An improvised wooden kayak. Seats two and requires a Paddle to operate." + }, + "landscapephotoframe": { + "category": "items", + "title": "Landscape Photo Frame", + "disc": "A landscape photo frame." + }, + "landscapepictureframe": { + "category": "items", + "title": "Landscape Picture Frame", + "disc": "A landscape picture frame." + }, + "lantern": { + "category": "items", + "title": "Lantern", + "disc": "A Lantern. Place it where you need light, requires low grade fuel to work." + }, + "largebannerhanging": { + "category": "items", + "title": "Large Banner Hanging", + "disc": "A large banner hanging." + }, + "largebanneronpole": { + "category": "items", + "title": "Large Banner on pole" + }, + "largebanneronpol": { + "category": "items", + "disc": "A large banner hanging on a pole." + }, + "largefurnace": { + "category": "items", + "title": "Large Furnace", + "disc": "Used to smelt large quantities of ore. Difficult to secure, must be placed on terrain." + }, + "largephotoframe": { + "category": "items", + "title": "Large Photo Frame", + "disc": "A large frame for your photos." + }, + "largeplanterbox": { + "category": "items", + "title": "Large Planter Box", + "disc": "A large planter with enough room to plant 9 seeds." + }, + "largewoodensign": { + "category": "items", + "title": "Large Wooden Sign", + "disc": "A 3-meter by 1.5-meter wooden sign that you can write on." + }, + "locker": { + "category": "items", + "title": "Locker", + "disc": "A locker for keeping your clothes and armor safe!" + }, + "mailbox": { + "category": "items", + "title": "Mail Box", + "disc": "A Mailbox that accepts notes. Only you can access the mail due to a one way slit." + }, + "mediumwoodensign": { + "category": "items", + "title": "Medium Wooden Sign", + "disc": "A 2-meter by 1-meter wooden sign that you can write on." + }, + "mixingtable": { + "category": "items", + "title": "Mixing Table", + "disc": "Used for mixing recipes." + }, + "onesidedtownsignpost": { + "category": "items", + "title": "One Sided Town Sign Post", + "disc": "A one sided town sign post, that you can plant into terrain." + }, + "papermap": { + "category": "items", + "title": "Paper Map", + "disc": "Helps you figure out where you are. You can annotate the map by right-clicking and drawing on it.\\n\\nDrag the map into your belt bar to make it active. You will then be able to view the map by holding down the map button (G by default)." + }, + "pookiebear": { + "category": "items", + "title": "Pookie Bear", + "disc": "A companion that reminds you of your youth." + }, + "portraitphotoframe": { + "category": "items", + "title": "Portrait Photo Frame", + "disc": "A portrait oriented canvas for artists paintings." + }, + "portraitpictureframe": { + "category": "items", + "title": "Portrait Picture Frame", + "disc": "A portrait oriented canvas for artists paintings." + }, + "repairbench": { + "category": "items", + "title": "Repair Bench", + "disc": "You can repair your items here for a fraction of their construction cost. You may also use this to apply new skins to existing items." + }, + "researchtable": { + "category": "items", + "title": "Research Table", + "disc": "You can use this table to learn how to permanently craft items you have found in exchange for scrap." + }, + "rug": { + "category": "items", + "title": "Rug", + "disc": "A decorative rug that can be placed on walls, floors, and ceilings. Provides comfort when in close proximity." + }, + "rugbearskin": { + "category": "items", + "title": "Rug Bear Skin", + "disc": "A decorative rug that can be placed on walls, floors, and ceilings. Provides comfort when in close proximity." + }, + "superstocking": { + "category": "items", + "title": "SUPER Stocking", + "disc": "A SUPER Stocking. Hang it by a fire and you might just get an awesome gift!" + }, + "salvagedshelves": { + "category": "items", + "title": "Salvaged Shelves", + "disc": "Shelves for item stacking" + }, + "scarecrow": { + "category": "items", + "title": "Scarecrow", + "disc": "A decorative halloween themed deployable" + }, + "secretlabchair": { + "category": "items", + "title": "Secret Lab Chair", + "disc": "A luxurious, comfortable chair for long sessions of CCTV watching." + }, + "singlesignpost": { + "category": "items", + "title": "Single Sign Post", + "disc": "A single sign post that you can plant into terrain." + }, + "skulldoorknocker": { + "category": "items", + "title": "Skull Door Knocker", + "disc": "A spooky skull door knocker" + }, + "skullfirepit": { + "category": "items", + "title": "Skull Fire Pit", + "disc": "Enjoy burning your enemies remnants to ashes with this Halloween exclusive! Provides warmth and light, and you can cook with it." + }, + "sleepingbag": { + "category": "items", + "title": "Sleeping Bag", + "disc": "A sleeping bag. Placing this will give you a location to respawn." + }, + "smalloilrefinery": { + "category": "items", + "title": "Small Oil Refinery", + "disc": "A small refinery which can produce Low Grade Fuel from Crude Oil." + }, + "smallplanterbox": { + "category": "items", + "title": "Small Planter Box", + "disc": "A small planter with enough room to plant 3 seeds." + }, + "smallstash": { + "category": "items", + "title": "Small Stash", + "disc": "A hidden, burried stash to keep your items safe. After placing, return to the stash and aim at the ground where you hid it and it will reveal itself." + }, + "smallstocking": { + "category": "items", + "title": "Small Stocking", + "disc": "A small stocking. Hang it by a fire and you might just get a gift! Collect 6 to upgrade to a SUPER Stocking." + }, + "smallwoodensign": { + "category": "items", + "title": "Small Wooden Sign", + "disc": "A 1-meter by 0.5-meter wooden sign that you can write on." + }, + "snowman": { + "category": "items", + "title": "Snowman", + "disc": "Get into the holiday spirit with this decorative snowman" + }, + "sofa": { + "category": "items", + "title": "Sofa", + "disc": "A comfortable old sofa. A decorative item which provides comfort and seats two." + }, + "sofapattern": { + "category": "items", + "title": "Sofa - Pattern", + "disc": "A comfortable old sofa with a floral pattern. A decorative item which provides comfort and seats two." + }, + "spinningwheel": { + "category": "items", + "title": "Spinning wheel", + "disc": "An interactive spinning wheel." + }, + "stonefireplace": { + "category": "items", + "title": "Stone Fireplace", + "disc": "A stone fireplace to heat your home. Must be placed indoors and against a wall." + }, + "survivalfishtrap": { + "category": "items", + "title": "Survival Fish Trap", + "disc": "Traps fish, place on the shore and load with bait. The more bait loaded the bigger the chance of catching Trout." + }, + "table": { + "category": "items", + "title": "Table", + "disc": "Every home needs a table. A decorative item which provides comfort when in close proximity." + }, + "tallpictureframe": { + "category": "items", + "title": "Tall Picture Frame", + "disc": "A tall canvas for artists paintings." + }, + "tunacanlamp": { + "category": "items", + "title": "Tuna Can Lamp", + "disc": "A Makeshift wall light." + }, + "twosidedhangingsign": { + "category": "items", + "title": "Two Sided Hanging Sign", + "disc": "A double sided hanging sign, to attach to buildings." + }, + "twosidedornatehangingsign": { + "category": "items", + "title": "Two Sided Ornate Hanging Sign", + "disc": "A double sided hanging sign, to attach to buildings." + }, + "twosidedtownsignpost": { + "category": "items", + "title": "Two Sided Town Sign Post", + "disc": "A double sided town sign post, with roof, that you can plant into terrain." + }, + "vendingmachine": { + "category": "items", + "title": "Vending Machine", + "disc": "Trade your goods with other players safely by creating sell and buy orders.\\n\\nIf a raider gains access to the rear panel, they will have free reign over all of your goodies. Keep it safe." + }, + "waterbarrel": { + "category": "items", + "title": "Water Barrel", + "disc": "A storage container for water. Can output 10ml of water a second via a hose." + }, + "waterpurifier": { + "category": "items", + "title": "Water Purifier", + "disc": "A Water Purifier. Place overtop of a campfire. Will provide clean, drinkable water from salty, or stagnant water." + }, + "woodstoragebox": { + "category": "items", + "title": "Wood Storage Box", + "disc": "Keep your things in this wooden storage box. Stores up to 18 items." + }, + "workbenchlevel1": { + "category": "items", + "title": "Workbench Level 1", + "disc": "This allows you to craft and unlock items requiring workbench level 1" + }, + "workbenchlevel2": { + "category": "items", + "title": "Workbench Level 2", + "disc": "This allows you to craft and unlock items requiring workbench level 2" + }, + "workbenchlevel3": { + "category": "items", + "title": "Workbench Level 3", + "disc": "This allows you to craft and unlock items requiring workbench level 3" + }, + "xlpictureframe": { + "category": "items", + "title": "XL Picture Frame", + "disc": "An extra large canvas for artists paintings." + }, + "xxlpictureframe": { + "category": "items", + "title": "XXL Picture Frame", + "disc": "A double extra large canvas for artists paintings." + }, + "recycler": { + "category": "items", + "title": "Component Recycler", + "disc": "A component recycler. Returns up to 60 percent of resources when recycling items." + }, + "recyclersz": { + "category": "items", + "title": "Worn Component Recycler", + "disc": "A component recycler. Returns up to 40 percent of resources when recycling items." + }, + "giantcandydecor": { + "category": "items", + "title": "Giant Candy Decor", + "disc": "Get into the holiday spirit with this decorative inflated giant candy cane." + }, + "giantlollipopdecor": { + "category": "items", + "title": "Giant Lollipop Decor", + "disc": "Get into the holiday spirit with these decorative giant lollipops." + }, + "animalfat": { + "category": "res", + "title": "Animal Fat", + "disc": "Harvested from animals, combine with cloth to create a low quality fuel source." + }, + "batterysmall": { + "category": "res", + "title": "Battery - Small", + "disc": "A Battery." + }, + "bonefragments": { + "category": "res", + "title": "Bone Fragments", + "disc": "Extracted from animal carcass. Used as a raw material to make bone weapons and armour." + }, + "cctvcamera": { + "category": "res", + "title": "CCTV Camera", + "disc": "A CCTV Camera system can be used for realtime surveillance and security around your base when powered and paired with the Computer Station." + }, + "charcoal": { + "category": "res", + "title": "Charcoal", + "disc": "Byproduct from campfires and furnaces used for crafting gunpowder." + }, + "cloth": { + "category": "res", + "title": "Cloth", + "disc": "Cloth from an animal or a Hemp Bush. Used in many clothing items, weapons, and more." + }, + "crudeoil": { + "category": "res", + "title": "Crude Oil", + "disc": "Raw Oil out of the ground, must be refined in a refinery to be used." + }, + "dieselbarrel": { + "category": "res", + "title": "Diesel Fuel", + "disc": "Appropriate fuel for the excavator" + }, + "emptycanofbeans": { + "category": "res", + "title": "Empty Can Of Beans", + "disc": "An empty Can of Beans. Can be smelted into Metal Fragments." + }, + "emptytunacan": { + "category": "res", + "title": "Empty Tuna Can", + "disc": "An empty Can of Tuna. Can be smelted into Metal Fragments." + }, + "explosives": { + "category": "res", + "title": "Explosives", + "disc": "A component used for crafting C4 and Rockets." + }, + "fertilizer": { + "category": "res", + "title": "Fertilizer", + "disc": "Helps plants grow by increasing ground condition. Produced in a composter." + }, + "gunpowder": { + "category": "res", + "title": "Gun Powder", + "disc": "Made from Sulfur and Charcoal, a key ingredient of anything that goes bang!" + }, + "hqm": { + "category": "res", + "title": "High Quality Metal", + "disc": "High quality metal suitable for armor and weapons construction." + }, + "hqm_ore": { + "category": "res", + "title": "High Quality Metal Ore", + "disc": "A rock containing High Quality Metal. Can be smelted in a furnace." + }, + "horsedung": { + "category": "res", + "title": "Horse Dung", + "disc": "Fresh and fertile." + }, + "humanskull": { + "category": "res", + "title": "Human Skull", + "disc": "A human skull." + }, + "leather": { + "category": "res", + "title": "Leather", + "disc": "Leather from an animal. Used in many clothing items and more." + }, + "lowgradefuel": { + "category": "res", + "title": "Low Grade Fuel", + "disc": "Low Grade Fuel, used to power light sources." + }, + "metalfragment": { + "category": "res", + "title": "Metal Fragments", + "disc": "Metal Fragments. Smelted from Metal Ore, used in lots of different crafting recipes." + }, + "metal_ore": { + "category": "res", + "title": "Metal Ore", + "disc": "A naturally occurring rock containing metal and metal compounds. You can extract this metal using a furnace." + }, + "paper": { + "category": "res", + "title": "Paper", + "disc": "Paper, a ingredient for Building plan and Note." + }, + "plantfiber": { + "category": "res", + "title": "Plant Fiber", + "disc": "Fiber from dead plants. Can be composted." + }, + "researchpaper": { + "category": "res", + "title": "Research Paper", + "disc": "Use this item in a Research Bench to create blueprints of items." + }, + "saltwater": { + "category": "res", + "title": "Salt Water", + "disc": "Can't Drink This" + }, + "scrap": { + "category": "res", + "title": "Scrap", + "disc": "Scrap can be used in a Research table and Workbench to unlock and research items. Often used as a currency throughout the world." + }, + "stone": { + "category": "res", + "title": "Stones", + "disc": "Harvested from rocks using tools, basic building material." + }, + "sulfur": { + "category": "res", + "title": "Sulfur", + "disc": "Sulfur is commonly used in gunpowder, medicine, and matches. Matches release sulfur dioxide when they burn, giving them their smell. Sulfur is an essential component to living cells. Many proteins contain sulfur. It is also used as a pesticide on organic farms." + }, + "sulfur_ore": { + "category": "res", + "title": "Sulfur Ore", + "disc": "A rock containing sulfur. The sulfur can be extracted using a furnace." + }, + "targetingcomputer": { + "category": "res", + "title": "Targeting Computer", + "disc": "A computer loaded with software that can analyze a video and produce rotational deltas to individual objects contained in the feed." + }, + "water": { + "category": "res", + "title": "Water", + "disc": "Water. Drinking it will alleviate your thirst." + }, + "wolfskull": { + "category": "res", + "title": "Wolf Skull", + "disc": "A wolf skull." + }, + "wood": { + "category": "res", + "title": "Wood", + "disc": "Wood. Collected from trees and used in many crafting recipes. It's also needed to cook in camp-fires." + }, + "abarrelcostume": { + "category": "clothes", + "title": "A Barrel Costume", + "disc": "A stupid barrel costume, so you can hide like a pro..p" + }, + "maskbandana": { + "category": "clothes", + "title": "Bandana Mask", + "disc": "A square of cloth which is tied around the face over the nose and mouth." + }, + "banditguardgear": { + "category": "clothes", + "title": "Bandit Guard Gear", + "disc": "A bandit guard gear." + }, + "baseballcap": { + "category": "clothes", + "title": "Baseball Cap", + "disc": "A hat with a protrusion on the front which under the right conditions prevents the sun from entering the wearer's eye." + }, + "basichorseshoes": { + "category": "clothes", + "title": "Basic Horse Shoes", + "disc": "The effect this equipment has on the top speed of the animal" + }, + "hat": { + "category": "clothes", + "title": "Beenie Hat", + "disc": "A wooly hat. People say you lose 90%% of your body heat through your head. If that was true this would be a life saver. But it isn't." + }, + "bonearmor": { + "category": "clothes", + "title": "Bone Armor", + "disc": "A suit of armor made of bones." + }, + "bluejumpsuit": { + "category": "clothes", + "title": "Blue Jumpsuit", + "disc": "Blue jumpsuit." + }, + "bonehelmet": { + "category": "clothes", + "title": "Bone Helmet", + "disc": "A helmet made of bone." + }, + "booniehat": { + "category": "clothes", + "title": "Boonie Hat", + "disc": "A boonie hat." + }, + "boots": { + "category": "clothes", + "title": "Boots", + "disc": "Work boots." + }, + "buckethelmet": { + "category": "clothes", + "title": "Bucket Helmet", + "disc": "A Bucket Helmet. It provides a level of regional protection from inflicted damage." + }, + "bunnyears": { + "category": "clothes", + "title": "Bunny Ears", + "disc": "Bunny Ears. Grants additional Egg Vision allowing you to detect more eggs during an Easter egg hunt." + }, + "bunnyhat": { + "category": "clothes", + "title": "Bunny Hat", + "disc": "A silly Bunny Hat with wobbly ears to celebrate Easter 2021" + }, + "bunnyonesie": { + "category": "clothes", + "title": "Bunny Onesie", + "disc": "A Bunny Onesie. Grants additional Egg Vision allowing you to detect more eggs during an Easter egg hunt." + }, + "burlapgloves": { + "category": "clothes", + "title": "Burlap Gloves", + "disc": "Basic burlap gloves, offering protection from the elements" + }, + "burlaphelmet": { + "category": "clothes", + "title": "Burlap Headwrap", + "disc": "A Headwrap made out of burlap." + }, + "burlapchest": { + "category": "clothes", + "title": "Burlap Shirt", + "disc": "A Shirt made out of burlap." + }, + "burlapboots": { + "category": "clothes", + "title": "Burlap Shoes", + "disc": "Shoes made out of burlap." + }, + "burlappants": { + "category": "clothes", + "title": "Burlap Trousers", + "disc": "Trousers made out of burlap." + }, + "candlehat": { + "category": "clothes", + "title": "Candle Hat", + "disc": "A hat with a candle on top. You can turn the candle on in your inventory." + }, + "cardmovembermoustache": { + "category": "clothes", + "title": "Card Movember Moustache", + "disc": "A fake moustache for Movember" + }, + "clatterhelmet": { + "category": "clothes", + "title": "Clatter Helmet", + "disc": "A special helmet for owners of Clatter" + }, + "coffecanhelmet": { + "category": "clothes", + "title": "Coffee Can Helmet", + "disc": "A Coffee Can Helmet. It provides a level of regional protection from inflicted damage." + }, + "cratecostume": { + "category": "clothes", + "title": "Crate Costume", + "disc": "A sneaky crate costume. Use with a friend to expertly troll other players" + }, + "divingfins": { + "category": "clothes", + "title": "Diving Fins", + "disc": "Diving Fins which greatly increase underwater movement" + }, + "divingmask": { + "category": "clothes", + "title": "Diving Mask", + "disc": "A Diving Mask. Provides clear vision under water." + }, + "divingtank": { + "category": "clothes", + "title": "Diving Tank", + "disc": "An oxygen tank that enables breathing under water for a period of time. Can be refilled at a workbench." + }, + "dragonmask": { + "category": "clothes", + "title": "Dragon Mask", + "disc": "A Dragon Mask to celebrate Chinese New Year" + }, + "frogboots": { + "category": "clothes", + "title": "Frog Boots", + "disc": "An award for those who played Rust during Early Access, thank you." + }, + "gasmask": { + "category": "clothes", + "title": "Gas Mask", + "disc": "A gas mask." + }, + "ghostcostume": { + "category": "clothes", + "title": "Ghost Costume", + "disc": "Definitely not a last minute costume idea." + }, + "glowingeyes": { + "category": "clothes", + "title": "Glowing Eyes", + "disc": "A glowing eyes." + }, + "hazmatsuit": { + "category": "clothes", + "title": "Hazmat Suit", + "disc": "A hazmat suit made from radiation resistant rubber." + }, + "headset": { + "category": "clothes", + "title": "Headset", + "disc": "Every gamer needs a headset! - Gained from Rustex Remake's first Twitch drop event." + }, + "heavyhelmet": { + "category": "clothes", + "title": "Heavy Plate Helmet", + "disc": "Offers superior protection at the cost of reduced vision and movement speed." + }, + "heavychest": { + "category": "clothes", + "title": "Heavy Plate Jacket", + "disc": "Offers superior protection at the cost of aiming down sights and reduced movement speed." + }, + "heavypants": { + "category": "clothes", + "title": "Heavy Plate Pants", + "disc": "Offers superior protection at the cost of reduced movement speed." + }, + "heavyscientistsuit": { + "category": "clothes", + "title": "Heavy Scientist Suit", + "disc": "A heavy hazmat suit made from radiation resistant rubber." + }, + "hideboots": { + "category": "clothes", + "title": "Hide Boots", + "disc": "Boots made from the hide of an animal." + }, + "hidehalterneck": { + "category": "clothes", + "title": "Hide Halterneck", + "disc": "A Halterneck made from the hide of an animal." + }, + "hidepants": { + "category": "clothes", + "title": "Hide Pants", + "disc": "Trousers made from the hide of an animal." + }, + "hideponcho": { + "category": "clothes", + "title": "Hide Poncho", + "disc": "A Poncho made from the hide of an animal." + }, + "hideskirt": { + "category": "clothes", + "title": "Hide Skirt", + "disc": "A Skirt made from the hide of an animal." + }, + "hidechest": { + "category": "clothes", + "title": "Hide Vest", + "disc": "A Vest made from the hide of an animal." + }, + "highqualityhorseshoes": { + "category": "clothes", + "title": "High Quality Horse Shoes", + "disc": "Equipping these horse shoes will grant your horse additional movement speed" + }, + "hoodie": { + "category": "clothes", + "title": "Hoodie", + "disc": "A hoodie." + }, + "hoodieyellow": { + "category": "clothes", + "title": "Hoodie", + "disc": "A hoodie." + }, + "hoodiegreen": { + "category": "clothes", + "title": "Hoodie", + "disc": "A hoodie." + }, + "hoodieblue": { + "category": "clothes", + "title": "Hoodie", + "disc": "A hoodie." + }, + "horsesaddle": { + "category": "clothes", + "title": "Horse Saddle", + "disc": "Equipping this saddle bag will add extra storage space on your horse" + }, + "balaclava": { + "category": "clothes", + "title": "Improvised Balaclava", + "disc": "A home made balaclava." + }, + "jacket": { + "category": "clothes", + "title": "Jacket", + "disc": "A rugged jacket." + }, + "jumpsuit": { + "category": "clothes", + "title": "Jumpsuit", + "disc": "A jumpsuit." + }, + "leathergloves": { + "category": "clothes", + "title": "Leather Gloves", + "disc": "Gloves made out of leather, offers a small amount of protection to the upper body." + }, + "longtshirt": { + "category": "clothes", + "title": "Longsleeve T-Shirts", + "disc": "A t-shirt with long sleeves." + }, + "lumberjackhoodie": { + "category": "clothes", + "title": "Lumberjack Hoodie", + "disc": "A Lumberjack Hoodie" + }, + "metalchest": { + "category": "clothes", + "title": "Metal Chest Plate", + "disc": "A metal plate covering your torso, provides excellent protection from all forms of attacks." + }, + "metalfacemask": { + "category": "clothes", + "title": "Metal Facemask", + "disc": "A protective facemask which provides the user with excellent head protection from all forms of attacks." + }, + "minershat": { + "category": "clothes", + "title": "Miners Hat", + "disc": "A leather cap with a flashlight attached. It uses Low Grade Fuel and can be activated from the inventory." + }, + "movembermoustache": { + "category": "clothes", + "title": "Movember Moustache", + "disc": "A fake moustache for Movember" + }, + "mummysuit": { + "category": "clothes", + "title": "Mummy Suit", + "disc": "A mummy suit." + }, + "nesthat": { + "category": "clothes", + "title": "Nest Hat", + "disc": "An extremely silly easter nest hat with googly eyes." + }, + "nightvisiongoggles": { + "category": "clothes", + "title": "Night Vision Goggles", + "disc": "Enables vision at nighttime by projecting and amplifying infrared light.The batteries can be recharged at a Lvl 2 workbench. Cannot be worn with a helmet." + }, + "ninjasuit": { + "category": "clothes", + "title": "Ninja Suit", + "disc": "A Ninja suit which protects your entire body." + }, + "oxmask": { + "category": "clothes", + "title": "Ox Mask", + "disc": "An Ox mask to celebrate the 2021 Lunar New Year." + }, + "pants": { + "category": "clothes", + "title": "Pants", + "disc": "Pants." + }, + "partyhat": { + "category": "clothes", + "title": "Party Hat", + "disc": "A very stupid looking party hat" + }, + "ratmask": { + "category": "clothes", + "title": "Rat Mask", + "disc": "A Beautifully crafted bronze and gold Rat mask to celebrate the 2020 Lunar New Year" + }, + "reindeerantlers": { + "category": "clothes", + "title": "Reindeer Antlers", + "disc": "A festive reindeer antlers headband and nose." + }, + "riothelmet": { + "category": "clothes", + "title": "Riot Helmet", + "disc": "A makeshift riot Helmet. Great at deflecting melee attacks." + }, + "roadsignjacket": { + "category": "clothes", + "title": "Road Sign Jacket", + "disc": "A shoddy piece of body armor made from roadsigns." + }, + "roadsignkilt": { + "category": "clothes", + "title": "Road Sign Kilt", + "disc": "A shoddy piece of body armor made from roadsigns." + }, + "roadsigngloves": { + "category": "clothes", + "title": "Roadsign Gloves", + "disc": "Gloves made out of metal offers a good amount of protection to the upper body." + }, + "roadsignhorsearmor": { + "category": "clothes", + "title": "Roadsign Horse Armor", + "disc": "A set of roadsign armor for a horse" + }, + "saddlebag": { + "category": "clothes", + "title": "Saddle bag", + "disc": "Equipping this saddle bag will add extra storage space on your horse" + }, + "redsantaclaushat": { + "category": "clothes", + "title": "Red Santa Beard", + "disc": "Red a santa beard. Ho Ho ho." + }, + "bluesantaclaushat": { + "category": "clothes", + "title": "Blue Santa Beard", + "disc": "Blue a santa beard. Ho Ho ho." + }, + "santahat": { + "category": "clothes", + "title": "Santa Hat", + "disc": "A santa hat. Ho Ho ho." + }, + "scientistsuit": { + "category": "clothes", + "title": "Scientist Suit", + "disc": "A scientist suit." + }, + "shirt": { + "category": "clothes", + "title": "Shirt", + "disc": "A smart casual shirt" + }, + "shorts": { + "category": "clothes", + "title": "Shorts", + "disc": "Trousers without the bottom of the legs." + }, + "snowjacket": { + "category": "clothes", + "title": "Snow Jacket", + "disc": "A thick, high visibility Jacket. It will help keep you warm in any climate." + }, + "snowmanhelmet": { + "category": "clothes", + "title": "Snowman Helmet", + "disc": "A Snowman Helmet" + }, + "surgeonscrubs": { + "category": "clothes", + "title": "Surgeon Scrubs", + "disc": "A Surgeon Suit" + }, + "tshirt": { + "category": "clothes", + "title": "T-Shirt", + "disc": "A t-shirt with very short sleeves." + }, + "tacticalgloves": { + "category": "clothes", + "title": "Tactical Gloves", + "disc": "Military issue tactical gloves provide protection as well as weapon stabilization leading to higher accuracy when used." + }, + "tanktop": { + "category": "clothes", + "title": "Tank Top", + "disc": "A tshirt without sleeves" + }, + "wetsuit": { + "category": "clothes", + "title": "Wetsuit", + "disc": "A Wetsuit providing protection from frigid waters." + }, + "wolfheaddress": { + "category": "clothes", + "title": "Wolf Headdress", + "disc": "A headdress made out of the scraped out head of a wolf." + }, + "woodhelmet": { + "category": "clothes", + "title": "Wood Armor Helmet", + "disc": "A shoddy helmet made from Wood and Cloth." + }, + "woodpants": { + "category": "clothes", + "title": "Wood Armor Pants", + "disc": "A shoddy piece of leg armor made from Wood and rope." + }, + "woodchest": { + "category": "clothes", + "title": "Wood Chestplate", + "disc": "A shoddy piece of body armor made from Wood and rope." + }, + "woodenhorsearmor": { + "category": "clothes", + "title": "Wooden Horse Armor", + "disc": "A set of wooden horse armor" + }, + "binoculars": { + "category": "tools", + "title": "Binoculars", + "disc": "Binoculars allowing you to see objects at great length." + }, + "birthdaycake": { + "category": "tools", + "title": "Birthday Cake", + "disc": "A very special and happy birthday to Rustex Remake!" + }, + "camera": { + "category": "tools", + "title": "Camera", + "disc": "A camera. Take screenshots with primary fire, zoom in and out with secondary fire, and lock focus with third fire." + }, + "chainsaw": { + "category": "tools", + "title": "Chainsaw", + "disc": "A Chainsaw. Very effective at cutting trees in addition to soft fleshy objects. Requires Low Grade Fuel to run." + }, + "fishingtackle": { + "category": "tools", + "title": "Fishing Tackle", + "disc": "A fishing tackle." + }, + "flare": { + "category": "tools", + "title": "Flare", + "disc": "Light up the night sky with this brand new red flare!" + }, + "flashlight": { + "category": "tools", + "title": "Flashlight", + "disc": "A powerful flashlight which illuminates your surroundings and can be used as a weapon." + }, + "geigercounter": { + "category": "tools", + "title": "Geiger Counter", + "disc": "A geiger counter used by scientists" + }, + "hammer": { + "category": "tools", + "title": "Hammer", + "disc": "A Hammer, used to upgrade building materials. Right-click for the options. You can also pick up deployed objects while the hammer is equipped." + }, + "handmadefishingrod": { + "category": "tools", + "title": "Handmade Fishing Rod", + "disc": "Use to cast out the line and wait for a bite. Requires bait." + }, + "ironaxe": { + "category": "tools", + "title": "Hatchet", + "disc": "A Hatchet, useful for chopping trees and dismembering corpses." + }, + "instantcamera": { + "category": "tools", + "title": "Instant Camera", + "disc": "An instant camera. Take photos with primary fire, zoom in and out with secondary fire, and change focus mode with reload." + }, + "jackhammer": { + "category": "tools", + "title": "Jackhammer", + "disc": "A Pneumatic Jackhammer to blast through ore nodes. The sheer power of this device requires no aiming as all weak spots will be instantly destroyed. Can be refilled at a Workbench." + }, + "ironpickaxe": { + "category": "tools", + "title": "Pickaxe", + "disc": "A Pickaxe, useful for gathering ore from rocks." + }, + "rftransmitter": { + "category": "tools", + "title": "RF Transmitter", + "disc": "A hand held RF signal broadcaster. Left click to broadcast. Configurable with right mouse." + }, + "rock": { + "category": "tools", + "title": "Rock", + "disc": "A Rock. The most basic melee weapon and gathering tool." + }, + "salvagedaxe": { + "category": "tools", + "title": "Salvaged Axe", + "disc": "A high-yield resource gathering axe. Slower than the Hatchet." + }, + "salvagedhammer": { + "category": "tools", + "title": "Salvaged Hammer", + "disc": "A Hammer made from a bunch of other crap." + }, + "salvagedicepick": { + "category": "tools", + "title": "Salvaged Icepick", + "disc": "A high-yield resource gathering Icepick." + }, + "satchelcharge": { + "category": "tools", + "title": "Satchel Charge", + "disc": "Small explosive package constructed of beancan grenades. Useful for destroying wood and sheet metal doors." + }, + "smokegrenade": { + "category": "tools", + "title": "Smoke Grenade", + "disc": "Produces a large cloud of opaque greyish white smoke." + }, + "stoneaxe": { + "category": "tools", + "title": "Stone Hatchet", + "disc": "Primitive tool used for harvesting wood from trees and logs." + }, + "stonepickaxe": { + "category": "tools", + "title": "Stone Pickaxe", + "disc": "Primitive tool used for harvesting Stone, Metal ore and Sulfur ore." + }, + "supplysignal": { + "category": "tools", + "title": "Supply Signal", + "disc": "Purple signal smoke. Use to mark a location for an airdrop." + }, + "surveycharge": { + "category": "tools", + "title": "Survey Charge", + "disc": "Use this on the terrain to see which resources are available for mining." + }, + "timedexplosivecharge": { + "category": "tools", + "title": "Timed Explosive Charge", + "disc": "C4, useful for breaking into bases." + }, + "torch": { + "category": "tools", + "title": "Torch", + "disc": "A Torch. Lights your way at night and can be used as a weapon." + }, + "torch_fire": { + "category": "tools", + "title": "Torch", + "disc": "A Torch. Lights your way at night and can be used as a weapon." + }, + "waterbucket": { + "category": "tools", + "title": "Water Bucket", + "disc": "A bucket for transporting water or other liquids." + }, + "antirad": { + "category": "medical", + "title": "Anti-Radiation Pills", + "disc": "Taking these pills will lower your radiation level. WARNING: May cause extreme dehydration." + }, + "bandage": { + "category": "medical", + "title": "Bandage", + "disc": "Heal yourself or others with this bandage. Left-click heals you, right-click heals a target." + }, + "blood": { + "category": "medical", + "title": "Blood", + "disc": "Used in creation of medkits." + }, + "largemedkit": { + "category": "medical", + "title": "Large Medkit", + "disc": "A large medkit." + }, + "medicalsyringe": { + "category": "medical", + "title": "Medical Syringe", + "disc": "Heal yourself or others with this syringe. Left-click heals you, right-click heals a target." + }, + "advantiradtea": { + "category": "medical", + "title": "Adv. Anti-Rad Tea", + "disc": "Pure Anti-Rad Tea" + }, + "advancedhealingtea": { + "category": "medical", + "title": "Advanced Healing Tea", + "disc": "A tea that restores health over time." + }, + "advancedmaxhealthtea": { + "category": "medical", + "title": "Advanced Max Health Tea", + "disc": "A tea that increases your maximum health." + }, + "advancedoretea": { + "category": "medical", + "title": "Advanced Ore Tea", + "disc": "A tea that increases the amount of ore you receive." + }, + "advancedradremovaltea": { + "category": "medical", + "title": "Advanced Rad. Removal Tea", + "disc": "A tea that removes some radiation." + }, + "advancedscraptea": { + "category": "medical", + "title": "Advanced Scrap Tea", + "disc": "A tea that increases the amount of scrap you receive from barrels." + }, + "advancedwoodtea": { + "category": "medical", + "title": "Advanced Wood Tea", + "disc": "A tea that increases the amount of wood you receive from trees." + }, + "anchovy": { + "category": "medical", + "title": "Anchovy", + "disc": "A small bony fish commonly found in large schools." + }, + "antiradtea": { + "category": "medical", + "title": "Anti-Rad Tea", + "disc": "A tea that reduces the amount of health lost due to radiation." + }, + "apple": { + "category": "medical", + "title": "Apple", + "disc": "An Apple. Eating it provides a small boost to health, hunger, and thirst." + }, + "basichealingtea": { + "category": "medical", + "title": "Basic Healing Tea", + "disc": "A tea that restores health over time." + }, + "basicmaxhealthtea": { + "category": "medical", + "title": "Basic Max Health Tea", + "disc": "A tea that increases your maximum health." + }, + "basicoretea": { + "category": "medical", + "title": "Basic Ore Tea", + "disc": "A tea that increases the amount of ore you receive." + }, + "basicscraptea": { + "category": "medical", + "title": "Basic Scrap Tea", + "disc": "A tea that increases the amount of scrap you receive from barrels." + }, + "basicwoodtea": { + "category": "medical", + "title": "Basic Wood Tea", + "disc": "A tea that increases the amount of wood you receive from trees." + }, + "blackberry": { + "category": "medical", + "title": "Black Berry", + "disc": "A black berry." + }, + "blackberryclone": { + "category": "medical", + "title": "Black Berry Clone", + "disc": "A clipping of a Black Berry Plant." + }, + "blackberryseed": { + "category": "medical", + "title": "Black Berry Seed", + "disc": "These black berry seeds can be planted in the ground and grown to collect additional food.\\n\\nPlanting these seeds in a planter, and then watering them with large quantities of water yields significantly more Corn and faster groth." + }, + "blackraspberries": { + "category": "medical", + "title": "Black Raspberries", + "disc": "Black Raspberries picked from berry bushes. Eating it provides a small boost to health, hunger, and thirst." + }, + "blueberry": { + "category": "medical", + "title": "Blue Berry", + "disc": "A blue berry. Can be eaten or used in mixing table recipes to create teas." + }, + "blueberryclone": { + "category": "medical", + "title": "Blue Berry Clone", + "disc": "A clipping of a Blue Berry Plant." + }, + "blueberryseed": { + "category": "medical", + "title": "Blue Berry Seed", + "disc": "These blue berry seeds can be planted in the ground and grown to collect additional food.\\n\\nPlanting these seeds in a planter, and then watering them with large quantities of water yields significantly more Corn and faster groth." + }, + "blueberries": { + "category": "medical", + "title": "Blueberries", + "disc": "Blueberries picked from berry bushes. Eating it provides a small boost to health, hunger, and thirst." + }, + "burntbearmeat": { + "category": "medical", + "title": "Burnt Bear Meat", + "disc": "Bear Meat that has been overcooked." + }, + "burntchicken": { + "category": "medical", + "title": "Burnt Chicken", + "disc": "Burned chicken. Eating it will damage your health." + }, + "burntdeermeat": { + "category": "medical", + "title": "Burnt Deer Meat", + "disc": "Burned Deer Meat. Eating it will damage your health." + }, + "burnthorsemeat": { + "category": "medical", + "title": "Burnt Horse Meat", + "disc": "Burned horse meat. Eating it will damage your health." + }, + "burnthumanmeat": { + "category": "medical", + "title": "Burnt Human Meat", + "disc": "Burned Meat from a human being. Consuming will damage your health." + }, + "burntpork": { + "category": "medical", + "title": "Burnt Pork", + "disc": "This little piggy has been in the oven for too long." + }, + "burntwolfmeat": { + "category": "medical", + "title": "Burnt Wolf Meat", + "disc": "Spoiled Wolf Meat. Consuming will damage your health." + }, + "cactusflesh": { + "category": "medical", + "title": "Cactus Flesh", + "disc": "Flesh of a Cactus, contains water." + }, + "canofbeans": { + "category": "medical", + "title": "Can of Beans", + "disc": "Beans found as loot. Eating it provides a small boost to health, hunger, and thirst." + }, + "canoftuna": { + "category": "medical", + "title": "Can of Tuna", + "disc": "Chunked tuna found as loot. Eating it provides a small boost to health, hunger, and thirst." + }, + "catfish": { + "category": "medical", + "title": "Catfish", + "disc": "A large, whiskered fresh water based predator. Eats everything, so you never know what you'll find in it's stomach." + }, + "chocolatebar": { + "category": "medical", + "title": "Chocolate Bar", + "disc": "Chocolate Bar found as loot. Eating it provides a small boost to health, hunger, and thirst." + }, + "cookedbearmeat": { + "category": "medical", + "title": "Cooked Bear Meat", + "disc": "Delicious Bear Meat, Eating it will restore some health, hunger, and thirst." + }, + "cookedchicken": { + "category": "medical", + "title": "Cooked Chicken", + "disc": "Cooked chicken. Eating it will restore some health, hunger, and thirst." + }, + "cookeddeermeat": { + "category": "medical", + "title": "Cooked Deer Meat", + "disc": "Cooked Deer Meat. Eating it will restore some health, hunger, and thirst." + }, + "cookedfish": { + "category": "medical", + "title": "Cooked Fish", + "disc": "Cooked Fish. Eating it provides a small boost to health, hunger, and thirst." + }, + "cookedhorsemeat": { + "category": "medical", + "title": "Cooked Horse Meat", + "disc": "Cooked Horse Meat. Eating it will restore some health, hunger, and thirst." + }, + "cookedhumanmeat": { + "category": "medical", + "title": "Cooked Human Meat", + "disc": "Salty meat from a human being, eating this will restore some hunger and health but reduces hydration. Maybe you should look for a better food source." + }, + "cookedpork": { + "category": "medical", + "title": "Cooked Pork", + "disc": "Cooked pork, Eating it will restore some health, hunger, and thirst." + }, + "cookedwolfmeat": { + "category": "medical", + "title": "Cooked Wolf Meat", + "disc": "Cooked Wolf Meat. Eating it will restore some health, hunger, and thirst." + }, + "corn": { + "category": "medical", + "title": "Corn", + "disc": "An ear of corn. Eating it provides a small boost to health, hunger, and thirst." + }, + "cornclone": { + "category": "medical", + "title": "Corn Clone", + "disc": "A Clipping of a Corn Plant." + }, + "cornseed": { + "category": "medical", + "title": "Corn Seed", + "disc": "Corn seeds can be found when picking wild Corn plants. These seeds can be planted in the ground and grown to collect additional food.\\n\\nPlanting these seeds in a planter, and then watering them with large quantities of water yields significantly more Corn and faster groth." + }, + "granolabar": { + "category": "medical", + "title": "Granola Bar", + "disc": "Granola Bar found as loot. Eating it provides a small boost to health, hunger." + }, + "greenberry": { + "category": "medical", + "title": "Green Berry", + "disc": "A green berry. Can be eaten or used in mixing table recipes to create teas." + }, + "greenberryclone": { + "category": "medical", + "title": "Green Berry Clone", + "disc": "A clipping of a Green Berry Plant." + }, + "greenberryseed": { + "category": "medical", + "title": "Green Berry Seed", + "disc": "These green berry seeds can be planted in the ground and grown to collect additional food.\\n\\nPlanting these seeds in a planter, and then watering them with large quantities of water yields significantly more Corn and faster groth." + }, + "grub": { + "category": "medical", + "title": "Grub", + "disc": "A pale, fleshy insect that can be used for bait. Could also be eaten in desperate situations." + }, + "hempclone": { + "category": "medical", + "title": "Hemp Clone", + "disc": "A clipping of a hemp plant." + }, + "hempseed": { + "category": "medical", + "title": "Hemp Seed", + "disc": "Hemp seeds can be found when picking wild Hemp. These seeds can be planted in the ground and grown to collect additional cloth.\\n\\nPlanting these seeds in a planter, and then watering them with large quantities of water yields significantly more cloth and faster groth." + }, + "herring": { + "category": "medical", + "title": "Herring", + "disc": "A small fish commonly found in a variety of water sources." + }, + "minnows": { + "category": "medical", + "title": "Minnows", + "disc": "A Small group of edible fish." + }, + "mushroom": { + "category": "medical", + "title": "Mushroom", + "disc": "A Mushroom found on the ground. Eating it provides a small boost to health, hunger, and thirst." + }, + "orangeroughy": { + "category": "medical", + "title": "Orange Roughy", + "disc": "A rare fish found in the depths of the ocean. Eats everything, so you never know what you'll find in it's stomach." + }, + "pickles": { + "category": "medical", + "title": "Pickles", + "disc": "Cucumbers in a vinegar bath, jarred by an amatuer. Eat at your own risk." + }, + "potato": { + "category": "medical", + "title": "Potato", + "disc": "A potato." + }, + "potatoclone": { + "category": "medical", + "title": "Potato Clone", + "disc": "A Clipping of a Potato Plant." + }, + "potatoseed": { + "category": "medical", + "title": "Potato Seed", + "disc": "These potato seeds can be planted in the ground and grown to collect additional food.\\n\\nPlanting these seeds in a planter, and then watering them with large quantities of water yields significantly more Corn and faster groth." + }, + "pumpkin": { + "category": "medical", + "title": "Pumpkin", + "disc": "An edible vegetable that can also be worn as a hat. Eating it provides a small boost to health, hunger, and thirst." + }, + "pumpkinplantclone": { + "category": "medical", + "title": "Pumpkin Plant Clone", + "disc": "A Clipping of a pumpkin plant." + }, + "pumpkinseed": { + "category": "medical", + "title": "Pumpkin Seed", + "disc": "Pumpkin Seeds can be found when picking wild Pumpkin plants. These seeds can be planted in the ground and grown to collect additional food.\\n\\nPlanting these seeds in a planter, and then watering them with large quantities of water yields significantly more Pumpkins and faster groth." + }, + "pureantiradtea": { + "category": "medical", + "title": "Pure Anti-Rad Tea", + "disc": "A tea that reduces the amount of health lost due to radiation." + }, + "purehealingtea": { + "category": "medical", + "title": "Pure Healing Tea", + "disc": "A tea that restores health over time." + }, + "puremaxhealthtea": { + "category": "medical", + "title": "Pure Max Health Tea", + "disc": "A tea that increases your maximum health." + }, + "pureoretea": { + "category": "medical", + "title": "Pure Ore Tea", + "disc": "A tea that increases the amount of ore you receive." + }, + "pureradremovaltea": { + "category": "medical", + "title": "Pure Rad. Removal Tea", + "disc": "A tea that removes some radiation." + }, + "purescraptea": { + "category": "medical", + "title": "Pure Scrap Tea", + "disc": "A tea that increases the amount of scrap you receive from barrels." + }, + "purewoodtea": { + "category": "medical", + "title": "Pure Wood Tea", + "disc": "A tea that increases the amount of wood you receive from trees." + }, + "rawbearmeat": { + "category": "medical", + "title": "Raw Bear Meat", + "disc": "Raw Bear Meat. Eating it will damage your health, try cooking it first." + }, + "rawchickenbreast": { + "category": "medical", + "title": "Raw Chicken Breast", + "disc": "Raw chicken breast. Eating it will damage your health, try cooking it first." + }, + "rawdeermeat": { + "category": "medical", + "title": "Raw Deer Meat", + "disc": "Raw Deer Meat. Eating it will damage your health, try cooking it first." + }, + "rawfish": { + "category": "medical", + "title": "Raw Fish", + "disc": "Raw Fish." + }, + "rawhorsemeat": { + "category": "medical", + "title": "Raw Horse Meat", + "disc": "Raw Horse Meat. Eating it will damage your health, try cooking it first." + }, + "rawhumanmeat": { + "category": "medical", + "title": "Raw Human Meat", + "disc": "Raw human meat. Consuming will damage your health." + }, + "meatpork": { + "category": "medical", + "title": "Raw Pork", + "disc": "Raw pork. Eating it will damage your health, try cooking it first." + }, + "rawwolfmeat": { + "category": "medical", + "title": "Raw Wolf Meat", + "disc": "Raw Wolf Meat. Eating it will damage your health, try cooking it first." + }, + "redberry": { + "category": "medical", + "title": "Red Berry", + "disc": "A red berry. Can be eaten or used in mixing table recipes to create teas." + }, + "redberryclone": { + "category": "medical", + "title": "Red Berry Clone", + "disc": "A clipping of a Red Berry Plant." + }, + "redberryseed": { + "category": "medical", + "title": "Red Berry Seed", + "disc": "These red berry seeds can be planted in the ground and grown to collect additional food.\\n\\nPlanting these seeds in a planter, and then watering them with large quantities of water yields significantly more Corn and faster groth." + }, + "rottenapple": { + "category": "medical", + "title": "Rotten Apple", + "disc": "A rotten apple. Eating it currently provides a tiny boost to health, hunger, and thirst." + }, + "salmon": { + "category": "medical", + "title": "Salmon", + "disc": "A large Salmon, found in fresh and salt water. Eats everything, so you never know what you'll find in it's stomach." + }, + "sardine": { + "category": "medical", + "title": "Sardine", + "disc": "A small oily fish, commonly found in large schools." + }, + "smallshark": { + "category": "medical", + "title": "Small Shark", + "disc": "A small, surprisingly aggressive deep sea predator. Eats everything, so you never know what you'll find in it's stomach." + }, + "smalltrout": { + "category": "medical", + "title": "Small Trout", + "disc": "A Small Trout. Good for a few meals." + }, + "smallwaterbottle": { + "category": "medical", + "title": "Small Water Bottle", + "disc": "A Small Water Bottle. Left click to drink, right click to fill from water sources, or to pour out." + }, + "spoiledchicken": { + "category": "medical", + "title": "Spoiled Chicken", + "disc": "Spoiled Chicken. Eating it will damage your health." + }, + "spoiledhumanmeat": { + "category": "medical", + "title": "Spoiled Human Meat", + "disc": "Spoiled Human Meat. Consuming will damage your health." + }, + "spoiledwolfmeat": { + "category": "medical", + "disc": "Spoiled Wolf Meat", + "title": "Spoiled Wolf Meat. Consuming will damage your health." + }, + "waterjug": { + "category": "medical", + "title": "Water Jug", + "disc": "A large jerry can for water." + }, + "whiteberry": { + "category": "medical", + "title": "White Berry", + "disc": "A white berry. Can be eaten or used in mixing table recipes to create teas." + }, + "whiteberryclone": { + "category": "medical", + "title": "White Berry Clone", + "disc": "A clipping of a White Berry Plant." + }, + "whiteberryseed": { + "category": "medical", + "title": "White Berry Seed", + "disc": "These white berry seeds can be planted in the ground and grown to collect additional food.\\n\\nPlanting these seeds in a planter, and then watering them with large quantities of water yields significantly more Corn and faster groth." + }, + "worm": { + "category": "medical", + "title": "Worm", + "disc": "A small, writhing worm that can be used for bait. Could also be eaten in desperate situations." + }, + "yellowberry": { + "category": "medical", + "title": "Yellow Berry", + "disc": "A yellow berry. Can be eaten or used in mixing table recipes to create teas." + }, + "yellowberryclone": { + "category": "medical", + "title": "Yellow Berry Clone", + "disc": "A clipping of a Yellow Berry Plant." + }, + "yellowberryseed": { + "category": "medical", + "title": "Yellow Berry Seed", + "disc": "These yellow berry seeds can be planted in the ground and grown to collect additional food.\\n\\nPlanting these seeds in a planter, and then watering them with large quantities of water yields significantly more Corn and faster groth." + }, + "yellowperch": { + "category": "medical", + "title": "Yellow Perch", + "disc": "A Yellow Perch, commonly found in freshwater rivers." + }, + "candycaneclub": { + "category": "medical", + "title": "Candy Cane Club", + "disc": "Smash some faces with this large piece of candy" + }, + "12gaugebuckshot": { + "category": "ammo", + "title": "12 Gauge Buckshot", + "disc": "Ammunition for a Shotgun." + }, + "12gaugeslug": { + "category": "ammo", + "title": "12 Gauge Slug", + "disc": "Single large projectile for a Shotgun." + }, + "40mmhegrenade": { + "category": "ammo", + "title": "40mm HE Grenade", + "disc": "Ammunition for a 40mm Grenade Launcher." + }, + "40mmshotgunround": { + "category": "ammo", + "title": "40mm Shotgun Round", + "disc": "Ammunition for a 40mm Grenade Launcher." + }, + "40mmsmokegrenade": { + "category": "ammo", + "title": "40mm Smoke Grenade", + "disc": "Ammunition for a 40mm Grenade Launcher." + }, + "556rifleammo": { + "category": "ammo", + "title": "5.56 Rifle Ammo", + "disc": "Ammunition for a Rifle. Loses velocity when fired over long distances resulting in slightly decreased damage." + }, + "bonearrow": { + "category": "ammo", + "title": "Bone Arrow", + "disc": "An Arrow equipped with a large bone arrowhead making it very easy to hit targets at the expense of damage" + }, + "explosive556rifleammo": { + "category": "ammo", + "title": "Explosive 5.56 Rifle Ammo", + "disc": "This ammo explodes on contact dealing a small amount of fragmentation damage to nearby objects." + }, + "firearrow": { + "category": "ammo", + "title": "Fire Arrow", + "disc": "A fuel soaked arrow, ignite it by aiming." + }, + "hv556rifleammo": { + "category": "ammo", + "title": "HV 5.56 Rifle Ammo", + "disc": "This ammunition travels faster, resulting in less drop and slightly higher damage when fired over long distances." + }, + "hvpistolammo": { + "category": "ammo", + "title": "HV Pistol Ammo", + "disc": "This ammunition travels faster, resulting in less drop and slightly higher damage when fired over long distances." + }, + "handmadeshell": { + "category": "ammo", + "title": "Handmade Shell", + "disc": "Shoddy ammo with multiple projectiles." + }, + "highvelocityarrow": { + "category": "ammo", + "title": "High Velocity Arrow", + "disc": "Lighter, faster arrow that deals less damage." + }, + "highvelocityrocket": { + "category": "ammo", + "title": "High Velocity Rocket", + "disc": "Fast moving rocket ammunition. Short to medium range self-propelled, unguided rocket which deals large splash damage on impact but less damage than a normal rocket." + }, + "incendiary556rifleammo": { + "category": "ammo", + "title": "Incendiary 5.56 Rifle Ammo", + "disc": "Slower moving ammunition that deals fire damage. There's a small chance it will start a fire." + }, + "incendiarypistolbullet": { + "category": "ammo", + "title": "Incendiary Pistol Bullet", + "disc": "Slower moving ammunition that deals fire damage. There's a small chance it will start a fire." + }, + "incendiaryrocket": { + "category": "ammo", + "title": "Incendiary Rocket", + "disc": "Creates flames upon impact." + }, + "mlrsrocket": { + "category": "ammo", + "title": "MLRS Rocket", + "disc": "A rocket intended for use in an MLRS (Multiple Launch Rocket System)." + }, + "nailgunnails": { + "category": "ammo", + "title": "Nailgun Nails", + "disc": "Standard nailgun ammunition" + }, + "pistolbullet": { + "category": "ammo", + "title": "Pistol Bullet", + "disc": "Ammunition for a Pistol. Loses velocity when fired over long distances resulting in slightly decreased damage." + }, + "rocket": { + "category": "ammo", + "title": "Rocket", + "disc": "Ammunition for a Rocket Launcher. A short to medium range self-propelled, unguided rocket which deals large splash damage on impact." + }, + "samammo": { + "category": "ammo", + "title": "SAM Ammo", + "disc": "Ammunition for a Sam Site, This missile contains a rudimentary guidance system to help it navigate through strong winds." + }, + "smokerocketwip": { + "category": "ammo", + "title": "Smoke Rocket WIP!!!!", + "disc": "Emits thick, visibility blocking smoke upon impact." + }, + "speargunspear": { + "category": "ammo", + "title": "Speargun Spear", + "disc": "Ammunition for a speargun." + }, + "torpedo": { + "category": "ammo", + "title": "Torpedo", + "disc": "A torpedo for use in a submarine. Fires ahead in a straight line." + }, + "woodenarrow": { + "category": "ammo", + "title": "Wooden Arrow", + "disc": "An arrow for a Hunting Bow and Crossbow." + }, + "flameturret": { + "category": "traps", + "title": "Flame Turret", + "disc": "Automated Flame turret. Requires Low Grade Fuel. Sprays flames when triggered." + }, + "homemadelandmine": { + "category": "traps", + "title": "Homemade Landmine", + "disc": "Homemade Landmine. If you stand on one, you can ask a friend to disarm it before it explodes." + }, + "samsite": { + "category": "traps", + "title": "SAM Site", + "disc": "A surface to air rocket site. Requires 25 electricity to function." + }, + "shotguntrap": { + "category": "traps", + "title": "Shotgun Trap", + "disc": "A shotgun trap triggered by movement, place near doorways and load with handmade shells." + }, + "snaptrap": { + "category": "traps", + "title": "Snap Trap", + "disc": "A metal trap that can injure or even kill people when stepped on. Can be picked up after been triggered." + }, + "woodenfloorspikes": { + "category": "traps", + "title": "Wooden Floor Spikes", + "disc": "A set of spikes that will slow down and hurt anyone that walks over them." + }, + "electricfuse": { + "category": "res", + "title": "Electric Fuse", + "disc": "An unreliable electric fuse. Will allow electrical passthrough for a period of time." + }, + "emptypropanetank": { + "category": "res", + "title": "Empty Propane Tank", + "disc": "Strong metal object." + }, + "gears": { + "category": "res", + "title": "Gears", + "disc": "A selection of gears. Some functional, some not." + }, + "metalblade": { + "category": "res", + "title": "Metal Blade", + "disc": "A Metal Blade for making melee weapons." + }, + "metalpipe": { + "category": "res", + "title": "Metal Pipe", + "disc": "Metal Pipe." + }, + "metalspring": { + "category": "res", + "title": "Metal Spring", + "disc": "A metal spring. Used to provide motion or resistance in objects." + }, + "riflebody": { + "category": "res", + "title": "Rifle Body", + "disc": "The firing mechanism of a rifle. Used in construction of a weapon that can fire 5.56 ammo fully automatic." + }, + "roadsigns": { + "category": "res", + "title": "Road Signs", + "disc": "Some road signs made of metal." + }, + "rope": { + "category": "res", + "title": "Rope", + "disc": "A Length of Rope." + }, + "smgbody": { + "category": "res", + "title": "SMG Body", + "disc": "The firing mechanism of a submachinegun. Used in construction of a weapon that can fire pistol ammo fully automatic." + }, + "semiautomaticbody": { + "category": "res", + "title": "Semi Automatic Body", + "disc": "The firing mechanism of a semi automatic weapon." + }, + "sewingkit": { + "category": "res", + "title": "Sewing Kit", + "disc": "A Sewing kit. Used to make advanced clothing." + }, + "sheetmetal": { + "category": "res", + "title": "Sheet Metal", + "disc": "Sheet metal scraps." + }, + "tarp": { + "category": "res", + "title": "Tarp", + "disc": "A waterproof tarp." + }, + "techtrash": { + "category": "res", + "title": "Tech Trash", + "disc": "A collection of random tech parts." + }, + "bluekeycard": { + "category": "res", + "title": "Blue Keycard", + "disc": "A keycard with medium level clearance." + }, + "greenkeycard": { + "category": "res", + "title": "Green Keycard", + "disc": "A low level clearance card granting access to basic areas." + }, + "redkeycard": { + "category": "res", + "title": "Red Keycard", + "disc": "A keycard with advanced clearance, grants access to top level areas" + }, + "key": { + "category": "tools", + "title": "Door Key", + "disc": "A key to a door, created from a Lock. Keep this item safe; if lost you'll be unable to open the door again!" + }, + "smallpresent": { + "category": "tools", + "title": "Small Present", + "disc": "A small stocking stuffer present, Collect 10 to upgrade to a larger present." + }, + "mediumpresent": { + "category": "tools", + "title": "Medium Present", + "disc": "A medium present, might be good! Collect 5 to upgrade to a larger present." + }, + "largepresent": { + "category": "tools", + "title": "Large Present", + "disc": "A Large Present, the best there is. Unwrap it now!" + }, + "specialpresent": { + "category": "tools", + "title": "Special Present", + "disc": "A Special Present containing resources, festive furniture, and unique holiday items. A true holiday miracle!" + }, + "autoturret": { + "category": "electrical", + "title": "Auto Turret", + "disc": "This automated electric sentry turret will engage and neutralize any moving targets it has line of sight to. You must equip it with a projectile weapon and the corresponding ammunition. Note : The turret will search for targets in a 180 degree arc facing *you* when you place it. Requires 10 power." + }, + "audioalarm": { + "category": "electrical", + "title": "Audio alarm", + "disc": "A speaker which will emit a loud warning alarm when powered." + }, + "ceilinglight": { + "category": "electrical", + "title": "Ceiling light", + "disc": "A small ceiling mounted light source." + }, + "rootcombiner": { + "category": "electrical", + "title": "Root combiner", + "disc": "This object combines two root electrical sources into a single signal. Helpful for stringing together low energy batteries or solar panels to produce higher power output. Can be wired in series, can not be used with any non energy producing electrical components." + }, + "electricalbranch": { + "category": "electrical", + "title": "Electrical branch", + "disc": "This object allows you to branch power off from a main line by a set amount." + }, + "memorycell": { + "category": "electrical", + "title": "Memory cell", + "disc": "A 1 bit storage component. SET input will set the value to 1 CLEAR input sets the value to 0. Output will provide connected power if value is 1, Inverted output will provide connected power if value is 0. This is also known as a D-Type Flip Flop." + }, + "blocker": { + "category": "electrical", + "title": "Blocker", + "disc": "This object prevents passthrough while power is received through its second input." + }, + "randswitch": { + "category": "electrical", + "title": "RAND Switch", + "disc": "This switch will allow passthrough based on a random number. Each time the SET input receives power it will roll true or false to allow passthrough." + }, + "splitter": { + "category": "electrical", + "title": "Splitter", + "disc": "Splits an electrical signal into 3 multiple signals. The amount passed through is equal to the input amount divided by the number of used output slots." + }, + "windturbine": { + "category": "electrical", + "title": "Wind turbine", + "disc": "Converts kinetic enegry harvested from the wind into electricity. Amount generated will vary depending on wind speed. Higher altitudes will yield stronger winds." + }, + "switch": { + "category": "electrical", + "title": "Switch", + "disc": "A simple electric switch." + }, + "andswitch": { + "category": "electrical", + "title": "AND Switch", + "disc": "A logic gate that allows eletrical passthrough if BOTH inputs receives power, passthrough amount is the greater of either power source." + }, + "orswitch": { + "category": "electrical", + "title": "OR Switch", + "disc": "A logic gate that allows eletrical passthrough if EITHER input receives power, passthrough amount is the greater of either power source." + }, + "xorswitch": { + "category": "electrical", + "title": "XOR Switch", + "disc": "An exclusive-or logic gate that allows eletrical passthrough if ONLY ONE input receives power, passthrough amount is whichever single input is active. if BOTH inputs recieve power, passthrough will be zero." + }, + "button": { + "category": "electrical", + "title": "Button", + "disc": "A simple electric button." + }, + "largesolarpanel": { + "category": "electrical", + "title": "Large solar panel", + "disc": "A solar panel which converts sunlight into energy. The amount of energy generated is dependent on the sun's intensity and angle to the panel." + }, + "largerechargeablebattery": { + "category": "electrical", + "title": "Large rechargeable battery", + "disc": "A Large Rechargeable Battery. Must have a minimum charge of 5 seconds to discharge. Can be wired in series. Charging rate is dependant on power in, with a maximum of 80%% efficiency." + }, + "mediumrechargeablebattery": { + "category": "electrical", + "title": "Medium rechargeable battery", + "disc": "A Medium Rechargeable Battery. Must have a minimum charge of 5 seconds to discharge. Can be wired in series. Charging rate is dependant on power in, with a maximum of 80%% efficiency." + }, + "smallrechargeablebattery": { + "category": "electrical", + "title": "Small rechargeable battery", + "disc": "A Small Rechargeable Battery. Must have a minimum charge of 5 seconds to discharge. Can be wired in series. Charging rate is dependant on power in, with a maximum of 80%% efficiency." + }, + "electricfurnace": { + "category": "electrical", + "title": "Electric furnace", + "disc": "An electrical version of a furnace that uses electricity instead of a fuel source." + }, + "smallgenerator": { + "category": "electrical", + "title": "Small generator", + "disc": "A small electric generator powered by Low Grade Fuel that outputs 40 power." + }, + "wiretool": { + "category": "electrical", + "title": "Wire tool", + "disc": "A tool used to make connections between electrical objects. Aim at an object and click on an input/output handle, the click on another object's input/output handle to form a connection. Holding right mouse will clear or cancel a connection. " + }, + "laserdetector": { + "category": "electrical", + "title": "Laser Detector", + "disc": "A gate which allows power to flow while a player is in the beam" + }, + "hbhfsensor": { + "category": "electrical", + "title": "HBHF Sensor", + "disc": "A Hearbeat, Breathing, Humidity and Footstep sensor. Passthrough is equal to the number of humans detected in a 10m radius." + }, + "doorcontroller": { + "category": "electrical", + "title": "Door Controller", + "disc": "A Door Controller. Will manipulate the state of the closest door when it recieves power." + }, + "electricheater": { + "category": "electrical", + "title": "Electric Heater", + "disc": "Provides warmth in a radius when on." + }, + "pressurepad": { + "category": "electrical", + "title": "Pressure Pad", + "disc": "A gate which allows power to flow while a player is standing on it." + } +} \ No newline at end of file diff --git a/rsx-protocol/src/main/resources/items/items.csv b/rsx-protocol/src/main/resources/items/items.csv new file mode 100644 index 0000000..bb5faf8 --- /dev/null +++ b/rsx-protocol/src/main/resources/items/items.csv @@ -0,0 +1,219 @@ +rid,name,category,material,nid,damage,range,cooldown,reach,durability,durability_max,wood,ore,skinning,ammo,ammo_type,weapon_id,gun,throw,model,icon,zoom_x,zoom_y,zoom_z,zoom_count,heal,fast_heal,calories,hydration,radiation,bleeding,consume_time,food_cooldown,eat_sound,armor_projectile,armor_melee,armor_bite,armor_cold,armor_explosion,armor_radiation,armor_speed_reduction,armor_slot +ironaxe,,tools,metalwood,2048,25,3,31,4,300,300,85,,1,,,,,1,,hatchet,1,4,1,17,,,,,,,,,,,,,,,,, +boneclub,Club,weapon,metalwood,3072,16,3,16,4,300,300,60,44,0.5,,,,,1,,boneclub,0,10,0,20,,,,,,,,,,,,,,,,, +largewoodbox,Wood Box,items,wood,516,,,,,300,300,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +blueberries,,medical,rubber,2562,,,,,,,,,,,,,,,,,,,,,0,10,30,20,0,0,5,18,,,,,,,,, +metalfacemask,Facemask,clothes,metalhollow,1542,,,,,800,800,,,,,,,,,,,,,,,,,,,,,,,,50,70,8,-4,8,0,0,hat +burlapboots,Shoes,clothes,cloth,1543,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,5,5,2,3,0,2,0,boots +woodpants,Armor Pants,clothes,wood,1544,,,,,400,400,,,,,,,,,,,,,,,,,,,,,,,,10,40,5,0,5,5,0,kilt +hmlmg,,weapon,gun,3081,,,,200,2500,2500,,,,6,2,13,1,,hmlmg,hmlmg,-5.5,2.9,3.5,20,,,,,,,,,,,,,,,,, +hidepants,Pants,clothes,leather,1548,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,10,10,8,4,0,2,0,pants +cookedchicken,Chicken,medical,meat,2572,,,,,,,,,,,,,,,,,,,,,10,0,40,3,0,0,5,20,,,,,,,,, +homemadelandmine,Landmine,traps,metalmedium,4097,,,,,200,200,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sulfur,,res,charcol,1039,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +mushroom,,medical,meat,2576,,,,,,,,,,,,,,,,,,,,,0,3,15,5,0,0,5,18,,,,,,,,, +metalblade,Blade,res,metalhollow,1043,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +beancangrenade,Grenade,weapon,canfull,3089,,,,,,,,,,,,,,,,beancangrenade,,,,,,,,,,,,,,,,,,,,, +pistolbullet,Bullet,ammo,metal,3592,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +cookedpork,Pork,medical,meat,2577,,,,,,,,,,,,,,,,,,,,,5,0,60,1,0,0,5,20,,,,,,,,, +cookeddeermeat,Deer Meat,medical,meat,2579,,,,,,,,,,,,,,,,,,,,,10,0,40,3,0,0,5,20,,,,,,,,, +mediumpresent,Present,tools,leather,2053,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +semiautomaticrifle,Rifle,weapon,gun,3095,,,,200,1300,1300,,,,6,2,8,1,,semiautomaticrifle,semiautomaticrifle,-4.99,1.1,1.8,15,,,,,,,,,,,,,,,,, +gunpowder,Powder,res,snow,1052,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +hqm_ore,Quality Metal Ore,res,stone,1056,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +tanktop,Top,clothes,leather,1571,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,10,10,3,2,0,2,0,plate +customsmg,SMG,weapon,gun,3100,,,,200,800,800,,,,8,0,5,1,,customsmg,customsmg,-5.51,1.6,2,15,,,,,,,,,,,,,,,,, +12gaugebuckshot,Gauge Buckshot,ammo,leather,3584,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +rawhumanmeat,Human Meat,medical,,2589,,,,,,,,,,,,,,,,,,,,,0,-9,5,-3,0,0,5,18,,,,,,,,, +woodendoor,Door,building,wood,13,,,,,200,200,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +buckethelmet,Helmet,clothes,metalthinhollow,1579,,,,,400,400,,,,,,,,,,,,,,,,,,,,,,,,20,50,8,6,8,4,0,helmet +lr300assaultrifle,Assault Rifle,weapon,gun,3104,,,,200,2500,2500,,,,30,2,10,1,,lr300assaultrifle,lr300assaultrifle,-5.33,0.55,5,15,,,,,,,,,,,,,,,,, +baseballcap,Cap,clothes,cloth,1536,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,10,10,3,7,0,1,0,helmet +targetingcomputer,Computer,res,smalldevice,1025,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +waterpipeshotgun,Shotgun,weapon,gun,3078,,,,200,200,200,,,,1,8,15,1,,waterpipeshotgun,waterpipeshotgun,-3.79,2.65,3,15,,,,,,,,,,,,,,,,, +burlaphelmet,Headwrap,clothes,cloth,1541,,,,,300,0,,,,,,,,,,,,,,,,,,,,,,,,15,15,3,7,0,2,0,hat +rawchickenbreast,Chicken Breast,medical,meat,2567,,,,,,,,,,,,,,,,,,,,,-9,0,20,0,0,0,5,20,,,,,,,,, +emptytunacan,Tuna Can,res,canempty,1035,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +boneknife,Knife,weapon,metalwood,3083,16,3,16,4,250,250,,,1,,,,,1,,boneknife,0,7,0,20,,,,,,,,,,,,,,,,, +rawwolfmeat,Wolf Meat,medical,,2571,,,,,,,,,,,,,,,,,,,,,-9,0,20,0,0,0,5,20,,,,,,,,, +heavyhelmet,Plate Helmet,clothes,metalhollowlarge,1547,,,,,1000,1000,,,,,,,,,,,,,,,,,,,,,,,,90,80,13,-17,17,7,20,hat +mp5a4,,weapon,gun,3086,,,,200,1500,1500,,,,8,0,7,1,,mp5a4,mp5a4,-5.89,2.05,5.5,15,,,,,,,,,,,,,,,,, +boots,,clothes,leather,1551,,,,,400,0,,,,,,,,,,,,,,,,,,,,,,,,10,10,3,8,0,3,0,boots +stonepickaxe,Pickaxe,tools,metalwood,2064,17,3,32,4,160,160,,80,0.71,,,,,1,,stonepickaxe,2,4,1,17,,,,,,,,,,,,,,,,, +thompson,,weapon,gun,3087,,,,200,800,800,,,,7,0,6,1,,thompson,thompson,-3.878,1.6,1.9,15,,,,,,,,,,,,,,,,, +woodenladder,Ladder,building,woodmed,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +key,Key,tools,metal,2068,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +wolfskull,Skull,res,bone,1048,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +salvagedhammer,Hammer,tools,metalmediumrattley,2051,30,3,19,4,400,400,40,59,0.45,,,,,1,,salvagedhammer,-3,5,0,20,,,,,,,,,,,,,,,,, +snowjacket,Jacket,clothes,cloth,1558,,,,,400,0,,,,,,,,,,,,,,,,,,,,,,,,20,30,5,17,0,20,0,plate +binoculars,,tools,gun,2055,,,,,,,,,,,,,,,,binoculars,,,,,,,,,,,,,,,,,,,,, +huntingbow,Bow,weapon,woodlight,3094,,,,200,100,100,,,,,6,19,1,,huntingbow,huntingbow,-5.25,7.8,6,15,,,,,,,,,,,,,,,,, +woodenarrow,Arrow,ammo,woodlight,3589,,,,,,,,,,,,,,,,woodenarrow,,,,,,,,,,,,,,,,,,,,, +handmadeshell,Shell,ammo,leather,3591,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +largemedkit,Medkit,medical,plasticmedium,2582,,,,,,,,,,,,,,,,largemedkit,,,,,100,10,0,0,0,-100,0,20,,,,,,,,, +tshirt,,clothes,cloth,1573,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,15,15,5,6,0,3,0,plate +crudeoil,Oil,res,leather,1062,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +charcoal,,res,charcol,1064,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +hv556rifleammo,5.56 Rifle Ammo,ammo,metal,3588,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +metalfragment,Fragments,res,metal,1024,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +furnace,,items,stone,517,,,,,500,500,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +hqm,Quality Metal,res,metal,1028,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +cookedwolfmeat,Wolf Meat,medical,meat,2560,,,,,,,,,,,,,,,,,,,,,5,0,60,1,0,0,5,20,,,,,,,,, +building_plan,Plan,building,paper,5,,,,,,,,,,,,,,,,buildingplan,,,,,,,,,,,,,,,,,,,,, +rocketlauncher,Launcher,weapon,metalhollowlarge,3080,,,,200,,,,,,,,,1,,,rocketlauncher,-3.45,6,3.5,20,,,,,,,,,,,,,,,,, +sheetmetal,Metal,res,metalsheet,1032,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +chocolatebar,Bar,medical,leather,2569,,,,,,,,,,,,,,,,,,,,,1,0,100,2,0,0,5,18,,,,,,,,, +emptypropanetank,Propane Tank,res,metalhollow,1033,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +lowgradefuel,Grade Fuel,res,liquidcontainer,1037,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +12gaugeslug,Gauge Slug,ammo,leather,3587,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +waterjug,Jug,medical,plasticjunk,2574,,,,,,,,,,,,,,,,waterjug,,,,,,,,,,,,,,,,,,,,, +wood,,res,wood,1040,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +hat,Hat,clothes,cloth,1552,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,10,10,3,7,0,1,0,helmet +balaclava,Balaclava,clothes,cloth,1556,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,15,15,3,13,3,3,0,hat +dieselbarrel,Fuel,res,metalbars,1050,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +stoneaxe,Hatchet,tools,metalwood,2056,15,3,32,4,160,160,80,,0.59,,,,,1,,stoneaxe,2,4,1,17,,,,,,,,,,,,,,,,, +jacket,,clothes,cloth,1562,,,,,400,0,,,,,,,,,,,,,,,,,,,,,,,,15,20,7,10,0,5,0,jacket +bonehelmet,Helmet,clothes,leather,1565,,,,,400,400,,,,,,,,,,,,,,,,,,,,,,,,25,40,13,0,7,4,0,hat +roadsignkilt,Sign Kilt,clothes,metalsheet,1568,,,,,600,600,,,,,,,,,,,,,,,,,,,,,,,,20,25,10,-8,0,0,0,kilt +roadsigns,Signs,res,metalsheet,1058,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +hideboots,Boots,clothes,leather,1574,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,5,5,3,5,0,2,0,boots +metalspring,Spring,res,spring,1061,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +semiautomaticbody,Automatic Body,res,gun,1065,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +explosive556rifleammo,5.56 Rifle Ammo,ammo,metal,3593,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +woodhelmet,Armor Helmet,clothes,wood,1538,,,,,400,400,,,,,,,,,,,,,,,,,,,,,,,,15,25,3,7,0,2,0,helmet +mace,,weapon,metalhollow,3074,60,3,35,4,300,300,,,0.83,,,,,1,,mace,-4,8,0,20,,,,,,,,,,,,,,,,, +boltactionrifle,Action Rifle,weapon,gun,3075,,,,200,600,600,,,,1,2,11,1,,boltactionrifle,boltactionrifle,-3.35,2.585,3.2,15,,,,,,,,,,,,,,,,, +rope,,res,cloth,1029,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +booniehat,Hat,clothes,cloth,1540,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,15,15,3,7,0,2,0,helmet +machete,,weapon,metalmediumrattley,3079,35,3,20,4,300,300,,,0.83,,,,,1,,machete,2,8,-1,25,,,,,,,,,,,,,,,,, +sleepingbag,Bag,items,cloth,522,,,,,200,200,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +apple,,medical,thickrubbery,2568,,,,,,,,,,,,,,,,,,,,,0,2,30,15,0,0,5,18,,,,,,,,, +spas12shotgun,Shotgun,weapon,gun,3084,,,,200,800,800,,,,6,8,18,1,,spas12shotgun,spas12shotgun,-2.435,2.1,3,20,,,,,,,,,,,,,,,,, +combatknife,Knife,weapon,metalknife,3085,35,3,16,4,250,250,,,1,,,,,1,,combatknife,2,6,0,25,,,,,,,,,,,,,,,,, +metalwindowbars,Window Bars,building,metalbars,7,,,,,500,500,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +codelock,Lock,building,smalldevice,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +pythonrevolver,Revolver,weapon,gun,3088,,,,200,600,600,,,,6,0,3,1,,pythonrevolver,pythonrevolver,-4.6,2.3,2,15,,,,,,,,,,,,,,,,, +recycler,,items,wood,521,,,,,750,750,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +roadsignjacket,Sign Jacket,clothes,metalsheet,1555,,,,,500,500,,,,,,,,,,,,,,,,,,,,,,,,20,25,10,-8,0,0,0,jacket +salvagedicepick,Icepick,tools,metalmediumrattley,2049,40,3,28,4,1500,1500,,100,0.71,,,,,1,,salvagedicepick,-2.4,4.5,0,25,,,,,,,,,,,,,,,,, +pumpshotgun,Shotgun,weapon,gun,3091,,,,200,400,400,,,,4,8,17,1,,pumpshotgun,pumpshotgun,-3.477,2.95,4,15,,,,,,,,,,,,,,,,, +hideskirt,Skirt,clothes,leather,1560,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,10,10,3,7,0,2,0,pants +stonespear,Spear,weapon,metalwood,3093,35,5,32,6,400,400,,,,,,,,1,,stonespear,2,8,-1,25,,,,,,,,,,,,,,,,, +shotguntrap,Trap,traps,wood,4096,,,,,300,300,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +woodenwindowbars,Window Bars,building,woodmed,3,,,,,250,250,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +eokapistol,Pistol,weapon,gun,3098,,,,200,100,100,,,,1,8,14,1,,eokapistol,eokapistol,0,0,0,1000000,,,,,,,,,,,,,,,,, +cactusflesh,Flesh,medical,,2580,,,,,,,,,,,,,,,,,,,,,3,0,5,20,0,0,5,18,,,,,,,,, +canoftuna,of Tuna,medical,canfull,2581,,,,,,,,,,,,,,,,,,,,,2,0,50,15,0,0,5,18,,,,,,,,, +stone,,res,stone,1055,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +roadsigngloves,Gloves,clothes,cloth,1569,,,,,600,0,,,,,,,,,,,,,,,,,,,,,,,,10,25,10,-8,0,0,0,gloves +workbenchlevel2,Bench Level 2,items,metallarge,512,,,,,500,500,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +hoodie,,clothes,cloth,1570,,,,,400,0,,,,,,,,,,,,,,,,,,,,,,,,20,15,6,8,0,5,0,plate +workbenchlevel1,Bench Level 1,items,wood,513,,,,,500,500,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +workbenchlevel3,Bench Level 3,items,metallarge,515,,,,,750,750,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +antirad,Pills,medical,pills,2586,,,,,,,,,,,,,,,,none,,,,,0,0,0,-10,-25,0,10,30,,,,,,,,, +556rifleammo,Rifle Ammo,ammo,metal,3585,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +rawdeermeat,Deer Meat,medical,meat,2587,,,,,,,,,,,,,,,,,,,,,-9,0,20,0,0,0,5,20,,,,,,,,, +woodchest,Chestplate,clothes,wood,1576,,,,,400,400,,,,,,,,,,,,,,,,,,,,,,,,10,40,5,0,5,5,0,jacket +leathergloves,Gloves,clothes,cloth,1578,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,5,5,2,5,0,4,0,gloves +crossbow,,weapon,gun,3073,,,,200,200,200,,,,1,6,20,1,,crossbow,crossbow,-7.4,4.1,5,15,,,,,,,,,,,,,,,,, +nailgun,,weapon,gun,3076,,,,200,100,100,,,,6,5,21,1,,nailgun,nailgun,-3.315,1.667,3.5,15,,,,,,,,,,,,,,,,, +granolabar,Bar,medical,leather,2565,,,,,,,,,,,,,,,,,,,,,5,0,60,0,0,0,5,20,,,,,,,,, +snaptrap,Trap,traps,metalmedium,4099,,,,,200,200,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +timedexplosivecharge,Explosive Charge,tools,leather,2059,,,,,,,,,,,,,,,,timedexplosivecharge,,,,,,,,,,,,,,,,,,,,, +meatpork,Pork,medical,meat,2570,,,,,,,,,,,,,,,,,,,,,-2,0,60,0,0,0,5,20,,,,,,,,, +woodstoragebox,Storage Box,items,woodmed,514,,,,,150,150,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sheetmetaldoubledoor,Metal Double Door,building,metalhollowlarge,10,,,,,250,250,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +gears,,res,metalmedium,1045,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +metalchest,Chest Plate,clothes,metalhollowlarge,1557,,,,,800,800,,,,,,,,,,,,,,,,,,,,,,,,25,20,3,-8,0,0,0,jacket +rawbearmeat,Bear Meat,medical,meat,2578,,,,,,,,,,,,,,,,,,,,,-2,0,10,10,0,0,5,20,,,,,,,,, +humanskull,Skull,res,bone,1049,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +revolver,,weapon,gun,3092,,,,200,300,300,,,,4,0,1,1,,revolver,revolver,-3.2,1.102,3.3,15,,,,,,,,,,,,,,,,, +smgbody,Body,res,gun,1051,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +satchelcharge,Charge,tools,leather,2057,,,,,,,,,,,,,,,,satchelcharge,,,,,,,,,,,,,,,,,,,,, +garagedoor,Door,building,metalsheet,4,,,,,600,600,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +leather,,res,leather,1054,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +smallpresent,Present,tools,leather,2061,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +animalfat,Fat,res,meat,1063,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +candycaneclub,Cane Club,medical,leather,2588,,,,,,,,,,,,,,,,,,,,,16,0,300,100,0,0,5,20,,,,,,,,, +riothelmet,Helmet,clothes,leather,1577,,,,,400,400,,,,,,,,,,,,,,,,,,,,,,,,25,80,13,6,8,5,0,helmet +supplysignal,Signal,tools,gun,2065,,,,,,,,,,,,,,,,supplysignal,,,,,,,,,,,,,,,,,,,,, +bluekeycard,Keycard,res,plasticjunk,1026,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +assaultrifle,Rifle,weapon,gun,3077,,,,200,2000,2000,,,,4,2,12,1,,assaultrifle,assaultrifle,-6.49,2.4,4.5,20,,,,,,,,,,,,,,,,, +nailgunnails,Nails,ammo,metal,3590,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +bandage,,medical,cloth,2566,,,,,,,,,,,,,,,,bandage,,,,,0,5,0,0,0,-50,80,22,,,,,,,,, +rock,,tools,stone,2060,10,2,40,3,100,100,50,35,0.5,,,,,1,,rock,5,7,1,15,,,,,,,,,,,,,,,,, +burlapchest,Shirt,clothes,cloth,1546,,,,,300,0,,,,,,,,,,,,,,,,,,,,,,,,10,10,3,7,0,2,0,plate +scrap,,res,metalmediumloose,1034,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +floorgrill,grill,building,metalbars,6,,,,,250,250,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +bonearmor,Armor,clothes,leather,1549,,,,,400,400,,,,,,,,,,,,,,,,,,,,,,,,25,40,13,0,7,4,0,boots +potato,,medical,thickrubbery,2573,,,,,,,,,,,,,,,,,,,,,6,0,125,5,0,0,5,18,,,,,,,,, +metal_ore,Ore,res,stone,1041,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sewingkit,Kit,res,bone,1042,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +shorts,,clothes,cloth,1553,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,10,10,3,7,0,2,0,pants +tarp,,res,tarp,1044,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +woodenspear,Spear,weapon,metalwood,3090,25,4,32,5,250,250,,,,,,,,1,,woodenspear,2,8,-1,25,,,,,,,,,,,,,,,,, +plantfiber,Fiber,res,meat,1047,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +toolcupboard,Cupboard,building,wood,1,,,,,100,100,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +m92pistol,Pistol,weapon,gun,3096,,,,200,800,800,,,,15,0,4,1,,m92pistol,m92pistol,-5.18,2.1,3.3,15,,,,,,,,,,,,,,,,, +torch,,tools,metalwood,2058,,,,,,,,,,,,,,,,torch,,,,,,,,,,,,,,,,,,,,, +heavypants,Plate Pants,clothes,metalhollowlarge,1566,,,,,1000,1000,,,,,,,,,,,,,,,,,,,,,,,,75,70,12,-17,17,7,30,kilt +m39rifle,Rifle,weapon,gun,3099,,,,200,1500,1500,,,,20,2,9,1,,m39rifle,m39rifle,-8.08,3.8,4,20,,,,,,,,,,,,,,,,, +smallwaterbottle,Water Bottle,medical,plasticjunk,2584,,,,,,,,,,,,,,,,smallwaterbottle,,,,,,,,,,,,,,,,,,,,, +shirt,,clothes,cloth,1572,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,15,15,5,6,0,3,0,plate +strengthenedglasswindow,Glass Window,building,metalbars,9,,,,,350,350,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +researchtable,Table,items,metallarge,518,,,,,200,200,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +keylock,Lock,building,metal,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +lowhp,,items,,519,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +armoreddoor,Door,building,metalhollowlarge,14,,,,,1000,1000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +salvagedcleaver,Cleaver,weapon,metalwood,3102,60,3,35,4,400,400,,,0.83,,,,,1,,salvagedcleaver,-3,5,0,20,,,,,,,,,,,,,,,,, +armoreddoubledoor,Double Door,building,metalhollowlarge,0,,,,,1000,1000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +pants,,clothes,cloth,1539,,,,,400,0,,,,,,,,,,,,,,,,,,,,,,,,15,15,3,8,0,5,0,pants +sulfur_ore,Ore,res,stone,1027,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +corn,,medical,leather,2561,,,,,,,,,,,,,,,,,,,,,6,0,75,10,0,0,5,20,,,,,,,,, +cookedbearmeat,Bear Meat,medical,meat,2564,,,,,,,,,,,,,,,,,,,,,5,0,100,1,0,0,5,20,,,,,,,,, +explosives,,res,leather,1030,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +salvagedsword,Sword,weapon,metalmediumrattley,3082,50,3,25,4,300,300,,,0.83,,,,,1,,salvagedsword,-3.16,5.5,0,20,,,,,,,,,,,,,,,,, +hidehalterneck,Halterneck,clothes,leather,1545,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,10,10,3,7,0,2,0,plate +techtrash,Trash,res,plasticjunk,1036,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +largepresent,Present,tools,leather,2062,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +hazmatsuit,Suit,clothes,tarp,1550,,,,,1000,1000,,,,,,,,,,,,,,,,,,,,,,,,30,30,8,8,5,50,0,suit +horsedung,Dung,res,meat,1038,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +campfire,,items,wood,520,,,,,50,50,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +hideponcho,Poncho,clothes,leather,1554,,,,,400,400,,,,,,,,,,,,,,,,,,,,,,,,10,40,5,8,5,8,0,jacket +electricfuse,Fuse,res,smalldevice,1046,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +hvpistolammo,Pistol Ammo,ammo,metal,3594,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +salvagedaxe,Axe,tools,metalmediumrattley,2054,40,3,28,4,1500,1500,100,,1,,,,,1,,salvagedaxe,3,4,0,30,,,,,,,,,,,,,,,,, +hagi,,clothes,,1564,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,plate +wolfheaddress,Headdress,clothes,leather,1567,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,30,60,10,6,13,4,0,helmet +torch_fire,,tools,metalwood,2066,,,,,,,,,,,,,,,,torch,,,,,,,,,,,,,,,,,,,,, +cloth,,res,cloth,1066,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +longsword,,weapon,metalmediumrattley,3103,75,3,35,4,400,400,,,0.83,,,,,1,,longsword,-3,6,0,20,,,,,,,,,,,,,,,,, +coffecanhelmet,Can Helmet,clothes,metalthinhollow,1537,,,,,500,500,,,,,,,,,,,,,,,,,,,,,,,,35,50,8,0,8,5,0,hat +hammer,,tools,metalwood,2050,,,,,,,,,,,,,,,,hammer,,,,,,,,,,,,,,,,,,,,, +death,,tools,,2052,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +blackraspberries,Raspberries,medical,,2563,,,,,,,,,,,,,,,,,,,,,0,10,40,20,0,0,5,18,,,,,,,,, +reinforcedglasswindow,Glass Window,building,metalbars,2,,,,,500,500,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +metalpipe,Pipe,res,metalhollow,1031,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +highvelocityarrow,Velocity Arrow,ammo,woodlight,3586,,,,,,,,,,,,,,,,highvelocityarrow,,,,,,,,,,,,,,,,,,,,, +medicalsyringe,Syringe,medical,smalldevice,2575,,,,,,,,,,,,,,,,medicalsyringe,,,,,20,15,0,0,-10,0,14,10,,,,,,,,, +wooddoubledoor,Double Door,building,wood,12,,,,,200,200,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sheetmetaldoor,Metal Door,building,metalhollowlarge,15,,,,,250,250,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +maskbandana,Mask,clothes,cloth,1559,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,5,10,3,10,0,3,0,hat +burlappants,Trousers,clothes,cloth,1561,,,,,300,0,,,,,,,,,,,,,,,,,,,,,,,,10,10,3,7,0,2,0,pants +semiautomaticpistol,Pistol,weapon,gun,3097,,,,200,600,600,,,,4,0,2,1,,semiautomaticpistol,semiautomaticpistol,-5.35,2.69,4.3,15,,,,,,,,,,,,,,,,, +woodenfloorspikes,Floor Spikes,traps,wood,4098,,,,,100,100,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +hidechest,Vest,clothes,leather,1563,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,15,15,8,5,0,3,0,plate +fertilizer,,res,meat,1053,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +canofbeans,of Beans,medical,canfull,2583,,,,,,,,,,,,,,,,,,,,,4,0,100,25,0,0,5,18,,,,,,,,, +riflebody,Body,res,gun,1057,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +cookedhumanmeat,Human Meat,medical,,2585,,,,,,,,,,,,,,,,,,,,,2,0,30,-30,0,0,5,18,,,,,,,,, +backpack,,tools,,2063,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +bonefragments,Fragments,res,bone,1059,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +cctvcamera,Camera,res,smalldevice,1060,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +burlapgloves,Gloves,clothes,cloth,1575,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,0,5,2,4,0,3,0,gloves +longtshirt,T-Shirt,clothes,cloth,1580,,,,,200,0,,,,,,,,,,,,,,,,,,,,,,,,15,15,6,10,0,5,0,plate +doublebarrelshotgun,Barrel Shotgun,weapon,gun,3101,,,,200,200,200,,,,1,8,16,1,,doublebarrelshotgun,doublebarrelshotgun,-8.6,5.8,5,15,,,,,,,,,,,,,,,,, +pumpkin,,medical,thickrubbery,2590,,,,,,,,,,,,,,,,,,,,,10,0,100,30,0,0,5,18,,,,,,,,, +ironpickaxe,,tools,metalwood,2067,30,3,32,4,300,300,,100,0.45,,,,,1,,pickaxe,1,4,1,17,,,,,,,,,,,,,,,,, +emptycanofbeans,Can Of Beans,res,canempty,1067,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +heavychest,Plate Jacket,clothes,metalhollowlarge,1581,,,,,1000,1000,,,,,,,,,,,,,,,,,,,,,,,,75,70,12,-17,17,7,30,plate diff --git a/rsx-protocol/src/main/resources/items/sounds.csv b/rsx-protocol/src/main/resources/items/sounds.csv new file mode 100644 index 0000000..4c773f4 --- /dev/null +++ b/rsx-protocol/src/main/resources/items/sounds.csv @@ -0,0 +1,2005 @@ +id,file,volume,pitch +animals.flyswarm,animals/fly-swarm,1.0,1.0 +cloth.bulletimpact,impactbullet/clothbulletimpact1,1.0,1 +cloth.bulletimpact,impactbullet/clothbulletimpact2,1.0,1 +cloth.bulletimpact,impactbullet/clothbulletimpact3,1.0,1 +cloth.bulletimpact,impactbullet/clothbulletimpact4,1.0,1 +cloth.pickup,pickup/cloth/hemp_1,1.0,1 +cloth.pickup,pickup/cloth/hemp_2,1.0,1 +day,day1,1.0,1.0 +day,day2,1.0,1.0 +day,day3,1.0,1.0 +dirt.bulletimpact,impactbullet/dirtbulletimpact1,1.0,1 +dirt.bulletimpact,impactbullet/dirtbulletimpact1,1.0,1.1 +dirt.bulletimpact,impactbullet/dirtbulletimpact1,1.0,0.92 +dirt.bulletimpact,impactbullet/dirtbulletimpact1,1.0,1.05 +drink,misc/player/drink1,1.0,1 +drink,misc/player/drink2,1.0,1 +drink,misc/player/drink3,1.0,1 +drink,misc/player/drink4,1.0,1 +entity.boat.paddle_water,entity/boat/paddle_water1,0.8,1.0 +entity.boat.paddle_water,entity/boat/paddle_water2,0.8,1.0 +entity.boat.paddle_water,entity/boat/paddle_water3,0.8,1.0 +entity.boat.paddle_water,entity/boat/paddle_water4,0.8,1.0 +entity.boat.paddle_water,entity/boat/paddle_water5,0.8,1.0 +entity.boat.paddle_water,entity/boat/paddle_water6,0.8,1.0 +entity.boat.paddle_water,entity/boat/paddle_water7,0.8,1.0 +entity.boat.paddle_water,entity/boat/paddle_water8,0.8,1.0 +entity.bobber.retrieve,entity/bobber/retrieve1,1.0,2.4 +entity.bobber.retrieve,entity/bobber/retrieve2,1.0,2.4 +entity.endereye.death,entity/endereye/dead1,1.3,1.0 +entity.endereye.death,entity/endereye/dead2,1.3,1.0 +entity.generic.eat,meds/eat1,1.0,1 +entity.generic.eat,meds/eat2,1.0,1 +entity.generic.eat,meds/eat3,1.0,1 +entity.generic.eat,meds/eat4,1.0,1 +entity.generic.eat,meds/eat5,1.0,1 +entity.guardian.ambient,entity/guardian/ambient1,0.1,1.0 +entity.guardian.ambient,entity/guardian/ambient2,0.1,1.0 +entity.guardian.ambient,entity/guardian/ambient3,0.1,1.0 +entity.guardian.ambient,entity/guardian/ambient4,0.1,1.0 +entity.husk.ambient,mob/husk/idle1,1.0,1 +entity.husk.ambient,mob/husk/idle2,1.0,1 +entity.husk.ambient,mob/husk/idle3,1.0,1 +entity.parrot.ambient,mob/parrot/idle1,0.7,1.0 +entity.parrot.ambient,mob/parrot/idle2,0.7,1.0 +entity.parrot.ambient,mob/parrot/idle3,0.7,1.0 +entity.parrot.ambient,mob/parrot/idle4,0.7,1.0 +entity.parrot.ambient,mob/parrot/idle5,0.7,1.0 +entity.parrot.ambient,mob/parrot/idle6,0.7,1.0 +entity.parrot.death,mob/parrot/death1,1.0,0.9 +entity.parrot.death,mob/parrot/death2,1.0,0.9 +entity.parrot.death,mob/parrot/death3,1.0,0.9 +entity.parrot.death,mob/parrot/death4,1.0,0.7 +entity.parrot.hurt,mob/parrot/hurt1,1.0,0.8 +entity.parrot.hurt,mob/parrot/hurt2,1.0,0.9 +entity.parrot.hurt,mob/parrot/hurt1,1.0,0.9 +entity.parrot.imitate.blaze,entity.blaze.ambient,0.4,1.8 +entity.parrot.imitate.creeper,entity.creeper.primed,0.6,1.8 +entity.parrot.imitate.elder_guardian,entity.elder_guardian.ambient_land,0.7,1.8 +entity.parrot.imitate.enderdragon,entity.enderdragon.ambient,0.2,1.8 +entity.parrot.imitate.enderman,entity.endermen.ambient,0.5,1.7 +entity.parrot.imitate.endermite,entity.endermite.ambient,0.7,1.8 +entity.parrot.imitate.evocation_illager,entity.evocation_illager.ambient,0.6,1.8 +entity.parrot.imitate.ghast,entity.ghast.ambient,0.7,1.8 +entity.parrot.imitate.husk,entity.husk.ambient,0.6,1.8 +entity.parrot.imitate.illusion_illager,entity.illusion_illager.ambient,0.7,1.8 +entity.parrot.imitate.magmacube,entity.magmacube.squish,0.6,1.8 +entity.parrot.imitate.polar_bear,entity.polar_bear.ambient,0.7,0.8 +entity.parrot.imitate.shulker,entity.shulker.ambient,0.4,1.7 +entity.parrot.imitate.silverfish,entity.silverfish.ambient,0.7,1.8 +entity.parrot.imitate.skeleton,entity.skeleton.ambient,1,1.7 +entity.parrot.imitate.slime,entity.slime.squish,0.6,1.8 +entity.parrot.imitate.spider,entity.spider.ambient,0.6,1.8 +entity.parrot.imitate.stray,entity.stray.ambient,0.6,1.6 +entity.parrot.imitate.vex,entity.vex.ambient,0.8,1.6 +entity.parrot.imitate.vindication_illager,entity.vindication_illager.ambient,0.6,1.7 +entity.parrot.imitate.witch,entity.witch.ambient,0.5,1.8 +entity.parrot.imitate.wither,entity.wither.ambient,0.2,1.8 +entity.parrot.imitate.wither_skeleton,entity.wither_skeleton.ambient,0.7,1.8 +entity.parrot.imitate.wolf,entity.wolf.ambient,0.6,1.8 +entity.parrot.imitate.zombie,entity.zombie.ambient,0.6,1.8 +entity.parrot.imitate.zombie_pigman,entity.zombie_pig.ambient,0.4,1.8 +entity.parrot.imitate.zombie_villager,entity.zombie_villager.ambient,0.6,1.8 +entity.player.attack.crit,entity/player/attack/crit1,0.7,1.0 +entity.player.attack.crit,entity/player/attack/crit2,0.7,1.0 +entity.player.attack.crit,entity/player/attack/crit3,0.7,1.0 +entity.player.attack.knockback,entity/player/attack/knockback1,0.7,1.0 +entity.player.attack.knockback,entity/player/attack/knockback2,0.7,1.0 +entity.player.attack.knockback,entity/player/attack/knockback3,0.7,1.0 +entity.player.attack.knockback,entity/player/attack/knockback4,0.7,1.0 +entity.player.attack.nodamage,entity/player/attack/weak1,0.7,1.0 +entity.player.attack.nodamage,entity/player/attack/weak2,0.7,1.0 +entity.player.attack.nodamage,entity/player/attack/weak3,0.7,1.0 +entity.player.attack.nodamage,entity/player/attack/weak4,0.7,1.0 +entity.player.attack.strong,entity/player/attack/strong1,0.6,1.0 +entity.player.attack.strong,entity/player/attack/strong2,0.6,1.0 +entity.player.attack.strong,entity/player/attack/strong3,0.6,1.0 +entity.player.attack.strong,entity/player/attack/strong4,0.6,1.0 +entity.player.attack.strong,entity/player/attack/strong5,0.7,1.0 +entity.player.attack.strong,entity/player/attack/strong6,0.7,1.0 +entity.player.attack.sweep,entity/player/attack/sweep1,0.7,1.0 +entity.player.attack.sweep,entity/player/attack/sweep2,0.7,1.0 +entity.player.attack.sweep,entity/player/attack/sweep3,0.7,1.0 +entity.player.attack.sweep,entity/player/attack/sweep4,0.7,1.0 +entity.player.attack.sweep,entity/player/attack/sweep5,0.7,1.0 +entity.player.attack.sweep,entity/player/attack/sweep6,0.7,1.0 +entity.player.attack.sweep,entity/player/attack/sweep7,0.7,1.0 +entity.player.attack.weak,entity/player/attack/weak1,0.7,1.0 +entity.player.attack.weak,entity/player/attack/weak2,0.7,1.0 +entity.player.attack.weak,entity/player/attack/weak3,0.7,1.0 +entity.player.attack.weak,entity/player/attack/weak4,0.7,1.0 +entity.player.hurt_drown,entity/player/hurt/drown1,1.0,1.0 +entity.player.hurt_drown,entity/player/hurt/drown2,1.0,1.0 +entity.player.hurt_drown,entity/player/hurt/drown3,1.0,1.0 +entity.player.hurt_drown,entity/player/hurt/drown4,1.0,1.0 +entity.player.hurt_on_fire,entity/player/hurt/fire_hurt1,1.0,1.0 +entity.player.hurt_on_fire,entity/player/hurt/fire_hurt2,1.0,1.0 +entity.player.hurt_on_fire,entity/player/hurt/fire_hurt3,1.0,1.0 +entity.polar_bear.warning,mob/polarbear/warning3,1.0,0.9 +entity.rabbit.ambient,mob/rabbit/idle1,0.25,1.0 +entity.rabbit.ambient,mob/rabbit/idle2,0.25,1.0 +entity.rabbit.ambient,mob/rabbit/idle3,0.25,1.0 +entity.rabbit.ambient,mob/rabbit/idle4,0.25,1.0 +entity.rabbit.death,mob/rabbit/bunnymurder,0.5,1.0 +entity.rabbit.hurt,mob/rabbit/hurt1,0.5,1.0 +entity.rabbit.hurt,mob/rabbit/hurt2,0.5,1.0 +entity.rabbit.hurt,mob/rabbit/hurt3,0.5,1.0 +entity.rabbit.hurt,mob/rabbit/hurt4,0.5,1.0 +entity.rabbit.jump,mob/rabbit/hop1,0.1,1.0 +entity.rabbit.jump,mob/rabbit/hop2,0.1,1.0 +entity.rabbit.jump,mob/rabbit/hop3,0.1,1.0 +entity.rabbit.jump,mob/rabbit/hop4,0.1,1.0 +entity.witch.ambient,entity/witch/ambient5,1.0,0.9 +flesh.bulletimpact,impactbullet/fleshbulletimpact1,1.0,1 +flesh.bulletimpact,impactbullet/fleshbulletimpact2,1.0,1 +flesh.bulletimpact,impactbullet/fleshbulletimpact3,1.0,1 +glass.bulletimpact,impactbullet/glassbulletimpact1,1.0,1 +glass.bulletimpact,impactbullet/glassbulletimpact2,1.0,1 +glass.bulletimpact,impactbullet/glassbulletimpact3,1.0,1 +gui.inventoryclose,gui/inventoryclose,1.0,1.0 +gui.inventoryopen,gui/inventoryopen,1.0,1.0 +guns.bowshot,guns/bowshoot,1.0,1 +guns.bowshot,guns/bowshoot,1.0,1.1 +guns.bowshot,guns/bowshoot,1.0,0.92 +guns.bowshot,guns/bowshoot,1.0,1.05 +guns.crossbowshot,guns/crossbowshot,1.0,1 +guns.crossbowshot,guns/crossbowshot,1.0,1.1 +guns.crossbowshot,guns/crossbowshot,1.0,0.92 +guns.crossbowshot,guns/crossbowshot,1.0,1.05 +guns.eokarock,guns/eokakonchanaya0,1.0,1.0 +guns.eokarock,guns/eokakonchanaya1,1.0,1.0 +guns.semishot,guns/semishot,1.0,1 +guns.semishot,guns/semishot,1.0,1.07 +guns.semishot,guns/semishot,1.0,0.95 +guns.semishot,guns/semishot,1.0,1.03 +hitmarker,misc/player/hitmarker,1.0,1 +hitmarker,misc/player/hitmarker,1.0,1.1 +hitmarker,misc/player/hitmarker,1.0,0.92 +hitmarker,misc/player/hitmarker,1.0,1.05 +item.bucket.empty,item/bucket/empty1,1.0,0.9 +item.elytra.flying,item/elytra/elytra_loop,0.6,1.0 +loot.hemp,hemp,1.0,1 +loot.hemp,hemp,1.0,1.1 +loot.hemp,hemp,1.0,0.92 +loot.hemp,hemp,1.0,1.05 +metal.bulletimpact,impactbullet/metalbulletimpact1,1.0,1 +metal.bulletimpact,impactbullet/metalbulletimpact2,1.0,1 +metal.bulletimpact,impactbullet/metalbulletimpact3,1.0,1 +metal.bulletimpact,impactbullet/metalbulletimpact4,1.0,1 +mushroom.pickup,pickup/mushroom/mushroom_1,1.0,1 +mushroom.pickup,pickup/mushroom/mushroom_2,1.0,1 +music.creative,music.game,1.0,1.0 +music.creative,music/game/creative/creative1,1.0,1.0 +music.creative,music/game/creative/creative2,1.0,1.0 +music.creative,music/game/creative/creative3,1.0,1.0 +music.creative,music/game/creative/creative4,1.0,1.0 +music.creative,music/game/creative/creative5,1.0,1.0 +music.creative,music/game/creative/creative6,1.0,1.0 +music.credits,music/game/end/credits,1.0,1.0 +music.dragon,music/game/end/boss,1.0,1.0 +music.end,music/game/end/end,1.0,1.0 +music.game,music/game/calm1,1.0,1.0 +music.game,music/game/calm2,1.0,1.0 +music.game,music/game/calm3,1.0,1.0 +music.game,music/game/hal1,1.0,1.0 +music.game,music/game/hal2,1.0,1.0 +music.game,music/game/hal3,1.0,1.0 +music.game,music/game/hal4,1.0,1.0 +music.game,music/game/nuance1,1.0,1.0 +music.game,music/game/nuance2,1.0,1.0 +music.game,music/game/piano1,1.0,1.0 +music.game,music/game/piano2,1.0,1.0 +music.game,music/game/piano3,1.0,1.0 +music.menu,music/menu/menu1,1.0,1.0 +music.menu,music/menu/menu2,1.0,1.0 +music.menu,music/menu/menu3,1.0,1.0 +music.menu,music/menu/menu4,1.0,1.0 +music.nether,music/game/nether/nether1,1.0,1.0 +music.nether,music/game/nether/nether2,1.0,1.0 +music.nether,music/game/nether/nether3,1.0,1.0 +music.nether,music/game/nether/nether4,1.0,1.0 +night,night1,1.0,1.0 +night,night2,1.0,1.0 +night,night3,1.0,1.0 +npcsay,npcsound1,1.0,1.0 +npcsay,npcsound2,1.0,1.0 +ore.pickup,pickup/ore/ore_1,1.0,1 +ore.pickup,pickup/ore/ore_2,1.0,1 +pumpkin.pickup,pickup/pumpkin/pumpkin_1,1.0,1 +pumpkin.pickup,pickup/pumpkin/pumpkin_2,1.0,1 +pumpkin.pickup,pickup/pumpkin/pumpkin_3,1.0,1 +record.11,records/11,1.0,1.0 +record.13,records/13,1.0,1.0 +record.blocks,records/blocks,1.0,1.0 +record.cat,records/cat,1.0,1.0 +record.chirp,records/chirp,1.0,1.0 +record.far,records/far,1.0,1.0 +record.mall,records/mall,1.0,1.0 +record.mellohi,records/mellohi,1.0,1.0 +record.stal,records/stal,1.0,1.0 +record.strad,records/strad,1.0,1.0 +record.wait,records/wait,1.0,1.0 +record.ward,records/ward,1.0,1.0 +rust.animals.bear.attack,animals/bear/sound/bear-attack-001,1.0,1 +rust.animals.bear.attack,animals/bear/sound/bear-attack-002,1.0,1 +rust.animals.bear.attack,animals/bear/sound/bear-attack-003,1.0,1 +rust.animals.bear.breath,animals/bear/sound/bear-breath-001,1.0,1 +rust.animals.bear.breath,animals/bear/sound/bear-breath-002,1.0,1 +rust.animals.bear.breath,animals/bear/sound/bear-breath-003,1.0,1 +rust.animals.bear.breath,animals/bear/sound/bear-breath-004,1.0,1 +rust.animals.bear.death,animals/bear/sound/bear-death-001,1.0,1 +rust.animals.bear.death,animals/bear/sound/bear-death-002,1.0,1 +rust.animals.bear.flinch,animals/bear/sound/bear-flinch-001,1.0,1 +rust.animals.bear.flinch,animals/bear/sound/bear-flinch-002,1.0,1 +rust.animals.bear.footstep.concrete,animals/bear/footsteps/bear-footstep-concrete-001,1.0,1 +rust.animals.bear.footstep.concrete,animals/bear/footsteps/bear-footstep-concrete-002,1.0,1 +rust.animals.bear.footstep.concrete,animals/bear/footsteps/bear-footstep-concrete-003,1.0,1 +rust.animals.bear.footstep.concrete,animals/bear/footsteps/bear-footstep-concrete-004,1.0,1 +rust.animals.bear.footstep.concrete,animals/bear/footsteps/bear-footstep-concrete-005,1.0,1 +rust.animals.bear.footstep.concrete,animals/bear/footsteps/bear-footstep-concrete-006,1.0,1 +rust.animals.bear.footstep.concrete,animals/bear/footsteps/bear-footstep-concrete-007,1.0,1 +rust.animals.bear.footstep.concrete,animals/bear/footsteps/bear-footstep-concrete-008,1.0,1 +rust.animals.bear.footstep.dirt,animals/bear/footsteps/bear-footstep-dirt-001,1.0,1 +rust.animals.bear.footstep.dirt,animals/bear/footsteps/bear-footstep-dirt-002,1.0,1 +rust.animals.bear.footstep.dirt,animals/bear/footsteps/bear-footstep-dirt-003,1.0,1 +rust.animals.bear.footstep.dirt,animals/bear/footsteps/bear-footstep-dirt-004,1.0,1 +rust.animals.bear.footstep.dirt,animals/bear/footsteps/bear-footstep-dirt-005,1.0,1 +rust.animals.bear.footstep.dirt,animals/bear/footsteps/bear-footstep-dirt-006,1.0,1 +rust.animals.bear.footstep.dirt,animals/bear/footsteps/bear-footstep-dirt-007,1.0,1 +rust.animals.bear.footstep.dirt,animals/bear/footsteps/bear-footstep-dirt-008,1.0,1 +rust.animals.bear.footstep.grass,animals/bear/footsteps/bear-footstep-grass-001,1.0,1 +rust.animals.bear.footstep.grass,animals/bear/footsteps/bear-footstep-grass-002,1.0,1 +rust.animals.bear.footstep.grass,animals/bear/footsteps/bear-footstep-grass-003,1.0,1 +rust.animals.bear.footstep.grass,animals/bear/footsteps/bear-footstep-grass-004,1.0,1 +rust.animals.bear.footstep.grass,animals/bear/footsteps/bear-footstep-grass-005,1.0,1 +rust.animals.bear.footstep.grass,animals/bear/footsteps/bear-footstep-grass-006,1.0,1 +rust.animals.bear.footstep.grass,animals/bear/footsteps/bear-footstep-grass-007,1.0,1 +rust.animals.bear.footstep.grass,animals/bear/footsteps/bear-footstep-grass-008,1.0,1 +rust.animals.bear.footstep.sand,animals/bear/footsteps/bear-footstep-sand-001,1.0,1 +rust.animals.bear.footstep.sand,animals/bear/footsteps/bear-footstep-sand-002,1.0,1 +rust.animals.bear.footstep.sand,animals/bear/footsteps/bear-footstep-sand-003,1.0,1 +rust.animals.bear.footstep.sand,animals/bear/footsteps/bear-footstep-sand-004,1.0,1 +rust.animals.bear.footstep.sand,animals/bear/footsteps/bear-footstep-sand-005,1.0,1 +rust.animals.bear.footstep.sand,animals/bear/footsteps/bear-footstep-sand-006,1.0,1 +rust.animals.bear.footstep.sand,animals/bear/footsteps/bear-footstep-sand-007,1.0,1 +rust.animals.bear.footstep.sand,animals/bear/footsteps/bear-footstep-sand-008,1.0,1 +rust.animals.bear.footstep.snow,animals/bear/footsteps/bear-footstep-snow-001,1.0,1 +rust.animals.bear.footstep.snow,animals/bear/footsteps/bear-footstep-snow-002,1.0,1 +rust.animals.bear.footstep.snow,animals/bear/footsteps/bear-footstep-snow-003,1.0,1 +rust.animals.bear.footstep.snow,animals/bear/footsteps/bear-footstep-snow-004,1.0,1 +rust.animals.bear.footstep.snow,animals/bear/footsteps/bear-footstep-snow-005,1.0,1 +rust.animals.bear.footstep.snow,animals/bear/footsteps/bear-footstep-snow-006,1.0,1 +rust.animals.bear.footstep.snow,animals/bear/footsteps/bear-footstep-snow-007,1.0,1 +rust.animals.bear.footstep.snow,animals/bear/footsteps/bear-footstep-snow-008,1.0,1 +rust.animals.bear.footstep.wood,animals/bear/footsteps/bear-footstep-wood-001,1.0,1 +rust.animals.bear.footstep.wood,animals/bear/footsteps/bear-footstep-wood-002,1.0,1 +rust.animals.bear.footstep.wood,animals/bear/footsteps/bear-footstep-wood-003,1.0,1 +rust.animals.bear.footstep.wood,animals/bear/footsteps/bear-footstep-wood-004,1.0,1 +rust.animals.bear.footstep.wood,animals/bear/footsteps/bear-footstep-wood-005,1.0,1 +rust.animals.bear.footstep.wood,animals/bear/footsteps/bear-footstep-wood-006,1.0,1 +rust.animals.bear.footstep.wood,animals/bear/footsteps/bear-footstep-wood-007,1.0,1 +rust.animals.bear.footstep.wood,animals/bear/footsteps/bear-footstep-wood-008,1.0,1 +rust.animals.bear.sleeping,animals/bear/sound/sleeping-001,1.0,1 +rust.animals.bear.sleeping,animals/bear/sound/sleeping-002,1.0,1 +rust.animals.bear.sleeping,animals/bear/sound/sleeping-003,1.0,1 +rust.animals.bear.sleeping,animals/bear/sound/sleeping-004,1.0,1 +rust.animals.boar.attack1,animals/boar/sound/attack-1,1.0,1 +rust.animals.boar.attack1,animals/boar/sound/attack-1,1.0,0.9 +rust.animals.boar.attack1,animals/boar/sound/attack-1,1.0,1.1 +rust.animals.boar.attack2,animals/boar/sound/attack-2,1.0,1 +rust.animals.boar.attack2,animals/boar/sound/attack-2,1.0,0.9 +rust.animals.boar.attack2,animals/boar/sound/attack-2,1.0,1.1 +rust.animals.boar.death,animals/boar/sound/death-1,1.0,1 +rust.animals.boar.death,animals/boar/sound/death-2,1.0,1 +rust.animals.boar.flinch,animals/boar/sound/flinch-1,1.0,1 +rust.animals.boar.flinch,animals/boar/sound/flinch-2,1.0,1 +rust.animals.boar.footstep.concrete,animals/boar/footsteps/boar-footstep-concrete-hard-001,1.0,1 +rust.animals.boar.footstep.concrete,animals/boar/footsteps/boar-footstep-concrete-hard-002,1.0,1 +rust.animals.boar.footstep.concrete,animals/boar/footsteps/boar-footstep-concrete-hard-003,1.0,1 +rust.animals.boar.footstep.concrete,animals/boar/footsteps/boar-footstep-concrete-hard-004,1.0,1 +rust.animals.boar.footstep.dirt,animals/boar/footsteps/boar-footstep-dirt-hard-001,1.0,1 +rust.animals.boar.footstep.dirt,animals/boar/footsteps/boar-footstep-dirt-hard-002,1.0,1 +rust.animals.boar.footstep.dirt,animals/boar/footsteps/boar-footstep-dirt-hard-003,1.0,1 +rust.animals.boar.footstep.dirt,animals/boar/footsteps/boar-footstep-dirt-hard-004,1.0,1 +rust.animals.boar.footstep.forest,animals/boar/footsteps/boar-footstep-forest-hard-001,1.0,1 +rust.animals.boar.footstep.forest,animals/boar/footsteps/boar-footstep-forest-hard-002,1.0,1 +rust.animals.boar.footstep.forest,animals/boar/footsteps/boar-footstep-forest-hard-003,1.0,1 +rust.animals.boar.footstep.forest,animals/boar/footsteps/boar-footstep-forest-hard-004,1.0,1 +rust.animals.boar.footstep.grass,animals/boar/footsteps/boar-footstep-grass-hard-001,1.0,1 +rust.animals.boar.footstep.grass,animals/boar/footsteps/boar-footstep-grass-hard-002,1.0,1 +rust.animals.boar.footstep.grass,animals/boar/footsteps/boar-footstep-grass-hard-003,1.0,1 +rust.animals.boar.footstep.grass,animals/boar/footsteps/boar-footstep-grass-hard-004,1.0,1 +rust.animals.boar.footstep.sand,animals/boar/footsteps/boar-footstep-sand-hard-001,1.0,1 +rust.animals.boar.footstep.sand,animals/boar/footsteps/boar-footstep-sand-hard-002,1.0,1 +rust.animals.boar.footstep.sand,animals/boar/footsteps/boar-footstep-sand-hard-003,1.0,1 +rust.animals.boar.footstep.sand,animals/boar/footsteps/boar-footstep-sand-hard-004,1.0,1 +rust.animals.boar.footstep.snow,animals/boar/footsteps/boar-footstep-snow-hard-001,1.0,1 +rust.animals.boar.footstep.snow,animals/boar/footsteps/boar-footstep-snow-hard-002,1.0,1 +rust.animals.boar.footstep.snow,animals/boar/footsteps/boar-footstep-snow-hard-003,1.0,1 +rust.animals.boar.footstep.snow,animals/boar/footsteps/boar-footstep-snow-hard-004,1.0,1 +rust.animals.boar.footstep.wood,animals/boar/footsteps/boar-footstep-wood-hard-001,1.0,1 +rust.animals.boar.footstep.wood,animals/boar/footsteps/boar-footstep-wood-hard-002,1.0,1 +rust.animals.boar.footstep.wood,animals/boar/footsteps/boar-footstep-wood-hard-003,1.0,1 +rust.animals.boar.footstep.wood,animals/boar/footsteps/boar-footstep-wood-hard-004,1.0,1 +rust.animals.boar.sleeping,animals/boar/sound/sleeping-001,1.0,1 +rust.animals.boar.sleeping,animals/boar/sound/sleeping-002,1.0,1 +rust.animals.boar.sleeping,animals/boar/sound/sleeping-003,1.0,1 +rust.animals.boar.snort,animals/boar/sound/boar-snort-001,1.0,1 +rust.animals.boar.snort,animals/boar/sound/boar-snort-002,1.0,1 +rust.animals.boar.snort,animals/boar/sound/boar-snort-003,1.0,1 +rust.animals.boar.snort.short,animals/boar/sound/boar-snort-short-001,1.0,1 +rust.animals.boar.snort.short,animals/boar/sound/boar-snort-short-002,1.0,1 +rust.animals.boar.snort.short,animals/boar/sound/boar-snort-short-003,1.0,1 +rust.animals.chicken.attack,animals/chicken/sound/attack-1,1.0,1 +rust.animals.chicken.attack,animals/chicken/sound/attack-2,1.0,1 +rust.animals.chicken.attack,animals/chicken/sound/attack-3,1.0,1 +rust.animals.chicken.cluck,animals/chicken/sound/cluck-1,1.0,1 +rust.animals.chicken.cluck,animals/chicken/sound/cluck-2,1.0,1 +rust.animals.chicken.flap.wings.short,animals/chicken/sound/flap-wings-short-1,1.0,1 +rust.animals.chicken.flap.wings.short,animals/chicken/sound/flap-wings-short-2,1.0,1 +rust.animals.chicken.flap.wings.short,animals/chicken/sound/flap-wings-short-3,1.0,1 +rust.animals.chicken.sleeping,animals/chicken/sound/sleeping-001,1.0,1 +rust.animals.chicken.sleeping,animals/chicken/sound/sleeping-002,1.0,1 +rust.animals.chicken.sleeping,animals/chicken/sound/sleeping-003,1.0,1 +rust.animals.stag.attack,animals/stag/sound/attack,1.0,1 +rust.animals.stag.attack,animals/stag/sound/attack-2,1.0,1 +rust.animals.stag.death,animals/stag/sound/death-1,1.0,1 +rust.animals.stag.death,animals/stag/sound/death-2,1.0,1 +rust.animals.stag.flinch,animals/stag/sound/flinch-1,1.0,1 +rust.animals.stag.flinch,animals/stag/sound/flinch-2,1.0,1 +rust.animals.stag.footstep.concrete,animals/stag/footsteps/stag-footstep-concrete-hard-001,1.0,1 +rust.animals.stag.footstep.concrete,animals/stag/footsteps/stag-footstep-concrete-hard-002,1.0,1 +rust.animals.stag.footstep.concrete,animals/stag/footsteps/stag-footstep-concrete-hard-003,1.0,1 +rust.animals.stag.footstep.concrete,animals/stag/footsteps/stag-footstep-concrete-hard-004,1.0,1 +rust.animals.stag.footstep.dirt,animals/stag/footsteps/stag-footstep-dirt-hard-001,1.0,1 +rust.animals.stag.footstep.dirt,animals/stag/footsteps/stag-footstep-dirt-hard-002,1.0,1 +rust.animals.stag.footstep.dirt,animals/stag/footsteps/stag-footstep-dirt-hard-003,1.0,1 +rust.animals.stag.footstep.dirt,animals/stag/footsteps/stag-footstep-dirt-hard-004,1.0,1 +rust.animals.stag.footstep.forest,animals/stag/footsteps/stag-footstep-forest-hard-001,1.0,1 +rust.animals.stag.footstep.forest,animals/stag/footsteps/stag-footstep-forest-hard-002,1.0,1 +rust.animals.stag.footstep.forest,animals/stag/footsteps/stag-footstep-forest-hard-003,1.0,1 +rust.animals.stag.footstep.forest,animals/stag/footsteps/stag-footstep-forest-hard-004,1.0,1 +rust.animals.stag.footstep.grass,animals/stag/footsteps/stag-footstep-grass-hard-001,1.0,1 +rust.animals.stag.footstep.grass,animals/stag/footsteps/stag-footstep-grass-hard-002,1.0,1 +rust.animals.stag.footstep.grass,animals/stag/footsteps/stag-footstep-grass-hard-003,1.0,1 +rust.animals.stag.footstep.grass,animals/stag/footsteps/stag-footstep-grass-hard-004,1.0,1 +rust.animals.stag.footstep.sand,animals/stag/footsteps/stag-footstep-grass-hard-001,1.0,1 +rust.animals.stag.footstep.sand,animals/stag/footsteps/stag-footstep-grass-hard-002,1.0,1 +rust.animals.stag.footstep.sand,animals/stag/footsteps/stag-footstep-grass-hard-003,1.0,1 +rust.animals.stag.footstep.sand,animals/stag/footsteps/stag-footstep-grass-hard-004,1.0,1 +rust.animals.stag.footstep.snow,animals/stag/footsteps/stag-footstep-snow-hard-001,1.0,1 +rust.animals.stag.footstep.snow,animals/stag/footsteps/stag-footstep-snow-hard-002,1.0,1 +rust.animals.stag.footstep.snow,animals/stag/footsteps/stag-footstep-snow-hard-003,1.0,1 +rust.animals.stag.footstep.snow,animals/stag/footsteps/stag-footstep-snow-hard-004,1.0,1 +rust.animals.stag.footstep.water,animals/stag/footsteps/stag-footstep-water-hard-001,1.0,1 +rust.animals.stag.footstep.water,animals/stag/footsteps/stag-footstep-water-hard-002,1.0,1 +rust.animals.stag.footstep.water,animals/stag/footsteps/stag-footstep-water-hard-003,1.0,1 +rust.animals.stag.footstep.water,animals/stag/footsteps/stag-footstep-water-hard-004,1.0,1 +rust.animals.stag.footstep.wood,animals/stag/footsteps/stag-footstep-wood-hard-001,1.0,1 +rust.animals.stag.footstep.wood,animals/stag/footsteps/stag-footstep-wood-hard-002,1.0,1 +rust.animals.stag.footstep.wood,animals/stag/footsteps/stag-footstep-wood-hard-003,1.0,1 +rust.animals.stag.footstep.wood,animals/stag/footsteps/stag-footstep-wood-hard-004,1.0,1 +rust.animals.stag.sleeping,animals/stag/sound/sleeping-001,1.0,1 +rust.animals.stag.sleeping,animals/stag/sound/sleeping-002,1.0,1 +rust.animals.stag.sleeping,animals/stag/sound/sleeping-003,1.0,1 +rust.animals.wolf.attack,animals/wolf/sound/attack-1,1.0,1 +rust.animals.wolf.attack,animals/wolf/sound/attack-2,1.0,1 +rust.animals.wolf.attack,animals/wolf/sound/attack-3,1.0,1 +rust.animals.wolf.attack,animals/wolf/sound/attack-4,1.0,1 +rust.animals.wolf.footstep.concrete,animals/wolf/footsteps/wolf-footstep-concrete-hard-001,1.0,1 +rust.animals.wolf.footstep.concrete,animals/wolf/footsteps/wolf-footstep-concrete-hard-002,1.0,1 +rust.animals.wolf.footstep.concrete,animals/wolf/footsteps/wolf-footstep-concrete-hard-003,1.0,1 +rust.animals.wolf.footstep.concrete,animals/wolf/footsteps/wolf-footstep-concrete-hard-004,1.0,1 +rust.animals.wolf.footstep.dirt,animals/wolf/footsteps/wolf-footstep-dirt-hard-001,1.0,1 +rust.animals.wolf.footstep.dirt,animals/wolf/footsteps/wolf-footstep-dirt-hard-002,1.0,1 +rust.animals.wolf.footstep.dirt,animals/wolf/footsteps/wolf-footstep-dirt-hard-003,1.0,1 +rust.animals.wolf.footstep.dirt,animals/wolf/footsteps/wolf-footstep-dirt-hard-004,1.0,1 +rust.animals.wolf.footstep.forest,animals/wolf/footsteps/wolf-footstep-forest-hard-001,1.0,1 +rust.animals.wolf.footstep.forest,animals/wolf/footsteps/wolf-footstep-forest-hard-002,1.0,1 +rust.animals.wolf.footstep.forest,animals/wolf/footsteps/wolf-footstep-forest-hard-003,1.0,1 +rust.animals.wolf.footstep.forest,animals/wolf/footsteps/wolf-footstep-forest-hard-004,1.0,1 +rust.animals.wolf.footstep.grass,animals/wolf/footsteps/wolf-footstep-grass-hard-001,1.0,1 +rust.animals.wolf.footstep.grass,animals/wolf/footsteps/wolf-footstep-grass-hard-002,1.0,1 +rust.animals.wolf.footstep.grass,animals/wolf/footsteps/wolf-footstep-grass-hard-003,1.0,1 +rust.animals.wolf.footstep.grass,animals/wolf/footsteps/wolf-footstep-grass-hard-004,1.0,1 +rust.animals.wolf.footstep.sand,animals/wolf/footsteps/wolf-footstep-sand-hard-001,1.0,1 +rust.animals.wolf.footstep.sand,animals/wolf/footsteps/wolf-footstep-sand-hard-002,1.0,1 +rust.animals.wolf.footstep.sand,animals/wolf/footsteps/wolf-footstep-sand-hard-003,1.0,1 +rust.animals.wolf.footstep.sand,animals/wolf/footsteps/wolf-footstep-sand-hard-004,1.0,1 +rust.animals.wolf.footstep.snow,animals/wolf/footsteps/wolf-footstep-snow-hard-001,1.0,1 +rust.animals.wolf.footstep.snow,animals/wolf/footsteps/wolf-footstep-snow-hard-002,1.0,1 +rust.animals.wolf.footstep.snow,animals/wolf/footsteps/wolf-footstep-snow-hard-003,1.0,1 +rust.animals.wolf.footstep.snow,animals/wolf/footsteps/wolf-footstep-snow-hard-004,1.0,1 +rust.animals.wolf.footstep.wood,animals/wolf/footsteps/wolf-footstep-wood-hard-001,1.0,1 +rust.animals.wolf.footstep.wood,animals/wolf/footsteps/wolf-footstep-wood-hard-002,1.0,1 +rust.animals.wolf.footstep.wood,animals/wolf/footsteps/wolf-footstep-wood-hard-003,1.0,1 +rust.animals.wolf.footstep.wood,animals/wolf/footsteps/wolf-footstep-wood-hard-004,1.0,1 +rust.animals.wolf.idle.growl,animals/wolf/sound/wolf-idle-growl-001,1.0,1 +rust.animals.wolf.idle.growl,animals/wolf/sound/wolf-idle-growl-002,1.0,1 +rust.animals.wolf.idle.growl,animals/wolf/sound/wolf-idle-growl-003,1.0,1 +rust.animals.wolf.sleeping,animals/wolf/sound/sleeping-001,1.0,1 +rust.animals.wolf.sleeping,animals/wolf/sound/sleeping-002,1.0,1 +rust.animals.wolf.sleeping,animals/wolf/sound/sleeping-003,1.0,1 +rust.animals.wolf.sleeping,animals/wolf/sound/sleeping-004,1.0,1 +rust.animals.wolf.whimper,animals/wolf/sound/whimper-1,1.0,1 +rust.animals.wolf.whimper,animals/wolf/sound/whimper-2,1.0,1 +rust.animals.wolf.whimper,animals/wolf/sound/whimper-3,1.0,1 +rust.animals.wolf.whimper,animals/wolf/sound/whimper-4,1.0,1 +rust.beancangrenade.boom,explosives/beancangrenade/beancan-grenade-explosion-1-mono,1.0,1 +rust.beancangrenade.boom,explosives/beancangrenade/beancan-grenade-explosion-2-mono,1.0,1 +rust.beancangrenade.boom.distant,explosives/beancangrenade/beancan-grenade-explosion-distant-1-mono,1.0,1 +rust.beancangrenade.boom.distant,explosives/beancangrenade/beancan-grenade-explosion-distant-2-mono,1.0,1 +rust.beancangrenade.bounce,explosives/beancangrenade/beancan-grenade-bounce-1-mono,1.0,1 +rust.beancangrenade.bounce,explosives/beancangrenade/beancan-grenade-bounce-2-mono,1.0,1 +rust.beancangrenade.bounce,explosives/beancangrenade/beancan-grenade-bounce-3-mono,1.0,1 +rust.build.repair,build/build-repair-1-mono,1.0,1 +rust.build.repair,build/build-repair-2-mono,1.0,1 +rust.build.repair,build/build-repair-3-mono,1.0,1 +rust.close.barbeque,furniture/barbeque/camper-bbq-close-001-stereo,1.0,1 +rust.close.barbeque,furniture/barbeque/camper-bbq-close-002-stereo,1.0,1 +rust.close.campfire,furniture/campfire/campfire-close-1-stereo,1.0,1 +rust.close.campfire,furniture/campfire/campfire-close-2-stereo,1.0,1 +rust.close.doormetal,furniture/doormetal/door-close-metal-1-mono,1.0,1 +rust.close.doormetal,furniture/doormetal/door-close-metal-2-mono,1.0,1 +rust.close.doubledoormetal,furniture/doubledoormetal/door-close-close-metal-1-mono,1.0,1 +rust.close.doubledoormetal,furniture/doubledoormetal/door-close-close-metal-2-mono,1.0,1 +rust.close.electricfurnace,furniture/electric/electricfurnace/electric-furnace-close-1-stereo,1.0,1 +rust.close.electricfurnace,furniture/electric/electricfurnace/electric-furnace-close-2-stereo,1.0,1 +rust.close.fuelcontainer,furniture/small-boat-close-fuel-container,2,1.0 +rust.close.furnace,furniture/furnace/furnace-close-1-stereo,1.0,1 +rust.close.furnace,furniture/furnace/furnace-close-2-stereo,1.0,1 +rust.close.highexternalstonegate,furniture/highexternalwall/door-large-metal-close-end-1,1.0,1 +rust.close.highexternalstonegate,furniture/highexternalwall/door-large-metal-close-end-2,1.0,1 +rust.close.highexternalwoodengate,furniture/highexternalwall/door-large-wood-close-end-1,1.0,1 +rust.close.highexternalwoodengate,furniture/highexternalwall/door-large-wood-close-end-2,1.0,1 +rust.close.largefurnace,furniture/largefurnace/large-furnace-close-001-stereo,1.0,1 +rust.close.largefurnace,furniture/largefurnace/large-furnace-close-002-stereo,1.0,1 +rust.close.largewoodbox,furniture/largewoodbox/large-wood-box-close-1-stereo,1.0,1 +rust.close.largewoodbox,furniture/largewoodbox/large-wood-box-close-2-stereo,1.0,1 +rust.close.metalshopfront,furniture/metalshopfront/shop-front-close-001,1.0,1 +rust.close.metalshopfront,furniture/metalshopfront/shop-front-close-002,1.0,1 +rust.close.mixingtable,furniture/mixingtable/mixing-table-close-001,1.0,1 +rust.close.mixingtable,furniture/mixingtable/mixing-table-close-002,1.0,1 +rust.close.woodstoragebox,furniture/smallwoodbox/small-wooden-box-close-1-stereo,1.0,1 +rust.close.woodstoragebox,furniture/smallwoodbox/small-wooden-box-close-2-stereo,1.0,1 +rust.cloth.damage,build/cloth/cloth-damage-1-mono,1.0,1 +rust.cloth.damage,build/cloth/cloth-damage-2-mono,1.0,1 +rust.cloth.damage,build/cloth/cloth-damage-3-mono,1.0,1 +rust.cloth.damage,build/cloth/cloth-damage-4-mono,1.0,1 +rust.crossbow.shoot.fps,guns/crossbowshot,2,1.0 +rust.crossbow.shoot.normal,guns/crossbowshot,1.0,1.0 +rust.drop.uibone,inventory/drop/ui-drop-bone-001,1.0,1 +rust.drop.uibone,inventory/drop/ui-drop-bone-002,1.0,1 +rust.drop.uibone,inventory/drop/ui-drop-bone-003,1.0,1 +rust.drop.uibone,inventory/drop/ui-drop-bone-004,1.0,1 +rust.drop.uicanempty,inventory/drop/ui-drop-can-empty-001,1.0,1 +rust.drop.uicanempty,inventory/drop/ui-drop-can-empty-002,1.0,1 +rust.drop.uicanempty,inventory/drop/ui-drop-can-empty-003,1.0,1 +rust.drop.uicanempty,inventory/drop/ui-drop-can-empty-004,1.0,1 +rust.drop.uicanfull,inventory/drop/ui-drop-can-full-001,1.0,1 +rust.drop.uicanfull,inventory/drop/ui-drop-can-full-002,1.0,1 +rust.drop.uicanfull,inventory/drop/ui-drop-can-full-003,1.0,1 +rust.drop.uicanfull,inventory/drop/ui-drop-can-full-004,1.0,1 +rust.drop.uichainlink,inventory/drop/ui-drop-chainlink-001,1.0,1 +rust.drop.uichainlink,inventory/drop/ui-drop-chainlink-002,1.0,1 +rust.drop.uichainlink,inventory/drop/ui-drop-chainlink-003,1.0,1 +rust.drop.uichainlink,inventory/drop/ui-drop-chainlink-004,1.0,1 +rust.drop.uicharcol,inventory/drop/ui-drop-charcol-001,1.0,1 +rust.drop.uicharcol,inventory/drop/ui-drop-charcol-002,1.0,1 +rust.drop.uicharcol,inventory/drop/ui-drop-charcol-003,1.0,1 +rust.drop.uicharcol,inventory/drop/ui-drop-charcol-004,1.0,1 +rust.drop.uicloth,inventory/drop/ui-drop-cloth-1,1.0,1 +rust.drop.uicloth,inventory/drop/ui-drop-cloth-2,1.0,1 +rust.drop.uicloth,inventory/drop/ui-drop-cloth-3,1.0,1 +rust.drop.uicloth,inventory/drop/ui-drop-cloth-4,1.0,1 +rust.drop.uifoliage,inventory/drop/ui-foliage-drop-01,1.0,1 +rust.drop.uifoliage,inventory/drop/ui-foliage-drop-02,1.0,1 +rust.drop.uifoliage,inventory/drop/ui-foliage-drop-03,1.0,1 +rust.drop.uigun,inventory/pickup/ui-pickup-gun-1,1.0,1 +rust.drop.uigun,inventory/pickup/ui-pickup-gun-2,1.0,1 +rust.drop.uigun,inventory/pickup/ui-pickup-gun-3,1.0,1 +rust.drop.uigun,inventory/pickup/ui-pickup-gun-4,1.0,1 +rust.drop.uileather,inventory/drop/ui-drop-leather-1,1.0,1 +rust.drop.uileather,inventory/drop/ui-drop-leather-2,1.0,1 +rust.drop.uileather,inventory/drop/ui-drop-leather-3,1.0,1 +rust.drop.uileather,inventory/drop/ui-drop-leather-4,1.0,1 +rust.drop.uiliquidcontainer,inventory/drop/ui-liquid-container-drop-01,1.0,1 +rust.drop.uiliquidcontainer,inventory/drop/ui-liquid-container-drop-02,1.0,1 +rust.drop.uiliquidcontainer,inventory/drop/ui-liquid-container-drop-03,1.0,1 +rust.drop.uimeat,inventory/drop/ui-drop-meat-1,1.0,1 +rust.drop.uimeat,inventory/drop/ui-drop-meat-2,1.0,1 +rust.drop.uimeat,inventory/drop/ui-drop-meat-3,1.0,1 +rust.drop.uimeat,inventory/drop/ui-drop-meat-4,1.0,1 +rust.drop.uimetal,inventory/drop/ui-drop-metal-1,1.0,1 +rust.drop.uimetal,inventory/drop/ui-drop-metal-2,1.0,1 +rust.drop.uimetal,inventory/drop/ui-drop-metal-3,1.0,1 +rust.drop.uimetal,inventory/drop/ui-drop-metal-4,1.0,1 +rust.drop.uimetalbars,inventory/drop/ui-drop-metal-bars-001,1.0,1 +rust.drop.uimetalbars,inventory/drop/ui-drop-metal-bars-002,1.0,1 +rust.drop.uimetalbars,inventory/drop/ui-drop-metal-bars-003,1.0,1 +rust.drop.uimetalbars,inventory/drop/ui-drop-metal-bars-004,1.0,1 +rust.drop.uimetalhollow,inventory/drop/ui-drop-metal-hollow-001,1.0,1 +rust.drop.uimetalhollow,inventory/drop/ui-drop-metal-hollow-002,1.0,1 +rust.drop.uimetalhollow,inventory/drop/ui-drop-metal-hollow-003,1.0,1 +rust.drop.uimetalhollow,inventory/drop/ui-drop-metal-hollow-004,1.0,1 +rust.drop.uimetalhollowlarge,inventory/drop/ui-drop-metal-hollow-large-001,1.0,1 +rust.drop.uimetalhollowlarge,inventory/drop/ui-drop-metal-hollow-large-002,1.0,1 +rust.drop.uimetalhollowlarge,inventory/drop/ui-drop-metal-hollow-large-003,1.0,1 +rust.drop.uimetalhollowlarge,inventory/drop/ui-drop-metal-hollow-large-004,1.0,1 +rust.drop.uimetalknife,inventory/drop/ui-metal-knife-drop-01,1.0,1 +rust.drop.uimetalknife,inventory/drop/ui-metal-knife-drop-02,1.0,1 +rust.drop.uimetalknife,inventory/drop/ui-metal-knife-drop-03,1.0,1 +rust.drop.uimetallarge,inventory/drop/ui-metal-large-drop-01,1.0,1 +rust.drop.uimetallarge,inventory/drop/ui-metal-large-drop-02,1.0,1 +rust.drop.uimetallarge,inventory/drop/ui-metal-large-drop-03,1.0,1 +rust.drop.uimetalmedium,inventory/drop/ui-metal-medium-drop-01,1.0,1 +rust.drop.uimetalmedium,inventory/drop/ui-metal-medium-drop-02,1.0,1 +rust.drop.uimetalmedium,inventory/drop/ui-metal-medium-drop-03,1.0,1 +rust.drop.uimetalmediumloose,inventory/drop/ui-metal-medium-loose-drop-01,1.0,1 +rust.drop.uimetalmediumloose,inventory/drop/ui-metal-medium-loose-drop-02,1.0,1 +rust.drop.uimetalmediumloose,inventory/drop/ui-metal-medium-loose-drop-03,1.0,1 +rust.drop.uimetalmediumrattley,inventory/drop/ui-drop-metal-medium-rattley-1,1.0,1 +rust.drop.uimetalmediumrattley,inventory/drop/ui-drop-metal-medium-rattley-2,1.0,1 +rust.drop.uimetalmediumrattley,inventory/drop/ui-drop-metal-medium-rattley-3,1.0,1 +rust.drop.uimetalmediumrattley,inventory/drop/ui-drop-metal-medium-rattley-4,1.0,1 +rust.drop.uimetalsheet,inventory/drop/ui-drop-metal-sheet-001,1.0,1 +rust.drop.uimetalsheet,inventory/drop/ui-drop-metal-sheet-002,1.0,1 +rust.drop.uimetalsheet,inventory/drop/ui-drop-metal-sheet-003,1.0,1 +rust.drop.uimetalsheet,inventory/drop/ui-drop-metal-sheet-004,1.0,1 +rust.drop.uimetalthinhollow,inventory/drop/ui-drop-metal-thin-hollow-1,1.0,1 +rust.drop.uimetalthinhollow,inventory/drop/ui-drop-metal-thin-hollow-2,1.0,1 +rust.drop.uimetalthinhollow,inventory/drop/ui-drop-metal-thin-hollow-3,1.0,1 +rust.drop.uimetalthinhollow,inventory/drop/ui-drop-metal-thin-hollow-4,1.0,1 +rust.drop.uimetalwood,inventory/drop/ui-drop-metal-wood-1,1.0,1 +rust.drop.uimetalwood,inventory/drop/ui-drop-metal-wood-2,1.0,1 +rust.drop.uimetalwood,inventory/drop/ui-drop-metal-wood-3,1.0,1 +rust.drop.uimetalwood,inventory/drop/ui-drop-metal-wood-4,1.0,1 +rust.drop.uipaper,inventory/drop/ui-drop-paper-1,1.0,1 +rust.drop.uipaper,inventory/drop/ui-drop-paper-2,1.0,1 +rust.drop.uipaper,inventory/drop/ui-drop-paper-3,1.0,1 +rust.drop.uipaper,inventory/drop/ui-drop-paper-4,1.0,1 +rust.drop.uipills,inventory/drop/ui-pills-drop-01,1.0,1 +rust.drop.uipills,inventory/drop/ui-pills-drop-02,1.0,1 +rust.drop.uipills,inventory/drop/ui-pills-drop-03,1.0,1 +rust.drop.uiplasticjunk,inventory/drop/ui-drop-plastic-junk-001,1.0,1 +rust.drop.uiplasticjunk,inventory/drop/ui-drop-plastic-junk-002,1.0,1 +rust.drop.uiplasticjunk,inventory/drop/ui-drop-plastic-junk-003,1.0,1 +rust.drop.uiplasticjunk,inventory/drop/ui-drop-plastic-junk-004,1.0,1 +rust.drop.uiplasticlarge,inventory/drop/ui-plastic-large-drop-01,1.0,1 +rust.drop.uiplasticlarge,inventory/drop/ui-plastic-large-drop-02,1.0,1 +rust.drop.uiplasticlarge,inventory/drop/ui-plastic-large-drop-03,1.0,1 +rust.drop.uiplasticmedium,inventory/drop/ui-plastic-medium-drop-01,1.0,1 +rust.drop.uiplasticmedium,inventory/drop/ui-plastic-medium-drop-02,1.0,1 +rust.drop.uiplasticmedium,inventory/drop/ui-plastic-medium-drop-03,1.0,1 +rust.drop.uirubber,inventory/drop/ui-drop-rubber-001,1.0,1 +rust.drop.uirubber,inventory/drop/ui-drop-rubber-002,1.0,1 +rust.drop.uirubber,inventory/drop/ui-drop-rubber-003,1.0,1 +rust.drop.uirubber,inventory/drop/ui-drop-rubber-004,1.0,1 +rust.drop.uiseeds,inventory/drop/ui-drop-seeds-001,1.0,1 +rust.drop.uiseeds,inventory/drop/ui-drop-seeds-002,1.0,1 +rust.drop.uiseeds,inventory/drop/ui-drop-seeds-003,1.0,1 +rust.drop.uiseeds,inventory/drop/ui-drop-seeds-004,1.0,1 +rust.drop.uismallchain,inventory/drop/ui-small-chain-drop-01,1.0,1 +rust.drop.uismallchain,inventory/drop/ui-small-chain-drop-01,1.0,1 +rust.drop.uismallchain,inventory/drop/ui-small-chain-drop-01,1.0,1 +rust.drop.uismalldevice,inventory/drop/ui-drop-small-device-001,1.0,1 +rust.drop.uismalldevice,inventory/drop/ui-drop-small-device-002,1.0,1 +rust.drop.uismalldevice,inventory/drop/ui-drop-small-device-003,1.0,1 +rust.drop.uismalldevice,inventory/drop/ui-drop-small-device-004,1.0,1 +rust.drop.uisnow,inventory/drop/ui-drop-snow-001,1.0,1 +rust.drop.uisnow,inventory/drop/ui-drop-snow-002,1.0,1 +rust.drop.uisnow,inventory/drop/ui-drop-snow-003,1.0,1 +rust.drop.uispring,inventory/drop/ui-drop-spring-001,1.0,1 +rust.drop.uispring,inventory/drop/ui-drop-spring-002,1.0,1 +rust.drop.uispring,inventory/drop/ui-drop-spring-003,1.0,1 +rust.drop.uispring,inventory/drop/ui-drop-spring-004,1.0,1 +rust.drop.uistone,inventory/drop/ui-drop-stone-1,1.0,1 +rust.drop.uistone,inventory/drop/ui-drop-stone-2,1.0,1 +rust.drop.uistone,inventory/drop/ui-drop-stone-3,1.0,1 +rust.drop.uistone,inventory/drop/ui-drop-stone-4,1.0,1 +rust.drop.uitarp,inventory/drop/ui-drop-tarp-001,1.0,1 +rust.drop.uitarp,inventory/drop/ui-drop-tarp-002,1.0,1 +rust.drop.uitarp,inventory/drop/ui-drop-tarp-003,1.0,1 +rust.drop.uitarp,inventory/drop/ui-drop-tarp-004,1.0,1 +rust.drop.uitea,inventory/drop/ui-tea-drop-001,1.0,1 +rust.drop.uitea,inventory/drop/ui-tea-drop-002,1.0,1 +rust.drop.uitea,inventory/drop/ui-tea-drop-003,1.0,1 +rust.drop.uithickrubbery,inventory/drop/ui-thick-rubbery-drop-01,1.0,1 +rust.drop.uithickrubbery,inventory/drop/ui-thick-rubbery-drop-02,1.0,1 +rust.drop.uithickrubbery,inventory/drop/ui-thick-rubbery-drop-03,1.0,1 +rust.drop.uiwater,inventory/drop/ui-drop-water-001,1.0,1 +rust.drop.uiwater,inventory/drop/ui-drop-water-002,1.0,1 +rust.drop.uiwater,inventory/drop/ui-drop-water-003,1.0,1 +rust.drop.uiwater,inventory/drop/ui-drop-water-004,1.0,1 +rust.drop.uiwood,inventory/drop/ui-drop-wood-1,1.0,1 +rust.drop.uiwood,inventory/drop/ui-drop-wood-2,1.0,1 +rust.drop.uiwood,inventory/drop/ui-drop-wood-3,1.0,1 +rust.drop.uiwood,inventory/drop/ui-drop-wood-4,1.0,1 +rust.drop.uiwoodlight,inventory/drop/ui-drop-wood-light-1,1.0,1 +rust.drop.uiwoodlight,inventory/drop/ui-drop-wood-light-2,1.0,1 +rust.drop.uiwoodlight,inventory/drop/ui-drop-wood-light-3,1.0,1 +rust.drop.uiwoodlight,inventory/drop/ui-drop-wood-light-4,1.0,1 +rust.drop.uiwoodmed,inventory/drop/ui-drop-wood-med-001,1.0,1 +rust.drop.uiwoodmed,inventory/drop/ui-drop-wood-med-002,1.0,1 +rust.drop.uiwoodmed,inventory/drop/ui-drop-wood-med-003,1.0,1 +rust.drop.uiwoodmed,inventory/drop/ui-drop-wood-med-004,1.0,1 +rust.finish.mixingtable,furniture/mixingtable/mixing-table-mix-finish-001,1.0,1 +rust.finish.mixingtable,furniture/mixingtable/mixing-table-mix-finish-002,1.0,1 +rust.fish.cut,misc/player/cut-meat-1,1.0,1 +rust.fish.cut,misc/player/cut-meat-2,1.0,1 +rust.fish.cut,misc/player/cut-meat-3,1.0,1 +rust.fish.cut,misc/player/cut-meat-4,1.0,1 +rust.footstep.barefoot.cloth.run,player/footstep/barefoot/run/footstep-barefoot-cloth-run-001,1.0,1 +rust.footstep.barefoot.cloth.run,player/footstep/barefoot/run/footstep-barefoot-cloth-run-002,1.0,1 +rust.footstep.barefoot.cloth.run,player/footstep/barefoot/run/footstep-barefoot-cloth-run-003,1.0,1 +rust.footstep.barefoot.cloth.run,player/footstep/barefoot/run/footstep-barefoot-cloth-run-004,1.0,1 +rust.footstep.barefoot.cloth.run,player/footstep/barefoot/run/footstep-barefoot-cloth-run-005,1.0,1 +rust.footstep.barefoot.cloth.run,player/footstep/barefoot/run/footstep-barefoot-cloth-run-006,1.0,1 +rust.footstep.barefoot.cloth.run,player/footstep/barefoot/run/footstep-barefoot-cloth-run-007,1.0,1 +rust.footstep.barefoot.cloth.run,player/footstep/barefoot/run/footstep-barefoot-cloth-run-008,1.0,1 +rust.footstep.barefoot.cloth.walk,player/footstep/barefoot/walk/footstep-barefoot-cloth-walk-001,1.0,1 +rust.footstep.barefoot.cloth.walk,player/footstep/barefoot/walk/footstep-barefoot-cloth-walk-002,1.0,1 +rust.footstep.barefoot.cloth.walk,player/footstep/barefoot/walk/footstep-barefoot-cloth-walk-003,1.0,1 +rust.footstep.barefoot.cloth.walk,player/footstep/barefoot/walk/footstep-barefoot-cloth-walk-004,1.0,1 +rust.footstep.barefoot.cloth.walk,player/footstep/barefoot/walk/footstep-barefoot-cloth-walk-005,1.0,1 +rust.footstep.barefoot.cloth.walk,player/footstep/barefoot/walk/footstep-barefoot-cloth-walk-006,1.0,1 +rust.footstep.barefoot.cloth.walk,player/footstep/barefoot/walk/footstep-barefoot-cloth-walk-007,1.0,1 +rust.footstep.barefoot.cloth.walk,player/footstep/barefoot/walk/footstep-barefoot-cloth-walk-008,1.0,1 +rust.footstep.barefoot.concrete.run,player/footstep/barefoot/run/footstep-barefoot-concrete-run-001,1.0,1 +rust.footstep.barefoot.concrete.run,player/footstep/barefoot/run/footstep-barefoot-concrete-run-002,1.0,1 +rust.footstep.barefoot.concrete.run,player/footstep/barefoot/run/footstep-barefoot-concrete-run-003,1.0,1 +rust.footstep.barefoot.concrete.run,player/footstep/barefoot/run/footstep-barefoot-concrete-run-004,1.0,1 +rust.footstep.barefoot.concrete.run,player/footstep/barefoot/run/footstep-barefoot-concrete-run-005,1.0,1 +rust.footstep.barefoot.concrete.run,player/footstep/barefoot/run/footstep-barefoot-concrete-run-006,1.0,1 +rust.footstep.barefoot.concrete.run,player/footstep/barefoot/run/footstep-barefoot-concrete-run-007,1.0,1 +rust.footstep.barefoot.concrete.run,player/footstep/barefoot/run/footstep-barefoot-concrete-run-008,1.0,1 +rust.footstep.barefoot.concrete.walk,player/footstep/barefoot/walk/footstep-barefoot-concrete-walk-001,1.0,1 +rust.footstep.barefoot.concrete.walk,player/footstep/barefoot/walk/footstep-barefoot-concrete-walk-002,1.0,1 +rust.footstep.barefoot.concrete.walk,player/footstep/barefoot/walk/footstep-barefoot-concrete-walk-003,1.0,1 +rust.footstep.barefoot.concrete.walk,player/footstep/barefoot/walk/footstep-barefoot-concrete-walk-004,1.0,1 +rust.footstep.barefoot.concrete.walk,player/footstep/barefoot/walk/footstep-barefoot-concrete-walk-005,1.0,1 +rust.footstep.barefoot.concrete.walk,player/footstep/barefoot/walk/footstep-barefoot-concrete-walk-006,1.0,1 +rust.footstep.barefoot.concrete.walk,player/footstep/barefoot/walk/footstep-barefoot-concrete-walk-007,1.0,1 +rust.footstep.barefoot.concrete.walk,player/footstep/barefoot/walk/footstep-barefoot-concrete-walk-008,1.0,1 +rust.footstep.barefoot.dirt.run,player/footstep/barefoot/run/footstep-barefoot-dirt-run-001,1.0,1 +rust.footstep.barefoot.dirt.run,player/footstep/barefoot/run/footstep-barefoot-dirt-run-002,1.0,1 +rust.footstep.barefoot.dirt.run,player/footstep/barefoot/run/footstep-barefoot-dirt-run-003,1.0,1 +rust.footstep.barefoot.dirt.run,player/footstep/barefoot/run/footstep-barefoot-dirt-run-004,1.0,1 +rust.footstep.barefoot.dirt.run,player/footstep/barefoot/run/footstep-barefoot-dirt-run-005,1.0,1 +rust.footstep.barefoot.dirt.run,player/footstep/barefoot/run/footstep-barefoot-dirt-run-006,1.0,1 +rust.footstep.barefoot.dirt.run,player/footstep/barefoot/run/footstep-barefoot-dirt-run-007,1.0,1 +rust.footstep.barefoot.dirt.run,player/footstep/barefoot/run/footstep-barefoot-dirt-run-008,1.0,1 +rust.footstep.barefoot.dirt.walk,player/footstep/barefoot/walk/footstep-barefoot-dirt-walk-001,1.0,1 +rust.footstep.barefoot.dirt.walk,player/footstep/barefoot/walk/footstep-barefoot-dirt-walk-002,1.0,1 +rust.footstep.barefoot.dirt.walk,player/footstep/barefoot/walk/footstep-barefoot-dirt-walk-003,1.0,1 +rust.footstep.barefoot.dirt.walk,player/footstep/barefoot/walk/footstep-barefoot-dirt-walk-004,1.0,1 +rust.footstep.barefoot.dirt.walk,player/footstep/barefoot/walk/footstep-barefoot-dirt-walk-005,1.0,1 +rust.footstep.barefoot.dirt.walk,player/footstep/barefoot/walk/footstep-barefoot-dirt-walk-006,1.0,1 +rust.footstep.barefoot.dirt.walk,player/footstep/barefoot/walk/footstep-barefoot-dirt-walk-007,1.0,1 +rust.footstep.barefoot.dirt.walk,player/footstep/barefoot/walk/footstep-barefoot-dirt-walk-008,1.0,1 +rust.footstep.barefoot.forest.run,player/footstep/barefoot/run/footstep-barefoot-forest-run-001,1.0,1 +rust.footstep.barefoot.forest.run,player/footstep/barefoot/run/footstep-barefoot-forest-run-002,1.0,1 +rust.footstep.barefoot.forest.run,player/footstep/barefoot/run/footstep-barefoot-forest-run-003,1.0,1 +rust.footstep.barefoot.forest.run,player/footstep/barefoot/run/footstep-barefoot-forest-run-004,1.0,1 +rust.footstep.barefoot.forest.run,player/footstep/barefoot/run/footstep-barefoot-forest-run-005,1.0,1 +rust.footstep.barefoot.forest.run,player/footstep/barefoot/run/footstep-barefoot-forest-run-006,1.0,1 +rust.footstep.barefoot.forest.run,player/footstep/barefoot/run/footstep-barefoot-forest-run-007,1.0,1 +rust.footstep.barefoot.forest.run,player/footstep/barefoot/run/footstep-barefoot-forest-run-008,1.0,1 +rust.footstep.barefoot.forest.walk,player/footstep/barefoot/walk/footstep-barefoot-forest-walk-001,1.0,1 +rust.footstep.barefoot.forest.walk,player/footstep/barefoot/walk/footstep-barefoot-forest-walk-002,1.0,1 +rust.footstep.barefoot.forest.walk,player/footstep/barefoot/walk/footstep-barefoot-forest-walk-003,1.0,1 +rust.footstep.barefoot.forest.walk,player/footstep/barefoot/walk/footstep-barefoot-forest-walk-004,1.0,1 +rust.footstep.barefoot.forest.walk,player/footstep/barefoot/walk/footstep-barefoot-forest-walk-005,1.0,1 +rust.footstep.barefoot.forest.walk,player/footstep/barefoot/walk/footstep-barefoot-forest-walk-006,1.0,1 +rust.footstep.barefoot.forest.walk,player/footstep/barefoot/walk/footstep-barefoot-forest-walk-007,1.0,1 +rust.footstep.barefoot.forest.walk,player/footstep/barefoot/walk/footstep-barefoot-forest-walk-008,1.0,1 +rust.footstep.barefoot.grass.run,player/footstep/barefoot/run/footstep-barefoot-grass-run-001,1.0,1 +rust.footstep.barefoot.grass.run,player/footstep/barefoot/run/footstep-barefoot-grass-run-002,1.0,1 +rust.footstep.barefoot.grass.run,player/footstep/barefoot/run/footstep-barefoot-grass-run-003,1.0,1 +rust.footstep.barefoot.grass.run,player/footstep/barefoot/run/footstep-barefoot-grass-run-004,1.0,1 +rust.footstep.barefoot.grass.run,player/footstep/barefoot/run/footstep-barefoot-grass-run-005,1.0,1 +rust.footstep.barefoot.grass.run,player/footstep/barefoot/run/footstep-barefoot-grass-run-006,1.0,1 +rust.footstep.barefoot.grass.run,player/footstep/barefoot/run/footstep-barefoot-grass-run-007,1.0,1 +rust.footstep.barefoot.grass.run,player/footstep/barefoot/run/footstep-barefoot-grass-run-008,1.0,1 +rust.footstep.barefoot.grass.walk,player/footstep/barefoot/walk/footstep-barefoot-grass-walk-001,1.0,1 +rust.footstep.barefoot.grass.walk,player/footstep/barefoot/walk/footstep-barefoot-grass-walk-002,1.0,1 +rust.footstep.barefoot.grass.walk,player/footstep/barefoot/walk/footstep-barefoot-grass-walk-003,1.0,1 +rust.footstep.barefoot.grass.walk,player/footstep/barefoot/walk/footstep-barefoot-grass-walk-004,1.0,1 +rust.footstep.barefoot.grass.walk,player/footstep/barefoot/walk/footstep-barefoot-grass-walk-005,1.0,1 +rust.footstep.barefoot.grass.walk,player/footstep/barefoot/walk/footstep-barefoot-grass-walk-006,1.0,1 +rust.footstep.barefoot.grass.walk,player/footstep/barefoot/walk/footstep-barefoot-grass-walk-007,1.0,1 +rust.footstep.barefoot.grass.walk,player/footstep/barefoot/walk/footstep-barefoot-grass-walk-008,1.0,1 +rust.footstep.barefoot.gravel.run,player/footstep/barefoot/run/footstep-barefoot-gravel-run-001,1.0,1 +rust.footstep.barefoot.gravel.run,player/footstep/barefoot/run/footstep-barefoot-gravel-run-002,1.0,1 +rust.footstep.barefoot.gravel.run,player/footstep/barefoot/run/footstep-barefoot-gravel-run-003,1.0,1 +rust.footstep.barefoot.gravel.run,player/footstep/barefoot/run/footstep-barefoot-gravel-run-004,1.0,1 +rust.footstep.barefoot.gravel.run,player/footstep/barefoot/run/footstep-barefoot-gravel-run-005,1.0,1 +rust.footstep.barefoot.gravel.run,player/footstep/barefoot/run/footstep-barefoot-gravel-run-006,1.0,1 +rust.footstep.barefoot.gravel.run,player/footstep/barefoot/run/footstep-barefoot-gravel-run-007,1.0,1 +rust.footstep.barefoot.gravel.run,player/footstep/barefoot/run/footstep-barefoot-gravel-run-008,1.0,1 +rust.footstep.barefoot.gravel.walk,player/footstep/barefoot/walk/footstep-barefoot-gravel-walk-001,1.0,1 +rust.footstep.barefoot.gravel.walk,player/footstep/barefoot/walk/footstep-barefoot-gravel-walk-002,1.0,1 +rust.footstep.barefoot.gravel.walk,player/footstep/barefoot/walk/footstep-barefoot-gravel-walk-003,1.0,1 +rust.footstep.barefoot.gravel.walk,player/footstep/barefoot/walk/footstep-barefoot-gravel-walk-004,1.0,1 +rust.footstep.barefoot.gravel.walk,player/footstep/barefoot/walk/footstep-barefoot-gravel-walk-005,1.0,1 +rust.footstep.barefoot.gravel.walk,player/footstep/barefoot/walk/footstep-barefoot-gravel-walk-006,1.0,1 +rust.footstep.barefoot.gravel.walk,player/footstep/barefoot/walk/footstep-barefoot-gravel-walk-007,1.0,1 +rust.footstep.barefoot.gravel.walk,player/footstep/barefoot/walk/footstep-barefoot-gravel-walk-008,1.0,1 +rust.footstep.barefoot.metal.run,player/footstep/barefoot/run/footstep-barefoot-metal-run-001,1.0,1 +rust.footstep.barefoot.metal.run,player/footstep/barefoot/run/footstep-barefoot-metal-run-002,1.0,1 +rust.footstep.barefoot.metal.run,player/footstep/barefoot/run/footstep-barefoot-metal-run-003,1.0,1 +rust.footstep.barefoot.metal.run,player/footstep/barefoot/run/footstep-barefoot-metal-run-004,1.0,1 +rust.footstep.barefoot.metal.run,player/footstep/barefoot/run/footstep-barefoot-metal-run-005,1.0,1 +rust.footstep.barefoot.metal.run,player/footstep/barefoot/run/footstep-barefoot-metal-run-006,1.0,1 +rust.footstep.barefoot.metal.run,player/footstep/barefoot/run/footstep-barefoot-metal-run-007,1.0,1 +rust.footstep.barefoot.metal.run,player/footstep/barefoot/run/footstep-barefoot-metal-run-008,1.0,1 +rust.footstep.barefoot.metal.walk,player/footstep/barefoot/walk/footstep-barefoot-metal-walk-001,1.0,1 +rust.footstep.barefoot.metal.walk,player/footstep/barefoot/walk/footstep-barefoot-metal-walk-002,1.0,1 +rust.footstep.barefoot.metal.walk,player/footstep/barefoot/walk/footstep-barefoot-metal-walk-003,1.0,1 +rust.footstep.barefoot.metal.walk,player/footstep/barefoot/walk/footstep-barefoot-metal-walk-004,1.0,1 +rust.footstep.barefoot.metal.walk,player/footstep/barefoot/walk/footstep-barefoot-metal-walk-005,1.0,1 +rust.footstep.barefoot.metal.walk,player/footstep/barefoot/walk/footstep-barefoot-metal-walk-006,1.0,1 +rust.footstep.barefoot.metal.walk,player/footstep/barefoot/walk/footstep-barefoot-metal-walk-007,1.0,1 +rust.footstep.barefoot.metal.walk,player/footstep/barefoot/walk/footstep-barefoot-metal-walk-008,1.0,1 +rust.footstep.barefoot.sand.run,player/footstep/barefoot/run/footstep-barefoot-sand-run-001,1.0,1 +rust.footstep.barefoot.sand.run,player/footstep/barefoot/run/footstep-barefoot-sand-run-002,1.0,1 +rust.footstep.barefoot.sand.run,player/footstep/barefoot/run/footstep-barefoot-sand-run-003,1.0,1 +rust.footstep.barefoot.sand.run,player/footstep/barefoot/run/footstep-barefoot-sand-run-004,1.0,1 +rust.footstep.barefoot.sand.run,player/footstep/barefoot/run/footstep-barefoot-sand-run-005,1.0,1 +rust.footstep.barefoot.sand.run,player/footstep/barefoot/run/footstep-barefoot-sand-run-006,1.0,1 +rust.footstep.barefoot.sand.run,player/footstep/barefoot/run/footstep-barefoot-sand-run-007,1.0,1 +rust.footstep.barefoot.sand.run,player/footstep/barefoot/run/footstep-barefoot-sand-run-008,1.0,1 +rust.footstep.barefoot.sand.walk,player/footstep/barefoot/walk/footstep-barefoot-sand-walk-001,1.0,1 +rust.footstep.barefoot.sand.walk,player/footstep/barefoot/walk/footstep-barefoot-sand-walk-002,1.0,1 +rust.footstep.barefoot.sand.walk,player/footstep/barefoot/walk/footstep-barefoot-sand-walk-003,1.0,1 +rust.footstep.barefoot.sand.walk,player/footstep/barefoot/walk/footstep-barefoot-sand-walk-004,1.0,1 +rust.footstep.barefoot.sand.walk,player/footstep/barefoot/walk/footstep-barefoot-sand-walk-005,1.0,1 +rust.footstep.barefoot.sand.walk,player/footstep/barefoot/walk/footstep-barefoot-sand-walk-006,1.0,1 +rust.footstep.barefoot.sand.walk,player/footstep/barefoot/walk/footstep-barefoot-sand-walk-007,1.0,1 +rust.footstep.barefoot.sand.walk,player/footstep/barefoot/walk/footstep-barefoot-sand-walk-008,1.0,1 +rust.footstep.barefoot.snow.run,player/footstep/barefoot/run/footstep-barefoot-snow-run-001,1.0,1 +rust.footstep.barefoot.snow.run,player/footstep/barefoot/run/footstep-barefoot-snow-run-002,1.0,1 +rust.footstep.barefoot.snow.run,player/footstep/barefoot/run/footstep-barefoot-snow-run-003,1.0,1 +rust.footstep.barefoot.snow.run,player/footstep/barefoot/run/footstep-barefoot-snow-run-004,1.0,1 +rust.footstep.barefoot.snow.run,player/footstep/barefoot/run/footstep-barefoot-snow-run-005,1.0,1 +rust.footstep.barefoot.snow.run,player/footstep/barefoot/run/footstep-barefoot-snow-run-006,1.0,1 +rust.footstep.barefoot.snow.run,player/footstep/barefoot/run/footstep-barefoot-snow-run-007,1.0,1 +rust.footstep.barefoot.snow.run,player/footstep/barefoot/run/footstep-barefoot-snow-run-008,1.0,1 +rust.footstep.barefoot.snow.walk,player/footstep/barefoot/walk/footstep-barefoot-snow-walk-001,1.0,1 +rust.footstep.barefoot.snow.walk,player/footstep/barefoot/walk/footstep-barefoot-snow-walk-002,1.0,1 +rust.footstep.barefoot.snow.walk,player/footstep/barefoot/walk/footstep-barefoot-snow-walk-003,1.0,1 +rust.footstep.barefoot.snow.walk,player/footstep/barefoot/walk/footstep-barefoot-snow-walk-004,1.0,1 +rust.footstep.barefoot.snow.walk,player/footstep/barefoot/walk/footstep-barefoot-snow-walk-005,1.0,1 +rust.footstep.barefoot.snow.walk,player/footstep/barefoot/walk/footstep-barefoot-snow-walk-006,1.0,1 +rust.footstep.barefoot.snow.walk,player/footstep/barefoot/walk/footstep-barefoot-snow-walk-007,1.0,1 +rust.footstep.barefoot.snow.walk,player/footstep/barefoot/walk/footstep-barefoot-snow-walk-008,1.0,1 +rust.footstep.barefoot.stones.run,player/footstep/barefoot/run/footstep-barefoot-stones-run-001,1.0,1 +rust.footstep.barefoot.stones.run,player/footstep/barefoot/run/footstep-barefoot-stones-run-002,1.0,1 +rust.footstep.barefoot.stones.run,player/footstep/barefoot/run/footstep-barefoot-stones-run-003,1.0,1 +rust.footstep.barefoot.stones.run,player/footstep/barefoot/run/footstep-barefoot-stones-run-004,1.0,1 +rust.footstep.barefoot.stones.run,player/footstep/barefoot/run/footstep-barefoot-stones-run-005,1.0,1 +rust.footstep.barefoot.stones.run,player/footstep/barefoot/run/footstep-barefoot-stones-run-006,1.0,1 +rust.footstep.barefoot.stones.run,player/footstep/barefoot/run/footstep-barefoot-stones-run-007,1.0,1 +rust.footstep.barefoot.stones.run,player/footstep/barefoot/run/footstep-barefoot-stones-run-008,1.0,1 +rust.footstep.barefoot.stones.walk,player/footstep/barefoot/walk/footstep-barefoot-stones-walk-001,1.0,1 +rust.footstep.barefoot.stones.walk,player/footstep/barefoot/walk/footstep-barefoot-stones-walk-002,1.0,1 +rust.footstep.barefoot.stones.walk,player/footstep/barefoot/walk/footstep-barefoot-stones-walk-003,1.0,1 +rust.footstep.barefoot.stones.walk,player/footstep/barefoot/walk/footstep-barefoot-stones-walk-004,1.0,1 +rust.footstep.barefoot.stones.walk,player/footstep/barefoot/walk/footstep-barefoot-stones-walk-005,1.0,1 +rust.footstep.barefoot.stones.walk,player/footstep/barefoot/walk/footstep-barefoot-stones-walk-006,1.0,1 +rust.footstep.barefoot.stones.walk,player/footstep/barefoot/walk/footstep-barefoot-stones-walk-007,1.0,1 +rust.footstep.barefoot.stones.walk,player/footstep/barefoot/walk/footstep-barefoot-stones-walk-008,1.0,1 +rust.footstep.barefoot.wood.run,player/footstep/barefoot/run/footstep-barefoot-wood-run-001,1.0,1 +rust.footstep.barefoot.wood.run,player/footstep/barefoot/run/footstep-barefoot-wood-run-002,1.0,1 +rust.footstep.barefoot.wood.run,player/footstep/barefoot/run/footstep-barefoot-wood-run-003,1.0,1 +rust.footstep.barefoot.wood.run,player/footstep/barefoot/run/footstep-barefoot-wood-run-004,1.0,1 +rust.footstep.barefoot.wood.run,player/footstep/barefoot/run/footstep-barefoot-wood-run-005,1.0,1 +rust.footstep.barefoot.wood.run,player/footstep/barefoot/run/footstep-barefoot-wood-run-006,1.0,1 +rust.footstep.barefoot.wood.run,player/footstep/barefoot/run/footstep-barefoot-wood-run-007,1.0,1 +rust.footstep.barefoot.wood.run,player/footstep/barefoot/run/footstep-barefoot-wood-run-008,1.0,1 +rust.footstep.barefoot.wood.walk,player/footstep/barefoot/walk/footstep-barefoot-wood-walk-001,1.0,1 +rust.footstep.barefoot.wood.walk,player/footstep/barefoot/walk/footstep-barefoot-wood-walk-002,1.0,1 +rust.footstep.barefoot.wood.walk,player/footstep/barefoot/walk/footstep-barefoot-wood-walk-003,1.0,1 +rust.footstep.barefoot.wood.walk,player/footstep/barefoot/walk/footstep-barefoot-wood-walk-004,1.0,1 +rust.footstep.barefoot.wood.walk,player/footstep/barefoot/walk/footstep-barefoot-wood-walk-005,1.0,1 +rust.footstep.barefoot.wood.walk,player/footstep/barefoot/walk/footstep-barefoot-wood-walk-006,1.0,1 +rust.footstep.barefoot.wood.walk,player/footstep/barefoot/walk/footstep-barefoot-wood-walk-007,1.0,1 +rust.footstep.barefoot.wood.walk,player/footstep/barefoot/walk/footstep-barefoot-wood-walk-008,1.0,1 +rust.footstep.boots.cloth.run,player/footstep/boots/run/footstep-boots-cloth-run-001,1.0,1 +rust.footstep.boots.cloth.run,player/footstep/boots/run/footstep-boots-cloth-run-002,1.0,1 +rust.footstep.boots.cloth.run,player/footstep/boots/run/footstep-boots-cloth-run-003,1.0,1 +rust.footstep.boots.cloth.run,player/footstep/boots/run/footstep-boots-cloth-run-004,1.0,1 +rust.footstep.boots.cloth.run,player/footstep/boots/run/footstep-boots-cloth-run-005,1.0,1 +rust.footstep.boots.cloth.run,player/footstep/boots/run/footstep-boots-cloth-run-006,1.0,1 +rust.footstep.boots.cloth.run,player/footstep/boots/run/footstep-boots-cloth-run-007,1.0,1 +rust.footstep.boots.cloth.run,player/footstep/boots/run/footstep-boots-cloth-run-008,1.0,1 +rust.footstep.boots.cloth.walk,player/footstep/boots/walk/footstep-boots-cloth-walk-001,1.0,1 +rust.footstep.boots.cloth.walk,player/footstep/boots/walk/footstep-boots-cloth-walk-002,1.0,1 +rust.footstep.boots.cloth.walk,player/footstep/boots/walk/footstep-boots-cloth-walk-003,1.0,1 +rust.footstep.boots.cloth.walk,player/footstep/boots/walk/footstep-boots-cloth-walk-004,1.0,1 +rust.footstep.boots.cloth.walk,player/footstep/boots/walk/footstep-boots-cloth-walk-005,1.0,1 +rust.footstep.boots.cloth.walk,player/footstep/boots/walk/footstep-boots-cloth-walk-006,1.0,1 +rust.footstep.boots.cloth.walk,player/footstep/boots/walk/footstep-boots-cloth-walk-007,1.0,1 +rust.footstep.boots.cloth.walk,player/footstep/boots/walk/footstep-boots-cloth-walk-008,1.0,1 +rust.footstep.boots.concrete.run,player/footstep/boots/run/footstep-boots-concrete-run-001,1.0,1 +rust.footstep.boots.concrete.run,player/footstep/boots/run/footstep-boots-concrete-run-002,1.0,1 +rust.footstep.boots.concrete.run,player/footstep/boots/run/footstep-boots-concrete-run-003,1.0,1 +rust.footstep.boots.concrete.run,player/footstep/boots/run/footstep-boots-concrete-run-004,1.0,1 +rust.footstep.boots.concrete.run,player/footstep/boots/run/footstep-boots-concrete-run-005,1.0,1 +rust.footstep.boots.concrete.run,player/footstep/boots/run/footstep-boots-concrete-run-006,1.0,1 +rust.footstep.boots.concrete.run,player/footstep/boots/run/footstep-boots-concrete-run-007,1.0,1 +rust.footstep.boots.concrete.run,player/footstep/boots/run/footstep-boots-concrete-run-008,1.0,1 +rust.footstep.boots.concrete.walk,player/footstep/boots/walk/footstep-boots-concrete-walk-001,1.0,1 +rust.footstep.boots.concrete.walk,player/footstep/boots/walk/footstep-boots-concrete-walk-002,1.0,1 +rust.footstep.boots.concrete.walk,player/footstep/boots/walk/footstep-boots-concrete-walk-003,1.0,1 +rust.footstep.boots.concrete.walk,player/footstep/boots/walk/footstep-boots-concrete-walk-004,1.0,1 +rust.footstep.boots.concrete.walk,player/footstep/boots/walk/footstep-boots-concrete-walk-005,1.0,1 +rust.footstep.boots.concrete.walk,player/footstep/boots/walk/footstep-boots-concrete-walk-006,1.0,1 +rust.footstep.boots.concrete.walk,player/footstep/boots/walk/footstep-boots-concrete-walk-007,1.0,1 +rust.footstep.boots.concrete.walk,player/footstep/boots/walk/footstep-boots-concrete-walk-008,1.0,1 +rust.footstep.boots.dirt.run,player/footstep/boots/run/footstep-boots-dirt-run-001,1.0,1 +rust.footstep.boots.dirt.run,player/footstep/boots/run/footstep-boots-dirt-run-002,1.0,1 +rust.footstep.boots.dirt.run,player/footstep/boots/run/footstep-boots-dirt-run-003,1.0,1 +rust.footstep.boots.dirt.run,player/footstep/boots/run/footstep-boots-dirt-run-004,1.0,1 +rust.footstep.boots.dirt.run,player/footstep/boots/run/footstep-boots-dirt-run-005,1.0,1 +rust.footstep.boots.dirt.run,player/footstep/boots/run/footstep-boots-dirt-run-006,1.0,1 +rust.footstep.boots.dirt.run,player/footstep/boots/run/footstep-boots-dirt-run-007,1.0,1 +rust.footstep.boots.dirt.run,player/footstep/boots/run/footstep-boots-dirt-run-008,1.0,1 +rust.footstep.boots.dirt.walk,player/footstep/boots/walk/footstep-boots-dirt-walk-001,1.0,1 +rust.footstep.boots.dirt.walk,player/footstep/boots/walk/footstep-boots-dirt-walk-002,1.0,1 +rust.footstep.boots.dirt.walk,player/footstep/boots/walk/footstep-boots-dirt-walk-003,1.0,1 +rust.footstep.boots.dirt.walk,player/footstep/boots/walk/footstep-boots-dirt-walk-004,1.0,1 +rust.footstep.boots.dirt.walk,player/footstep/boots/walk/footstep-boots-dirt-walk-005,1.0,1 +rust.footstep.boots.dirt.walk,player/footstep/boots/walk/footstep-boots-dirt-walk-006,1.0,1 +rust.footstep.boots.dirt.walk,player/footstep/boots/walk/footstep-boots-dirt-walk-007,1.0,1 +rust.footstep.boots.dirt.walk,player/footstep/boots/walk/footstep-boots-dirt-walk-008,1.0,1 +rust.footstep.boots.forest.run,player/footstep/boots/run/footstep-boots-forest-run-001,1.0,1 +rust.footstep.boots.forest.run,player/footstep/boots/run/footstep-boots-forest-run-002,1.0,1 +rust.footstep.boots.forest.run,player/footstep/boots/run/footstep-boots-forest-run-003,1.0,1 +rust.footstep.boots.forest.run,player/footstep/boots/run/footstep-boots-forest-run-004,1.0,1 +rust.footstep.boots.forest.run,player/footstep/boots/run/footstep-boots-forest-run-005,1.0,1 +rust.footstep.boots.forest.run,player/footstep/boots/run/footstep-boots-forest-run-006,1.0,1 +rust.footstep.boots.forest.run,player/footstep/boots/run/footstep-boots-forest-run-007,1.0,1 +rust.footstep.boots.forest.run,player/footstep/boots/run/footstep-boots-forest-run-008,1.0,1 +rust.footstep.boots.forest.walk,player/footstep/boots/walk/footstep-boots-forest-walk-001,1.0,1 +rust.footstep.boots.forest.walk,player/footstep/boots/walk/footstep-boots-forest-walk-002,1.0,1 +rust.footstep.boots.forest.walk,player/footstep/boots/walk/footstep-boots-forest-walk-003,1.0,1 +rust.footstep.boots.forest.walk,player/footstep/boots/walk/footstep-boots-forest-walk-004,1.0,1 +rust.footstep.boots.forest.walk,player/footstep/boots/walk/footstep-boots-forest-walk-005,1.0,1 +rust.footstep.boots.forest.walk,player/footstep/boots/walk/footstep-boots-forest-walk-006,1.0,1 +rust.footstep.boots.forest.walk,player/footstep/boots/walk/footstep-boots-forest-walk-007,1.0,1 +rust.footstep.boots.forest.walk,player/footstep/boots/walk/footstep-boots-forest-walk-008,1.0,1 +rust.footstep.boots.grass.run,player/footstep/boots/run/footstep-boots-grass-run-001,1.0,1 +rust.footstep.boots.grass.run,player/footstep/boots/run/footstep-boots-grass-run-002,1.0,1 +rust.footstep.boots.grass.run,player/footstep/boots/run/footstep-boots-grass-run-003,1.0,1 +rust.footstep.boots.grass.run,player/footstep/boots/run/footstep-boots-grass-run-004,1.0,1 +rust.footstep.boots.grass.run,player/footstep/boots/run/footstep-boots-grass-run-005,1.0,1 +rust.footstep.boots.grass.run,player/footstep/boots/run/footstep-boots-grass-run-006,1.0,1 +rust.footstep.boots.grass.run,player/footstep/boots/run/footstep-boots-grass-run-007,1.0,1 +rust.footstep.boots.grass.run,player/footstep/boots/run/footstep-boots-grass-run-008,1.0,1 +rust.footstep.boots.grass.walk,player/footstep/boots/walk/footstep-boots-grass-walk-001,1.0,1 +rust.footstep.boots.grass.walk,player/footstep/boots/walk/footstep-boots-grass-walk-002,1.0,1 +rust.footstep.boots.grass.walk,player/footstep/boots/walk/footstep-boots-grass-walk-003,1.0,1 +rust.footstep.boots.grass.walk,player/footstep/boots/walk/footstep-boots-grass-walk-004,1.0,1 +rust.footstep.boots.grass.walk,player/footstep/boots/walk/footstep-boots-grass-walk-005,1.0,1 +rust.footstep.boots.grass.walk,player/footstep/boots/walk/footstep-boots-grass-walk-006,1.0,1 +rust.footstep.boots.grass.walk,player/footstep/boots/walk/footstep-boots-grass-walk-007,1.0,1 +rust.footstep.boots.grass.walk,player/footstep/boots/walk/footstep-boots-grass-walk-008,1.0,1 +rust.footstep.boots.gravel.run,player/footstep/boots/run/footstep-boots-gravel-run-001,1.0,1 +rust.footstep.boots.gravel.run,player/footstep/boots/run/footstep-boots-gravel-run-002,1.0,1 +rust.footstep.boots.gravel.run,player/footstep/boots/run/footstep-boots-gravel-run-003,1.0,1 +rust.footstep.boots.gravel.run,player/footstep/boots/run/footstep-boots-gravel-run-004,1.0,1 +rust.footstep.boots.gravel.run,player/footstep/boots/run/footstep-boots-gravel-run-005,1.0,1 +rust.footstep.boots.gravel.run,player/footstep/boots/run/footstep-boots-gravel-run-006,1.0,1 +rust.footstep.boots.gravel.run,player/footstep/boots/run/footstep-boots-gravel-run-007,1.0,1 +rust.footstep.boots.gravel.run,player/footstep/boots/run/footstep-boots-gravel-run-008,1.0,1 +rust.footstep.boots.gravel.walk,player/footstep/boots/walk/footstep-boots-gravel-walk-001,1.0,1 +rust.footstep.boots.gravel.walk,player/footstep/boots/walk/footstep-boots-gravel-walk-002,1.0,1 +rust.footstep.boots.gravel.walk,player/footstep/boots/walk/footstep-boots-gravel-walk-003,1.0,1 +rust.footstep.boots.gravel.walk,player/footstep/boots/walk/footstep-boots-gravel-walk-004,1.0,1 +rust.footstep.boots.gravel.walk,player/footstep/boots/walk/footstep-boots-gravel-walk-005,1.0,1 +rust.footstep.boots.gravel.walk,player/footstep/boots/walk/footstep-boots-gravel-walk-006,1.0,1 +rust.footstep.boots.gravel.walk,player/footstep/boots/walk/footstep-boots-gravel-walk-007,1.0,1 +rust.footstep.boots.gravel.walk,player/footstep/boots/walk/footstep-boots-gravel-walk-008,1.0,1 +rust.footstep.boots.metal.run,player/footstep/boots/run/footstep-boots-metal-run-001,1.0,1 +rust.footstep.boots.metal.run,player/footstep/boots/run/footstep-boots-metal-run-002,1.0,1 +rust.footstep.boots.metal.run,player/footstep/boots/run/footstep-boots-metal-run-003,1.0,1 +rust.footstep.boots.metal.run,player/footstep/boots/run/footstep-boots-metal-run-004,1.0,1 +rust.footstep.boots.metal.run,player/footstep/boots/run/footstep-boots-metal-run-005,1.0,1 +rust.footstep.boots.metal.run,player/footstep/boots/run/footstep-boots-metal-run-006,1.0,1 +rust.footstep.boots.metal.run,player/footstep/boots/run/footstep-boots-metal-run-007,1.0,1 +rust.footstep.boots.metal.run,player/footstep/boots/run/footstep-boots-metal-run-008,1.0,1 +rust.footstep.boots.metal.walk,player/footstep/boots/walk/footstep-boots-metal-walk-001,1.0,1 +rust.footstep.boots.metal.walk,player/footstep/boots/walk/footstep-boots-metal-walk-002,1.0,1 +rust.footstep.boots.metal.walk,player/footstep/boots/walk/footstep-boots-metal-walk-003,1.0,1 +rust.footstep.boots.metal.walk,player/footstep/boots/walk/footstep-boots-metal-walk-004,1.0,1 +rust.footstep.boots.metal.walk,player/footstep/boots/walk/footstep-boots-metal-walk-005,1.0,1 +rust.footstep.boots.metal.walk,player/footstep/boots/walk/footstep-boots-metal-walk-006,1.0,1 +rust.footstep.boots.metal.walk,player/footstep/boots/walk/footstep-boots-metal-walk-007,1.0,1 +rust.footstep.boots.metal.walk,player/footstep/boots/walk/footstep-boots-metal-walk-008,1.0,1 +rust.footstep.boots.sand.run,player/footstep/boots/run/footstep-boots-sand-run-001,1.0,1 +rust.footstep.boots.sand.run,player/footstep/boots/run/footstep-boots-sand-run-002,1.0,1 +rust.footstep.boots.sand.run,player/footstep/boots/run/footstep-boots-sand-run-003,1.0,1 +rust.footstep.boots.sand.run,player/footstep/boots/run/footstep-boots-sand-run-004,1.0,1 +rust.footstep.boots.sand.run,player/footstep/boots/run/footstep-boots-sand-run-005,1.0,1 +rust.footstep.boots.sand.run,player/footstep/boots/run/footstep-boots-sand-run-006,1.0,1 +rust.footstep.boots.sand.run,player/footstep/boots/run/footstep-boots-sand-run-007,1.0,1 +rust.footstep.boots.sand.run,player/footstep/boots/run/footstep-boots-sand-run-008,1.0,1 +rust.footstep.boots.sand.walk,player/footstep/boots/walk/footstep-boots-sand-walk-001,1.0,1 +rust.footstep.boots.sand.walk,player/footstep/boots/walk/footstep-boots-sand-walk-002,1.0,1 +rust.footstep.boots.sand.walk,player/footstep/boots/walk/footstep-boots-sand-walk-003,1.0,1 +rust.footstep.boots.sand.walk,player/footstep/boots/walk/footstep-boots-sand-walk-004,1.0,1 +rust.footstep.boots.sand.walk,player/footstep/boots/walk/footstep-boots-sand-walk-005,1.0,1 +rust.footstep.boots.sand.walk,player/footstep/boots/walk/footstep-boots-sand-walk-006,1.0,1 +rust.footstep.boots.sand.walk,player/footstep/boots/walk/footstep-boots-sand-walk-007,1.0,1 +rust.footstep.boots.sand.walk,player/footstep/boots/walk/footstep-boots-sand-walk-008,1.0,1 +rust.footstep.boots.snow.run,player/footstep/boots/run/footstep-boots-snow-run-001,1.0,1 +rust.footstep.boots.snow.run,player/footstep/boots/run/footstep-boots-snow-run-002,1.0,1 +rust.footstep.boots.snow.run,player/footstep/boots/run/footstep-boots-snow-run-003,1.0,1 +rust.footstep.boots.snow.run,player/footstep/boots/run/footstep-boots-snow-run-004,1.0,1 +rust.footstep.boots.snow.run,player/footstep/boots/run/footstep-boots-snow-run-005,1.0,1 +rust.footstep.boots.snow.run,player/footstep/boots/run/footstep-boots-snow-run-006,1.0,1 +rust.footstep.boots.snow.run,player/footstep/boots/run/footstep-boots-snow-run-007,1.0,1 +rust.footstep.boots.snow.run,player/footstep/boots/run/footstep-boots-snow-run-008,1.0,1 +rust.footstep.boots.snow.walk,player/footstep/boots/walk/footstep-boots-snow-walk-001,1.0,1 +rust.footstep.boots.snow.walk,player/footstep/boots/walk/footstep-boots-snow-walk-002,1.0,1 +rust.footstep.boots.snow.walk,player/footstep/boots/walk/footstep-boots-snow-walk-003,1.0,1 +rust.footstep.boots.snow.walk,player/footstep/boots/walk/footstep-boots-snow-walk-004,1.0,1 +rust.footstep.boots.snow.walk,player/footstep/boots/walk/footstep-boots-snow-walk-005,1.0,1 +rust.footstep.boots.snow.walk,player/footstep/boots/walk/footstep-boots-snow-walk-006,1.0,1 +rust.footstep.boots.snow.walk,player/footstep/boots/walk/footstep-boots-snow-walk-007,1.0,1 +rust.footstep.boots.snow.walk,player/footstep/boots/walk/footstep-boots-snow-walk-008,1.0,1 +rust.footstep.boots.stones.run,player/footstep/boots/run/footstep-boots-stones-run-001,1.0,1 +rust.footstep.boots.stones.run,player/footstep/boots/run/footstep-boots-stones-run-002,1.0,1 +rust.footstep.boots.stones.run,player/footstep/boots/run/footstep-boots-stones-run-003,1.0,1 +rust.footstep.boots.stones.run,player/footstep/boots/run/footstep-boots-stones-run-004,1.0,1 +rust.footstep.boots.stones.run,player/footstep/boots/run/footstep-boots-stones-run-005,1.0,1 +rust.footstep.boots.stones.run,player/footstep/boots/run/footstep-boots-stones-run-006,1.0,1 +rust.footstep.boots.stones.run,player/footstep/boots/run/footstep-boots-stones-run-007,1.0,1 +rust.footstep.boots.stones.run,player/footstep/boots/run/footstep-boots-stones-run-008,1.0,1 +rust.footstep.boots.stones.walk,player/footstep/boots/walk/footstep-boots-stones-walk-001,1.0,1 +rust.footstep.boots.stones.walk,player/footstep/boots/walk/footstep-boots-stones-walk-002,1.0,1 +rust.footstep.boots.stones.walk,player/footstep/boots/walk/footstep-boots-stones-walk-003,1.0,1 +rust.footstep.boots.stones.walk,player/footstep/boots/walk/footstep-boots-stones-walk-004,1.0,1 +rust.footstep.boots.stones.walk,player/footstep/boots/walk/footstep-boots-stones-walk-005,1.0,1 +rust.footstep.boots.stones.walk,player/footstep/boots/walk/footstep-boots-stones-walk-006,1.0,1 +rust.footstep.boots.stones.walk,player/footstep/boots/walk/footstep-boots-stones-walk-007,1.0,1 +rust.footstep.boots.stones.walk,player/footstep/boots/walk/footstep-boots-stones-walk-008,1.0,1 +rust.footstep.boots.wood.run,player/footstep/boots/run/footstep-boots-wood-run-001,1.0,1 +rust.footstep.boots.wood.run,player/footstep/boots/run/footstep-boots-wood-run-002,1.0,1 +rust.footstep.boots.wood.run,player/footstep/boots/run/footstep-boots-wood-run-003,1.0,1 +rust.footstep.boots.wood.run,player/footstep/boots/run/footstep-boots-wood-run-004,1.0,1 +rust.footstep.boots.wood.run,player/footstep/boots/run/footstep-boots-wood-run-005,1.0,1 +rust.footstep.boots.wood.run,player/footstep/boots/run/footstep-boots-wood-run-006,1.0,1 +rust.footstep.boots.wood.run,player/footstep/boots/run/footstep-boots-wood-run-007,1.0,1 +rust.footstep.boots.wood.run,player/footstep/boots/run/footstep-boots-wood-run-008,1.0,1 +rust.footstep.boots.wood.walk,player/footstep/boots/walk/footstep-boots-wood-walk-001,1.0,1 +rust.footstep.boots.wood.walk,player/footstep/boots/walk/footstep-boots-wood-walk-002,1.0,1 +rust.footstep.boots.wood.walk,player/footstep/boots/walk/footstep-boots-wood-walk-003,1.0,1 +rust.footstep.boots.wood.walk,player/footstep/boots/walk/footstep-boots-wood-walk-004,1.0,1 +rust.footstep.boots.wood.walk,player/footstep/boots/walk/footstep-boots-wood-walk-005,1.0,1 +rust.footstep.boots.wood.walk,player/footstep/boots/walk/footstep-boots-wood-walk-006,1.0,1 +rust.footstep.boots.wood.walk,player/footstep/boots/walk/footstep-boots-wood-walk-007,1.0,1 +rust.footstep.boots.wood.walk,player/footstep/boots/walk/footstep-boots-wood-walk-008,1.0,1 +rust.footstep.burlap.cloth.run,player/footstep/burlap/run/footstep-burlap-cloth-run-001,1.0,1 +rust.footstep.burlap.cloth.run,player/footstep/burlap/run/footstep-burlap-cloth-run-002,1.0,1 +rust.footstep.burlap.cloth.run,player/footstep/burlap/run/footstep-burlap-cloth-run-003,1.0,1 +rust.footstep.burlap.cloth.run,player/footstep/burlap/run/footstep-burlap-cloth-run-004,1.0,1 +rust.footstep.burlap.cloth.run,player/footstep/burlap/run/footstep-burlap-cloth-run-005,1.0,1 +rust.footstep.burlap.cloth.run,player/footstep/burlap/run/footstep-burlap-cloth-run-006,1.0,1 +rust.footstep.burlap.cloth.run,player/footstep/burlap/run/footstep-burlap-cloth-run-007,1.0,1 +rust.footstep.burlap.cloth.run,player/footstep/burlap/run/footstep-burlap-cloth-run-008,1.0,1 +rust.footstep.burlap.cloth.walk,player/footstep/burlap/walk/footstep-burlap-cloth-walk-001,1.0,1 +rust.footstep.burlap.cloth.walk,player/footstep/burlap/walk/footstep-burlap-cloth-walk-002,1.0,1 +rust.footstep.burlap.cloth.walk,player/footstep/burlap/walk/footstep-burlap-cloth-walk-003,1.0,1 +rust.footstep.burlap.cloth.walk,player/footstep/burlap/walk/footstep-burlap-cloth-walk-004,1.0,1 +rust.footstep.burlap.cloth.walk,player/footstep/burlap/walk/footstep-burlap-cloth-walk-005,1.0,1 +rust.footstep.burlap.cloth.walk,player/footstep/burlap/walk/footstep-burlap-cloth-walk-006,1.0,1 +rust.footstep.burlap.cloth.walk,player/footstep/burlap/walk/footstep-burlap-cloth-walk-007,1.0,1 +rust.footstep.burlap.cloth.walk,player/footstep/burlap/walk/footstep-burlap-cloth-walk-008,1.0,1 +rust.footstep.burlap.concrete.run,player/footstep/burlap/run/footstep-burlap-concrete-run-001,1.0,1 +rust.footstep.burlap.concrete.run,player/footstep/burlap/run/footstep-burlap-concrete-run-002,1.0,1 +rust.footstep.burlap.concrete.run,player/footstep/burlap/run/footstep-burlap-concrete-run-003,1.0,1 +rust.footstep.burlap.concrete.run,player/footstep/burlap/run/footstep-burlap-concrete-run-004,1.0,1 +rust.footstep.burlap.concrete.run,player/footstep/burlap/run/footstep-burlap-concrete-run-005,1.0,1 +rust.footstep.burlap.concrete.run,player/footstep/burlap/run/footstep-burlap-concrete-run-006,1.0,1 +rust.footstep.burlap.concrete.run,player/footstep/burlap/run/footstep-burlap-concrete-run-007,1.0,1 +rust.footstep.burlap.concrete.walk,player/footstep/burlap/walk/footstep-burlap-concrete-walk-001,1.0,1 +rust.footstep.burlap.concrete.walk,player/footstep/burlap/walk/footstep-burlap-concrete-walk-002,1.0,1 +rust.footstep.burlap.concrete.walk,player/footstep/burlap/walk/footstep-burlap-concrete-walk-003,1.0,1 +rust.footstep.burlap.concrete.walk,player/footstep/burlap/walk/footstep-burlap-concrete-walk-004,1.0,1 +rust.footstep.burlap.concrete.walk,player/footstep/burlap/walk/footstep-burlap-concrete-walk-005,1.0,1 +rust.footstep.burlap.concrete.walk,player/footstep/burlap/walk/footstep-burlap-concrete-walk-006,1.0,1 +rust.footstep.burlap.concrete.walk,player/footstep/burlap/walk/footstep-burlap-concrete-walk-007,1.0,1 +rust.footstep.burlap.concrete.walk,player/footstep/burlap/walk/footstep-burlap-concrete-walk-008,1.0,1 +rust.footstep.burlap.dirt.run,player/footstep/burlap/run/footstep-burlap-dirt-run-001,1.0,1 +rust.footstep.burlap.dirt.run,player/footstep/burlap/run/footstep-burlap-dirt-run-002,1.0,1 +rust.footstep.burlap.dirt.run,player/footstep/burlap/run/footstep-burlap-dirt-run-003,1.0,1 +rust.footstep.burlap.dirt.run,player/footstep/burlap/run/footstep-burlap-dirt-run-004,1.0,1 +rust.footstep.burlap.dirt.run,player/footstep/burlap/run/footstep-burlap-dirt-run-005,1.0,1 +rust.footstep.burlap.dirt.run,player/footstep/burlap/run/footstep-burlap-dirt-run-006,1.0,1 +rust.footstep.burlap.dirt.run,player/footstep/burlap/run/footstep-burlap-dirt-run-007,1.0,1 +rust.footstep.burlap.dirt.run,player/footstep/burlap/run/footstep-burlap-dirt-run-008,1.0,1 +rust.footstep.burlap.dirt.walk,player/footstep/burlap/walk/footstep-burlap-dirt-walk-001,1.0,1 +rust.footstep.burlap.dirt.walk,player/footstep/burlap/walk/footstep-burlap-dirt-walk-002,1.0,1 +rust.footstep.burlap.dirt.walk,player/footstep/burlap/walk/footstep-burlap-dirt-walk-003,1.0,1 +rust.footstep.burlap.dirt.walk,player/footstep/burlap/walk/footstep-burlap-dirt-walk-004,1.0,1 +rust.footstep.burlap.dirt.walk,player/footstep/burlap/walk/footstep-burlap-dirt-walk-005,1.0,1 +rust.footstep.burlap.dirt.walk,player/footstep/burlap/walk/footstep-burlap-dirt-walk-006,1.0,1 +rust.footstep.burlap.dirt.walk,player/footstep/burlap/walk/footstep-burlap-dirt-walk-007,1.0,1 +rust.footstep.burlap.dirt.walk,player/footstep/burlap/walk/footstep-burlap-dirt-walk-008,1.0,1 +rust.footstep.burlap.forest.run,player/footstep/burlap/run/footstep-burlap-forest-run-001,1.0,1 +rust.footstep.burlap.forest.run,player/footstep/burlap/run/footstep-burlap-forest-run-002,1.0,1 +rust.footstep.burlap.forest.run,player/footstep/burlap/run/footstep-burlap-forest-run-003,1.0,1 +rust.footstep.burlap.forest.run,player/footstep/burlap/run/footstep-burlap-forest-run-004,1.0,1 +rust.footstep.burlap.forest.run,player/footstep/burlap/run/footstep-burlap-forest-run-005,1.0,1 +rust.footstep.burlap.forest.run,player/footstep/burlap/run/footstep-burlap-forest-run-006,1.0,1 +rust.footstep.burlap.forest.run,player/footstep/burlap/run/footstep-burlap-forest-run-007,1.0,1 +rust.footstep.burlap.forest.run,player/footstep/burlap/run/footstep-burlap-forest-run-008,1.0,1 +rust.footstep.burlap.forest.walk,player/footstep/burlap/walk/footstep-burlap-forest-walk-001,1.0,1 +rust.footstep.burlap.forest.walk,player/footstep/burlap/walk/footstep-burlap-forest-walk-002,1.0,1 +rust.footstep.burlap.forest.walk,player/footstep/burlap/walk/footstep-burlap-forest-walk-003,1.0,1 +rust.footstep.burlap.forest.walk,player/footstep/burlap/walk/footstep-burlap-forest-walk-004,1.0,1 +rust.footstep.burlap.forest.walk,player/footstep/burlap/walk/footstep-burlap-forest-walk-005,1.0,1 +rust.footstep.burlap.forest.walk,player/footstep/burlap/walk/footstep-burlap-forest-walk-006,1.0,1 +rust.footstep.burlap.forest.walk,player/footstep/burlap/walk/footstep-burlap-forest-walk-007,1.0,1 +rust.footstep.burlap.forest.walk,player/footstep/burlap/walk/footstep-burlap-forest-walk-008,1.0,1 +rust.footstep.burlap.grass.run,player/footstep/burlap/run/footstep-burlap-grass-run-001,1.0,1 +rust.footstep.burlap.grass.run,player/footstep/burlap/run/footstep-burlap-grass-run-002,1.0,1 +rust.footstep.burlap.grass.run,player/footstep/burlap/run/footstep-burlap-grass-run-003,1.0,1 +rust.footstep.burlap.grass.run,player/footstep/burlap/run/footstep-burlap-grass-run-004,1.0,1 +rust.footstep.burlap.grass.run,player/footstep/burlap/run/footstep-burlap-grass-run-005,1.0,1 +rust.footstep.burlap.grass.run,player/footstep/burlap/run/footstep-burlap-grass-run-006,1.0,1 +rust.footstep.burlap.grass.run,player/footstep/burlap/run/footstep-burlap-grass-run-007,1.0,1 +rust.footstep.burlap.grass.run,player/footstep/burlap/run/footstep-burlap-grass-run-008,1.0,1 +rust.footstep.burlap.grass.walk,player/footstep/burlap/walk/footstep-burlap-grass-walk-001,1.0,1 +rust.footstep.burlap.grass.walk,player/footstep/burlap/walk/footstep-burlap-grass-walk-002,1.0,1 +rust.footstep.burlap.grass.walk,player/footstep/burlap/walk/footstep-burlap-grass-walk-003,1.0,1 +rust.footstep.burlap.grass.walk,player/footstep/burlap/walk/footstep-burlap-grass-walk-004,1.0,1 +rust.footstep.burlap.grass.walk,player/footstep/burlap/walk/footstep-burlap-grass-walk-005,1.0,1 +rust.footstep.burlap.grass.walk,player/footstep/burlap/walk/footstep-burlap-grass-walk-006,1.0,1 +rust.footstep.burlap.grass.walk,player/footstep/burlap/walk/footstep-burlap-grass-walk-007,1.0,1 +rust.footstep.burlap.grass.walk,player/footstep/burlap/walk/footstep-burlap-grass-walk-008,1.0,1 +rust.footstep.burlap.gravel.run,player/footstep/burlap/run/footstep-burlap-gravel-run-001,1.0,1 +rust.footstep.burlap.gravel.run,player/footstep/burlap/run/footstep-burlap-gravel-run-002,1.0,1 +rust.footstep.burlap.gravel.run,player/footstep/burlap/run/footstep-burlap-gravel-run-003,1.0,1 +rust.footstep.burlap.gravel.run,player/footstep/burlap/run/footstep-burlap-gravel-run-004,1.0,1 +rust.footstep.burlap.gravel.run,player/footstep/burlap/run/footstep-burlap-gravel-run-005,1.0,1 +rust.footstep.burlap.gravel.run,player/footstep/burlap/run/footstep-burlap-gravel-run-006,1.0,1 +rust.footstep.burlap.gravel.run,player/footstep/burlap/run/footstep-burlap-gravel-run-007,1.0,1 +rust.footstep.burlap.gravel.run,player/footstep/burlap/run/footstep-burlap-gravel-run-008,1.0,1 +rust.footstep.burlap.gravel.walk,player/footstep/burlap/walk/footstep-burlap-gravel-walk-001,1.0,1 +rust.footstep.burlap.gravel.walk,player/footstep/burlap/walk/footstep-burlap-gravel-walk-002,1.0,1 +rust.footstep.burlap.gravel.walk,player/footstep/burlap/walk/footstep-burlap-gravel-walk-003,1.0,1 +rust.footstep.burlap.gravel.walk,player/footstep/burlap/walk/footstep-burlap-gravel-walk-004,1.0,1 +rust.footstep.burlap.gravel.walk,player/footstep/burlap/walk/footstep-burlap-gravel-walk-005,1.0,1 +rust.footstep.burlap.gravel.walk,player/footstep/burlap/walk/footstep-burlap-gravel-walk-006,1.0,1 +rust.footstep.burlap.gravel.walk,player/footstep/burlap/walk/footstep-burlap-gravel-walk-007,1.0,1 +rust.footstep.burlap.gravel.walk,player/footstep/burlap/walk/footstep-burlap-gravel-walk-008,1.0,1 +rust.footstep.burlap.metal.run,player/footstep/burlap/run/footstep-burlap-metal-run-001,1.0,1 +rust.footstep.burlap.metal.run,player/footstep/burlap/run/footstep-burlap-metal-run-002,1.0,1 +rust.footstep.burlap.metal.run,player/footstep/burlap/run/footstep-burlap-metal-run-003,1.0,1 +rust.footstep.burlap.metal.run,player/footstep/burlap/run/footstep-burlap-metal-run-004,1.0,1 +rust.footstep.burlap.metal.run,player/footstep/burlap/run/footstep-burlap-metal-run-005,1.0,1 +rust.footstep.burlap.metal.run,player/footstep/burlap/run/footstep-burlap-metal-run-006,1.0,1 +rust.footstep.burlap.metal.run,player/footstep/burlap/run/footstep-burlap-metal-run-007,1.0,1 +rust.footstep.burlap.metal.run,player/footstep/burlap/run/footstep-burlap-metal-run-008,1.0,1 +rust.footstep.burlap.metal.walk,player/footstep/burlap/walk/footstep-burlap-metal-walk-001,1.0,1 +rust.footstep.burlap.metal.walk,player/footstep/burlap/walk/footstep-burlap-metal-walk-002,1.0,1 +rust.footstep.burlap.metal.walk,player/footstep/burlap/walk/footstep-burlap-metal-walk-003,1.0,1 +rust.footstep.burlap.metal.walk,player/footstep/burlap/walk/footstep-burlap-metal-walk-004,1.0,1 +rust.footstep.burlap.metal.walk,player/footstep/burlap/walk/footstep-burlap-metal-walk-005,1.0,1 +rust.footstep.burlap.metal.walk,player/footstep/burlap/walk/footstep-burlap-metal-walk-006,1.0,1 +rust.footstep.burlap.metal.walk,player/footstep/burlap/walk/footstep-burlap-metal-walk-007,1.0,1 +rust.footstep.burlap.metal.walk,player/footstep/burlap/walk/footstep-burlap-metal-walk-008,1.0,1 +rust.footstep.burlap.sand.run,player/footstep/burlap/run/footstep-burlap-sand-run-001,1.0,1 +rust.footstep.burlap.sand.run,player/footstep/burlap/run/footstep-burlap-sand-run-002,1.0,1 +rust.footstep.burlap.sand.run,player/footstep/burlap/run/footstep-burlap-sand-run-003,1.0,1 +rust.footstep.burlap.sand.run,player/footstep/burlap/run/footstep-burlap-sand-run-004,1.0,1 +rust.footstep.burlap.sand.run,player/footstep/burlap/run/footstep-burlap-sand-run-005,1.0,1 +rust.footstep.burlap.sand.run,player/footstep/burlap/run/footstep-burlap-sand-run-006,1.0,1 +rust.footstep.burlap.sand.run,player/footstep/burlap/run/footstep-burlap-sand-run-007,1.0,1 +rust.footstep.burlap.sand.run,player/footstep/burlap/run/footstep-burlap-sand-run-008,1.0,1 +rust.footstep.burlap.sand.walk,player/footstep/burlap/walk/footstep-burlap-sand-walk-001,1.0,1 +rust.footstep.burlap.sand.walk,player/footstep/burlap/walk/footstep-burlap-sand-walk-002,1.0,1 +rust.footstep.burlap.sand.walk,player/footstep/burlap/walk/footstep-burlap-sand-walk-003,1.0,1 +rust.footstep.burlap.sand.walk,player/footstep/burlap/walk/footstep-burlap-sand-walk-004,1.0,1 +rust.footstep.burlap.sand.walk,player/footstep/burlap/walk/footstep-burlap-sand-walk-005,1.0,1 +rust.footstep.burlap.sand.walk,player/footstep/burlap/walk/footstep-burlap-sand-walk-006,1.0,1 +rust.footstep.burlap.sand.walk,player/footstep/burlap/walk/footstep-burlap-sand-walk-007,1.0,1 +rust.footstep.burlap.sand.walk,player/footstep/burlap/walk/footstep-burlap-sand-walk-008,1.0,1 +rust.footstep.burlap.snow.run,player/footstep/burlap/run/footstep-burlap-snow-run-001,1.0,1 +rust.footstep.burlap.snow.run,player/footstep/burlap/run/footstep-burlap-snow-run-002,1.0,1 +rust.footstep.burlap.snow.run,player/footstep/burlap/run/footstep-burlap-snow-run-003,1.0,1 +rust.footstep.burlap.snow.run,player/footstep/burlap/run/footstep-burlap-snow-run-004,1.0,1 +rust.footstep.burlap.snow.run,player/footstep/burlap/run/footstep-burlap-snow-run-005,1.0,1 +rust.footstep.burlap.snow.run,player/footstep/burlap/run/footstep-burlap-snow-run-006,1.0,1 +rust.footstep.burlap.snow.run,player/footstep/burlap/run/footstep-burlap-snow-run-007,1.0,1 +rust.footstep.burlap.snow.run,player/footstep/burlap/run/footstep-burlap-snow-run-008,1.0,1 +rust.footstep.burlap.snow.walk,player/footstep/burlap/walk/footstep-burlap-snow-walk-001,1.0,1 +rust.footstep.burlap.snow.walk,player/footstep/burlap/walk/footstep-burlap-snow-walk-002,1.0,1 +rust.footstep.burlap.snow.walk,player/footstep/burlap/walk/footstep-burlap-snow-walk-003,1.0,1 +rust.footstep.burlap.snow.walk,player/footstep/burlap/walk/footstep-burlap-snow-walk-004,1.0,1 +rust.footstep.burlap.snow.walk,player/footstep/burlap/walk/footstep-burlap-snow-walk-005,1.0,1 +rust.footstep.burlap.snow.walk,player/footstep/burlap/walk/footstep-burlap-snow-walk-006,1.0,1 +rust.footstep.burlap.snow.walk,player/footstep/burlap/walk/footstep-burlap-snow-walk-007,1.0,1 +rust.footstep.burlap.snow.walk,player/footstep/burlap/walk/footstep-burlap-snow-walk-008,1.0,1 +rust.footstep.burlap.stones.run,player/footstep/burlap/run/footstep-burlap-stones-run-001,1.0,1 +rust.footstep.burlap.stones.run,player/footstep/burlap/run/footstep-burlap-stones-run-002,1.0,1 +rust.footstep.burlap.stones.run,player/footstep/burlap/run/footstep-burlap-stones-run-003,1.0,1 +rust.footstep.burlap.stones.run,player/footstep/burlap/run/footstep-burlap-stones-run-004,1.0,1 +rust.footstep.burlap.stones.run,player/footstep/burlap/run/footstep-burlap-stones-run-005,1.0,1 +rust.footstep.burlap.stones.run,player/footstep/burlap/run/footstep-burlap-stones-run-006,1.0,1 +rust.footstep.burlap.stones.run,player/footstep/burlap/run/footstep-burlap-stones-run-007,1.0,1 +rust.footstep.burlap.stones.run,player/footstep/burlap/run/footstep-burlap-stones-run-008,1.0,1 +rust.footstep.burlap.stones.walk,player/footstep/burlap/walk/footstep-burlap-stones-walk-001,1.0,1 +rust.footstep.burlap.stones.walk,player/footstep/burlap/walk/footstep-burlap-stones-walk-002,1.0,1 +rust.footstep.burlap.stones.walk,player/footstep/burlap/walk/footstep-burlap-stones-walk-003,1.0,1 +rust.footstep.burlap.stones.walk,player/footstep/burlap/walk/footstep-burlap-stones-walk-004,1.0,1 +rust.footstep.burlap.stones.walk,player/footstep/burlap/walk/footstep-burlap-stones-walk-005,1.0,1 +rust.footstep.burlap.stones.walk,player/footstep/burlap/walk/footstep-burlap-stones-walk-006,1.0,1 +rust.footstep.burlap.stones.walk,player/footstep/burlap/walk/footstep-burlap-stones-walk-007,1.0,1 +rust.footstep.burlap.stones.walk,player/footstep/burlap/walk/footstep-burlap-stones-walk-008,1.0,1 +rust.footstep.burlap.wood.run,player/footstep/burlap/run/footstep-burlap-wood-run-001,1.0,1 +rust.footstep.burlap.wood.run,player/footstep/burlap/run/footstep-burlap-wood-run-002,1.0,1 +rust.footstep.burlap.wood.run,player/footstep/burlap/run/footstep-burlap-wood-run-003,1.0,1 +rust.footstep.burlap.wood.run,player/footstep/burlap/run/footstep-burlap-wood-run-004,1.0,1 +rust.footstep.burlap.wood.run,player/footstep/burlap/run/footstep-burlap-wood-run-005,1.0,1 +rust.footstep.burlap.wood.run,player/footstep/burlap/run/footstep-burlap-wood-run-006,1.0,1 +rust.footstep.burlap.wood.run,player/footstep/burlap/run/footstep-burlap-wood-run-007,1.0,1 +rust.footstep.burlap.wood.run,player/footstep/burlap/run/footstep-burlap-wood-run-008,1.0,1 +rust.footstep.burlap.wood.walk,player/footstep/burlap/walk/footstep-burlap-wood-walk-001,1.0,1 +rust.footstep.burlap.wood.walk,player/footstep/burlap/walk/footstep-burlap-wood-walk-002,1.0,1 +rust.footstep.burlap.wood.walk,player/footstep/burlap/walk/footstep-burlap-wood-walk-003,1.0,1 +rust.footstep.burlap.wood.walk,player/footstep/burlap/walk/footstep-burlap-wood-walk-004,1.0,1 +rust.footstep.burlap.wood.walk,player/footstep/burlap/walk/footstep-burlap-wood-walk-005,1.0,1 +rust.footstep.burlap.wood.walk,player/footstep/burlap/walk/footstep-burlap-wood-walk-006,1.0,1 +rust.footstep.burlap.wood.walk,player/footstep/burlap/walk/footstep-burlap-wood-walk-007,1.0,1 +rust.footstep.burlap.wood.walk,player/footstep/burlap/walk/footstep-burlap-wood-walk-008,1.0,1 +rust.footstep.hide.carpet.run,player/footstep/hide/run/footstep-hide-carpet-run-001,1.0,1 +rust.footstep.hide.carpet.run,player/footstep/hide/run/footstep-hide-carpet-run-002,1.0,1 +rust.footstep.hide.carpet.run,player/footstep/hide/run/footstep-hide-carpet-run-003,1.0,1 +rust.footstep.hide.carpet.run,player/footstep/hide/run/footstep-hide-carpet-run-004,1.0,1 +rust.footstep.hide.carpet.run,player/footstep/hide/run/footstep-hide-carpet-run-005,1.0,1 +rust.footstep.hide.carpet.run,player/footstep/hide/run/footstep-hide-carpet-run-006,1.0,1 +rust.footstep.hide.carpet.run,player/footstep/hide/run/footstep-hide-carpet-run-007,1.0,1 +rust.footstep.hide.carpet.run,player/footstep/hide/run/footstep-hide-carpet-run-008,1.0,1 +rust.footstep.hide.carpet.walk,player/footstep/hide/walk/footstep-hide-carpet-walk-001,1.0,1 +rust.footstep.hide.carpet.walk,player/footstep/hide/walk/footstep-hide-carpet-walk-002,1.0,1 +rust.footstep.hide.carpet.walk,player/footstep/hide/walk/footstep-hide-carpet-walk-003,1.0,1 +rust.footstep.hide.carpet.walk,player/footstep/hide/walk/footstep-hide-carpet-walk-004,1.0,1 +rust.footstep.hide.carpet.walk,player/footstep/hide/walk/footstep-hide-carpet-walk-005,1.0,1 +rust.footstep.hide.carpet.walk,player/footstep/hide/walk/footstep-hide-carpet-walk-006,1.0,1 +rust.footstep.hide.carpet.walk,player/footstep/hide/walk/footstep-hide-carpet-walk-007,1.0,1 +rust.footstep.hide.carpet.walk,player/footstep/hide/walk/footstep-hide-carpet-walk-008,1.0,1 +rust.footstep.hide.concrete.run,player/footstep/hide/run/footstep-hide-concrete-run-001,1.0,1 +rust.footstep.hide.concrete.run,player/footstep/hide/run/footstep-hide-concrete-run-002,1.0,1 +rust.footstep.hide.concrete.run,player/footstep/hide/run/footstep-hide-concrete-run-003,1.0,1 +rust.footstep.hide.concrete.run,player/footstep/hide/run/footstep-hide-concrete-run-004,1.0,1 +rust.footstep.hide.concrete.run,player/footstep/hide/run/footstep-hide-concrete-run-005,1.0,1 +rust.footstep.hide.concrete.run,player/footstep/hide/run/footstep-hide-concrete-run-006,1.0,1 +rust.footstep.hide.concrete.run,player/footstep/hide/run/footstep-hide-concrete-run-007,1.0,1 +rust.footstep.hide.concrete.run,player/footstep/hide/run/footstep-hide-concrete-run-008,1.0,1 +rust.footstep.hide.concrete.walk,player/footstep/hide/walk/footstep-hide-concrete-walk-001,1.0,1 +rust.footstep.hide.concrete.walk,player/footstep/hide/walk/footstep-hide-concrete-walk-002,1.0,1 +rust.footstep.hide.concrete.walk,player/footstep/hide/walk/footstep-hide-concrete-walk-003,1.0,1 +rust.footstep.hide.concrete.walk,player/footstep/hide/walk/footstep-hide-concrete-walk-004,1.0,1 +rust.footstep.hide.concrete.walk,player/footstep/hide/walk/footstep-hide-concrete-walk-005,1.0,1 +rust.footstep.hide.concrete.walk,player/footstep/hide/walk/footstep-hide-concrete-walk-006,1.0,1 +rust.footstep.hide.concrete.walk,player/footstep/hide/walk/footstep-hide-concrete-walk-007,1.0,1 +rust.footstep.hide.concrete.walk,player/footstep/hide/walk/footstep-hide-concrete-walk-008,1.0,1 +rust.footstep.hide.dirt.run,player/footstep/hide/run/footstep-hide-dirt-run-001,1.0,1 +rust.footstep.hide.dirt.run,player/footstep/hide/run/footstep-hide-dirt-run-002,1.0,1 +rust.footstep.hide.dirt.run,player/footstep/hide/run/footstep-hide-dirt-run-003,1.0,1 +rust.footstep.hide.dirt.run,player/footstep/hide/run/footstep-hide-dirt-run-004,1.0,1 +rust.footstep.hide.dirt.run,player/footstep/hide/run/footstep-hide-dirt-run-005,1.0,1 +rust.footstep.hide.dirt.run,player/footstep/hide/run/footstep-hide-dirt-run-006,1.0,1 +rust.footstep.hide.dirt.run,player/footstep/hide/run/footstep-hide-dirt-run-007,1.0,1 +rust.footstep.hide.dirt.run,player/footstep/hide/run/footstep-hide-dirt-run-008,1.0,1 +rust.footstep.hide.dirt.walk,player/footstep/hide/walk/footstep-hide-dirt-walk-001,1.0,1 +rust.footstep.hide.dirt.walk,player/footstep/hide/walk/footstep-hide-dirt-walk-002,1.0,1 +rust.footstep.hide.dirt.walk,player/footstep/hide/walk/footstep-hide-dirt-walk-003,1.0,1 +rust.footstep.hide.dirt.walk,player/footstep/hide/walk/footstep-hide-dirt-walk-004,1.0,1 +rust.footstep.hide.dirt.walk,player/footstep/hide/walk/footstep-hide-dirt-walk-005,1.0,1 +rust.footstep.hide.dirt.walk,player/footstep/hide/walk/footstep-hide-dirt-walk-006,1.0,1 +rust.footstep.hide.dirt.walk,player/footstep/hide/walk/footstep-hide-dirt-walk-007,1.0,1 +rust.footstep.hide.dirt.walk,player/footstep/hide/walk/footstep-hide-dirt-walk-008,1.0,1 +rust.footstep.hide.forest.run,player/footstep/hide/run/footstep-hide-forest-run-001,1.0,1 +rust.footstep.hide.forest.run,player/footstep/hide/run/footstep-hide-forest-run-002,1.0,1 +rust.footstep.hide.forest.run,player/footstep/hide/run/footstep-hide-forest-run-003,1.0,1 +rust.footstep.hide.forest.run,player/footstep/hide/run/footstep-hide-forest-run-004,1.0,1 +rust.footstep.hide.forest.run,player/footstep/hide/run/footstep-hide-forest-run-005,1.0,1 +rust.footstep.hide.forest.run,player/footstep/hide/run/footstep-hide-forest-run-006,1.0,1 +rust.footstep.hide.forest.run,player/footstep/hide/run/footstep-hide-forest-run-007,1.0,1 +rust.footstep.hide.forest.run,player/footstep/hide/run/footstep-hide-forest-run-008,1.0,1 +rust.footstep.hide.forest.walk,player/footstep/hide/walk/footstep-hide-forest-walk-001,1.0,1 +rust.footstep.hide.forest.walk,player/footstep/hide/walk/footstep-hide-forest-walk-002,1.0,1 +rust.footstep.hide.forest.walk,player/footstep/hide/walk/footstep-hide-forest-walk-003,1.0,1 +rust.footstep.hide.forest.walk,player/footstep/hide/walk/footstep-hide-forest-walk-004,1.0,1 +rust.footstep.hide.forest.walk,player/footstep/hide/walk/footstep-hide-forest-walk-005,1.0,1 +rust.footstep.hide.forest.walk,player/footstep/hide/walk/footstep-hide-forest-walk-006,1.0,1 +rust.footstep.hide.forest.walk,player/footstep/hide/walk/footstep-hide-forest-walk-007,1.0,1 +rust.footstep.hide.forest.walk,player/footstep/hide/walk/footstep-hide-forest-walk-008,1.0,1 +rust.footstep.hide.grass.run,player/footstep/hide/run/footstep-hide-grass-run-001,1.0,1 +rust.footstep.hide.grass.run,player/footstep/hide/run/footstep-hide-grass-run-002,1.0,1 +rust.footstep.hide.grass.run,player/footstep/hide/run/footstep-hide-grass-run-003,1.0,1 +rust.footstep.hide.grass.run,player/footstep/hide/run/footstep-hide-grass-run-004,1.0,1 +rust.footstep.hide.grass.run,player/footstep/hide/run/footstep-hide-grass-run-005,1.0,1 +rust.footstep.hide.grass.run,player/footstep/hide/run/footstep-hide-grass-run-006,1.0,1 +rust.footstep.hide.grass.run,player/footstep/hide/run/footstep-hide-grass-run-007,1.0,1 +rust.footstep.hide.grass.run,player/footstep/hide/run/footstep-hide-grass-run-008,1.0,1 +rust.footstep.hide.grass.walk,player/footstep/hide/walk/footstep-hide-grass-walk-001,1.0,1 +rust.footstep.hide.grass.walk,player/footstep/hide/walk/footstep-hide-grass-walk-002,1.0,1 +rust.footstep.hide.grass.walk,player/footstep/hide/walk/footstep-hide-grass-walk-003,1.0,1 +rust.footstep.hide.grass.walk,player/footstep/hide/walk/footstep-hide-grass-walk-004,1.0,1 +rust.footstep.hide.grass.walk,player/footstep/hide/walk/footstep-hide-grass-walk-005,1.0,1 +rust.footstep.hide.grass.walk,player/footstep/hide/walk/footstep-hide-grass-walk-006,1.0,1 +rust.footstep.hide.grass.walk,player/footstep/hide/walk/footstep-hide-grass-walk-007,1.0,1 +rust.footstep.hide.grass.walk,player/footstep/hide/walk/footstep-hide-grass-walk-008,1.0,1 +rust.footstep.hide.gravel.run,player/footstep/hide/run/footstep-hide-gravel-run-001,1.0,1 +rust.footstep.hide.gravel.run,player/footstep/hide/run/footstep-hide-gravel-run-002,1.0,1 +rust.footstep.hide.gravel.run,player/footstep/hide/run/footstep-hide-gravel-run-003,1.0,1 +rust.footstep.hide.gravel.run,player/footstep/hide/run/footstep-hide-gravel-run-004,1.0,1 +rust.footstep.hide.gravel.run,player/footstep/hide/run/footstep-hide-gravel-run-005,1.0,1 +rust.footstep.hide.gravel.run,player/footstep/hide/run/footstep-hide-gravel-run-006,1.0,1 +rust.footstep.hide.gravel.run,player/footstep/hide/run/footstep-hide-gravel-run-007,1.0,1 +rust.footstep.hide.gravel.run,player/footstep/hide/run/footstep-hide-gravel-run-008,1.0,1 +rust.footstep.hide.gravel.walk,player/footstep/hide/walk/footstep-hide-gravel-walk-001,1.0,1 +rust.footstep.hide.gravel.walk,player/footstep/hide/walk/footstep-hide-gravel-walk-002,1.0,1 +rust.footstep.hide.gravel.walk,player/footstep/hide/walk/footstep-hide-gravel-walk-003,1.0,1 +rust.footstep.hide.gravel.walk,player/footstep/hide/walk/footstep-hide-gravel-walk-004,1.0,1 +rust.footstep.hide.gravel.walk,player/footstep/hide/walk/footstep-hide-gravel-walk-005,1.0,1 +rust.footstep.hide.gravel.walk,player/footstep/hide/walk/footstep-hide-gravel-walk-006,1.0,1 +rust.footstep.hide.gravel.walk,player/footstep/hide/walk/footstep-hide-gravel-walk-007,1.0,1 +rust.footstep.hide.gravel.walk,player/footstep/hide/walk/footstep-hide-gravel-walk-008,1.0,1 +rust.footstep.hide.metal.run,player/footstep/hide/run/footstep-hide-metal-run-001,1.0,1 +rust.footstep.hide.metal.run,player/footstep/hide/run/footstep-hide-metal-run-002,1.0,1 +rust.footstep.hide.metal.run,player/footstep/hide/run/footstep-hide-metal-run-003,1.0,1 +rust.footstep.hide.metal.run,player/footstep/hide/run/footstep-hide-metal-run-004,1.0,1 +rust.footstep.hide.metal.run,player/footstep/hide/run/footstep-hide-metal-run-005,1.0,1 +rust.footstep.hide.metal.run,player/footstep/hide/run/footstep-hide-metal-run-006,1.0,1 +rust.footstep.hide.metal.run,player/footstep/hide/run/footstep-hide-metal-run-007,1.0,1 +rust.footstep.hide.metal.run,player/footstep/hide/run/footstep-hide-metal-run-008,1.0,1 +rust.footstep.hide.metal.walk,player/footstep/hide/walk/footstep-hide-metal-walk-001,1.0,1 +rust.footstep.hide.metal.walk,player/footstep/hide/walk/footstep-hide-metal-walk-002,1.0,1 +rust.footstep.hide.metal.walk,player/footstep/hide/walk/footstep-hide-metal-walk-003,1.0,1 +rust.footstep.hide.metal.walk,player/footstep/hide/walk/footstep-hide-metal-walk-004,1.0,1 +rust.footstep.hide.metal.walk,player/footstep/hide/walk/footstep-hide-metal-walk-005,1.0,1 +rust.footstep.hide.metal.walk,player/footstep/hide/walk/footstep-hide-metal-walk-006,1.0,1 +rust.footstep.hide.metal.walk,player/footstep/hide/walk/footstep-hide-metal-walk-007,1.0,1 +rust.footstep.hide.metal.walk,player/footstep/hide/walk/footstep-hide-metal-walk-008,1.0,1 +rust.footstep.hide.sand.run,player/footstep/hide/run/footstep-hide-sand-run-001,1.0,1 +rust.footstep.hide.sand.run,player/footstep/hide/run/footstep-hide-sand-run-002,1.0,1 +rust.footstep.hide.sand.run,player/footstep/hide/run/footstep-hide-sand-run-003,1.0,1 +rust.footstep.hide.sand.run,player/footstep/hide/run/footstep-hide-sand-run-004,1.0,1 +rust.footstep.hide.sand.run,player/footstep/hide/run/footstep-hide-sand-run-005,1.0,1 +rust.footstep.hide.sand.run,player/footstep/hide/run/footstep-hide-sand-run-006,1.0,1 +rust.footstep.hide.sand.run,player/footstep/hide/run/footstep-hide-sand-run-007,1.0,1 +rust.footstep.hide.sand.run,player/footstep/hide/run/footstep-hide-sand-run-008,1.0,1 +rust.footstep.hide.sand.walk,player/footstep/hide/walk/footstep-hide-sand-walk-001,1.0,1 +rust.footstep.hide.sand.walk,player/footstep/hide/walk/footstep-hide-sand-walk-002,1.0,1 +rust.footstep.hide.sand.walk,player/footstep/hide/walk/footstep-hide-sand-walk-003,1.0,1 +rust.footstep.hide.sand.walk,player/footstep/hide/walk/footstep-hide-sand-walk-004,1.0,1 +rust.footstep.hide.sand.walk,player/footstep/hide/walk/footstep-hide-sand-walk-005,1.0,1 +rust.footstep.hide.sand.walk,player/footstep/hide/walk/footstep-hide-sand-walk-006,1.0,1 +rust.footstep.hide.sand.walk,player/footstep/hide/walk/footstep-hide-sand-walk-007,1.0,1 +rust.footstep.hide.sand.walk,player/footstep/hide/walk/footstep-hide-sand-walk-008,1.0,1 +rust.footstep.hide.snow.run,player/footstep/hide/run/footstep-hide-snow-run-001,1.0,1 +rust.footstep.hide.snow.run,player/footstep/hide/run/footstep-hide-snow-run-002,1.0,1 +rust.footstep.hide.snow.run,player/footstep/hide/run/footstep-hide-snow-run-003,1.0,1 +rust.footstep.hide.snow.run,player/footstep/hide/run/footstep-hide-snow-run-004,1.0,1 +rust.footstep.hide.snow.run,player/footstep/hide/run/footstep-hide-snow-run-005,1.0,1 +rust.footstep.hide.snow.run,player/footstep/hide/run/footstep-hide-snow-run-006,1.0,1 +rust.footstep.hide.snow.run,player/footstep/hide/run/footstep-hide-snow-run-007,1.0,1 +rust.footstep.hide.snow.run,player/footstep/hide/run/footstep-hide-snow-run-008,1.0,1 +rust.footstep.hide.snow.walk,player/footstep/hide/walk/footstep-hide-snow-walk-001,1.0,1 +rust.footstep.hide.snow.walk,player/footstep/hide/walk/footstep-hide-snow-walk-002,1.0,1 +rust.footstep.hide.snow.walk,player/footstep/hide/walk/footstep-hide-snow-walk-003,1.0,1 +rust.footstep.hide.snow.walk,player/footstep/hide/walk/footstep-hide-snow-walk-004,1.0,1 +rust.footstep.hide.snow.walk,player/footstep/hide/walk/footstep-hide-snow-walk-005,1.0,1 +rust.footstep.hide.snow.walk,player/footstep/hide/walk/footstep-hide-snow-walk-006,1.0,1 +rust.footstep.hide.snow.walk,player/footstep/hide/walk/footstep-hide-snow-walk-007,1.0,1 +rust.footstep.hide.snow.walk,player/footstep/hide/walk/footstep-hide-snow-walk-008,1.0,1 +rust.footstep.hide.stones.run,player/footstep/hide/run/footstep-hide-stones-run-001,1.0,1 +rust.footstep.hide.stones.run,player/footstep/hide/run/footstep-hide-stones-run-002,1.0,1 +rust.footstep.hide.stones.run,player/footstep/hide/run/footstep-hide-stones-run-003,1.0,1 +rust.footstep.hide.stones.run,player/footstep/hide/run/footstep-hide-stones-run-004,1.0,1 +rust.footstep.hide.stones.run,player/footstep/hide/run/footstep-hide-stones-run-005,1.0,1 +rust.footstep.hide.stones.run,player/footstep/hide/run/footstep-hide-stones-run-006,1.0,1 +rust.footstep.hide.stones.run,player/footstep/hide/run/footstep-hide-stones-run-007,1.0,1 +rust.footstep.hide.stones.run,player/footstep/hide/run/footstep-hide-stones-run-008,1.0,1 +rust.footstep.hide.stones.walk,player/footstep/hide/walk/footstep-hide-stones-walk-001,1.0,1 +rust.footstep.hide.stones.walk,player/footstep/hide/walk/footstep-hide-stones-walk-002,1.0,1 +rust.footstep.hide.stones.walk,player/footstep/hide/walk/footstep-hide-stones-walk-003,1.0,1 +rust.footstep.hide.stones.walk,player/footstep/hide/walk/footstep-hide-stones-walk-004,1.0,1 +rust.footstep.hide.stones.walk,player/footstep/hide/walk/footstep-hide-stones-walk-005,1.0,1 +rust.footstep.hide.stones.walk,player/footstep/hide/walk/footstep-hide-stones-walk-006,1.0,1 +rust.footstep.hide.stones.walk,player/footstep/hide/walk/footstep-hide-stones-walk-007,1.0,1 +rust.footstep.hide.stones.walk,player/footstep/hide/walk/footstep-hide-stones-walk-008,1.0,1 +rust.footstep.hide.wood.run,player/footstep/hide/run/footstep-hide-wood-run-001,1.0,1 +rust.footstep.hide.wood.run,player/footstep/hide/run/footstep-hide-wood-run-002,1.0,1 +rust.footstep.hide.wood.run,player/footstep/hide/run/footstep-hide-wood-run-003,1.0,1 +rust.footstep.hide.wood.run,player/footstep/hide/run/footstep-hide-wood-run-004,1.0,1 +rust.footstep.hide.wood.run,player/footstep/hide/run/footstep-hide-wood-run-005,1.0,1 +rust.footstep.hide.wood.run,player/footstep/hide/run/footstep-hide-wood-run-006,1.0,1 +rust.footstep.hide.wood.run,player/footstep/hide/run/footstep-hide-wood-run-007,1.0,1 +rust.footstep.hide.wood.run,player/footstep/hide/run/footstep-hide-wood-run-008,1.0,1 +rust.footstep.hide.wood.walk,player/footstep/hide/walk/footstep-hide-wood-walk-001,1.0,1 +rust.footstep.hide.wood.walk,player/footstep/hide/walk/footstep-hide-wood-walk-002,1.0,1 +rust.footstep.hide.wood.walk,player/footstep/hide/walk/footstep-hide-wood-walk-003,1.0,1 +rust.footstep.hide.wood.walk,player/footstep/hide/walk/footstep-hide-wood-walk-004,1.0,1 +rust.footstep.hide.wood.walk,player/footstep/hide/walk/footstep-hide-wood-walk-005,1.0,1 +rust.footstep.hide.wood.walk,player/footstep/hide/walk/footstep-hide-wood-walk-006,1.0,1 +rust.footstep.hide.wood.walk,player/footstep/hide/walk/footstep-hide-wood-walk-007,1.0,1 +rust.footstep.hide.wood.walk,player/footstep/hide/walk/footstep-hide-wood-walk-008,1.0,1 +rust.footstep.rubberboots.cloth.run,player/footstep/rubber/run/footstep-rubber-boots-cloth-run-001,1.0,1 +rust.footstep.rubberboots.cloth.run,player/footstep/rubber/run/footstep-rubber-boots-cloth-run-002,1.0,1 +rust.footstep.rubberboots.cloth.run,player/footstep/rubber/run/footstep-rubber-boots-cloth-run-003,1.0,1 +rust.footstep.rubberboots.cloth.run,player/footstep/rubber/run/footstep-rubber-boots-cloth-run-004,1.0,1 +rust.footstep.rubberboots.cloth.run,player/footstep/rubber/run/footstep-rubber-boots-cloth-run-005,1.0,1 +rust.footstep.rubberboots.cloth.run,player/footstep/rubber/run/footstep-rubber-boots-cloth-run-006,1.0,1 +rust.footstep.rubberboots.cloth.run,player/footstep/rubber/run/footstep-rubber-boots-cloth-run-007,1.0,1 +rust.footstep.rubberboots.cloth.run,player/footstep/rubber/run/footstep-rubber-boots-cloth-run-008,1.0,1 +rust.footstep.rubberboots.cloth.walk,player/footstep/rubber/walk/footstep-rubber-boots-cloth-walk-001,1.0,1 +rust.footstep.rubberboots.cloth.walk,player/footstep/rubber/walk/footstep-rubber-boots-cloth-walk-002,1.0,1 +rust.footstep.rubberboots.cloth.walk,player/footstep/rubber/walk/footstep-rubber-boots-cloth-walk-003,1.0,1 +rust.footstep.rubberboots.cloth.walk,player/footstep/rubber/walk/footstep-rubber-boots-cloth-walk-004,1.0,1 +rust.footstep.rubberboots.cloth.walk,player/footstep/rubber/walk/footstep-rubber-boots-cloth-walk-005,1.0,1 +rust.footstep.rubberboots.cloth.walk,player/footstep/rubber/walk/footstep-rubber-boots-cloth-walk-006,1.0,1 +rust.footstep.rubberboots.cloth.walk,player/footstep/rubber/walk/footstep-rubber-boots-cloth-walk-007,1.0,1 +rust.footstep.rubberboots.cloth.walk,player/footstep/rubber/walk/footstep-rubber-boots-cloth-walk-008,1.0,1 +rust.footstep.rubberboots.concrete.run,player/footstep/rubber/run/footstep-rubber-boots-concrete-run-001,1.0,1 +rust.footstep.rubberboots.concrete.run,player/footstep/rubber/run/footstep-rubber-boots-concrete-run-002,1.0,1 +rust.footstep.rubberboots.concrete.run,player/footstep/rubber/run/footstep-rubber-boots-concrete-run-003,1.0,1 +rust.footstep.rubberboots.concrete.run,player/footstep/rubber/run/footstep-rubber-boots-concrete-run-004,1.0,1 +rust.footstep.rubberboots.concrete.run,player/footstep/rubber/run/footstep-rubber-boots-concrete-run-005,1.0,1 +rust.footstep.rubberboots.concrete.run,player/footstep/rubber/run/footstep-rubber-boots-concrete-run-006,1.0,1 +rust.footstep.rubberboots.concrete.run,player/footstep/rubber/run/footstep-rubber-boots-concrete-run-007,1.0,1 +rust.footstep.rubberboots.concrete.run,player/footstep/rubber/run/footstep-rubber-boots-concrete-run-008,1.0,1 +rust.footstep.rubberboots.concrete.walk,player/footstep/rubber/walk/footstep-rubber-boots-concrete-walk-001,1.0,1 +rust.footstep.rubberboots.concrete.walk,player/footstep/rubber/walk/footstep-rubber-boots-concrete-walk-002,1.0,1 +rust.footstep.rubberboots.concrete.walk,player/footstep/rubber/walk/footstep-rubber-boots-concrete-walk-003,1.0,1 +rust.footstep.rubberboots.concrete.walk,player/footstep/rubber/walk/footstep-rubber-boots-concrete-walk-004,1.0,1 +rust.footstep.rubberboots.concrete.walk,player/footstep/rubber/walk/footstep-rubber-boots-concrete-walk-005,1.0,1 +rust.footstep.rubberboots.concrete.walk,player/footstep/rubber/walk/footstep-rubber-boots-concrete-walk-006,1.0,1 +rust.footstep.rubberboots.concrete.walk,player/footstep/rubber/walk/footstep-rubber-boots-concrete-walk-007,1.0,1 +rust.footstep.rubberboots.concrete.walk,player/footstep/rubber/walk/footstep-rubber-boots-concrete-walk-008,1.0,1 +rust.footstep.rubberboots.dirt.run,player/footstep/rubber/run/footstep-rubber-boots-dirt-run-001,1.0,1 +rust.footstep.rubberboots.dirt.run,player/footstep/rubber/run/footstep-rubber-boots-dirt-run-002,1.0,1 +rust.footstep.rubberboots.dirt.run,player/footstep/rubber/run/footstep-rubber-boots-dirt-run-003,1.0,1 +rust.footstep.rubberboots.dirt.run,player/footstep/rubber/run/footstep-rubber-boots-dirt-run-004,1.0,1 +rust.footstep.rubberboots.dirt.run,player/footstep/rubber/run/footstep-rubber-boots-dirt-run-005,1.0,1 +rust.footstep.rubberboots.dirt.run,player/footstep/rubber/run/footstep-rubber-boots-dirt-run-006,1.0,1 +rust.footstep.rubberboots.dirt.run,player/footstep/rubber/run/footstep-rubber-boots-dirt-run-007,1.0,1 +rust.footstep.rubberboots.dirt.run,player/footstep/rubber/run/footstep-rubber-boots-dirt-run-008,1.0,1 +rust.footstep.rubberboots.dirt.walk,player/footstep/rubber/walk/footstep-rubber-boots-dirt-walk-001,1.0,1 +rust.footstep.rubberboots.dirt.walk,player/footstep/rubber/walk/footstep-rubber-boots-dirt-walk-002,1.0,1 +rust.footstep.rubberboots.dirt.walk,player/footstep/rubber/walk/footstep-rubber-boots-dirt-walk-003,1.0,1 +rust.footstep.rubberboots.dirt.walk,player/footstep/rubber/walk/footstep-rubber-boots-dirt-walk-004,1.0,1 +rust.footstep.rubberboots.dirt.walk,player/footstep/rubber/walk/footstep-rubber-boots-dirt-walk-005,1.0,1 +rust.footstep.rubberboots.dirt.walk,player/footstep/rubber/walk/footstep-rubber-boots-dirt-walk-006,1.0,1 +rust.footstep.rubberboots.dirt.walk,player/footstep/rubber/walk/footstep-rubber-boots-dirt-walk-007,1.0,1 +rust.footstep.rubberboots.dirt.walk,player/footstep/rubber/walk/footstep-rubber-boots-dirt-walk-008,1.0,1 +rust.footstep.rubberboots.forest.run,player/footstep/rubber/run/footstep-rubber-boots-forest-run-001,1.0,1 +rust.footstep.rubberboots.forest.run,player/footstep/rubber/run/footstep-rubber-boots-forest-run-002,1.0,1 +rust.footstep.rubberboots.forest.run,player/footstep/rubber/run/footstep-rubber-boots-forest-run-003,1.0,1 +rust.footstep.rubberboots.forest.run,player/footstep/rubber/run/footstep-rubber-boots-forest-run-004,1.0,1 +rust.footstep.rubberboots.forest.run,player/footstep/rubber/run/footstep-rubber-boots-forest-run-005,1.0,1 +rust.footstep.rubberboots.forest.run,player/footstep/rubber/run/footstep-rubber-boots-forest-run-006,1.0,1 +rust.footstep.rubberboots.forest.run,player/footstep/rubber/run/footstep-rubber-boots-forest-run-007,1.0,1 +rust.footstep.rubberboots.forest.run,player/footstep/rubber/run/footstep-rubber-boots-forest-run-008,1.0,1 +rust.footstep.rubberboots.forest.walk,player/footstep/rubber/walk/footstep-rubber-boots-forest-walk-001,1.0,1 +rust.footstep.rubberboots.forest.walk,player/footstep/rubber/walk/footstep-rubber-boots-forest-walk-002,1.0,1 +rust.footstep.rubberboots.forest.walk,player/footstep/rubber/walk/footstep-rubber-boots-forest-walk-003,1.0,1 +rust.footstep.rubberboots.forest.walk,player/footstep/rubber/walk/footstep-rubber-boots-forest-walk-004,1.0,1 +rust.footstep.rubberboots.forest.walk,player/footstep/rubber/walk/footstep-rubber-boots-forest-walk-005,1.0,1 +rust.footstep.rubberboots.forest.walk,player/footstep/rubber/walk/footstep-rubber-boots-forest-walk-006,1.0,1 +rust.footstep.rubberboots.forest.walk,player/footstep/rubber/walk/footstep-rubber-boots-forest-walk-007,1.0,1 +rust.footstep.rubberboots.forest.walk,player/footstep/rubber/walk/footstep-rubber-boots-forest-walk-008,1.0,1 +rust.footstep.rubberboots.grass.run,player/footstep/rubber/run/footstep-rubber-boots-grass-run-001,1.0,1 +rust.footstep.rubberboots.grass.run,player/footstep/rubber/run/footstep-rubber-boots-grass-run-002,1.0,1 +rust.footstep.rubberboots.grass.run,player/footstep/rubber/run/footstep-rubber-boots-grass-run-003,1.0,1 +rust.footstep.rubberboots.grass.run,player/footstep/rubber/run/footstep-rubber-boots-grass-run-004,1.0,1 +rust.footstep.rubberboots.grass.run,player/footstep/rubber/run/footstep-rubber-boots-grass-run-005,1.0,1 +rust.footstep.rubberboots.grass.run,player/footstep/rubber/run/footstep-rubber-boots-grass-run-006,1.0,1 +rust.footstep.rubberboots.grass.run,player/footstep/rubber/run/footstep-rubber-boots-grass-run-007,1.0,1 +rust.footstep.rubberboots.grass.run,player/footstep/rubber/run/footstep-rubber-boots-grass-run-008,1.0,1 +rust.footstep.rubberboots.grass.walk,player/footstep/rubber/walk/footstep-rubber-boots-grass-walk-001,1.0,1 +rust.footstep.rubberboots.grass.walk,player/footstep/rubber/walk/footstep-rubber-boots-grass-walk-002,1.0,1 +rust.footstep.rubberboots.grass.walk,player/footstep/rubber/walk/footstep-rubber-boots-grass-walk-003,1.0,1 +rust.footstep.rubberboots.grass.walk,player/footstep/rubber/walk/footstep-rubber-boots-grass-walk-004,1.0,1 +rust.footstep.rubberboots.grass.walk,player/footstep/rubber/walk/footstep-rubber-boots-grass-walk-005,1.0,1 +rust.footstep.rubberboots.grass.walk,player/footstep/rubber/walk/footstep-rubber-boots-grass-walk-006,1.0,1 +rust.footstep.rubberboots.grass.walk,player/footstep/rubber/walk/footstep-rubber-boots-grass-walk-007,1.0,1 +rust.footstep.rubberboots.grass.walk,player/footstep/rubber/walk/footstep-rubber-boots-grass-walk-008,1.0,1 +rust.footstep.rubberboots.gravel.run,player/footstep/rubber/run/footstep-rubber-boots-gravel-run-001,1.0,1 +rust.footstep.rubberboots.gravel.run,player/footstep/rubber/run/footstep-rubber-boots-gravel-run-002,1.0,1 +rust.footstep.rubberboots.gravel.run,player/footstep/rubber/run/footstep-rubber-boots-gravel-run-003,1.0,1 +rust.footstep.rubberboots.gravel.run,player/footstep/rubber/run/footstep-rubber-boots-gravel-run-004,1.0,1 +rust.footstep.rubberboots.gravel.run,player/footstep/rubber/run/footstep-rubber-boots-gravel-run-005,1.0,1 +rust.footstep.rubberboots.gravel.run,player/footstep/rubber/run/footstep-rubber-boots-gravel-run-006,1.0,1 +rust.footstep.rubberboots.gravel.run,player/footstep/rubber/run/footstep-rubber-boots-gravel-run-007,1.0,1 +rust.footstep.rubberboots.gravel.run,player/footstep/rubber/run/footstep-rubber-boots-gravel-run-008,1.0,1 +rust.footstep.rubberboots.gravel.walk,player/footstep/rubber/walk/footstep-rubber-boots-gravel-walk-001,1.0,1 +rust.footstep.rubberboots.gravel.walk,player/footstep/rubber/walk/footstep-rubber-boots-gravel-walk-002,1.0,1 +rust.footstep.rubberboots.gravel.walk,player/footstep/rubber/walk/footstep-rubber-boots-gravel-walk-003,1.0,1 +rust.footstep.rubberboots.gravel.walk,player/footstep/rubber/walk/footstep-rubber-boots-gravel-walk-004,1.0,1 +rust.footstep.rubberboots.gravel.walk,player/footstep/rubber/walk/footstep-rubber-boots-gravel-walk-005,1.0,1 +rust.footstep.rubberboots.gravel.walk,player/footstep/rubber/walk/footstep-rubber-boots-gravel-walk-006,1.0,1 +rust.footstep.rubberboots.gravel.walk,player/footstep/rubber/walk/footstep-rubber-boots-gravel-walk-007,1.0,1 +rust.footstep.rubberboots.gravel.walk,player/footstep/rubber/walk/footstep-rubber-boots-gravel-walk-008,1.0,1 +rust.footstep.rubberboots.metal.run,player/footstep/rubber/run/footstep-rubber-boots-metal-run-001,1.0,1 +rust.footstep.rubberboots.metal.run,player/footstep/rubber/run/footstep-rubber-boots-metal-run-002,1.0,1 +rust.footstep.rubberboots.metal.run,player/footstep/rubber/run/footstep-rubber-boots-metal-run-003,1.0,1 +rust.footstep.rubberboots.metal.run,player/footstep/rubber/run/footstep-rubber-boots-metal-run-004,1.0,1 +rust.footstep.rubberboots.metal.run,player/footstep/rubber/run/footstep-rubber-boots-metal-run-005,1.0,1 +rust.footstep.rubberboots.metal.run,player/footstep/rubber/run/footstep-rubber-boots-metal-run-006,1.0,1 +rust.footstep.rubberboots.metal.run,player/footstep/rubber/run/footstep-rubber-boots-metal-run-007,1.0,1 +rust.footstep.rubberboots.metal.run,player/footstep/rubber/run/footstep-rubber-boots-metal-run-008,1.0,1 +rust.footstep.rubberboots.metal.walk,player/footstep/rubber/walk/footstep-rubber-boots-metal-walk-001,1.0,1 +rust.footstep.rubberboots.metal.walk,player/footstep/rubber/walk/footstep-rubber-boots-metal-walk-002,1.0,1 +rust.footstep.rubberboots.metal.walk,player/footstep/rubber/walk/footstep-rubber-boots-metal-walk-003,1.0,1 +rust.footstep.rubberboots.metal.walk,player/footstep/rubber/walk/footstep-rubber-boots-metal-walk-004,1.0,1 +rust.footstep.rubberboots.metal.walk,player/footstep/rubber/walk/footstep-rubber-boots-metal-walk-005,1.0,1 +rust.footstep.rubberboots.metal.walk,player/footstep/rubber/walk/footstep-rubber-boots-metal-walk-006,1.0,1 +rust.footstep.rubberboots.metal.walk,player/footstep/rubber/walk/footstep-rubber-boots-metal-walk-007,1.0,1 +rust.footstep.rubberboots.metal.walk,player/footstep/rubber/walk/footstep-rubber-boots-metal-walk-008,1.0,1 +rust.footstep.rubberboots.sand.run,player/footstep/rubber/run/footstep-rubber-boots-sand-run-001,1.0,1 +rust.footstep.rubberboots.sand.run,player/footstep/rubber/run/footstep-rubber-boots-sand-run-002,1.0,1 +rust.footstep.rubberboots.sand.run,player/footstep/rubber/run/footstep-rubber-boots-sand-run-003,1.0,1 +rust.footstep.rubberboots.sand.run,player/footstep/rubber/run/footstep-rubber-boots-sand-run-004,1.0,1 +rust.footstep.rubberboots.sand.run,player/footstep/rubber/run/footstep-rubber-boots-sand-run-005,1.0,1 +rust.footstep.rubberboots.sand.run,player/footstep/rubber/run/footstep-rubber-boots-sand-run-006,1.0,1 +rust.footstep.rubberboots.sand.run,player/footstep/rubber/run/footstep-rubber-boots-sand-run-007,1.0,1 +rust.footstep.rubberboots.sand.walk,player/footstep/rubber/walk/footstep-rubber-boots-sand-walk-001,1.0,1 +rust.footstep.rubberboots.sand.walk,player/footstep/rubber/walk/footstep-rubber-boots-sand-walk-002,1.0,1 +rust.footstep.rubberboots.sand.walk,player/footstep/rubber/walk/footstep-rubber-boots-sand-walk-003,1.0,1 +rust.footstep.rubberboots.sand.walk,player/footstep/rubber/walk/footstep-rubber-boots-sand-walk-004,1.0,1 +rust.footstep.rubberboots.sand.walk,player/footstep/rubber/walk/footstep-rubber-boots-sand-walk-005,1.0,1 +rust.footstep.rubberboots.sand.walk,player/footstep/rubber/walk/footstep-rubber-boots-sand-walk-006,1.0,1 +rust.footstep.rubberboots.sand.walk,player/footstep/rubber/walk/footstep-rubber-boots-sand-walk-007,1.0,1 +rust.footstep.rubberboots.sand.walk,player/footstep/rubber/walk/footstep-rubber-boots-sand-walk-008,1.0,1 +rust.footstep.rubberboots.snow.run,player/footstep/rubber/run/footstep-rubber-boots-snow-run-001,1.0,1 +rust.footstep.rubberboots.snow.run,player/footstep/rubber/run/footstep-rubber-boots-snow-run-002,1.0,1 +rust.footstep.rubberboots.snow.run,player/footstep/rubber/run/footstep-rubber-boots-snow-run-003,1.0,1 +rust.footstep.rubberboots.snow.run,player/footstep/rubber/run/footstep-rubber-boots-snow-run-004,1.0,1 +rust.footstep.rubberboots.snow.run,player/footstep/rubber/run/footstep-rubber-boots-snow-run-005,1.0,1 +rust.footstep.rubberboots.snow.run,player/footstep/rubber/run/footstep-rubber-boots-snow-run-006,1.0,1 +rust.footstep.rubberboots.snow.run,player/footstep/rubber/run/footstep-rubber-boots-snow-run-007,1.0,1 +rust.footstep.rubberboots.snow.run,player/footstep/rubber/run/footstep-rubber-boots-snow-run-008,1.0,1 +rust.footstep.rubberboots.snow.walk,player/footstep/rubber/walk/footstep-rubber-boots-snow-walk-001,1.0,1 +rust.footstep.rubberboots.snow.walk,player/footstep/rubber/walk/footstep-rubber-boots-snow-walk-002,1.0,1 +rust.footstep.rubberboots.snow.walk,player/footstep/rubber/walk/footstep-rubber-boots-snow-walk-003,1.0,1 +rust.footstep.rubberboots.snow.walk,player/footstep/rubber/walk/footstep-rubber-boots-snow-walk-004,1.0,1 +rust.footstep.rubberboots.snow.walk,player/footstep/rubber/walk/footstep-rubber-boots-snow-walk-005,1.0,1 +rust.footstep.rubberboots.snow.walk,player/footstep/rubber/walk/footstep-rubber-boots-snow-walk-006,1.0,1 +rust.footstep.rubberboots.snow.walk,player/footstep/rubber/walk/footstep-rubber-boots-snow-walk-007,1.0,1 +rust.footstep.rubberboots.snow.walk,player/footstep/rubber/walk/footstep-rubber-boots-snow-walk-008,1.0,1 +rust.footstep.rubberboots.stones.run,player/footstep/rubber/run/footstep-rubber-boots-stones-run-001,1.0,1 +rust.footstep.rubberboots.stones.run,player/footstep/rubber/run/footstep-rubber-boots-stones-run-002,1.0,1 +rust.footstep.rubberboots.stones.run,player/footstep/rubber/run/footstep-rubber-boots-stones-run-003,1.0,1 +rust.footstep.rubberboots.stones.run,player/footstep/rubber/run/footstep-rubber-boots-stones-run-004,1.0,1 +rust.footstep.rubberboots.stones.run,player/footstep/rubber/run/footstep-rubber-boots-stones-run-005,1.0,1 +rust.footstep.rubberboots.stones.run,player/footstep/rubber/run/footstep-rubber-boots-stones-run-006,1.0,1 +rust.footstep.rubberboots.stones.run,player/footstep/rubber/run/footstep-rubber-boots-stones-run-007,1.0,1 +rust.footstep.rubberboots.stones.run,player/footstep/rubber/run/footstep-rubber-boots-stones-run-008,1.0,1 +rust.footstep.rubberboots.stones.walk,player/footstep/rubber/walk/footstep-rubber-boots-stones-walk-001,1.0,1 +rust.footstep.rubberboots.stones.walk,player/footstep/rubber/walk/footstep-rubber-boots-stones-walk-002,1.0,1 +rust.footstep.rubberboots.stones.walk,player/footstep/rubber/walk/footstep-rubber-boots-stones-walk-003,1.0,1 +rust.footstep.rubberboots.stones.walk,player/footstep/rubber/walk/footstep-rubber-boots-stones-walk-004,1.0,1 +rust.footstep.rubberboots.stones.walk,player/footstep/rubber/walk/footstep-rubber-boots-stones-walk-005,1.0,1 +rust.footstep.rubberboots.stones.walk,player/footstep/rubber/walk/footstep-rubber-boots-stones-walk-006,1.0,1 +rust.footstep.rubberboots.stones.walk,player/footstep/rubber/walk/footstep-rubber-boots-stones-walk-007,1.0,1 +rust.footstep.rubberboots.stones.walk,player/footstep/rubber/walk/footstep-rubber-boots-stones-walk-008,1.0,1 +rust.footstep.rubberboots.wood.run,player/footstep/rubber/run/footstep-rubber-boots-wood-run-001,1.0,1 +rust.footstep.rubberboots.wood.run,player/footstep/rubber/run/footstep-rubber-boots-wood-run-002,1.0,1 +rust.footstep.rubberboots.wood.run,player/footstep/rubber/run/footstep-rubber-boots-wood-run-003,1.0,1 +rust.footstep.rubberboots.wood.run,player/footstep/rubber/run/footstep-rubber-boots-wood-run-004,1.0,1 +rust.footstep.rubberboots.wood.run,player/footstep/rubber/run/footstep-rubber-boots-wood-run-005,1.0,1 +rust.footstep.rubberboots.wood.run,player/footstep/rubber/run/footstep-rubber-boots-wood-run-006,1.0,1 +rust.footstep.rubberboots.wood.run,player/footstep/rubber/run/footstep-rubber-boots-wood-run-007,1.0,1 +rust.footstep.rubberboots.wood.run,player/footstep/rubber/run/footstep-rubber-boots-wood-run-008,1.0,1 +rust.footstep.rubberboots.wood.walk,player/footstep/rubber/walk/footstep-rubber-boots-wood-walk-001,1.0,1 +rust.footstep.rubberboots.wood.walk,player/footstep/rubber/walk/footstep-rubber-boots-wood-walk-002,1.0,1 +rust.footstep.rubberboots.wood.walk,player/footstep/rubber/walk/footstep-rubber-boots-wood-walk-003,1.0,1 +rust.footstep.rubberboots.wood.walk,player/footstep/rubber/walk/footstep-rubber-boots-wood-walk-004,1.0,1 +rust.footstep.rubberboots.wood.walk,player/footstep/rubber/walk/footstep-rubber-boots-wood-walk-005,1.0,1 +rust.footstep.rubberboots.wood.walk,player/footstep/rubber/walk/footstep-rubber-boots-wood-walk-006,1.0,1 +rust.footstep.rubberboots.wood.walk,player/footstep/rubber/walk/footstep-rubber-boots-wood-walk-007,1.0,1 +rust.footstep.rubberboots.wood.walk,player/footstep/rubber/walk/footstep-rubber-boots-wood-walk-008,1.0,1 +rust.footstep.water.hard,player/water/footstep-water-hard-1,1.0,1 +rust.footstep.water.hard,player/water/footstep-water-hard-2,1.0,1 +rust.footstep.water.hard,player/water/footstep-water-hard-3,1.0,1 +rust.footstep.water.hard,player/water/footstep-water-hard-4,1.0,1 +rust.footstep.water.light,player/water/footstep-water-light-1,1.0,1 +rust.footstep.water.light,player/water/footstep-water-light-2,1.0,1 +rust.footstep.water.light,player/water/footstep-water-light-3,1.0,1 +rust.footstep.water.light,player/water/footstep-water-light-4,1.0,1 +rust.footstep.water.med,player/water/footstep-water-med-1,1.0,1 +rust.footstep.water.med,player/water/footstep-water-med-2,1.0,1 +rust.footstep.water.med,player/water/footstep-water-med-3,1.0,1 +rust.footstep.water.med,player/water/footstep-water-med-4,1.0,1 +rust.handmadesmg.shoot.dist,rustex/handmadesmg/handmadesmg-attack-distant-01,1.0,1 +rust.handmadesmg.shoot.dist,rustex/handmadesmg/handmadesmg-attack-distant-02,1.0,1 +rust.handmadesmg.shoot.dist,rustex/handmadesmg/handmadesmg-attack-distant-03,1.0,1 +rust.handmadesmg.shoot.fardist,rustex/handmadesmg/handmadesmg-attack-far-distant-01,1.0,1 +rust.handmadesmg.shoot.fardist,rustex/handmadesmg/handmadesmg-attack-far-distant-02,1.0,1 +rust.handmadesmg.shoot.fardist,rustex/handmadesmg/handmadesmg-attack-far-distant-03,1.0,1 +rust.handmadesmg.shoot.fps,rustex/handmadesmg/handmadesmg-attack-fps-01,1.0,1 +rust.handmadesmg.shoot.fps,rustex/handmadesmg/handmadesmg-attack-fps-02,1.0,1 +rust.handmadesmg.shoot.fps,rustex/handmadesmg/handmadesmg-attack-fps-03,1.0,1 +rust.handmadesmg.shoot.normal,rustex/handmadesmg/handmadesmg-attack-01,1.0,1 +rust.handmadesmg.shoot.normal,rustex/handmadesmg/handmadesmg-attack-02,1.0,1 +rust.handmadesmg.shoot.normal,rustex/handmadesmg/handmadesmg-attack-03,1.0,1 +rust.highcaliberrevolver.noammo,rustex/noammo/highcaliberrevolver-noammo-01,1.0,1 +rust.highcaliberrevolver.noammo,rustex/noammo/highcaliberrevolver-noammo-02,1.0,1 +rust.highcaliberrevolver.noammo,rustex/noammo/highcaliberrevolver-noammo-03,1.0,1 +rust.highcaliberrevolver.shoot.dist,rustex/highcaliberrevolver/highcaliberrevolver-distant-01,1.0,1 +rust.highcaliberrevolver.shoot.dist,rustex/highcaliberrevolver/highcaliberrevolver-distant-02,1.0,1 +rust.highcaliberrevolver.shoot.dist,rustex/highcaliberrevolver/highcaliberrevolver-distant-03,1.0,1 +rust.highcaliberrevolver.shoot.fardist,rustex/highcaliberrevolver/highcaliberrevolver-far-distant-01,1.0,1 +rust.highcaliberrevolver.shoot.fardist,rustex/highcaliberrevolver/highcaliberrevolver-far-distant-02,1.0,1 +rust.highcaliberrevolver.shoot.fardist,rustex/highcaliberrevolver/highcaliberrevolver-far-distant-03,1.0,1 +rust.highcaliberrevolver.shoot.fps,rustex/highcaliberrevolver/highcaliberrevolver-attack-fps-01,1.0,1 +rust.highcaliberrevolver.shoot.fps,rustex/highcaliberrevolver/highcaliberrevolver-attack-fps-02,1.0,1 +rust.highcaliberrevolver.shoot.fps,rustex/highcaliberrevolver/highcaliberrevolver-attack-fps-03,1.0,1 +rust.highcaliberrevolver.shoot.normal,rustex/highcaliberrevolver/highcaliberrevolver-attack-01,1.0,1 +rust.highcaliberrevolver.shoot.normal,rustex/highcaliberrevolver/highcaliberrevolver-attack-02,1.0,1 +rust.highcaliberrevolver.shoot.normal,rustex/highcaliberrevolver/highcaliberrevolver-attack-03,1.0,1 +rust.hmlmg.deploy,rustex/deploy/hmlmg-deploy-1,1.0,1 +rust.hmlmg.deploy,rustex/deploy/hmlmg-deploy-2,1.0,1 +rust.hmlmg.deploy.end,rustex/deploy/hmlmg-deploy-3p-1,1.0,1 +rust.hmlmg.deploy.end,rustex/deploy/hmlmg-deploy-3p-2,1.0,1 +rust.hmlmg.shoot.dist,rustex/hmlmg/hmlmg-attack-distant-1,1.0,1 +rust.hmlmg.shoot.dist,rustex/hmlmg/hmlmg-attack-distant-2,1.0,1 +rust.hmlmg.shoot.dist,rustex/hmlmg/hmlmg-attack-distant-3,1.0,1 +rust.hmlmg.shoot.fardist,rustex/hmlmg/hmlmg-attack-far-distant-1,1.0,1 +rust.hmlmg.shoot.fardist,rustex/hmlmg/hmlmg-attack-far-distant-2,1.0,1 +rust.hmlmg.shoot.fardist,rustex/hmlmg/hmlmg-attack-far-distant-3,1.0,1 +rust.hmlmg.shoot.fps,rustex/hmlmg/hmlmg-attack-fps-1,1.0,1 +rust.hmlmg.shoot.fps,rustex/hmlmg/hmlmg-attack-fps-2,1.0,1 +rust.hmlmg.shoot.fps,rustex/hmlmg/hmlmg-attack-fps-3,1.0,1 +rust.hmlmg.shoot.normal,rustex/hmlmg/hmlmg-attack-1,1.0,1 +rust.hmlmg.shoot.normal,rustex/hmlmg/hmlmg-attack-2,1.0,1 +rust.hmlmg.shoot.normal,rustex/hmlmg/hmlmg-attack-3,1.0,1 +rust.hqm.damage,build/metal/metal-damage-1-mono,1.0,1 +rust.hqm.damage,build/metal/metal-damage-2-mono,1.0,1 +rust.hqm.damage,build/metal/metal-damage-3-mono,1.0,1 +rust.hqm.damage,build/metal/metal-damage-4-mono,1.0,1 +rust.hqm.destroy,build/metal/metal-destroy-1-mono,1.0,1 +rust.hqm.destroy,build/metal/metal-destroy-2-mono,1.0,1 +rust.hqm.destroy,build/metal/metal-destroy-3-mono,1.0,1 +rust.hqm.destroy,build/metal/metal-destroy-4-mono,1.0,1 +rust.hqm.upgrade,build/metal/metal-upgrade-1-mono,1.0,1 +rust.hqm.upgrade,build/metal/metal-upgrade-2-mono,1.0,1 +rust.hqm.upgrade,build/metal/metal-upgrade-3-mono,1.0,1 +rust.knock.doormetal,furniture/doormetal/door-knock-metal-friendly-1-mono,1.0,1 +rust.knock.doormetal,furniture/doormetal/door-knock-metal-friendly-2-mono,1.0,1 +rust.knock.doorwood,furniture/doorwood/door-knock-friendly-1-mono,1.0,1 +rust.knock.doorwood,furniture/doorwood/door-knock-friendly-2-mono,1.0,1 +rust.lr300assaultrifle.deploy,rustex/deploy/lr300-deploy-001,1.0,1 +rust.lr300assaultrifle.deploy,rustex/deploy/lr300-deploy-002,1.0,1 +rust.metal.damage,build/metal/metal-damage-1-mono,1.0,1 +rust.metal.damage,build/metal/metal-damage-2-mono,1.0,1 +rust.metal.damage,build/metal/metal-damage-3-mono,1.0,1 +rust.metal.damage,build/metal/metal-damage-4-mono,1.0,1 +rust.metal.destroy,build/metal/metal-destroy-1-mono,1.0,1 +rust.metal.destroy,build/metal/metal-destroy-2-mono,1.0,1 +rust.metal.destroy,build/metal/metal-destroy-3-mono,1.0,1 +rust.metal.destroy,build/metal/metal-destroy-4-mono,1.0,1 +rust.metal.upgrade,build/metal/metal-upgrade-1-mono,1.0,1 +rust.metal.upgrade,build/metal/metal-upgrade-2-mono,1.0,1 +rust.metal.upgrade,build/metal/metal-upgrade-3-mono,1.0,1 +rust.miningquarry.rocks.dump,furniture/miningquarry/quarry-dump-rocks-1,1.0,1 +rust.miningquarry.rocks.dump,furniture/miningquarry/quarry-dump-rocks-2,1.0,1 +rust.miningquarry.rocks.dump,furniture/miningquarry/quarry-dump-rocks-3,1.0,1 +rust.monumentpuzzles.bigbutton.press,furniture/monumentpuzzles/bigbutton/button-press-001,1.0,1 +rust.monumentpuzzles.bigbutton.press,furniture/monumentpuzzles/bigbutton/button-press-002,1.0,1 +rust.monumentpuzzles.bigbutton.reset,furniture/monumentpuzzles/bigbutton/button-reset-001,1.0,1 +rust.monumentpuzzles.bigbutton.reset,furniture/monumentpuzzles/bigbutton/button-reset-002,1.0,1 +rust.monumentpuzzles.fusebox.close,furniture/slotmachine/slot-machine-close-001,1.0,1 +rust.monumentpuzzles.fusebox.close,furniture/slotmachine/slot-machine-close-002,1.0,1 +rust.monumentpuzzles.fusebox.close,furniture/slotmachine/slot-machine-close-003,1.0,1 +rust.monumentpuzzles.fusebox.open,furniture/slotmachine/slot-machine-open-001,1.0,1 +rust.monumentpuzzles.fusebox.open,furniture/slotmachine/slot-machine-open-002,1.0,1 +rust.monumentpuzzles.fusebox.open,furniture/slotmachine/slot-machine-open-003,1.0,1 +rust.open.barbeque,furniture/barbeque/camper-bbq-open-001-stereo,1.0,1 +rust.open.barbeque,furniture/barbeque/camper-bbq-open-002-stereo,1.0,1 +rust.open.campfire,furniture/campfire/campfire-open-1-stereo,1.0,1 +rust.open.campfire,furniture/campfire/campfire-open-2-stereo,1.0,1 +rust.open.electricfurnace,furniture/electric/electricfurnace/electric-furnace-open-1-stereo,1.0,1 +rust.open.electricfurnace,furniture/electric/electricfurnace/electric-furnace-open-2-stereo,1.0,1 +rust.open.fuelcontainer,furniture/small-boat-open-fuel-container,2,1.0 +rust.open.furnace,furniture/furnace/furnace-open-1-stereo,1.0,1 +rust.open.furnace,furniture/furnace/furnace-open-2-stereo,1.0,1 +rust.open.highexternalstonegate,furniture/highexternalwall/door-large-metal-open-start-1,1.0,1 +rust.open.highexternalstonegate,furniture/highexternalwall/door-large-metal-open-start-2,1.0,1 +rust.open.highexternalwoodengate,furniture/highexternalwall/door-large-wood-open-start-1,1.0,1 +rust.open.highexternalwoodengate,furniture/highexternalwall/door-large-wood-open-start-2,1.0,1 +rust.open.largefurnace,furniture/largefurnace/large-furnace-open-001-stereo,1.0,1 +rust.open.largefurnace,furniture/largefurnace/large-furnace-open-002-stereo,1.0,1 +rust.open.largewoodbox,furniture/largewoodbox/large-wood-box-open-1-stereo,1.0,1 +rust.open.largewoodbox,furniture/largewoodbox/large-wood-box-open-2-stereo,1.0,1 +rust.open.metalshopfront,furniture/metalshopfront/shop-front-open-001,1.0,1 +rust.open.metalshopfront,furniture/metalshopfront/shop-front-open-002,1.0,1 +rust.open.mixingtable,furniture/mixingtable/mixing-table-open-001,1.0,1 +rust.open.mixingtable,furniture/mixingtable/mixing-table-open-002,1.0,1 +rust.open.woodstoragebox,furniture/smallwoodbox/small-wooden-box-open-1-stereo,1.0,1 +rust.open.woodstoragebox,furniture/smallwoodbox/small-wooden-box-open-2-stereo,1.0,1 +rust.ore.break,nodes/ore_break_1,1.0,1 +rust.ore.break,nodes/ore_break_2,1.0,1 +rust.ore.break,nodes/ore_break_3,1.0,1 +rust.ore.break,nodes/ore_break_4,1.0,1 +rust.pickup.uibone,inventory/pickup/ui-pickup-bone-001,1.0,1 +rust.pickup.uibone,inventory/pickup/ui-pickup-bone-002,1.0,1 +rust.pickup.uibone,inventory/pickup/ui-pickup-bone-003,1.0,1 +rust.pickup.uibone,inventory/pickup/ui-pickup-bone-004,1.0,1 +rust.pickup.uicanempty,inventory/pickup/ui-pickup-can-empty-001,1.0,1 +rust.pickup.uicanempty,inventory/pickup/ui-pickup-can-empty-002,1.0,1 +rust.pickup.uicanempty,inventory/pickup/ui-pickup-can-empty-003,1.0,1 +rust.pickup.uicanempty,inventory/pickup/ui-pickup-can-empty-004,1.0,1 +rust.pickup.uicanfull,inventory/pickup/ui-pickup-can-full-001,1.0,1 +rust.pickup.uicanfull,inventory/pickup/ui-pickup-can-full-002,1.0,1 +rust.pickup.uicanfull,inventory/pickup/ui-pickup-can-full-003,1.0,1 +rust.pickup.uicanfull,inventory/pickup/ui-pickup-can-full-004,1.0,1 +rust.pickup.uichainlink,inventory/pickup/ui-pickup-chainlink-001,1.0,1 +rust.pickup.uichainlink,inventory/pickup/ui-pickup-chainlink-002,1.0,1 +rust.pickup.uichainlink,inventory/pickup/ui-pickup-chainlink-003,1.0,1 +rust.pickup.uichainlink,inventory/pickup/ui-pickup-chainlink-004,1.0,1 +rust.pickup.uicharcol,inventory/pickup/ui-pickup-charcol-001,1.0,1 +rust.pickup.uicharcol,inventory/pickup/ui-pickup-charcol-002,1.0,1 +rust.pickup.uicharcol,inventory/pickup/ui-pickup-charcol-003,1.0,1 +rust.pickup.uicharcol,inventory/pickup/ui-pickup-charcol-004,1.0,1 +rust.pickup.uicloth,inventory/pickup/ui-pickup-cloth-1,1.0,1 +rust.pickup.uicloth,inventory/pickup/ui-pickup-cloth-2,1.0,1 +rust.pickup.uicloth,inventory/pickup/ui-pickup-cloth-3,1.0,1 +rust.pickup.uicloth,inventory/pickup/ui-pickup-cloth-4,1.0,1 +rust.pickup.uifoliage,inventory/pickup/ui-foliage-pickup-01,1.0,1 +rust.pickup.uifoliage,inventory/pickup/ui-foliage-pickup-02,1.0,1 +rust.pickup.uifoliage,inventory/pickup/ui-foliage-pickup-03,1.0,1 +rust.pickup.uigun,inventory/pickup/ui-pickup-gun-1,1.0,1 +rust.pickup.uigun,inventory/pickup/ui-pickup-gun-2,1.0,1 +rust.pickup.uigun,inventory/pickup/ui-pickup-gun-3,1.0,1 +rust.pickup.uigun,inventory/pickup/ui-pickup-gun-4,1.0,1 +rust.pickup.uileather,inventory/pickup/ui-pickup-leather-1,1.0,1 +rust.pickup.uileather,inventory/pickup/ui-pickup-leather-2,1.0,1 +rust.pickup.uileather,inventory/pickup/ui-pickup-leather-3,1.0,1 +rust.pickup.uileather,inventory/pickup/ui-pickup-leather-4,1.0,1 +rust.pickup.uiliquidcontainer,inventory/pickup/ui-liquid-container-pickup-01,1.0,1 +rust.pickup.uiliquidcontainer,inventory/pickup/ui-liquid-container-pickup-02,1.0,1 +rust.pickup.uiliquidcontainer,inventory/pickup/ui-liquid-container-pickup-03,1.0,1 +rust.pickup.uimeat,inventory/pickup/ui-pickup-meat-1,1.0,1 +rust.pickup.uimeat,inventory/pickup/ui-pickup-meat-2,1.0,1 +rust.pickup.uimeat,inventory/pickup/ui-pickup-meat-3,1.0,1 +rust.pickup.uimeat,inventory/pickup/ui-pickup-meat-4,1.0,1 +rust.pickup.uimetal,inventory/pickup/ui-pickup-metal-1,1.0,1 +rust.pickup.uimetal,inventory/pickup/ui-pickup-metal-2,1.0,1 +rust.pickup.uimetal,inventory/pickup/ui-pickup-metal-3,1.0,1 +rust.pickup.uimetal,inventory/pickup/ui-pickup-metal-4,1.0,1 +rust.pickup.uimetalbars,inventory/pickup/ui-pickup-metal-bars-001,1.0,1 +rust.pickup.uimetalbars,inventory/pickup/ui-pickup-metal-bars-002,1.0,1 +rust.pickup.uimetalbars,inventory/pickup/ui-pickup-metal-bars-003,1.0,1 +rust.pickup.uimetalbars,inventory/pickup/ui-pickup-metal-bars-004,1.0,1 +rust.pickup.uimetalhollow,inventory/pickup/ui-pickup-metal-hollow-001,1.0,1 +rust.pickup.uimetalhollow,inventory/pickup/ui-pickup-metal-hollow-002,1.0,1 +rust.pickup.uimetalhollow,inventory/pickup/ui-pickup-metal-hollow-003,1.0,1 +rust.pickup.uimetalhollow,inventory/pickup/ui-pickup-metal-hollow-004,1.0,1 +rust.pickup.uimetalhollowlarge,inventory/pickup/ui-pickup-metal-hollow-large-001,1.0,1 +rust.pickup.uimetalhollowlarge,inventory/pickup/ui-pickup-metal-hollow-large-002,1.0,1 +rust.pickup.uimetalhollowlarge,inventory/pickup/ui-pickup-metal-hollow-large-003,1.0,1 +rust.pickup.uimetalhollowlarge,inventory/pickup/ui-pickup-metal-hollow-large-004,1.0,1 +rust.pickup.uimetalknife,inventory/pickup/ui-metal-knife-pickup-01,1.0,1 +rust.pickup.uimetalknife,inventory/pickup/ui-metal-knife-pickup-02,1.0,1 +rust.pickup.uimetalknife,inventory/pickup/ui-metal-knife-pickup-03,1.0,1 +rust.pickup.uimetallarge,inventory/pickup/ui-metal-large-pickup-01,1.0,1 +rust.pickup.uimetallarge,inventory/pickup/ui-metal-large-pickup-02,1.0,1 +rust.pickup.uimetallarge,inventory/pickup/ui-metal-large-pickup-03,1.0,1 +rust.pickup.uimetalmedium,inventory/pickup/ui-metal-medium-pickup-01,1.0,1 +rust.pickup.uimetalmedium,inventory/pickup/ui-metal-medium-pickup-02,1.0,1 +rust.pickup.uimetalmedium,inventory/pickup/ui-metal-medium-pickup-03,1.0,1 +rust.pickup.uimetalmediumloose,inventory/pickup/ui-metal-medium-loose-pickup-01,1.0,1 +rust.pickup.uimetalmediumloose,inventory/pickup/ui-metal-medium-loose-pickup-02,1.0,1 +rust.pickup.uimetalmediumloose,inventory/pickup/ui-metal-medium-loose-pickup-03,1.0,1 +rust.pickup.uimetalmediumrattley,inventory/pickup/ui-pickup-metal-medium-rattley-1,1.0,1 +rust.pickup.uimetalmediumrattley,inventory/pickup/ui-pickup-metal-medium-rattley-2,1.0,1 +rust.pickup.uimetalmediumrattley,inventory/pickup/ui-pickup-metal-medium-rattley-3,1.0,1 +rust.pickup.uimetalmediumrattley,inventory/pickup/ui-pickup-metal-medium-rattley-4,1.0,1 +rust.pickup.uimetalsheet,inventory/pickup/ui-pickup-metal-sheet-001,1.0,1 +rust.pickup.uimetalsheet,inventory/pickup/ui-pickup-metal-sheet-002,1.0,1 +rust.pickup.uimetalsheet,inventory/pickup/ui-pickup-metal-sheet-003,1.0,1 +rust.pickup.uimetalsheet,inventory/pickup/ui-pickup-metal-sheet-004,1.0,1 +rust.pickup.uimetalthinhollow,inventory/pickup/ui-pickup-metal-thin-hollow-1,1.0,1 +rust.pickup.uimetalthinhollow,inventory/pickup/ui-pickup-metal-thin-hollow-2,1.0,1 +rust.pickup.uimetalthinhollow,inventory/pickup/ui-pickup-metal-thin-hollow-3,1.0,1 +rust.pickup.uimetalthinhollow,inventory/pickup/ui-pickup-metal-thin-hollow-4,1.0,1 +rust.pickup.uimetalwood,inventory/pickup/ui-pickup-metal-wood-1,1.0,1 +rust.pickup.uimetalwood,inventory/pickup/ui-pickup-metal-wood-2,1.0,1 +rust.pickup.uimetalwood,inventory/pickup/ui-pickup-metal-wood-3,1.0,1 +rust.pickup.uimetalwood,inventory/pickup/ui-pickup-metal-wood-4,1.0,1 +rust.pickup.uipaper,inventory/drop/ui-drop-paper-1,1.0,1 +rust.pickup.uipaper,inventory/drop/ui-drop-paper-2,1.0,1 +rust.pickup.uipaper,inventory/drop/ui-drop-paper-3,1.0,1 +rust.pickup.uipaper,inventory/drop/ui-drop-paper-4,1.0,1 +rust.pickup.uipills,inventory/pickup/ui-pills-pickup-01,1.0,1 +rust.pickup.uipills,inventory/pickup/ui-pills-pickup-02,1.0,1 +rust.pickup.uipills,inventory/pickup/ui-pills-pickup-03,1.0,1 +rust.pickup.uiplasticjunk,inventory/pickup/ui-pickup-plastic-junk-001,1.0,1 +rust.pickup.uiplasticjunk,inventory/pickup/ui-pickup-plastic-junk-002,1.0,1 +rust.pickup.uiplasticjunk,inventory/pickup/ui-pickup-plastic-junk-003,1.0,1 +rust.pickup.uiplasticjunk,inventory/pickup/ui-pickup-plastic-junk-004,1.0,1 +rust.pickup.uiplasticlarge,inventory/pickup/ui-plastic-large-pickup-01,1.0,1 +rust.pickup.uiplasticlarge,inventory/pickup/ui-plastic-large-pickup-02,1.0,1 +rust.pickup.uiplasticlarge,inventory/pickup/ui-plastic-large-pickup-03,1.0,1 +rust.pickup.uiplasticmedium,inventory/pickup/ui-plastic-medium-pickup-01,1.0,1 +rust.pickup.uiplasticmedium,inventory/pickup/ui-plastic-medium-pickup-02,1.0,1 +rust.pickup.uiplasticmedium,inventory/pickup/ui-plastic-medium-pickup-03,1.0,1 +rust.pickup.uirubber,inventory/pickup/ui-pickup-rubber-001,1.0,1 +rust.pickup.uirubber,inventory/pickup/ui-pickup-rubber-002,1.0,1 +rust.pickup.uirubber,inventory/pickup/ui-pickup-rubber-003,1.0,1 +rust.pickup.uirubber,inventory/pickup/ui-pickup-rubber-004,1.0,1 +rust.pickup.uiseeds,inventory/pickup/ui-pickup-seeds-001,1.0,1 +rust.pickup.uiseeds,inventory/pickup/ui-pickup-seeds-002,1.0,1 +rust.pickup.uiseeds,inventory/pickup/ui-pickup-seeds-003,1.0,1 +rust.pickup.uiseeds,inventory/pickup/ui-pickup-seeds-004,1.0,1 +rust.pickup.uismallchain,inventory/pickup/ui-small-chain-pickup-01,1.0,1 +rust.pickup.uismallchain,inventory/pickup/ui-small-chain-pickup-01,1.0,1 +rust.pickup.uismallchain,inventory/pickup/ui-small-chain-pickup-01,1.0,1 +rust.pickup.uismalldevice,inventory/pickup/ui-pickup-small-device-001,1.0,1 +rust.pickup.uismalldevice,inventory/pickup/ui-pickup-small-device-002,1.0,1 +rust.pickup.uismalldevice,inventory/pickup/ui-pickup-small-device-003,1.0,1 +rust.pickup.uismalldevice,inventory/pickup/ui-pickup-small-device-004,1.0,1 +rust.pickup.uisnow,inventory/pickup/ui-pickup-snow-001,1.0,1 +rust.pickup.uisnow,inventory/pickup/ui-pickup-snow-002,1.0,1 +rust.pickup.uisnow,inventory/pickup/ui-pickup-snow-003,1.0,1 +rust.pickup.uispring,inventory/pickup/ui-pickup-spring-001,1.0,1 +rust.pickup.uispring,inventory/pickup/ui-pickup-spring-002,1.0,1 +rust.pickup.uispring,inventory/pickup/ui-pickup-spring-003,1.0,1 +rust.pickup.uispring,inventory/pickup/ui-pickup-spring-004,1.0,1 +rust.pickup.uistone,inventory/pickup/ui-pickup-stone-1,1.0,1 +rust.pickup.uistone,inventory/pickup/ui-pickup-stone-2,1.0,1 +rust.pickup.uistone,inventory/pickup/ui-pickup-stone-3,1.0,1 +rust.pickup.uistone,inventory/pickup/ui-pickup-stone-4,1.0,1 +rust.pickup.uitarp,inventory/pickup/ui-pickup-tarp-001,1.0,1 +rust.pickup.uitarp,inventory/pickup/ui-pickup-tarp-002,1.0,1 +rust.pickup.uitarp,inventory/pickup/ui-pickup-tarp-003,1.0,1 +rust.pickup.uitarp,inventory/pickup/ui-pickup-tarp-004,1.0,1 +rust.pickup.uitea,inventory/pickup/ui-tea-pick-up-001,1.0,1 +rust.pickup.uitea,inventory/pickup/ui-tea-pick-up-002,1.0,1 +rust.pickup.uitea,inventory/pickup/ui-tea-pick-up-003,1.0,1 +rust.pickup.uithickrubbery,inventory/pickup/ui-thick-rubbery-pickup-01,1.0,1 +rust.pickup.uithickrubbery,inventory/pickup/ui-thick-rubbery-pickup-02,1.0,1 +rust.pickup.uithickrubbery,inventory/pickup/ui-thick-rubbery-pickup-03,1.0,1 +rust.pickup.uiwater,inventory/pickup/ui-pickup-water-001,1.0,1 +rust.pickup.uiwater,inventory/pickup/ui-pickup-water-002,1.0,1 +rust.pickup.uiwater,inventory/pickup/ui-pickup-water-003,1.0,1 +rust.pickup.uiwater,inventory/pickup/ui-pickup-water-004,1.0,1 +rust.pickup.uiwood,inventory/pickup/ui-pickup-wood-1,1.0,1 +rust.pickup.uiwood,inventory/pickup/ui-pickup-wood-2,1.0,1 +rust.pickup.uiwood,inventory/pickup/ui-pickup-wood-3,1.0,1 +rust.pickup.uiwood,inventory/pickup/ui-pickup-wood-4,1.0,1 +rust.pickup.uiwoodlight,inventory/pickup/ui-pickup-wood-light-1,1.0,1 +rust.pickup.uiwoodlight,inventory/pickup/ui-pickup-wood-light-2,1.0,1 +rust.pickup.uiwoodlight,inventory/pickup/ui-pickup-wood-light-3,1.0,1 +rust.pickup.uiwoodlight,inventory/pickup/ui-pickup-wood-light-4,1.0,1 +rust.pickup.uiwoodmed,inventory/pickup/ui-pickup-wood-med-001,1.0,1 +rust.pickup.uiwoodmed,inventory/pickup/ui-pickup-wood-med-002,1.0,1 +rust.pickup.uiwoodmed,inventory/pickup/ui-pickup-wood-med-003,1.0,1 +rust.pickup.uiwoodmed,inventory/pickup/ui-pickup-wood-med-004,1.0,1 +rust.piemenu.cancel,gui/piemenu_cancel,0.1,1.0 +rust.piemenu.open,gui/piemenu_open,0.1,1.0 +rust.piemenu.select,gui/piemenu_select,0.1,1.0 +rust.piemenu.selectionchange,gui/piemenu_selectionchange,0.1,1.0 +rust.player.vomit,misc/player/vomit-1,1.0,1 +rust.player.vomit,misc/player/vomit-2,1.0,1 +rust.press.button,furniture/monumentpuzzles/bigbutton/button-press-001,1.0,1 +rust.press.button,furniture/monumentpuzzles/bigbutton/button-press-002,1.0,1 +rust.reset.button,furniture/monumentpuzzles/bigbutton/button-reset-001,1.0,1 +rust.reset.button,furniture/monumentpuzzles/bigbutton/button-reset-002,1.0,1 +rust.rocket.explosion,rustex/rocketlauncher/rocketlauncher-explosion-001,1.0,1 +rust.rocket.explosion,rustex/rocketlauncher/rocketlauncher-explosion-002,1.0,1 +rust.rocket.explosion,rustex/rocketlauncher/rocketlauncher-explosion-003,1.0,1 +rust.rocket.explosion,rustex/rocketlauncher/rocketlauncher-explosion-004,1.0,1 +rust.rocket.explosion.dist,rustex/rocketlauncher/rocketlauncher-explosion-distant-001,1.0,1 +rust.rocket.explosion.dist,rustex/rocketlauncher/rocketlauncher-explosion-distant-002,1.0,1 +rust.rocket.explosion.dist,rustex/rocketlauncher/rocketlauncher-explosion-distant-003,1.0,1 +rust.rocket.explosion.dist,rustex/rocketlauncher/rocketlauncher-explosion-distant-004,1.0,1 +rust.rocket.explosion.fardist,rustex/rocketlauncher/rocketlauncher-explosion-far-distant-001,1.0,1 +rust.rocket.explosion.fardist,rustex/rocketlauncher/rocketlauncher-explosion-far-distant-002,1.0,1 +rust.rocket.explosion.fardist,rustex/rocketlauncher/rocketlauncher-explosion-far-distant-003,1.0,1 +rust.rocket.explosion.fardist,rustex/rocketlauncher/rocketlauncher-explosion-far-distant-004,1.0,1 +rust.rocket.hv.explosion,rustex/rocketlauncher/rocketlauncher-hv-explosion-01,1.0,1 +rust.rocket.hv.explosion,rustex/rocketlauncher/rocketlauncher-hv-explosion-02,1.0,1 +rust.rocket.hv.explosion,rustex/rocketlauncher/rocketlauncher-hv-explosion-03,1.0,1 +rust.rocket.hv.explosion.dist,rustex/rocketlauncher/rocketlauncher-hv-explosion-distant-01,1.0,1 +rust.rocket.hv.explosion.dist,rustex/rocketlauncher/rocketlauncher-hv-explosion-distant-02,1.0,1 +rust.rocket.hv.explosion.dist,rustex/rocketlauncher/rocketlauncher-hv-explosion-distant-03,1.0,1 +rust.rocket.hv.explosion.fardist,rustex/rocketlauncher/rocketlauncher-hv-explosion-far-distant-01,1.0,1 +rust.rocket.hv.explosion.fardist,rustex/rocketlauncher/rocketlauncher-hv-explosion-far-distant-02,1.0,1 +rust.rocket.hv.explosion.fardist,rustex/rocketlauncher/rocketlauncher-hv-explosion-far-distant-03,1.0,1 +rust.satchelcharge.boom,explosives/satchel/satchel-charge-explosion-1-mono,1.0,1 +rust.satchelcharge.boom,explosives/satchel/satchel-charge-explosion-2-mono,1.0,1 +rust.satchelcharge.boom,explosives/satchel/satchel-charge-explosion-3-mono,1.0,1 +rust.satchelcharge.boom,explosives/satchel/satchel-charge-explosion-4-mono,1.0,1 +rust.satchelcharge.boom.distant,explosives/satchel/satchel-charge-explosion-distant-1-mono,1.0,1 +rust.satchelcharge.boom.distant,explosives/satchel/satchel-charge-explosion-distant-2-mono,1.0,1 +rust.satchelcharge.boom.distant,explosives/satchel/satchel-charge-explosion-distant-3-mono,1.0,1 +rust.satchelcharge.boom.distant,explosives/satchel/satchel-charge-explosion-distant-4-mono,1.0,1 +rust.sip.uitea,inventory/sip/tea-sip-001,1.0,1 +rust.sip.uitea,inventory/sip/tea-sip-002,1.0,1 +rust.sip.uitea,inventory/sip/tea-sip-003,1.0,1 +rust.sks.noammo,rustex/noammo/sks-noammo-01,1.0,1 +rust.sks.noammo,rustex/noammo/sks-noammo-02,1.0,1 +rust.sks.noammo,rustex/noammo/sks-noammo-03,1.0,1 +rust.sks.shoot.dist,rustex/sks/sks-attack-distant-01,1.0,1 +rust.sks.shoot.dist,rustex/sks/sks-attack-distant-02,1.0,1 +rust.sks.shoot.dist,rustex/sks/sks-attack-distant-03,1.0,1 +rust.sks.shoot.fardist,rustex/sks/sks-attack-far-distant-01,1.0,1 +rust.sks.shoot.fardist,rustex/sks/sks-attack-far-distant-02,1.0,1 +rust.sks.shoot.fardist,rustex/sks/sks-attack-far-distant-03,1.0,1 +rust.sks.shoot.fps,rustex/sks/sks-attack-fps-01,1.0,1 +rust.sks.shoot.fps,rustex/sks/sks-attack-fps-02,1.0,1 +rust.sks.shoot.fps,rustex/sks/sks-attack-fps-03,1.0,1 +rust.sks.shoot.normal,rustex/sks/sks-attack-01,1.0,1 +rust.sks.shoot.normal,rustex/sks/sks-attack-02,1.0,1 +rust.sks.shoot.normal,rustex/sks/sks-attack-03,1.0,1 +rust.start.mixingtable,furniture/mixingtable/mixing-table-mix-start-001,1.0,1 +rust.start.mixingtable,furniture/mixingtable/mixing-table-mix-start-002,1.0,1 +rust.stone.damage,build/stone/stone-damage-1-mono,1.0,1 +rust.stone.damage,build/stone/stone-damage-2-mono,1.0,1 +rust.stone.damage,build/stone/stone-damage-3-mono,1.0,1 +rust.stone.damage,build/stone/stone-damage-4-mono,1.0,1 +rust.stone.destroy,build/stone/stone-destroy-1-mono,1.0,1 +rust.stone.destroy,build/stone/stone-destroy-2-mono,1.0,1 +rust.stone.destroy,build/stone/stone-destroy-3-mono,1.0,1 +rust.stone.destroy,build/stone/stone-destroy-4-mono,1.0,1 +rust.stone.upgrade,build/stone/stone-upgrade-1-mono,1.0,1 +rust.stone.upgrade,build/stone/stone-upgrade-2-mono,1.0,1 +rust.stone.upgrade,build/stone/stone-upgrade-3-mono,1.0,1 +rust.timedexplosivecharge.boom,explosives/c4/c4-explosion-1-mono,1.0,1 +rust.timedexplosivecharge.boom,explosives/c4/c4-explosion-2-mono,1.0,1 +rust.timedexplosivecharge.boom,explosives/c4/c4-explosion-3-mono,1.0,1 +rust.timedexplosivecharge.boom,explosives/c4/c4-explosion-4-mono,1.0,1 +rust.timedexplosivecharge.boom.distant,explosives/c4/c4-explosion-1-distant-mono,1.0,1 +rust.timedexplosivecharge.boom.distant,explosives/c4/c4-explosion-2-distant-mono,1.0,1 +rust.timedexplosivecharge.boom.distant,explosives/c4/c4-explosion-3-distant-mono,1.0,1 +rust.timedexplosivecharge.boom.distant,explosives/c4/c4-explosion-4-distant-mono,1.0,1 +rust.water.enter.large,player/water/enter-water-large-001,1.0,1 +rust.water.enter.large,player/water/enter-water-large-002,1.0,1 +rust.water.enter.large,player/water/enter-water-large-003,1.0,1 +rust.water.enter.medium,player/water/enter-water-medium-001,1.0,1 +rust.water.enter.medium,player/water/enter-water-medium-002,1.0,1 +rust.water.enter.medium,player/water/enter-water-medium-003,1.0,1 +rust.water.enter.small,player/water/enter-water-small-001,1.0,1 +rust.water.enter.small,player/water/enter-water-small-002,1.0,1 +rust.water.enter.small,player/water/enter-water-small-003,1.0,1 +rust.water.transition.in,player/water/water-transition-in-001,1.0,1 +rust.water.transition.in,player/water/water-transition-in-002,1.0,1 +rust.water.transition.in,player/water/water-transition-in-003,1.0,1 +rust.water.transition.out,player/water/water-transition-out-001,1.0,1 +rust.water.transition.out,player/water/water-transition-out-002,1.0,1 +rust.water.transition.out,player/water/water-transition-out-003,1.0,1 +rust.wood.damage,build/wood/wood-damage-1-mono,1.0,1 +rust.wood.damage,build/wood/wood-damage-2-mono,1.0,1 +rust.wood.damage,build/wood/wood-damage-3-mono,1.0,1 +rust.wood.damage,build/wood/wood-damage-4-mono,1.0,1 +rust.wood.destroy,build/wood/wood-destroy-1-mono,1.0,1 +rust.wood.destroy,build/wood/wood-destroy-2-mono,1.0,1 +rust.wood.destroy,build/wood/wood-destroy-3-mono,1.0,1 +rust.wood.destroy,build/wood/wood-destroy-4-mono,1.0,1 +rust.wood.upgrade,build/wood/wood-upgrade-1-mono,1.0,1 +rust.wood.upgrade,build/wood/wood-upgrade-2-mono,1.0,1 +rust.wood.upgrade,build/wood/wood-upgrade-3-mono,1.0,1 +rust.xmas.present.unwrap,xmasevent/xmas-present-unwrap-001,1.0,1 +rust.xmas.present.unwrap,xmasevent/xmas-present-unwrap-002,1.0,1 +rust.xmas.present.unwrap,xmasevent/xmas-present-unwrap-003,1.0,1 +rust.xmas.present.upgrade,xmasevent/xmas-present-wrap-001,1.0,1 +rust.xmas.present.upgrade,xmasevent/xmas-present-wrap-002,1.0,1 +rust.xmas.present.upgrade,xmasevent/xmas-present-wrap-003,1.0,1 +rust.xmastree.open,furniture/xmastree/xmastree-open-01,1.0,1 +rust.xmastree.open,furniture/xmastree/xmastree-open-02,1.0,1 +rust.xmastree.open,furniture/xmastree/xmastree-open-03,1.0,1 +stone.bulletimpact,impactbullet/stoneimpactbullet1,1.0,1 +stone.bulletimpact,impactbullet/stoneimpactbullet2,1.0,1 +stone.bulletimpact,impactbullet/stoneimpactbullet3,1.0,1 +stone.bulletimpact,impactbullet/stoneimpactbullet4,1.0,1 +supply.airplaneloop,supply/airdrop-plane-loop,1.0,1.0 +supply.smokeloop,supply/smoke_loop,1.0,1.0 +thorch.extinguish,tools/torch/extinguish,1.0,1 +thorch.ingite,tools/torch/ignite,1.0,1 +tool.jackhammer.fps,rustex/jackhammer/jackhammer-fps-1,1.0,1 +tool.jackhammer.fps,rustex/jackhammer/jackhammer-fps-2,1.0,1 +tool.jackhammer.fps,rustex/jackhammer/jackhammer-fps-3,1.0,1 +tool.jackhammer.fps,rustex/jackhammer/jackhammer-fps-4,1.0,1 +tool.jackhammer.work,rustex/jackhammer/jackhammer-1,1.0,1 +tool.jackhammer.work,rustex/jackhammer/jackhammer-2,1.0,1 +tool.jackhammer.work,rustex/jackhammer/jackhammer-3,1.0,1 +tool.jackhammer.work,rustex/jackhammer/jackhammer-4,1.0,1 +tools.animalhit,tools/animalhit1,1.0,1.0 +tools.animalhit,tools/animalhit2,1.0,1.0 +tools.animalhit,tools/animalhit3,1.0,1.0 +tools.animalhit,tools/animalhit4,1.0,1.0 +tools.barrelhit,tools/barrelhit1,1.0,1.0 +tools.barrelhit,tools/barrelhit2,1.0,1.0 +tools.break.armor,tools/armor-break-01_mono,1.0,1.0 +tools.break.armor,tools/armor-break-02_mono,1.0,1.0 +tools.break.armor,tools/armor-break-03_mono,1.0,1.0 +tools.break.tool,tools/wood_break_mono,1.0,1.0 +tools.breakbarrel,tools/breakbarrel1,1.0,1.0 +tools.breakbarrel,tools/breakbarrel2,1.0,1.0 +tools.chainsaw.m.active1,rustex/chainsaw/chainsaw-active-mono-1,1.0,1.0 +tools.chainsaw.m.active10,rustex/chainsaw/chainsaw-active-mono-10,1.0,1.0 +tools.chainsaw.m.active11,rustex/chainsaw/chainsaw-active-mono-11,1.0,1.0 +tools.chainsaw.m.active12,rustex/chainsaw/chainsaw-active-mono-12,1.0,1.0 +tools.chainsaw.m.active2,rustex/chainsaw/chainsaw-active-mono-2,1.0,1.0 +tools.chainsaw.m.active3,rustex/chainsaw/chainsaw-active-mono-3,1.0,1.0 +tools.chainsaw.m.active4,rustex/chainsaw/chainsaw-active-mono-4,1.0,1.0 +tools.chainsaw.m.active5,rustex/chainsaw/chainsaw-active-mono-5,1.0,1.0 +tools.chainsaw.m.active6,rustex/chainsaw/chainsaw-active-mono-6,1.0,1.0 +tools.chainsaw.m.active7,rustex/chainsaw/chainsaw-active-mono-7,1.0,1.0 +tools.chainsaw.m.active8,rustex/chainsaw/chainsaw-active-mono-8,1.0,1.0 +tools.chainsaw.m.active9,rustex/chainsaw/chainsaw-active-mono-9,1.0,1.0 +tools.chainsaw.m.idle,rustex/chainsaw/chainsaw-idle-mono-1,1.0,1.0 +tools.chainsaw.m.idle,rustex/chainsaw/chainsaw-idle-mono-2,1.0,1.0 +tools.chainsaw.m.idle,rustex/chainsaw/chainsaw-idle-mono-3,1.0,1.0 +tools.chainsaw.m.idle,rustex/chainsaw/chainsaw-idle-mono-4,1.0,1.0 +tools.chainsaw.m.off,rustex/chainsaw/chainsaw-engine-off-mono,1.0,1.0 +tools.chainsaw.m.revdown,rustex/chainsaw/chainsaw-rev-down-mono,1.0,1.0 +tools.chainsaw.m.revup,rustex/chainsaw/chainsaw-rev-up-mono,1.0,1.0 +tools.chainsaw.pullchain,rustex/chainsaw/chainsaw-pull-chain,1.0,1.0 +tools.chainsaw.reload,rustex/chainsaw/chainsaw-reload,1.0,1.0 +tools.chainsaw.s.active1,rustex/chainsaw/chainsaw-active-stereo-1,1.0,1.0 +tools.chainsaw.s.active10,rustex/chainsaw/chainsaw-active-stereo-10,1.0,1.0 +tools.chainsaw.s.active11,rustex/chainsaw/chainsaw-active-stereo-11,1.0,1.0 +tools.chainsaw.s.active12,rustex/chainsaw/chainsaw-active-stereo-12,1.0,1.0 +tools.chainsaw.s.active2,rustex/chainsaw/chainsaw-active-stereo-2,1.0,1.0 +tools.chainsaw.s.active3,rustex/chainsaw/chainsaw-active-stereo-3,1.0,1.0 +tools.chainsaw.s.active4,rustex/chainsaw/chainsaw-active-stereo-4,1.0,1.0 +tools.chainsaw.s.active5,rustex/chainsaw/chainsaw-active-stereo-5,1.0,1.0 +tools.chainsaw.s.active6,rustex/chainsaw/chainsaw-active-stereo-6,1.0,1.0 +tools.chainsaw.s.active7,rustex/chainsaw/chainsaw-active-stereo-7,1.0,1.0 +tools.chainsaw.s.active8,rustex/chainsaw/chainsaw-active-stereo-8,1.0,1.0 +tools.chainsaw.s.active9,rustex/chainsaw/chainsaw-active-stereo-9,1.0,1.0 +tools.chainsaw.s.idle,rustex/chainsaw/chainsaw-idle-stereo-1,1.0,1.0 +tools.chainsaw.s.idle,rustex/chainsaw/chainsaw-idle-stereo-2,1.0,1.0 +tools.chainsaw.s.idle,rustex/chainsaw/chainsaw-idle-stereo-3,1.0,1.0 +tools.chainsaw.s.idle,rustex/chainsaw/chainsaw-idle-stereo-4,1.0,1.0 +tools.chainsaw.s.off,rustex/chainsaw/chainsaw-engine-off-stereo,1.0,1.0 +tools.chainsaw.s.revdown,rustex/chainsaw/chainsaw-rev-down-stereo,1.0,1.0 +tools.chainsaw.s.revup,rustex/chainsaw/chainsaw-rev-up-stereo,1.0,1.0 +tools.flesh,tools/animalhit1,1.0,1.0 +tools.flesh,tools/animalhit2,1.0,1.0 +tools.jackhammer.refill,tools/jackhammer-refill-mono,1.0,1.0 +tree.bonus,tree/tree-bonus-damage-001,1.0,1.0 +tree.bonus,tree/tree-bonus-damage-002,1.0,1.0 +tree.bonus,tree/tree-bonus-damage-003,1.0,1.0 +tree.bonus,tree/tree-bonus-damage-004,1.0,1.0 +tree.spray,tree/spray,1.0,1 +tree.spray,tree/spray,1.0,1.1 +tree.spray,tree/spray,1.0,0.92 +tree.spray,tree/spray,1.0,1.05 +tree.tree_crack,tree/tree_crack1,1.0,1.0 +tree.tree_crack,tree/tree_crack2,1.0,1.0 +tree.tree_crack,tree/tree_crack3,1.0,1.0 +tree.tree_fall_end,tree/tree_fall_end1,1.0,1.0 +tree.tree_fall_end,tree/tree_fall_end2,1.0,1.0 +tree.tree_fall_start,tree/tree_fall_start1,1.0,1.0 +tree.tree_fall_start,tree/tree_fall_start2,1.0,1.0 +tree.tree_fall_start,tree/tree_fall_start3,1.0,1.0 +tree.tree_fall_start,tree/tree_fall_start4,1.0,1.0 +ui.toast.challenge_complete,ui/toast/challenge_complete,0.6,1.0 +ui.toast.in,ui/toast/in,0.4,1.0 +ui.toast.out,ui/toast/out,0.4,1.0 +water.bulletimpact,impactbullet/waterbulletimpact1,1.0,1 +water.bulletimpact,impactbullet/waterbulletimpact2,1.0,1 +water.bulletimpact,impactbullet/waterbulletimpact3,1.0,1 +weapon.headshot,misc/player/headshot,1.0,1 +weapon.headshot,misc/player/headshot,1.0,1.1 +weapon.headshot,misc/player/headshot,1.0,0.92 +weapon.headshot,misc/player/headshot,1.0,1.05 +wood.bulletimpact,impactbullet/woodbulletimpact1,1.0,1 +wood.bulletimpact,impactbullet/woodbulletimpact2,1.0,1 +wood.bulletimpact,impactbullet/woodbulletimpact3,1.0,1 +wood.bulletimpact,impactbullet/woodbulletimpact4,1.0,1 +wood.pickup,pickup/wood/wood_1,1.0,1 +wood.pickup,pickup/wood/wood_2,1.0,1 diff --git a/tools/extract-items.py b/tools/extract-items.py new file mode 100644 index 0000000..2eecf58 --- /dev/null +++ b/tools/extract-items.py @@ -0,0 +1,279 @@ +#!/usr/bin/env python3 +"""Turn the item database of the Rustex remake into a table we can read. + +The remake keeps its item definitions in +assets/rustex/legacy/minecraft/models/stacks.json . The file is not JSON +but the Minecraft "stacks" notation: a sequence of records + + {id:"minecraft:iron_hoe",Count:1s,tag:{rid:"m92pistol",rdamage:25,...}} + +The tag keys are the remake's own names, so the table keeps them. The +result is two files: + + rsx-protocol/src/main/resources/items/items.csv one row per item + assets/rustex/data/item-texts.json the titles and the + descriptions out of + the language file +""" + +import csv +import json +import re +import sys +from pathlib import Path + +ROOT = Path(r"G:\RustNotMC") +STACKS = ROOT / "assets" / "rustex" / "legacy" / "minecraft" / "models" / "stacks.json" +LANG = ROOT / "assets" / "rustex" / "legacy" / "minecraft" / "rustex_lang" / "en_us.lang" +OUT_CSV = ROOT / "rsx-protocol" / "src" / "main" / "resources" / "items" / "items.csv" +OUT_TEXTS = ROOT / "rsx-protocol" / "src" / "main" / "resources" / "items" / "item-texts.json" + +# The columns of the table, in the order they are written. +COLUMNS = [ + "rid", "name", "category", "material", "nid", + "damage", "range", "cooldown", "reach", + "durability", "durability_max", + "wood", "ore", "skinning", + "ammo", "ammo_type", "weapon_id", "gun", "throw", "model", "icon", + "zoom_x", "zoom_y", "zoom_z", "zoom_count", + "heal", "fast_heal", "calories", "hydration", "radiation", "bleeding", + "consume_time", "food_cooldown", "eat_sound", + "armor_projectile", "armor_melee", "armor_bite", "armor_cold", + "armor_explosion", "armor_radiation", "armor_speed_reduction", + "armor_slot", +] + + +class Parser: + """A reader for the Minecraft stacks notation.""" + + def __init__(self, text: str): + self.text = text + self.pos = 0 + + def skip(self): + while self.pos < len(self.text) and self.text[self.pos] in " \t\r\n": + self.pos += 1 + + def peek(self) -> str: + self.skip() + return self.text[self.pos] if self.pos < len(self.text) else "" + + def read_value(self): + self.skip() + ch = self.text[self.pos] + if ch == "{": + return self.read_compound() + if ch == "[": + return self.read_list() + if ch == '"': + return self.read_string() + return self.read_scalar() + + def read_compound(self): + self.pos += 1 # { + out = {} + while True: + self.skip() + ch = self.peek() + if ch == "}": + self.pos += 1 + return out + if ch == ",": + self.pos += 1 + continue + key = self.read_key() + self.skip() + if self.pos < len(self.text) and self.text[self.pos] == ":": + self.pos += 1 + out[key] = self.read_value() + + def read_list(self): + self.pos += 1 # [ + out = [] + while True: + self.skip() + if self.peek() == "]": + self.pos += 1 + return out + out.append(self.read_value()) + self.skip() + if self.peek() == ",": + self.pos += 1 + + def read_key(self): + start = self.pos + while self.text[self.pos] not in ':,}]': + self.pos += 1 + return self.text[start:self.pos].strip() + + def read_string(self): + self.pos += 1 # " + out = [] + while self.text[self.pos] != '"': + if self.text[self.pos] == "\\": + self.pos += 1 + out.append(self.text[self.pos]) + self.pos += 1 + self.pos += 1 + return "".join(out) + + def read_scalar(self): + start = self.pos + while self.pos < len(self.text) and self.text[self.pos] not in ',}]': + self.pos += 1 + raw = self.text[start:self.pos].strip() + if raw.endswith("b"): + return raw[:-1] == "1" + if raw.endswith("s"): + return int(raw[:-1]) + if raw.endswith("d") or raw.endswith("f"): + return float(raw[:-1]) + try: + return int(raw) + except ValueError: + return raw + + +def flatten(tag: dict) -> dict: + """The fields of a tag, with the names we use in the table.""" + out = {} + + def num(value): + if isinstance(value, bool): + return 1 if value else 0 + if isinstance(value, (int, float)): + return value + return None + + def put(key, value): + n = num(value) + if n is not None: + out[key] = n + + put("damage", tag.get("rdamage")) + put("range", tag.get("rrange")) + put("cooldown", tag.get("rcooldown")) + put("reach", tag.get("rustreach")) + put("durability", tag.get("rdurability")) + put("durability_max", tag.get("rdurabilitymax")) + put("wood", tag.get("rwood")) + put("ore", tag.get("rore")) + put("skinning", tag.get("skinning")) + put("ammo", tag.get("rammo")) + put("ammo_type", tag.get("rammotype")) + put("weapon_id", tag.get("rweaponid")) + put("gun", tag.get("rustgun")) + put("throw", tag.get("rustthrow")) + put("zoom_x", tag.get("rustzoomx")) + put("zoom_y", tag.get("rustzoomy")) + put("zoom_z", tag.get("rustzoomz")) + put("zoom_count", tag.get("rustzoomcount")) + put("heal", tag.get("rheal")) + put("fast_heal", tag.get("rfastheal")) + put("calories", tag.get("rcalories")) + put("hydration", tag.get("rhydration")) + put("radiation", tag.get("rradiation")) + put("bleeding", tag.get("rbleeding")) + put("consume_time", tag.get("rconsumetime")) + put("food_cooldown", tag.get("rfoodcooldown")) + put("armor_projectile", tag.get("rarmorprojectile")) + put("armor_melee", tag.get("rarmormelee")) + put("armor_bite", tag.get("rarmorbite")) + put("armor_cold", tag.get("rarmorcold")) + put("armor_explosion", tag.get("rarmorexplosion")) + put("armor_radiation", tag.get("rarmorradiation")) + put("armor_speed_reduction", tag.get("rarmorspeedreduction")) + + display = tag.get("display") + if isinstance(display, dict): + name = display.get("Name") + if isinstance(name, str): + out["name"] = re.sub(r"^.\S*", "", name).strip() + for slot, value in tag.items(): + if slot.startswith("armorslot.") and value: + out["armor_slot"] = slot[len("armorslot."):] + return out + + +def parse_stacks(text: str): + parser = Parser(text) + items = [] + while True: + parser.skip() + if parser.pos >= len(parser.text): + break + if parser.peek() != "{": + parser.pos += 1 + continue + record = parser.read_compound() + tag = record.get("tag") + if not isinstance(tag, dict): + continue + rid = tag.get("rid") + if not isinstance(rid, str): + continue + row = { + "rid": rid, + "category": tag.get("rcategory", ""), + "material": tag.get("rmaterial", ""), + "nid": tag.get("nid", ""), + "model": tag.get("rmodel", ""), + "icon": tag.get("rusticon", ""), + } + row.update(flatten(tag)) + items.append(row) + return items + + +def parse_lang(text: str): + """The item titles and descriptions out of the language file.""" + out = {} + for line in text.splitlines(): + if "=" not in line: + continue + key, value = line.split("=", 1) + match = re.match(r"^rustex\.items\.([a-z]+)\.([a-z0-9_]+)\.(title|disc)$", key) + if not match: + continue + category, rid, kind = match.groups() + entry = out.setdefault(rid, {"category": category}) + entry[kind] = value + return out + + +def main() -> int: + if not STACKS.is_file(): + print("нет stacks.json:", STACKS) + return 1 + + items = parse_stacks(STACKS.read_text(encoding="utf-8", errors="replace")) + print("предметов:", len(items)) + + OUT_CSV.parent.mkdir(parents=True, exist_ok=True) + with OUT_CSV.open("w", encoding="utf-8", newline="") as handle: + writer = csv.DictWriter(handle, fieldnames=COLUMNS, extrasaction="ignore") + writer.writeheader() + for item in items: + writer.writerow({key: item.get(key, "") for key in COLUMNS}) + print("таблица:", OUT_CSV) + + if LANG.is_file(): + texts = parse_lang(LANG.read_text(encoding="utf-8", errors="replace")) + OUT_TEXTS.parent.mkdir(parents=True, exist_ok=True) + OUT_TEXTS.write_text(json.dumps(texts, ensure_ascii=False, indent=1), + encoding="utf-8") + print("описаний:", len(texts), "->", OUT_TEXTS) + + # What the table has to tell us about the weapons. + guns = [i for i in items if i.get("gun")] + print("огнестрела в таблице:", len(guns)) + for gun in guns: + print(" %-22s id=%-3s магазин=%-3s модель=%s" + % (gun["rid"], gun.get("weapon_id", "?"), gun.get("ammo", "?"), + gun.get("model", "-"))) + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/tools/extract-rustex-assets.py b/tools/extract-rustex-assets.py new file mode 100644 index 0000000..7fdf38d --- /dev/null +++ b/tools/extract-rustex-assets.py @@ -0,0 +1,213 @@ +#!/usr/bin/env python3 +"""Extract the assets of the Rustex remake into a plain, decoded tree. + +The remake ships its resources obfuscated: every file is XOR-ed with one +byte, and the byte differs per file. The key is recoverable because the +first bytes of every format are known: + + PNG 89 50 4E 47 key = file[0] ^ 0x89 + OGG 4F 67 67 53 key = file[0] ^ 0x4F + JSON 7B ... key = file[0] ^ 0x7B + +Files that are already plain (KTX2, MODL, the icon atlas inside game.jar) +are copied as they are. The formats with a stronger cipher (.obj, .rrs, +.nbt, .properties, .lang) are copied untouched and reported, so that the +reverse engineering pass knows what is still missing. + +The result lands in assets/rustex/ : + + legacy/ the Minecraft style assets of res/assets + nextgen/ the high resolution models of res/nextgen + gamejar/ the resources packed into game.jar (the icon atlas) + maps/ the server map data (the monument layout) + MANIFEST.json +""" + +import json +import os +import shutil +import sys +import time +import zipfile +from pathlib import Path + +SRC_ROOT = Path(r"G:\rustexremake\rustexremake") +SRC_RES = SRC_ROOT / "gamefiles" / "res" +SRC_JAR = SRC_ROOT / "gamefiles" / "game.jar" +SRC_MAPS = SRC_ROOT / "working_dir" / "rustex" / "maps" +DST = Path(r"G:\RustNotMC\assets\rustex") + +PNG_MAGIC = b"\x89PNG\r\n\x1a\n" +OGG_MAGIC = b"OggS" +KTX2_MAGIC = b"\xabKTX 20\xbb\r\n\x1a\n" + +# The first byte of the plain file, per extension. None means "we do not +# know the format, try to brute force the key and score the result". +FIRST_BYTE = { + ".png": 0x89, + ".ogg": 0x4F, + ".json": 0x7B, +} + +# The formats we can never guess: their cipher is not a single byte. +OPAQUE = {".obj", ".rrs", ".nbt", ".bin", ".db", ".jpm"} + +TEXTUAL = {".json", ".properties", ".lang", ".txt", ".mcmeta", ".fsh", ".vsh", ".glsl"} + + +def score_text(data: bytes) -> float: + """How much of the data looks like readable text.""" + if not data: + return 0.0 + good = 0 + for b in data: + if b in (9, 10, 13) or 32 <= b < 127: + good += 1 + return good / len(data) + + +def unxor(data: bytes, key: int) -> bytes: + if key == 0: + return data + return bytes(b ^ key for b in data) + + +def decode_file(path: Path, ext: str): + """Return (decoded bytes, key, kind, note).""" + data = path.read_bytes() + if not data: + return data, 0, "empty", "пустой файл" + + # Already plain? + if data.startswith(PNG_MAGIC): + return data, 0, "png", "" + if data.startswith(OGG_MAGIC): + return data, 0, "ogg", "" + if data.startswith(KTX2_MAGIC): + return data, 0, "ktx2", "" + if data.startswith(b"MODL"): + return data, 0, "modl", "" + if data.startswith(b"glTF"): + return data, 0, "gltf", "" + + # The fast path: the key is implied by the first byte of the format. + if ext in FIRST_BYTE: + key = data[0] ^ FIRST_BYTE[ext] + head = unxor(data[:16], key) + if ext == ".png" and head.startswith(PNG_MAGIC): + return unxor(data, key), key, "png", "" + if ext == ".ogg" and head.startswith(OGG_MAGIC): + return unxor(data, key), key, "ogg", "" + if ext == ".json" and head[:1] in (b"{", b"["): + return unxor(data, key), key, "json", "" + + # The brute force path: find the key that makes the file text. + if ext in TEXTUAL or ext not in OPAQUE: + best = (0.0, 0, b"") + for key in range(1, 256): + head = unxor(data[:512], key) + s = score_text(head) + if s > best[0]: + best = (s, key, head) + if best[0] >= 0.95: + return unxor(data, best[1]), best[1], "text", "" + + # Nothing worked. + return data, -1, "opaque", "ключ не подобрался" + + +def walk(base: Path): + for dirpath, dirnames, filenames in os.walk(base): + for name in filenames: + yield Path(dirpath) / name + + +def extract_tree(src: Path, dst: Path, manifest: list, stats: dict): + for path in walk(src): + rel = path.relative_to(src) + target = dst / rel + ext = path.suffix.lower() + try: + decoded, key, kind, note = decode_file(path, ext) + except Exception as exc: # a broken file must not kill the run + stats["error"] = stats.get("error", 0) + 1 + manifest.append({"src": str(rel), "status": "error", "note": str(exc)}) + continue + + target.parent.mkdir(parents=True, exist_ok=True) + target.write_bytes(decoded) + + bucket = stats.setdefault(kind, {"count": 0, "bytes": 0, "encoded": 0}) + bucket["count"] += 1 + bucket["bytes"] += len(decoded) + if key > 0: + bucket["encoded"] += 1 + + entry = {"src": str(rel), "kind": kind, "key": key, "bytes": len(decoded)} + if note: + entry["note"] = note + manifest.append(entry) + + +def extract_jar(jar: Path, dst: Path, manifest: list, stats: dict): + with zipfile.ZipFile(jar) as zf: + for info in zf.infolist(): + if info.is_dir(): + continue + name = info.filename + if not name.startswith("assets/"): + continue + target = dst / name + target.parent.mkdir(parents=True, exist_ok=True) + data = zf.read(name) + target.write_bytes(data) + stats.setdefault("jar", {"count": 0, "bytes": 0, "encoded": 0}) + stats["jar"]["count"] += 1 + stats["jar"]["bytes"] += len(data) + manifest.append({"src": name, "kind": "jar", "key": 0, "bytes": len(data)}) + + +def main() -> int: + started = time.time() + if not SRC_RES.is_dir(): + print("нет исходника:", SRC_RES) + return 1 + + # The tree is overwritten file by file, so a leftover from an aborted run + # is harmless. A hard delete is only a convenience, and Windows likes to + # keep a handle on a directory that was written a moment ago. + shutil.rmtree(DST, ignore_errors=True) + DST.mkdir(parents=True, exist_ok=True) + + manifest: list = [] + stats: dict = {} + + print("1/3 legacy assets ...", flush=True) + extract_tree(SRC_RES / "assets", DST / "legacy", manifest, stats) + + print("2/3 nextgen models ...", flush=True) + extract_tree(SRC_RES / "nextgen", DST / "nextgen", manifest, stats) + + print("3/3 game.jar + maps ...", flush=True) + if SRC_JAR.is_file(): + extract_jar(SRC_JAR, DST / "gamejar", manifest, stats) + if SRC_MAPS.is_dir(): + extract_tree(SRC_MAPS, DST / "maps", manifest, stats) + + total = sum(v["bytes"] for v in stats.values()) + print("") + for kind in sorted(stats): + v = stats[kind] + print(" %-8s %6d файлов, %8.1f МБ, зашифровано %d" + % (kind, v["count"], v["bytes"] / 1048576.0, v["encoded"])) + print("всего: %.1f МБ за %.0f с" % (total / 1048576.0, time.time() - started)) + + (DST / "MANIFEST.json").write_text( + json.dumps({"stats": stats, "files": manifest}, ensure_ascii=False, indent=1), + encoding="utf-8") + print("манифест:", DST / "MANIFEST.json") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/tools/extract-sounds.py b/tools/extract-sounds.py new file mode 100644 index 0000000..32dc022 --- /dev/null +++ b/tools/extract-sounds.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python3 +"""The sound registry of the Rustex remake as a table. + +The remake keeps its sounds in two places: the files under sounds/ and +fsounds/ and the registry sounds.json plus rustex_sounds.json, which say +which file belongs to which event. + +The result is one csv: + + rsx-protocol/src/main/resources/items/sounds.csv + +with the columns id, file, volume, pitch. +""" + +import csv +import json +import sys +from pathlib import Path + +ROOT = Path(r"G:\RustNotMC") +ASSETS = ROOT / "assets" / "rustex" / "legacy" / "minecraft" +OUT = ROOT / "rsx-protocol" / "src" / "main" / "resources" / "items" / "sounds.csv" + + +def collect(path: Path, out: dict): + if not path.is_file(): + return + data = json.loads(path.read_text(encoding="utf-8", errors="replace")) + for key, value in data.items(): + if not isinstance(value, dict): + continue + sounds = value.get("sounds") + if isinstance(sounds, list): + for sound in sounds: + if isinstance(sound, dict) and "name" in sound: + out.setdefault(key, []).append( + (sound["name"], sound.get("volume", 1.0), sound.get("pitch", 1.0))) + elif isinstance(sounds, str): + out.setdefault(key, []).append((sounds, 1.0, 1.0)) + name = value.get("name") + if isinstance(name, str): + out.setdefault(key, []).append((name, 1.0, 1.0)) + + +def main() -> int: + out = {} + collect(ASSETS / "sounds.json", out) + collect(ASSETS / "rustex_sounds.json", out) + print("событий:", len(out)) + + OUT.parent.mkdir(parents=True, exist_ok=True) + rows = 0 + with OUT.open("w", encoding="utf-8", newline="") as handle: + writer = csv.writer(handle) + writer.writerow(["id", "file", "volume", "pitch"]) + for key in sorted(out): + for name, volume, pitch in out[key]: + writer.writerow([key, name, volume, pitch]) + rows += 1 + print("строк:", rows, "->", OUT) + + # The sounds that came with the remake, so that we know what exists. + files = 0 + for base in (ASSETS / "sounds", ROOT / "assets" / "rustex" / "legacy" / "assets" / "fsounds"): + if base.is_dir(): + files += sum(1 for _ in base.rglob("*.ogg")) + print("файлов ogg на диске:", files) + return 0 + + +if __name__ == "__main__": + sys.exit(main())