Crafting plans and cooperation for World of Warcraft: Forever.
Планирование изготовления и взаимопомощь в World of Warcraft: Forever.
ForeverNet connects profession profiles within your guild or group. Select an item and quantity to see materials, missing components, crafting steps, and potential crafters.
Version: 0.4.0 Beta · Target client: Forever 1.60.1 (70124), Interface 16001
Author: Andrew Woolfi · License: MIT
- Searchable catalog of learned recipes scanned from your open profession, grouped into collapsible profession sections; each item appears once, with a choice of crafters. Search by item, player or profession.
- The Network page lists other players; your own capabilities remain available for planning.
- Player profiles organize recipes into collapsible profession sections with skill ranks, item cards and Blueprint highlights. Click a card to open that player's recipe and plan a craft.
- Production chains with component quantities, crafting order, and potential crafters.
- Stock calculation using carried items and saved personal bank contents.
- Automatic personal bank snapshots on visits and inventory changes, stored per character.
- Guild/group profile sharing and item requests through in-game addon messages.
- Request lifecycle: open, accepted, completed, or cancelled; the first offer is accepted automatically by the owner's addon.
- Manual Blueprint flags and Camping facility requirements.
- Item cards, separate help sections, settings, and a movable minimap button using game textures and fonts.
- Styling inspired by Forever's profession window: dark brown panels, readable light text, gold headings, narrow profession section strips and native Forever side tabs.
- Compact search, recipe filters by profession/type/crafter and native thin scrollbars.
- Star up to 5 player profiles and 5 recipe items. Favorite profiles stay at the top and are retained across sessions; favorite recipes appear in a section above profession groups.
- Interface localization for all 12 WoW locale codes, with automatic detection and a language selector.
- Bundled Korean and Chinese fonts cover the interface, buttons, window titles, input fields, and tooltips even on a Russian or English client. Asian language names are readable before selecting them.
- Optional notifications when a group/guild participant reports a newer addon version, with manual download instructions.
Recipe catalog and favorites
Production chain example
Guild and group network
Settings and addon information
Interface language selection
Addon update information
- Place the
ForeverNetfolder in your client'sInterface/AddOnsdirectory.ForeverNet.tocmust be directly inside that folder. - Include all Lua files listed in the TOC and the
LICENSEfile. Development folders such aswork,tests, anddocsare not needed in game. - Enable ForeverNet in the AddOns list. Restart the client after the first installation; use
/reloadafter updating an existing installation.
- Open ForeverNet using the minimap button or
/fn. - Open your own profession and click Scan. Clear the profession window's filters and search to include more learned recipes.
- Select a recipe, enter a quantity, and click Build chain.
- Visit your personal bank to save its contents. Withdraw required materials before crafting and rebuild the plan after stock changes.
- To cooperate, join the same guild or group as other ForeverNet users, enable Sharing on both sides. Discovery starts automatically; Sync also refreshes profiles and requests manually.
- Select a missing component and click Ask for help.
The Example button shows an isolated sample chain that is never published to other players.
The chain has two lists: What to get and What to craft. Each crafting step shows its crafter and the total ingredients needed. Use Get N ready-made on a material's crafting step to get the finished reagent instead; use Craft N on a missing material to make it. For example, getting 10 leather removes its conversion from 30 scraps. Other recipes unfolds alternative recipes and their total costs in the same list. Stock is used first and can be expanded separately. Choices recalculate the original item and apply to this plan only. Default recipe selection does not compare prices.
| Control | Action |
|---|---|
/fn |
Open the main window |
/fn settings |
Open settings and addon information |
/fn updates |
Check participant versions and open download instructions |
/fn help |
Show the command reference |
/fn demo |
Show a sample production chain |
/fn language auto |
Use the client language, with English fallback |
/fn language LOCALE |
Choose enUS, enGB, ruRU, deDE, frFR, esES, esMX, itIT, ptBR, koKR, zhCN, or zhTW |
| Minimap left-click | Toggle the main window |
| Minimap right-click | Open help |
| Drag the minimap button | Reposition it; the position is saved |
Settings include language, sharing, automatic network refresh (on/off, 1/2/5-minute interval), automatic bank scanning, inclusion of bank stock in plans, and minimap button visibility. The About section provides GitHub and Boosty links: click a URL and press Ctrl+C to copy it.
The update window compares versions advertised by participants while sharing is enabled. It does not query GitHub or install files in game. Use the download link to check published releases and update manually, or configure an external addon manager. Notifications can be disabled. New translations are machine-assisted and need further native-speaker review; see localization.
Forever's first name and surname are matched across native and chat-name forms. Existing copies of your own profile are merged automatically, preserving learned recipes and the newest bank snapshot. Your Network page shows other players; they see one profile for you. Different crafters remain separate even when they know the same recipe.
Personal bank scanning and bank stock inclusion are enabled by default. Snapshots cover purchased personal bank tabs, not account or guild banks. Outside a bank visit, plans use the last saved snapshot; its age is displayed. An unavailable or incompletely loaded tab does not replace the previous snapshot.
Sharing is disabled on first installation. Enabling it allows profession, recipe, camp, and request messages through guild or group channels. Bag and bank inventories are not shared. Automatic network refresh is enabled by default, every 2 minutes; choose 1, 2, or 5 minutes in settings. It also discovers participants on login, enabling sharing, and group/guild changes, and publishes your profile after a scan or manual recipe edit. New participants receive existing unexpired requests in that channel. Refresh waits for outgoing transfers to finish and coalesces identical profiles. Disabling automatic refresh stops initiated background synchronization; Sync still works, and enabled sharing still receives messages and answers other participants. There is no external server. Scanning your open profession remains a separate action.
Ordinary peer profiles expire after 30 minutes without an update; favorite profiles are retained and labeled as saved data when stale. Your learned recipes, favorite selections, and personal bank snapshots persist across normal logouts/reloads. Recipe favorites are item bookmarks; a remote-only recipe requires its crafter's profile to remain available (favorite that profile to retain it). Requests last 30 minutes. Offers use the request's original channel, so leaving that channel can prevent delivery. Disabling sharing clears outgoing messages but does not immediately erase profiles already received by others.
ForeverNet is a Beta targeting Forever. Compatibility with other WoW clients is not confirmed, although a legacy profession scanner remains in the code.
- The scanner reads the current filtered list of learned item recipes and merges it with saved recipes. Remove obsolete entries with
/fn forget RECIPE_IDafter losing a profession. - Recipes with unsupported alternative reagents, variable costs, currency costs, or ambiguous item outputs are skipped. Optional reagents are not included in the base calculation.
- Blueprint flags and Camping requirements are entered manually. Camp availability is declared by the player, not verified in the world.
- Selecting an item pins the chosen recipe and crafter for the final item; use Change crafter / recipe to switch between available options. Intermediate components prefer the local character, then use a stable ordering. The bounded greedy planner detects shortages and cycles but can miss a workable alternative route.
- Plans do not optimize prices, travel, layers, or other players' inventory. Players craft, travel, and trade manually; a plan is not a confirmed order.
- Friends outside the supported group/guild channels, cross-faction networking, automatic whispers, material reservations, and automatic orders for every chain step are not supported.
Automated checks do not replace in-game testing. Validate bank scanning, UI scale and scrolling, and the complete request flow between real clients before relying on a release.
python -m pip install -r requirements-dev.txt
python tests/run.py
Tests run Lua 5.1 with mocked WoW APIs. They cover module loading, scanning, planning, inventory, cycles, message validation, two-client sharing, requests, expiry, UI behavior, bank snapshots, and settings. Python and Lupa are development dependencies only.
The directed capability graph is available through ForeverNet.SkillGraph for development; it is not a dedicated graphical editor.
These custom:* identifiers are fictional and are added to your local profile. Keep sharing disabled while experimenting, or use /fn demo for an isolated example. For actual items and recipes, use valid item:ID and spell:ID identifiers.
/fn profession engineering 300
/fn recipe custom:engine custom:engine 1 engineering custom:ore=3
/fn blueprint custom:engine on
/fn recipe custom:bag custom:bag 1 tailoring custom:engine=1,custom:cloth=4
/fn station custom:bag custom:workshop on
/fn camp custom:workshop 0
/fn plan custom:bag 1
Raw materials appear as missing in this example. Use /fn help for additional commands. Command names are the same in every language. Received recipe names may retain the sender's language; local item names are used when available from the client cache.
If you would like to support development: Andrew Woolfi on Boosty.
MIT License. Copyright (c) 2026 Andrew Woolfi. See LICENSE for the full terms. Include the license with distributed copies.
Bundled fonts derived from Noto Sans CJK have a separate SIL Open Font License 1.1; see font sources and notices. Include the Fonts folder when distributing or installing the addon.
ForeverNet объединяет профили профессий участников гильдии или группы. Выберите предмет и количество — аддон покажет материалы, недостающие компоненты, этапы изготовления и возможных исполнителей.
Версия: 0.4.0 Beta · Целевой клиент: Forever 1.60.1 (70124), Interface 16001
Автор: Andrew Woolfi · Лицензия: MIT
- Каталог изученных рецептов со сканированием открытой профессии и сворачиваемыми разделами профессий: один предмет — одна строка, с выбором мастера. Поиск работает по предмету, игроку и профессии.
- В разделе «Сеть» отображаются другие игроки; ваши возможности продолжают учитываться в расчётах.
- В профилях игроков рецепты распределены по сворачиваемым разделам профессий с навыком, карточками предметов и выделением Blueprint. Нажатие на карточку открывает рецепт этого мастера для расчёта.
- Производственные цепочки с количеством компонентов, порядком изготовления и возможными исполнителями.
- Расчёт запасов с учётом предметов при персонаже и сохранённого личного банка.
- Автосканирование личного банка при посещении и изменении содержимого; отдельные снимки для каждого персонажа.
- Обмен профилями и запросами через игровые каналы гильдии или группы.
- Заявки: открыта, принята, завершена или отменена; первый отклик автоматически принимает аддон автора заявки.
- Ручные метки Blueprint и требования к объектам Camping.
- Карточки предметов, справка по шагам, настройки и перемещаемая кнопка миникарты с игровыми текстурами и шрифтами.
- Оформление по окну профессий Forever: тёмные коричневые панели, светлый текст, золотые заголовки, узкие разделы профессий и штатные боковые вкладки.
- Компактный поиск, фильтры рецептов по профессии/типу/мастерам и штатные тонкие полосы прокрутки.
- До 5 избранных профилей и 5 рецептов со звёздочками. Избранные профили идут первыми и сохраняются между входами; избранные рецепты вынесены выше разделов профессий.
- Локализация интерфейса для всех 12 кодов языков WoW, автоподбор и список выбора языка.
- Встроенные шрифты для корейского и китайского: тексты, кнопки, заголовки окон, поля ввода и подсказки поддерживаются и на русском/английском клиенте. Азиатские названия языков читаются ещё до их выбора.
- Отключаемое уведомление о более новой версии у участника группы/гильдии и инструкция по ручному обновлению.
Каталог рецептов и избранное
Пример производственной цепочки
Сеть гильдии и группы
Настройки и информация об аддоне
Выбор языка интерфейса
Информация об обновлениях аддона
- Поместите папку
ForeverNetв каталогInterface/AddOnsвашего клиента. ФайлForeverNet.tocдолжен находиться непосредственно внутри этой папки. - Включите все Lua-файлы из TOC и файл
LICENSE. Папки разработкиwork,testsиdocsдля игры не нужны. - Включите ForeverNet в списке модификаций. После первой установки перезапустите клиент; после обновления существующей установки выполните
/reload.
- Откройте ForeverNet кнопкой у миникарты или командой
/fn. - Откройте свою профессию и нажмите «Сканировать». Очистите фильтры и поиск окна профессии, чтобы включить больше изученных рецептов.
- Выберите рецепт, укажите количество и нажмите «Собрать цепочку».
- Посетите личный банк, чтобы сохранить содержимое. Перед изготовлением заберите нужные материалы и пересчитайте цепочку после изменения запасов.
- Для совместной работы вступите в одну гильдию или группу с другими пользователями ForeverNet, включите «Обмен» у обоих. Поиск участников запускается автоматически; «Обновить» также позволяет вручную обновить профили и запросы.
- Выберите недостающий компонент и нажмите «Запросить помощь».
Кнопка «Пример» показывает изолированную учебную цепочку, которая не публикуется другим игрокам.
В цепочке два списка: «Что нужно получить» и «Что потом изготовить». У каждого шага показаны мастер и полный расход материалов. Кнопка «Получить N шт.» заменяет изготовление реагента на получение готового, а «Изготовить N шт.» возвращает изготовление. Например, получение 10 готовых единиц кожи убирает их переработку из 30 обрывков. «Другие рецепты» раскрывает альтернативы и полный расход тут же, в этом списке. Запасы используются первыми и раскрываются отдельно. Выбор пересчитывает исходную вещь и действует только в текущей цепочке. Выбор рецепта по умолчанию не сравнивает цены.
| Действие | Назначение |
|---|---|
/fn |
Открыть главное окно |
/fn settings |
Открыть настройки и информацию об аддоне |
/fn updates |
Проверить версии участников и открыть инструкцию по скачиванию |
/fn help |
Справка по командам |
/fn demo |
Учебная производственная цепочка |
/fn language auto |
Язык клиента с английским резервным вариантом |
/fn language LOCALE |
Выбрать enUS, enGB, ruRU, deDE, frFR, esES, esMX, itIT, ptBR, koKR, zhCN или zhTW |
| Левый клик по кнопке миникарты | Открыть или закрыть главное окно |
| Правый клик по кнопке миникарты | Открыть справку |
| Перетаскивание кнопки миникарты | Изменить положение; оно сохраняется |
В настройках доступны язык, обмен, автообновление сети (вкл./выкл. и интервал 1/2/5 минут), автосканирование банка, учёт банковских запасов и видимость кнопки миникарты. В разделе об аддоне есть ссылки на GitHub и Boosty: нажмите на адрес и скопируйте его через Ctrl+C.
Окно обновлений сравнивает версии, сообщённые участниками при включённом обмене. Оно не обращается к GitHub и не устанавливает файлы из игры. По ссылке можно проверить опубликованные выпуски и обновиться вручную либо настроить внешний менеджер аддонов. Уведомления отключаются. Новые переводы подготовлены с помощью машинного перевода и требуют дальнейшей проверки носителями; подробнее — локализация.
Имя и фамилия Forever сопоставляются между формами игрового API и чата. Сохранённые дубли собственного профиля объединяются автоматически с сохранением рецептов и последнего снимка банка. В вашей «Сети» остаются другие игроки, а они видят один ваш профиль. Разные мастера продолжают учитываться отдельно, даже когда знают одинаковый рецепт.
Автосканирование и учёт банка включены по умолчанию. Снимки охватывают купленные вкладки личного банка; банк аккаунта и гильдии не сканируется. Вне посещения банка используются последние сохранённые данные, возраст которых отображается в интерфейсе. Недоступная или не полностью загруженная вкладка не заменяет предыдущий снимок.
Обмен выключен при первой установке. После включения через каналы гильдии или группы передаются профессии, рецепты, лагерные возможности и запросы. Содержимое сумок и банка не передаётся. Автообновление сети включено по умолчанию раз в 2 минуты; в настройках доступны интервалы 1, 2 и 5 минут. Оно также находит участников при входе, включении обмена и изменении группы/гильдии и отправляет профиль после сканирования или ручного изменения рецептов. Новые участники получают существующие неистёкшие запросы этого канала. Обновление ждёт окончания текущей отправки; одинаковые профили не дублируются в очереди. Выключение автообновления прекращает самостоятельные фоновые синхронизации; кнопка «Обновить», приём сообщений и ответы участникам при включённом обмене продолжают работать. Внешнего сервера нет. Сканирование открытой профессии остаётся отдельным действием.
Обычные профили других игроков удаляются через 30 минут без обновления; избранные сохраняются и при устаревании отмечаются как сохранённые данные. Личные изученные рецепты, отметки избранного и снимки личного банка сохраняются после обычного выхода и /reload. Избранное рецептов — закладки предметов: рецепт, известный только другому игроку, требует доступного профиля этого мастера (добавьте профиль в избранное, чтобы сохранить его). Заявки действуют 30 минут. Отклики идут по исходному каналу запроса, поэтому выход из него может помешать доставке. Отключение обмена очищает очередь отправки, но не удаляет немедленно профили, уже полученные другими игроками.
ForeverNet — Beta для Forever. Совместимость с другими клиентами WoW не подтверждена, хотя в коде сохранён старый адаптер профессий.
- Сканер читает текущий отфильтрованный список изученных предметных рецептов и объединяет его с сохранёнными. После утраты профессии удаляйте устаревшие записи командой
/fn forget RECIPE_ID. - Рецепты с неподдерживаемыми альтернативными реагентами, переменной стоимостью, валютой или неоднозначным предметным результатом пропускаются. Необязательные реагенты в базовый расчёт не входят.
- Метки Blueprint и требования Camping вводятся вручную. Доступность лагеря заявляется игроком и не проверяется в игровом мире.
- Выбор рецепта закрепляет исполнителя конечного предмета. Для промежуточных компонентов приоритет имеет ваш персонаж, затем используется стабильный порядок. Ограниченный жадный алгоритм обнаруживает дефицит и циклы, но может пропустить подходящий альтернативный маршрут.
- Расчёт не оптимизирует цены, перемещение, слои мира и запасы других игроков. Изготовление, перемещение и торговля выполняются вручную; план не является подтверждённым заказом.
- Друзья вне поддерживаемых каналов группы/гильдии, межфракционная сеть, автоматические личные сообщения, резервирование материалов и автоматические заявки на каждый этап не поддерживаются.
Автоматические проверки не заменяют проверку в игре. Перед использованием выпуска проверьте сканирование банка, масштаб и прокрутку окон, а также полный цикл заявки между реальными клиентами.
python -m pip install -r requirements-dev.txt
python tests/run.py
Тесты выполняют Lua 5.1 с заглушками WoW API. Они проверяют загрузку модулей, сканирование, цепочки, запасы, циклы, валидацию сообщений, обмен двух клиентов, заявки, истечение данных, интерфейс, снимки банка и настройки. Python и Lupa нужны только для разработки.
Направленный граф возможностей доступен разработчикам через ForeverNet.SkillGraph; отдельного графического редактора для него нет.
Идентификаторы custom:* вымышлены и добавляются в ваш локальный профиль. Оставьте обмен выключенным на время эксперимента либо используйте /fn demo для изолированного примера. Для реальных предметов и рецептов нужны действительные идентификаторы item:ID и spell:ID.
/fn profession engineering 300
/fn recipe custom:engine custom:engine 1 engineering custom:ore=3
/fn blueprint custom:engine on
/fn recipe custom:bag custom:bag 1 tailoring custom:engine=1,custom:cloth=4
/fn station custom:bag custom:workshop on
/fn camp custom:workshop 0
/fn plan custom:bag 1
В этом примере сырьё отображается как недостающее. Дополнительные команды доступны через /fn help. Их имена одинаковы на обоих языках. Названия полученных рецептов могут сохранять язык отправителя; локальные названия предметов используются при наличии в кэше клиента.
Поддержать разработку: Andrew Woolfi на Boosty.
MIT License. Copyright (c) 2026 Andrew Woolfi. Полный текст находится в LICENSE. Включайте лицензию в распространяемые копии.
Встроенные шрифты на основе Noto Sans CJK распространяются отдельно под SIL Open Font License 1.1; источники и уведомления. Папку Fonts нужно включать в установку и распространяемые копии аддона.





