-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Configuration ru RU
Эта статья посвящена конфигурированию ASF. Здесь содержится полная документация по содержимому папки config
, позволяющая настроить ASF под ваши нужды.
- Введение
- Сетевой генератор конфигураций
- Настройка ASF-ui
- Ручная настройка
- Файл глобальной конфигурации
- Конфигурация бота
- Файловая структура
- Типы параметров в JSON
- Совместимость типов
- Совместимость конфигураций
- Автоматическая перезагрузка
Конфигурация ASF разделена на две основные части - глобальная конфигурация (для всего процесса), и конфигурация каждого бота. У каждого бота есть собственный файл конфигурации бота с именем BotName.json
(где BotName
это имя, которое вы дали боту), а для конфигурации процесса ASF используется один файл с именем ASF.json
.
Бот - это один аккаунт Steam используемый ASF. Для нормальной работы ASF требует чтобы был определён хотя бы один бот. Жёсткого ограничения на количество ботов нет, поэтому вы можете использовать столько ботов (аккаунтов Steam) сколько захотите.
ASF использует формат JSON для сохранения настроек в файлах конфигурации. Это дружественный к пользователю, читаемый и довольно универсальный формат, в котором вы можете конфигурировать программу. Но не волнуйтесь, вам не обязательно знать JSON чтобы настроить ASF. Я упомянул это просто на случай если вы захотите массово создавать конфигурации ASF каким-нибудь скриптом.
Конфигурация может быть выполнена несколькими способами. Вы можете использовать наш Веб ConfigGenerator, который является локальным приложением независимо от ASF. Вы можете использовать наш ASF-ui IPC интерфейс для настройки непосредственно ASF. Наконец, вы всегда можете сгенерировать конфигурационные файлы вручную, так как они следуют за фиксированной структурой JSON, указанной ниже. В ближайшее время мы расскажем о доступных вариантах.
Цель нашего Web-генератора ConfigGenerator - предоставить вам удобный интерфейс, который используется для генерации файлов конфигурации ASF. Сетевой генератор конфигураций работает на 100% на стороне клиент, это значит что никакие данные, которые вы в нём вводите, никуда не пересылаются, и обрабатываются только на вашей машине. Это обеспечивает безопасность и надёжность, поскольку он может работать даже оффлайн если вы скачаете все файлы и запустите index.html
в своём любимом браузере.
Сетевой генератор конфигураций проверен в Chrome и Firefox, но он должен работать во всех популярных браузерах с включенным javascript.
Пользоваться им очень просто - выбираете, хотите ли вы создать файл конфигурации ASF
или Бот
выбрав соответствующую закладку, проверяете что выбранная в генераторе версия соответствует вашей версии ASF, вводите все необходимые поля и нажимаете кнопку "Скачать". Скачанный файл кладёте в папку config
вашего ASF, при необходимости перезаписывая существующий. Повторяете всю процедуру в случае будущих модификаций, и используете остаток этой статьи для объяснения всех доступных параметров конфигурации.
Наш ASF-ui IPC-интерфейс также позволяет настраивать ASF и является превосходным решением для перенастройки ASF после генерации начальных конфигураций благодаря тому, что он может редактировать конфигурации на месте, в отличие от Веб-генератора ConfigGenerator, который генерирует их статически.
Чтобы использовать ASF-ui, у вас должен быть включен интерфейс IPC. IPC
включен по умолчанию, начиная с ASF V5.1.0.0, поэтому вы можете получить к нему доступ сразу, если вы не отключили его самостоятельно.
После запуска программы просто перейдите к IPC-адресу ASF. Если все работает правильно, вы также можете изменить конфигурацию ASF там.
В общем, мы настоятельно рекомендуем использовать либо наш ConfigGenerator, либо ASF-ui, так как это намного проще и гарантирует, что вы не ошибетесь в структуре JSON, но если по какой-то причине вы этого не хотите, вы также можете создать конфиг вручную. Ознакомьтесь с примерами JSON ниже, чтобы получить правильное начало в структуре, вы можете скопировать контент в файл и использовать его в качестве основы для своей конфигурации. Поскольку вы не используете какой-либо из наших интерфейсов, убедитесь, что ваша конфигурация действительна, поскольку ASF откажется загружать ее, если она не может быть проанализирована. Даже если это действительный JSON, вы также должны убедиться, что все свойства имеют правильный тип, как того требует ASF. Для правильной структуры JSON всех доступных полей см. Раздел Отображение JSON и нашу документацию ниже.
Файл глобальной конфигурации называется ASF.json
и имеет следующую структуру:
{
"AutoRestart": true,
"Blacklist": [],
"CommandPrefix": "!",
"ConfirmationsLimiterDelay": 10,
"ConnectionTimeout": 90,
"CurrentCulture": null,
"Debug": false,
"FarmingDelay": 15,
"FilterBadBots": true,
"GiftsLimiterDelay": 1,
"Headless": false,
"IdleFarmingPeriod": 8,
"InventoryLimiterDelay": 4,
"IPC": true,
"IPCPassword": null,
"IPCPasswordFormat": 0,
"LicenseID": null,
"LoginLimiterDelay": 10,
"MaxFarmingTime": 10,
"MaxTradeHoldDuration": 15,
"MinFarmingDelayAfterBlock": 60,
"OptimizationMode": 0,
"SteamMessagePrefix": "/me ",
"SteamOwnerID": 0,
"SteamProtocols": 7,
"UpdateChannel": 1,
"UpdatePeriod": 24,
"WebLimiterDelay": 300,
"WebProxy": null,
"WebProxyPassword": null,
"WebProxyUsername": null
}
Все параметры описаны ниже:
Параметр типа bool
со значением по-умолчанию true
. Этот параметр определяет, разрешено ли ASF перезапускаться при необходимости. Существуют события, которые могут потребовать перезапуска ASF, такие как обновление (раз в UpdatePeriod
или по команде update
), редактирование файла ASF.json
, команда restart
и тому подобное. Перезапуск обычно включает в себя две части - создание нового процесса и завершение текущего. Для большинства пользователей подойдёт оставить этому параметро значение по-умолчанию true
, однако если вы запускаете ASF через собственный скрипт и/или dotnet
, возможно вы захотите иметь полный контроль над запуском процесса, и избежать ситуации когда новый (перезапущеный) процесс ASF работает где-то в фоне, а не в основном процессе скрипта, который завершится вместе со старым процессом ASF. Особенно важно то, что новый процесс не будет прямым потомком вашего скрипта, из-за чего вы не сможете например использовать его стандартный поток вывода.
В этом случае вам поможет этот параметр, вы можете установить его в false
. Однако помните, что в этом случае вы несёте ответственность за перезапуск процесса. Это особенно важно поскольку в этом случае ASF просто выйдет вместо создания нового процесса (например, после обновления), поэтому если вы не добавили свою логику для этого случая он просто перестанет работать пока вы его не запустите снова. ASF всегда выходит с правильным кодом выхода, указывающим на удачу (ноль) или неудачу (не ноль), поэтому вы можете добавить правильную логику в своём скрипте чтобы избежать перезапуска ASF в случае отказа, или как минимум создавать резервную копию log.txt
для дальнейшего анализа. Также помните, что команда restart
выполнит перезапуск ASF независимо от значения этого параметра, поскольку этот параметр задаёт поведение по-умолчанию, а команда restart
производит принудительный перезапуск процесса. Если у вас нет причин отключать эту функцию, рекомендуется оставить её включенной.
Параметр типа ImmutableHashSet<uint>
с пустым значением по-умолчанию. Как следует из названия, это глобальное свойство конфигурации определяет appID (игры), которые будут полностью игнорироваться автоматическим процессом фарма ASF. К сожалению Steam любит отмечать значки летней/зимней распрожажи как "доступные для выпадения карточек", из-за чего ASF пытается их фармить как будто это настоящая игра. Если бы не было черного списка, ASF просто "зависал" бы пытаясь фармить эти игры, которые на самом деле не игры, и бесконечно бы ждал пока из них выпадут карточки, чего никогда не произойдёт. Черный список ASF позволяет отметить эти значки как недоступные для фарма, что позволяет просто тихо игнорировать их при определении следующей игры для фарма, и избегать таких ловушек.
ASF включает в себя два черных списка по умолчанию - SalesBlacklist
, который закодирован в код ASF и не может быть отредактирован, а также обычный Blacklist
, который определен здесь. SalesBlacklist
обновляется вместе с версией ASF и обычно включает в себя все "плохие" ID приложений во время выпуска, так что если вы используете обновленный ASF, то вам не нужно поддерживать свой собственный Blacklist
указанный здесь. Основная цель этого параметра - позволить вам заносить в черный список новые, не известные на момент релиза ASF appID, которые не следует фармить. Хардкорный SalesBlacklist
обновляется как можно быстрее, поэтому вам не требуется обновлять свой собственный Blacklistк
, если вы используете последнюю версию ASF, но без Blacklist
вы бы были вынуждены обновить ASF, чтобы "продолжать работать", когда Valve выпускает новый значок распродажи - я не хочу заставлять вас использовать последний ASF, поэтому это свойство позволяет вам "фиксировать" ASF себя, если вы по каким-то причинам не хотите или не можете, обновление до нового жёсткого SalesBlacklist
в новом релизе ASF, но вы хотите оставить ваш старый ASF. Если у вас нет веских причин для редактирования этого свойства, оставьте его по умолчанию.
Если вам нужен черный список на основе ботов, взгляните на fb
, fbadd
и fbrm
команды.
Параметр типа string
со значением по-умолчанию !
. Это свойство определяет префикс с учетом регистра, используемый для команд ASF. Другими словами, это то, с чего должна начинаться каждая команда ASF чтобы ASF вас послушался. Этому параметру можно присвоить значение null
или пустую строку, чтобы заставить ASF не использовать префикс, в этом случае команды вводятся просто своими идентификаторами. Однако, это может привести к снижению производительности ASF, поскольку ASF оптимизирован пропускать команды, если они не начинаются с CommandPrefix
- если вы намеренно решите не пользоваться им, ASF будет вынужден читать все сообщения и отвечать на них, даже если это не команды. Поэтому рекомендуется использовать какой-нибудь CommandPrefix
, как например /
, если вам не нравится значение по-умолчанию !
. Для единообразия, CommandPrefix
влияет на весь процесс ASF. Если у вас нет причин редактировать этот параметр, рекомендуется оставить ему значение по-умолчанию.
Параметр типа byte
со значением по-умолчанию 10
. ASF гарантирует, что между двумя последовательными запросами на получение подтверждений 2FA будет не менее ConfirmationsLimiterDelay
секунд, чтобы избежать срабатывания ограничения - они используются ASF 2FA во время, например, команды 2faok
, а также по мере необходимости при выполнении различных торговых операций. Значение по-умолчанию было установлено исходя из результатов наших тестов, и его не стоит снижать если вы не хотите возникновения проблем. Если у вас нет веских причин для редактирования этого свойства, оставьте его по умолчанию.
Параметр типа byte
со значением по-умолчанию 90
. Этот параметр определяет таймауты для различных сетевых действий, производимых ASF, в секундах. В частности, ConnectionTimeout
определяет таймаут в секундах для HTTP и IPC запросов, ConnectionTimeout / 10
определяет максимальное число пропущенных тактов сторожевого таймера, а ConnectionTimeout / 30
определяет время в минутах, которое мы выделяем на начальный запрос подключения к сети Steam. Значение по умолчанию 90
должно подходить большинству пользователей, однако, если у вас очень медленное сетевое подключение или ПК, возможно вы захотите увеличить это значение (например до 120
). Имейте в виду, что большие значения не починят волшебным образом медленные или недоступные сервера Steam, поэтому нет смысла бесконечно ждать чего-то, что никогда не случится, и проще попробовать заново позже. Установка этому параметру слишком большого значения приведёт к излишним задержка обнаружения проблем с сетью, а также приведёт к общему падению производительности. Установка этому параметру слишком маленького значения также уменьшит общую стабильность и производительность, поскольку ASF будет прерывать нормальные запросы, которые ещё обрабатываются. Поэтому устанавливать этому параметру значение меньше значения по-умолчанию в целом не даёт преимуществ, поскольку сервера Steam время от времени работают очень медленно, и поэтому требуют больше времени для обработки запросов ASF. Значение по-умолчанию - это попытка уравновесить предположение о стабильности сетевого подключения и сомнения в способности сети Steam обработать запрос за отведенное время. Если вы хотите обнаруживать проблемы с сетью как можно раньше и позволить ASF переподключаться/реагировать как можно быстрее, значение по умолчанию вам подойдёт (можно поставить ему значение немножко ниже, например 60
, чтобы ASF стал менее терпеливым). Если же вы замечаете, что у ASF часто происходят проблемы с сетью, такие как ошибки обменов, потери тактов сторожевого таймера, или разрывы связи со Steam, вероятно имеет смысл увеличить это значение если вы уверены что это связано с самим Steam, а не с вашей сетью, поскольку увеличение таймаутов делает ASF более "терпеливым" и не пытаться сразу же переподключаться.
Примером ситуации, в которой может понадобиться увеличение этого параметра, может послужить необходимость работать с очень большими предложениями обмена с помощью ASF, у Steam может уйти более 2 минут на их полное принятие и обработку. Если вы увеличите таймаут по-умолчанию, ASF будет более терпелив и будет дольше ждать перед тем, как посчитать что обмен не проходит и отбросить исходный запрос.
Ещё одним примером такой ситуации может служить использование очень медленной машины или интернет соединения, что потребует больше времени на обработку отправленных данных. Это довольно редкая ситуация, поскольку ЦП/пропускная способность сети почти никогда не бывает узким местом, но упомянуть об этом стоит.
Вкратце, значение по-умолчанию подходит для большинства случаев, но вы можете захотеть увеличить его при необходимости. Но значительно увеличивать относительно значения по-умолчанию также не имеет много смысла, поскольку большие таймауты не починят волшебным образом недоступные сервера Steam. Если у вас нет причин редактировать этот параметр, рекомендуется оставить ему значение по-умолчанию.
Параметр типа string
со значением по-умолчанию null
. По-умолчанию ASF пытается использовать язык вашей операционной системы, и использовать переведенные на этот язык строки, если они доступны. Это возможно благодаря нашему сообществу, которое старается локализовать ASF на большинство популярных языков. Если по какой-то причине вы не хотите использовать язык вашей ОС, вы можете использовать этот параметр чтобы выбрать любой существующий язык, который бы вы хотели использовать. Полный список языков вы можете найти в MSDN в колонке Language tag
. Рады сообщить, что ASF воспринимает как точные указания на языки, как например "en-GB"
, так и нейтральные, такие как "en"
. Указание языка также будет влиять на другие региональные настройки, такие как формат валюты, даты и тому подобное. Обратите внимание, что вам могут понадобиться дополнительные шрифты/языковые пакеты для правильного отображения символов некоторых языков, если вы выбрали язык отличный от языка вашей системы. Обычно вам может понадобиться этот параметр если вы хотите пользоваться ASF на английском языке вместо своего родного.
Параметр типа bool
со значением по умолчанию false
. Этот параметр определяет, должен ли ASF работать в режиме отладки. В режиме отладки, ASF использует специальную папку debug
рядом с папкой config
, в которой сохраняются все взаимодействия между ASF и серверами Steam. Отладочная информация может помочь обнаруживать сложные проблемы, связанные с сетью и общей работой ASF. В дополнение к этому, некоторые подпрограммы будут выводить гораздо больше информации, так например WebBrowser
будет указывать конкретную причину, почему запросы завершаются неудачно - такая информация записывается в обычный журнал ASF. Вам не следует использовать ASF в режиме отладки, если вас об этом не попросил разработчик. Работа в отладочном режиме уменьшает производительность, отрицательно влияет на стабильность и выводит гораздо больше информации в разных местах, поэтому этот режим должен использоваться исключительно намеренно, кратковременно, для отладки конкретной проблемы, воспроизведения проблемы или получения дополнительной информации о сбое запроса, и тому подобное, не предназначенно для нормальной работы программы. Вы увидите огромное количество новых ошибок, проблем, и исключений - подумайте, обладаете ли вы достаточными знаниями об ASF, Steam и его глюках прежде чем вы решите анализировать эти данные самостоятельно, поскольку часть этих сообщений может не соответствовать истине.
ПРЕДУПРЕЖДЕНИЕ: активация этого режима включает журналирование потенциально конфиденциальной информации, такой как логины и пароли, используемые для входа в Steam (из-за журналирования сетевых запросов). Эти данные записываются как в папку debug
, так и в обычный log.txt
(который в этом режиме будет гораздо более подробным). Вам не следует выкладывать отладочную информацию, сгенерированную ASF, в публичных местах, разработчики ASF всегда будут просить передать её на e-mail, или выложить в другое безопасное место. Мы не сохраняем и не используем эти персональные данные, они записываются как часть процедуры отладки, поскольку их присутствие может быть связано с имеющейся у вас проблемой. Мы бы предпочли чтобы вы не изменяли журнал ASF, но если вы беспокоитесь о безопасности, вы можете соответственно отредактировать свои персональные данные.
Редактирование включает в себя замену персональных данных, например на звездочки. Вам стоит избегать полного удаления строк, содержащих персональные данные, поскольку само их наличие может быть важным, и поэтому их надо сохранить.
Параметр типа byte
со значением по-умолчанию 15
. Для работы ASF требуется периодически проверять каждые FarmingDelay
минут, не выпали ли уже все карточки из текущей игры. Слишком маленькое значение в этом параметре приведёт к избыточному количеству запросов к steam, а слишком большое может привести к тому что ASF будет "фармить" игру на FarmingDelay
дольше чем требуется. Значение по-умолчанию должно прекрасно подойти большинству пользователей, однако если у вас много ботов вы можете захотеть увеличить это значение до чего-то вроде 30
минут чтобы ограничить количество запросов к сети Steam. К счастью, ASF использует механизм обработки событий и проверяет страницу значков в Steam каждый раз когда появляется уведомление о новых предметов, поэтому в общем случае нам вообще не нужно проверять это через фиксированные промежутки времени, но поскольку мы не полностью доверяем сети Steam - мы всё же проверяем страницу со значками, чтобы убедиться что за последние FarmingDelay
минут не выпало карточек (на случай если Steam не пришлёт уведомление о новый предметах, или что-то подобное). Если предположить что сеть Steam работает правильно, уменьшение этого значения никак не повлияет на эффективность фарма, но существенно увеличит нагрузку на сеть - поэтому рекомендуется только увеличивать его (при необходимости) относительно значения по умолчанию в 15
минут. Если у вас нет веских причин редактировать этот параметр, рекомендуется оставить ему значение по-умолчанию.
Параметр типа bool
со значением по-умолчанию true
. Это свойство определяет, будет ли ASF автоматически отклонять трейдый, полученные от известных и отмеченных "плохими" субъектов. Для этого по мере необходимости ASF связывается с нашим сервером для получения списка идентификаторов из чёрного списка. Перечисленные боты управляются людьми, которые квалифицируются как вредные для нашей инициативы, такие как нарушения, которые нарушают наш кодекс поведения, используют предоставленные функциональные возможности и ресурсы, такие как PublicListing
для злоупотреблений и использования других людей, или ведут прямую преступную деятельность, такую как запуск DDoS атак на сервере. Поскольку ASF придерживается твердой позиции на общую справедливость, честность и сотрудничество между пользователями, чтобы все сообщество процветало, это свойство включено по умолчанию, и поэтому ASF фильтрует ботов, которых мы классифицировали как вредных от предлагаемых сервисов. Если у вас есть веские причины для редактирования этого свойства, таких как несогласие с нашим заявлением и преднамеренное разрешение на работу ботов (включая использование ваших аккаунтов), вы должны оставить его по умолчанию.
Параметр типа byte
со значением по-умолчанию 1
. ASF обеспечивает чтобы между последовательными запросами на обработку(активацию) подарков/ключей/лицензий прошло как минимум GiftsLimiterDelay
секунд во избежание превышения лимита запросов . В дополнение к этому этот параметр также будет использоваться как глобальное ограничение на получение списка игр, как например по команде owns
. Если у вас нет веских причин редактировать этот параметр, рекомендуется оставить ему значение по умолчанию.
Параметр типа bool
со значением по умолчанию false
. Этот параметр определяет, должен ли ASF работать в безынтерфейсном режиме. В безынтерфейсном режиме ASF предполагает что оно запущено на сервере или в другой не-интерактивной среде, и поэтому не будет пытаться получить какую-любо информацию через консольный ввод. Это включает в себя данные по требованию (учётные данные, такие как код 2ФА, код SteamGuard, пароль или любые другие переменные, необходимые ASF для работы), а также любой другой консольный ввод (такой как интерактивная консоль команд). Другими словами, режим Headless
равнозначен переводу консоли ASF в режим только для чтения. Эта настройка полезна в основном для пользователей, запускающих ASF на серверах, поскольку вместо запроса на, например, код аутентификации, ASF будет просто прерывать операцию и останавливать "проблемный" аккаунт. Если вы не пользуетесь ASF на сервере, и не убедились что ASF сможет работать без ввода дополнительных данных, вам стоит оставить этот параметр выключенным. В безынтерфейсном режиме не будет работать никакое взаимодействие с пользователем, и бот просто не запустится если для его работы нужен любой ввод значений. Это полезно на серверах, чтобы ASF просто прекращал попытки входа в аккаунт если для этого нужны дополнительные данные, а не ждал (бесконечно) пока пользователь их введёт. Также, если этот параметр включен, вы сможете пользоваться командой input
, которая служит заменой стандартного ввода с консоли. Если вы не уверены как настроить этот параметр - оставьте ему значение по-умолчанию false
.
Если вы используете ASF на сервере, вероятно вы захотите использовать этот параметр совместно с аргументом командной строки --process-required
.
Параметр типа byte
со значением по-умолчанию 8
. Когда ASF нечего фармить, он будет проверять каждые IdleFarmingPeriod
часов, не появилось ли на аккаунте новых игр для фарма. Эта функция не нужна когда мы говорим о добавлении новых игр на аккаунт, поскольку алгоритм ASF достаточно умен чтобы автоматически проверять в этом случае страницу со значками. IdleFarmingPeriod
в основном для тех случаев, когда в старую игру, которае есть у нас на аккаунте, добавили коллекционные карточки. В этом случае нет никакого события, поэтому ASF приходится периодически проверять страницу со значками чтобы предусмотреть такой вариант. Значение 0
выключает эту функцию. Смотрите также: ShutdownOnFarmingFinished
.
Параметр типа byte
со значением по-умолчанию 4
. ASF обеспечит наличие как минимум InventoryLimiterDelay
секунд в промежутках между двумя последовательными запросами инвентаря во избежание срабатывания лимита - те, которые используются для получения Steam инвентаря, особенно во время ваших собственных команд, таких как loot
или transfer
. Значение по умолчанию 4
было выбрано на основе проверки более 100 последовательных ботов, и должно удовлетворить большинство (если не всех) пользователей. Однако вы можете захотеть уменьшить это значение, или даже сделать его равным 0
если у вас очень небольшое количество ботов, в этом случае ASF будет игнорировать задержку и опрашивать инвентари гораздо быстрее. Но помните, слишком низкое значение приведёт к временному бану по IP, и тогда вы вообще не сможете получить доступ к инвентарю. Вам может также понадобиться увеличить это значение если у вас много ботов который производят много запросов к инвентарю, хотя возможно в этом случае вам стоит вместо этого уменьшить количество запросов. Если у вас нет веских причин редактировать этот параметр, рекомендуется оставить ему значение по умолчанию.
Параметр типа bool
со значением по-умолчанию true
. Этот параметр определяет, должен ли IPC сервер ASF запускаться при запуске программы. IPC обеспечивает взаимодействие между процессами, включая использование ASF-ui, путем запуска локального HTTP-сервера. Если вы не собираетесь использовать стороннюю интеграцию IPC с ASF, включая наш ASF-ui, вы можете безопасно отключить эту опцию. В противном случае рекомендуется оставить его включенным (опция по умолчанию).
Параметр типа string
со значением по-умолчанию null
. Этот параметр задаёт пароль, который будет обязательным для любого запроса API через IPC и послужит дополнительной мерой безопасности. Когда этому параметру присвоено не пустое значение, все IPC запросы будут требовать дополнительный параметр password
со значением заданным тут. Значение по-умолчанию null
снимает необходимость в пароле, позволяя ASF обрабатывать все запросы. В дополнение к этому, включение этого параметра также включает встроенный в IPC механизм предотвращения перебора, который будет временно банить любой IP
-адрес посылающий слишком много неавторизованных запросов за короткий интервал времени. Если у вас нет причин редактировать этот параметр, рекомендуется оставить ему значение по умолчанию.
Параметр типа byte
со значением по умолчанию 0
. Этот параметр задаёт формат параметра IPCPassword
и использует EHashingMethod
как базовый тип. Пожалуйста, прочтите раздел "Безопасность" если хотите узнать больше, поскольку вам потребуется убедиться, что параметр IPCPassword
действительно содержит пароль в формате, соответствующем IPCPasswordFormat
. Другими словами, когда вы меняете IPCPasswordFormat
ваш IPCPassword
должен уже быть в этом формате, а не только планироваться как таковой. Вам следует оставить этому параметру значение по-умолчанию 0
, кроме тех случаев когда вы хорошо знаете, что делаете.
Guid?
тип со значением по умолчанию null
. Это свойство позволяет нашим спонсорам улучшить ASF дополнительными возможностями, требующими платные ресурсы для работы. В настоящее время это позволяет использовать MatchActively
в плагине ItemsMatcher
.
While we recommend you to utilize GitHub since it offers monthly and one-time tiers, as well as allows full automation and gives you immediate access, we also support all other currently-available donation options. See this post for instructions on how to donate using other methods in order to get a manual license valid for given period.
Regardless of the method used, if you're ASF sponsor, you can obtain your license here. Вам необходимо войти в GitHub для подтверждения вашей личности, мы запрашиваем только чтение публичной информации, являющейся вашим именем пользователя. LicenseID
создаётся из 32 шестнадцатеричных символов, такой как f6a0529813f74d119982eb4fe43a9a24
.
Убедитесь, что вы не распространяете ключ
другим людям. Поскольку он выдан на персональной основе, он может быть отозван при утечке. Если по какой-то причине это случилось с вами случайно, вы можете создать новый с того же места.
Если вы не хотите включить дополнительные функциональные возможности ASF, вам не нужно вписывать ключ.
Параметр типа byte
со значением по-умолчанию 10
. ASF обеспечивает чтобы между двумя последовательными запросами на подключение прошло как минимум LoginLimiterDelay
секунд во избежание превышения лимита запросов . Значение по-умолчанию 10
было выбрано на основе подключения 100 ботов, и должно удовлетворить большинство (если не всех) пользователей. Вы можете, однако, захотеть увеличить/уменьшить его, или даже сделать равным 0
, если у вас очень малое количество ботов, в этом случае ASF будет игнорировать задержку и подключаться к Steam намного быстрее. Но учтите, что слишком низкое значение при большом количестве ботов приведёт к временному бану по IP, что приведёт к полной невозможности подключиться и ошибке InvalidPassword/RateLimitExceeded
- и это касается и обычного клиента Steam, не только ASF. Аналогично, если у вас очень много ботов, особенно если вы параллельно используете другие клиенты/утилиты Steam на том же IP адресе, вероятно вам понадобится увеличить это значение, чтобы распределить попытки входа через большие интервалы времени.
Дополнительно, этот параметр также используется как буфер балансировки нагрузки всех запланированных действий ASF, таких как обмены по SendTradePeriod
. Если у вас нет веских причин редактировать этот параметр, рекомендуется оставить ему значение по умолчанию.
Параметр типа byte
со значением по-умолчанию 10
. Как вы должны знать, Steam не всегда работает должным образом, иногда могут произойти странные ситуации, такие как незаписывающееся игровое время, несмотря на то, игра была запущена. ASF будет фармить одну игру в соло-режиме максимум MaxFarmingTime
часов, и будет считать что фарм завершен по окончанию этого периода. Это необходимо не только чтобы процесс фарма не "зависал" в случае каких-то странных ситуаций, но и на случай если Steam выпускает новый значок, который не даёт ASF продолжить работу (см. Blacklist
). Значение по-умолчанию в 10
часов должно быть достаточно для выпадения карточек из одной игры. Установка слишком маленького значения может привести к тому что обычные игры будут пропускаться (и да, известны случаи когда выпадение карт в игре занимает 9 часов), а слишком высокое значение может привести к "зависанию" процесса. Обратите внимание, что этот параметр влияет только на одну игру в одном сеансе фарма (поэтому после того, как пройдёт вся очередь, ASF снова вернётся к той же игре), а также на то, что это не общее время в игре, а внутреннее время фарма в ASF, так что ASF также вернется к этой игре после перезапуска. Если у вас нет веских причин редактировать этот параметр, рекомендуется оставить ему значение по умолчанию.
Параметр типа byte
со значением по-умолчанию 15
. Этот параметр задаёт максимальную длительность удержания обмена с которой мы готовы принимать обмены, в днях - ASF будет отказываться от обменов, у которых длительность удержания больше MaxTradeHoldDuration
дней, как описано в разделе "Обмены". Этот параметр влияет только на ботов у которых TradingPreferences
имеет значение SteamTradeMatcher
, и не затрагивает ни обменов с Master
/SteamOwnerID
ни пожертвований. Удержания обменов не нравятся никому, и никто не хочет иметь с ними дела. ASF предполагает работу по либеральным правилам и помощь каждому, независимо от удержания обмена - поэтому по-умолчанию значение этого параметра 15
. Однако, если вы предпочитаете отклонять все обмены с удержанием, вы можете указать здесь 0
. Также учитывайте, что карты с коротким сроком жизни не подвержены влиянию этого параметра, и обмены с ними отклоняются в случае наличия задержек, как описано в разделе "Обмены", поэтому нет нужды глобально отклонять все обмены только из-за этого. Если у вас нет причин редактировать этот параметр, рекомендуется оставить ему значение по-умолчанию.
Параметр типа byte
со значением по-умолчанию 60
. Это свойство определяет минимальное количество времени, в секундах, которое ASF будет ждать перед возобновлением фарма карт, если он был ранее отключен с LoggedInElsewhere
, что происходит, когда вы решите принудительно отключить текущую ферму путем запуска игры у себя. Эта задержка существует главным образом по соображениям удобства и отсутствия накладных расходов, Например, он позволяет вам перезапустить игру без необходимости сражаться с ASF, пытающимся занять ваш аккаунт, только потому что блокировка заняла доли секунды. Из-за того, что повторное подключение к сессии вызывает LoggedInElsewhere
разъединение, ASF должен пройти всю процедуру переподключения, которая оказывает дополнительную нагрузку на машину и сеть Steam, поэтому желательно избегать дополнительных отключений. По умолчанию, это настраивается на 60
секунд, что должно быть достаточно, чтобы позволить вам перезапустить игру без лишних проблем. Тем не менее, есть сценарии, когда вы можете быть заинтересованы в его увеличении. Например, если ваша сеть часто отключается и ASF слишком скоро перестает работать, что приводит к тому, что придется самостоятельно переподключаться. Мы допускаем максимальное значение 255
для этого свойства, поскольку этого должно быть достаточно для всех общих сценариев. В дополнение к вышесказанному, также можно уменьшить задержку, или даже полностью удалить её со значением 0
, хотя это обычно не рекомендуется по указанным выше причинам. Если у вас нет причин редактировать этот параметр, рекомендуется оставить ему значение по-умолчанию.
Параметр типа byte
со значением по-умолчанию 0
. Этот параметр определяет режим оптимизации, который ASF будет использовать при работе. На данный момент ASF поддерживает два режима - 0
, который называется MaxPerformance
(Максимальная производительность), и 1
который называется MinMemoryUsage
(Минимальное потребление памяти). По умолчанию ASF предпочитает как можно больше вещей делать параллельно (одновременно), что увеличивает производительность распределяя нагрузку на всех ядрах ЦПУ, нескольких потоках ЦПУ, нескольких сокетах и нескольких очередях задач. Например, ASF запросит первую страницу значков чтобы узнать какие игры фармить, и после завершения этого запроса прочитает сколько страниц со значками у вас есть, и запросит их все одновременно. Это то что вам нужно почти всегда, поскольку избыточность минимальна, а выгода от использования асинхронного кода ASF может быть заметна даже на очень старом железе с одноядерным CPU и ограниченной производительностью. Однако, когда много задач выполняется параллельно, ASF отвечает за их поддержку, как например поддержку открытых сокетов, запущенных потоков и обрабатываемых задач, что иногда может привести к увеличению использования памяти, и если вы очень ограничены доступной памятью, возможно вы захотите переключить значение этого параметра в 1
(MinMemoryUsage
), что приведёт к тому что ASF будет последовательно выполнять код, который мог бы быть распараллелен. Вам следует рассмотреть возможность переключения этого свойства только в том случае, если вы ранее читали Настройка с низким объемом памяти и намеренно хотите пожертвовать гигантским повышением производительности ради очень небольшого уменьшения загрузки памяти. Обычно этот вариант намного хуже, чем то, что вы можете достичь другими возможными способами, например, ограничив производительность ASF или настроив сборщик мусора во время выполнения, как объяснено в настройке с низким объемом памяти. Следовательно, вы можете использовать MinMemoryUsage
как крайнее средство, прямо перед перекомпиляцией среды выполнения, если вы не можете получить удовлетворительных результатов с другими (гораздо лучшими) параметрами. Если у вас нет веских причин редактировать этот параметр, рекомендуется оставить ему значение по умолчанию.
Параметр типа string
со значением по-умолчанию /me
. Этот параметр задаёт префикс, который будет добавляться в начало всех сообщений в Steam, отсылаемых ASF. По умолчанию ASF использует префикс "/me "
чтобы сообщения от бота можно было легко отличить по другому цвету в чате Steam. Другой достойный упоминания префикс - "/pre "
, который даёт похожий результат но использует другой вид форматирования. Вы также можете сделать этот параметр равным пустой строке или null
чтобы полностью отключить использование префиксов и отправлять все сообщения ASF в обычном виде. Приятно отметить, что этот параметр влияет только на сообщения в Steam - ответы полученные через другие каналы (такие как IPC) не меняются. Кроме случая, когда вы хотите изменить стандартное поведение ASF, хорошей идеей будет оставить этому параметру значение по-умолчанию.
Параметр типа ulong
со значением по-умолчанию 0
. Этот параметр задаёт 64-битный SteamID владельца процеса ASF, и очень похож на права доступа Master
в настройках конкретного бота (но работающий глобально). Почти всегда вам нужно задать в этом параметре ID вашего основного аккаунта Steam. Права доступа Master
даёт полный контроль над конкретным ботом, но глобальные команды, такие как exit
, restart
или update
доступны только для SteamOwnerID
. Это удобно если вы захотите запускать у себя ботов ваших друзей, не давая им при этом контроля над процессом ASF, например не позволяя завершить его командой exit
. Значение по-умолчанию 0
указывает что у процесса ASF нет владельца, то есть никто не сможет использовать глобальные команды. Имейте в виду, что это свойство применимо только к Steam чату, а IPC и интерактивная консоль все равно позволят вам выполнить Owner
команды, даже если это свойство не установлено.
Параметр типа byte flags
со значением по-умолчанию 7
. Этот параметр определяет протоколы по которым ASF будет соединяться с серверами Steam, которые задаются следующим образом:
Значение | Имя | Описание |
---|---|---|
0 | None | Отсутствие протокола |
1 | TCP | Transmission Control Protocol |
2 | UDP | User Datagram Protocol |
4 | WebSocket | WebSocket |
Обратите внимание что это параметр типа flags
, и следовательно ему может быть присвоена любая комбинация приведенных выше значений. Ознакомьтесь с описанием типа flags если вы хотите узнать больше. Если вы не включите ни один флаг, результатом будет вариант None
, который сам по себе не является верным.
По-умолчанию ASF будет использовать все доступные протоколы в качестве меры борьбы с простоями и другими проблемами Steam. Возможно вы захотите изменить этот параметр если вы хотите ограничить ASF использованием только одного или двух определённых протоколов вместо всех доступных. Такие меры могут понадобиться например если у вас есть брандмауэр на котором разрешён только TCP-трафик и вы не хотите чтобы ASF пытался подключиться по UDP. Однако, если вы не пытаетесь отладить какую-то конкретную проблему, почти всегда будет лучше дать ASF возможность выбрать любой из доступных протоколов, а не только один или два. Если у вас нет веских причин редактировать этот параметр, рекомендуется оставить ему значение по умолчанию.
Параметр типа byte
со значением по-умолчанию 1
. Этот параметр задаёт используемый канал обновлений, который будет использоваться либо для авто-обновлений (если UpdatePeriod
больше 0
), либо для оповещения о доступных обновлениях (в противном случае). На данный момент в ASF поддерживается три канала обновлений - 0
под названием None
, 1
, под названием Stable
, и 2
, под названием Experimental
. Канал Stable
это канал обновлений по-умолчанию, который должен использоваться большинством пользователей. Канал Experimental
в дополнение к версиям канала Stable
также версии pre-releases, предназначенные для продвинутых пользователей и других разработчиков с целью тестирования новых функций, подтверждения исправления ошибок и сбора обратной связи о планируемых улучшениях. Экспериментальные версии часто включают в себя неисправленные ошибки, недоделанные функции и переписанные реализации. Если вы не считаете себя продвинутым пользователем, пожалуйста, оставайтесь на канале обновлений по-умолчанию 1
(Stable). Канал Experimental
предназначен для пользователей, которые знают, как сообщать об ошибках, как работать с проблемами и предоставлять обратную связь - техподдержка для этих версий программы осуществляться не будет. Ознакомьтесь с циклом выпуска ASF если хотите узнать больше. Вы также можете установить параметру UpdateChannel
значение 0
(None
) если вы хотите полностью отключить проверку наличия новых версий. Установка параметра UpdateChannel
в 0
полностью отключит все функции связанные с обновлениями, в том числе командой update
. Использование канала None
крайне не рекомендуется, поскольку в этом случае вы подвергнете себя разнообразным проблемам (упомянутым в описании параметра UpdatePeriod
ниже).
Настойчиво рекомендуем оставить этому параметру значение по умолчанию, кроме случая когда вы точно знаете что делаете.
Параметр типа byte
со значением по-умолчанию 24
. Этот параметр определяет, как часто ASF будет проверять наличие обновлений. Обновления важны не только для получения новых возможностей и патчей критических уязвимостей, но и для получения исправлений ошибок, улучшения производительности, стабильности и так далее. Если этому параметру присвоено значение больше 0
, ASF будет автоматически скачивать, заменять и перезапускать себя (если это разрешено в AutoRestart
) при наличии обновлений. Для этого ASF будет проверять каждые UpdatePeriod
часов, нет ли обновлений в нашем репозитории GitHub. Значение 0
выключает автоматические обновления, но позволяет вам запускать команду update
вручную. Возможно вам также будет интересен параметр UpdateChannel
, которому должен следовать UpdatePeriod
.
Процесс обновления ASF включает в себя всю структуру каталогов, используемую ASF, за исключением конфигурационных файлов и баз данных в папке config
- это значит что любые дополнительные файлы, не связанные с ASF, в этих каталогах будут удалены в процессе обновления. Значение по-умолчанию 24
это баланс между излишним количеством проверок и достаточно свежим ASF.
Если у вас нет веских причин отключать эту функцию, вам следует оставить авто-обновления включенными с разумной величиной UpdatePeriod
, для вашего же блага. Не только потому, что мы предоставляем техническую поддержку только для последней стабильной версии ASF, но и потому что мы даём гарантии безопасности только для последней версии. Если вы пользуетесь устаревшей версией ASF - вы намеренно подвергаете себя разнообразным проблемам, от мелких ошибок, до сломанного функционала и заканчивая перманентной блокировкой аккаунта Steam, поэтому мы настоятельно рекомендуем, для вашего же блага, следить за тем что у вас была последняя версия ASF. Автоматические обновления позволяют нам быстро реагировать на любые проблемы, и исправлять проблемы в коде пока они не привели к непредвиденным последствиям, и если вы от них отказываетесь - вы теряете все гарантии безопасности в случае если исполняемый код окажется потенциально опасным, не только для сети Steam, но и (по определению) для вашего аккаунта Steam.
Параметр типа ushort
со значением по умолчанию 300
. Этот параметр задаёт минимальную задержку (в миллисекундах), которая должна пройти между двумя последовательными запросами к одному web-сервису Steam. Такие задержки необходимы из-за того, что сервис AkamaiGhost, который используется Steam, включает в себя ограничение частоты глобального числа запросов за единицу времени. При обычных условиях довольно сложно получить блокировку akamai, но при высоких нагрузках с большими очередями запросов вполне возможно её срабатывание если мы продолжим слать большое количество запросов за короткий интервал времени.
Значение по-умолчанию установлено исходя из предположения что ASF - единственный инструмент, использующий web-сервисы Steam, в частности steamcommunity.com
, api.steampowered.com
и store.steampowered.com
. Если вы пользуетесь другими утилитами, посылающими запросы к тому же web-сервису, вам стоит убедиться, что эти инструменты имеют функционал, схожий с WebLimiterDelay
, и установить и в этом инструменте и в ASF удвоенную величину задержки, равную 600
. Это гарантирует вам что ни при каких обстоятельствах вы не пошлёте больше 1 запроса за 300
мс.
В общем случае, уменьшение WebLimiterDelay
ниже значения по умолчанию крайне не рекомендуется, поскольку это может привести к различным блокировкам по IP, некоторые из которых могут оказаться перманентными. Значение по-умолчанию должно хорошо подойдти для одной копии ASF на сервере, а также при использовании ASF параллельно с обычным клиентом Steam. Оно должно подойти большинству пользователей, и есть смысл только в его увеличении (и никогда - в уменьшении), если кроме ASF вы используете какой-то инструмент посылающий большое количество запросов к web-сервисам которые используются в ASF. Короче говоря, глобальное число всех запросов с одного IP на один домен Steam никогда не должно превышать 1 запрос в 300
мс.
Если у вас нет причин редактировать этот параметр, рекомендуется оставить ему значение по-умолчанию.
Параметр типа string
со значением по-умолчанию null
. Этот параметр задаёт адрес прокси-сервера который будет использоваться для всех внутренних http и https запросов от HttpClient
ASF, особенно к сервисам таким как github.com
, steamcommunity.com
и store.steampowered.com
. Проксирование запросов ASF в общем случае не имеет достоинств, однако очень полезно для обхода различных брандмауэров, в частности "Великого китайского файрвола".
Этот параметр задаётся как строка uri:
Строка URI состоит из схемы (поддерживается: http/https/socks4/socks4a/socks5), хоста и необязательного порта. Пример полной строки uri:
"http://contoso.com:8080"
.
Если ваш прокси требует авторизации, возможно вам также понадобиться настроить WebProxyUsername
и/или WebProxyPassword
. Если такой необходимости нет, будет достаточно только этого параметра.
На данный момент ASF использует прокси только для http
и https
запросов, что не включает в себя внутреннее взаимодействие с сетью Steam клиента ASF. В настоящее время нет планов для обеспечения такой поддержки, в основном из-за отсутствия такого функционала в SK2. Если вы хотите чтобы это случилось - начинать надо там.
Если у вас нет причин редактировать этот параметр, рекомендуется оставить ему значение по-умолчанию.
Параметр типа string
со значением по-умолчанию null
. Этот параметр задаёт пароль, используемый в базовой, дайджест, NTLM и Kerberos авторизации, которая поддерживается заданным в WebProxy
прокси-сервером. Если ваш прокси не требует учётных данных пользователя, нет необходимости что-то вводить в этом параметре. Использование этого параметра имеет смысл только если задан WebProxy
, и не имеет никакого эффекта в противном случае.
Если у вас нет причин редактировать этот параметр, рекомендуется оставить ему значение по-умолчанию.
Параметр типа string
со значением по-умолчанию null
. Этот параметр задаёт имя пользователя, используемое в базовой, дайджест, NTLM и Kerberos авторизации, которая поддерживается заданным в WebProxy
прокси-сервером. Если ваш прокси не требует учётных данных пользователя, нет необходимости что-то вводить в этом параметре. Использование этого параметра имеет смысл только если задан WebProxy
, и не имеет никакого эффекта в противном случае.
Если у вас нет причин редактировать этот параметр, рекомендуется оставить ему значение по-умолчанию.
Как вы уже должны знать, у каждого бота должен быть свой файл конфигурации, основанный на примере структуры JSON, приведенном ниже. Начните с выбора имени вашего бота (например 1.json
, main.json
, primary.json
или AnythingElse.json
) и переходите к конфигурированию.
Примечание: Бот не может иметь имя ASF
(поскольку это ключевое слово зарезервировано для глобальной конфигурации), а также ASF будет игнорировать все конфигурационные файлы, имя которых начинается с точки.
Файл конфигурации бота имеет следующую структуру:
{
"AcceptGifts": false,
"AutoSteamSaleEvent": false,
"BotBehaviour": 0,
"CompleteTypesToSend": [],
"CustomGamePlayedWhileFarming": null,
"CustomGamePlayedWhileIdle": null,
"Enabled": false,
"EnableRiskyCardsDiscovery": false,
"FarmingOrders": [],
"FarmPriorityQueueOnly": false,
"GamesPlayedWhileIdle": [],
"HoursUntilCardDrops": 3,
"LootableTypes": [1, 3, 5],
"MatchableTypes": [5],
"OnlineFlags": 0,
"OnlineStatus": 1,
"PasswordFormat": 0,
"Paused": false,
"RedeemingPreferences": 0,
"RemoteCommunication": 3,
"SendOnFarmingFinished": false,
"SendTradePeriod": 0,
"ShutdownOnFarmingFinished": false,
"SkipRefundableGames": false,
"SteamLogin": null,
"SteamMasterClanID": 0,
"SteamParentalCode": null,
"SteamPassword": null,
"SteamTradeToken": null,
"SteamUserPermissions": {},
"TradeCheckPeriod": 60,
"TradingPreferences": 0,
"TransferableTypes": [1, 3, 5],
"UseLoginKeys": true,
"UserInterfaceMode": 0
}
Все параметры описаны ниже:
Параметр типа bool
со значением по-умолчанию false
. Если этот параметр включен, ASF будет автоматически принимать и активировать все подарки в Steam(включая электронные подарочные карты для пополнения кошелька Steam), отправленные боту. Это также включает в себя подарки от пользователей, не указанных в SteamUserPermissions
. Помните о том, что подарки, отправленные на электронную почту не передаются в клиент автоматически, поэтому ASF не сможет принять их без вашей помощи.
Эта возможность рекомендуется только для дополнительных аккаунтов, поскольку весьма вероятно что вы не захотите активировать все подарки, полученные на основной аккаунт. Если вы не уверены, нужна ли вам эта возможность, оставьте её равной значению по-умолчанию false
.
Параметр типа bool
со значением по-умолчанию false
. Во время зимней и летней распродаж Steam обычно проводит мероприятия, позволяющие получить дополнительные карточки за просмотр списка рекомендаций каждый день, а также за другие, особые для данного события, действия. Если этот параметр включен, ASF будет автоматически проверять списки рекомендаций Steam каждые 8
часов (начиная через час после запуска программы), и просматривать их при необходимости. Не рекомендуется включать эту функцию если вы хотите выполнять это самостоятельно, обычно эта функция будет иметь смысл только на дополнительных аккаунтах. Кроме того, необходимо чтобы ваш аккаунт имел уровень не менее 8
если вы надеетесь получить карты распродажи за эти задания, это является прямым требованием Steam. Если вы не уверены, нужна ли вам эта возможность, оставьте её равной значению по-умолчанию false
.
Обратите внимание, что из-за постоянных проблем Steam, и изменений в заданиях, мы не гарантируем что эта функция будет правильно работать, а значит вполне возможен вариант, когда она не будет работать вообще. Мы не принимаем никаких сообщений об ошибках, и не оказываем техническую поддержку связанную с этой функцией. Она предоставляется абсолютно без гарантий, и вы используете её на свой страх и риск.
Параметр типа byte flags
со значением по-умолчанию 0
. Этот параметр определяет реакцию бота под управлением ASF на различные события, и задаётся следующим образом:
Имя | Имя | Описание |
---|---|---|
0 | None | Бот не имеет особых реакций, наименее агрессивный режим, используется по умолчанию |
1 | RejectInvalidFriendInvites | ASF будет отклонять (а не игнорировать) неверные запросы на добавление в друзья |
2 | RejectInvalidTrades | ASF будет отклонять (а не игнорировать) неверные предложения обмена |
4 | RejectInvalidGroupInvites | ASF будет отклонять (а не игнорировать) неверные приглашения в группы |
8 | DismissInventoryNotifications | ASF будет автоматически отмечать все уведомления о предметах в инвентаре как просмотренные |
16 | MarkReceivedMessagesAsRead | ASF будет автоматически отмечать все полученные сообщения как прочитанные |
32 | MarkBotMessagesAsRead | ASF будет автоматически отмечать сообщения, полученные от других ботов ASF (запущенных в том же экземпляре ASF) как прочитанные |
Обратите внимание что это параметр типа flags
, и следовательно ему может быть присвоена любая комбинация приведенных выше значений. Ознакомьтесь с описанием типа flags если вы хотите узнать больше. Если вы не включите никаких флагов, будет использоваться вариант None
.
В общем случае вы можете настроить этот параметр если хотите чтобы ASF выполнял за вас некие автоматические действия, связанные с его деятельностью, это обычно ожидается от дополнительных, но не от основного аккаунта. Поэтому в основном имеет смысл менять этот параметр для дополнительных аккаунтов, хотя вы конечно же можете использовать отдельные опции и на основном.
Нормальное (None
) поведение ASF подразумевает автоматизацию только нужных пользователю вещей (например, фарм карточек, или обработка обменов по правилам SteamTradeMatcher
, если это задано в TradingPreferences
). Это наименее агрессивный режим, и он подойдёт большинству пользователей, поскольку у них остаётся полный контроль над аккаунтом, и они могут сами решать, выполнять ли какие-то нестандартные взаимодействия, или нет.
Неверный запрос на добвление в друзья - это такой, который пришёл не от пользователя с правами FamilySharing
или выше (задаётся в параметре SteamUserPermissions
). ASF в нормальном режиме игнорирует такие запросы, как и ожидается, давая вам выбор принимать их или нет. Значение RejectInvalidFriendInvites
приведёт к тому, что такие запросы будут автоматически отклоняться, что практически исключит возможность другим людям добавить вас в друзья (поскольку ASF будет отклонять все их запросы, кроме людей заданных в SteamUserPermissions
). Если вы не хотите целиком заблокировать запросы на добавление в друзья, не используйте это значение.
Неверное предложение обмена это такое предложение, которое не будет автоматически принято модулем ASF. Вы можете прочесть об этом больше в разделе "Обмены", который посвящен непосредственно тому, какие обмены ASF будет принимать автоматически. Правильные обмены также определяются и другими настройками, особенно TradingPreferences
. Значение RejectInvalidTrades
приведёт к тому, что все неверные предложения будут отклонены, а не проигнорированы. Если вы не хотите запретить все обмены, кроме тех которые автоматически обрабатывает ASF вам не следует использовать этот значение.
Неверное приглашение в группу это приглашение которое пришло не от группы SteamMasterClanID
. ASF в нормальном режиме, как и ожидается, будет игнорировать такие приглашения, позволяя вам самостоятельно решить, хотите ли вы вступать в конкретную группу Steam или нет. Значение RejectInvalidGroupInvites
приведёт к тому что все эти приглашения в группы будут автоматически отклонены, делая попросту невозможным пригласить вас в группу, отличную от SteamMasterClanID
. Если вы не хотите запретить все приглашения в группы, вам не следует использовать это значение.
DismissInventoryNotifications
чрезвычайно полезен, если вас начинают раздражать постоянные уведомления Steam о получении новых предметов. ASF не может избавится от самого уведомления, так как оно встроено в ваш клиент Steam, но может автоматически очистить уведомление после его получения, чтобы у вас больше не висело уведомление "новые предметы в инвентаре". Если вы желаете сами оценить все полученные предметы (особенно карты выфармленные с ASF), тогда, естественно, вы не должны включать данную опцию. Когда вы начинаете сходить с ума, помните, что это предлагается как вариант.
MarkReceivedMessagesAsRead
будет автоматически отмечать как прочитанные все сообщения, как личные так и групповые, полученные аккаунтом, используемым в ASF. Обычно это стоит использовать на дополнительных аккаунтах для того, чтобы избавиться от уведомлений о новых сообщениях при использовании команд ASF, приходящих, например, от вашего основного аккаунта. Мы не рекомендуем эту опцию для основных аккаунтов, за исключением случая когда вы хотите избавиться от любых уведомлений о сообщениях, включая те, которые были получены, пока вы были оффлайн, разумеется если ASF в это время был запущен и отклонял их.
MarkBotMessagesAsRead
работает аналогично, но отмечает прочитанными только сообщения, полученные от ботов. Имейте в виду, однако, что при использовании этой опции в групповых чатах с вашими ботами и другими людьми, из-за особенностей реализации отметки о прочтении в Steam, будут также отмечены прочитанными все сообщения, полученные до того сообщения, которое вы решили отметить как прочитанное, поэтому если вы не хотите пропустить другие сообщения, полученные в промежутке между сообщениями от ботов, мы не рекомендуем использовать эту функцию. Очевидно, что также рискованным является случай, когда у вас несколько основных аккаунтов (например, принадлежащих разным пользователям), работающих в одном экземпляре ASF, поскольку вы также можете пропустить от них обычные сообщения, не связанные с работой ASF.
Если вы не уверены, как настроить этот параметр, лучше оставить ему значение по-умолчанию.
Параметр типа ImmutableHashSet<byte>
с пустым значением по умолчанию. Когда ASF заканчивает собирать полный набор предметов указанных в этом параметре типов, оно может отправить предложение обмена в Steam пользователю с правами доступа Master
, что очень удобно если вы хотите использовать бота для обмена по принципам STM и передавать завершённые наборы на другой аккаунт. Эта функция аналогична команде loot
, поэтому помните что для неё нужно чтобы был установлен пользователь с правами Master
, а также может понадобиться правильный SteamTradeToken
, ну и конечно аккаунту должно быть разрешено совершать обмены.
На сегодняшний день эта настройка поддерживает следующие типы:
Значение | Имя | Описание |
---|---|---|
3 | FoilTradingCard | Аналог TradingCard , но для металлических карточек |
5 | TradingCard | Коллекционные карточки Steam, используемые для создания значков (обычных) |
Обратите внимание, что независимо от настроек выше, ASF будет отправлять только предметы из сообщества (contextID
равно 6) Steam (appID
равно 753), поэтому все игровые предметы, подарки, и так далее, исключены из предложений обмена по определению.
Из-за дополнительных накладных расходов рекомендуется использовать эту опцию только для ботов у которых есть реальные шансы завершения наборов - например, нет смысла активировать её если вы уже используете SendOnFarmingFinished
, SendTradePeriod
или команду loot
на регулярной основе.
Если вы не уверены, как настроить этот параметр, лучше оставить ему значение по-умолчанию.
Параметр типа string
со значением по-умолчанию null
. Во время фарма ASF может показывать статус "В сторонней игре: CustomGamePlayedWhileFarming
" вместо названия текущей игры. Это может оказаться полезным если вы хотите дать знать своим друзьям что вы фармите, но не хотите использовать Offline
в OnlineStatus
. Обратите внимание, ASF не может гарантировать порядок отображения статусов в Steam, поэтому этот статус может как работать так и не работать правильно. В частности, настраиваемое имя не будет отображаться в алгоритме фарма Complex
, если ASF заполнит все 32
слота с играми, требующими часов для наигрывания. Значение по-умолчанию null
выключает эту функцию.
ASF предоставляет несколько особых переменных, которые вы можете использовать в своём тексте. {0}
будет заменено ASF на значение AppID
игр(ы), которыя(ая) сейчас фармится, а {1}
будет заменено ASF на значение GameName
игр(ы), которые(ая) сейчас фармится.
Параметр типа string
со значением по-умолчанию null
. Аналогично CustomGamePlayedWhileFarming
, но для ситуации когда ASF нечего делать (все карточки на аккаунте уже выбиты). Обратите внимание, ASF не может гарантировать порядок отображения статусов в Steam, поэтому этот статус может как работать так и не работать правильно. Если вы используете GamesPlayedWhileIdle
вместе с этой опцией, то имейте в виду, что GamesPlayedWhileIdle
получает приоритет, поэтому вы не можете объявить более чем 31
из них, в противном случае CustomGamePlayedWhileIdle
не сможет занять слот для пользовательского имени. Значение по-умолчанию null
выключает эту функцию.
Параметр типа bool
со значением по-умолчанию false
. Этот параметр определяет, что бот включен. Включенный бот (true
) будет автоматически запускаться при запуске ASF, а выключенный бот (false
) необходимо запускать вручную. По умолчанию каждый бот выключен, поэтому вы вероятно захотите переключить этот параметр в true
на всех ботах, которые должны запускаться автоматически.
Параметр типа bool
со значением по-умолчанию false
. This property enables additional fallback which triggers when ASF is unable to load one or more of badge pages and is therefore unable to find games available for farming. In particular, some accounts with massive amount of card drops might cause a situation where loading badge pages is no longer possible (due to overhead), and those accounts are impossible for farming purely because we can't load the information based on which we can start the process. For those handful cases, this option allows alternative algorithm to be used in such situation, which uses a combination of boosters possible to craft and booster packs the account is eligible for, in order to find potentially available games to idle, then spends excessive amount of resources for verifying and fetching required information, and attempts to start the process of farming on limited amount of data and information in order to eventually reach a situation when badge page loads and we'll be able to use normal approach. Please note that when this fallback is used, ASF operates only with limited data, therefore it's completely normal for ASF to find much less drops than in reality - other drops will be found at later stage of farming process.
This option is called "risky" for a very good reason - it's extremely slow and requires significant amount of resources (including network requests) for operation, therefore it's not recommended to be enabled, and especially in long-term. You should use this option only if you previously determined that your account suffers from being unable to load badge pages and ASF can't operate on it, always failing to load necessary information to start the process. Even if we made our best to optimize the process as much as possible, it's still possible for this option to backfire, and it might cause unwanted outcomes, such as temporary and maybe even permanent bans from Steam side for sending too many requests and otherwise causing overhead on Steam servers. Therefore, we warn you in advance and we're offering this option with absolutely no guarantees, you're using it at your own risk.
Unless you know what you're doing, you should keep it with default value of false
.
Параметр типа ImmutableList<byte>
с пустым значением по умолчанию. This property defines the preferred farming order used by ASF for given bot account. На данный момент вам доступны следующие варианты порядка фарма:
Значение | Имя | Описание |
---|---|---|
0 | Unordered | Без сортировки, незначительно улучшает производительность ЦПУ |
1 | AppIDsAscending | Пытаться сначала фармить игры с самым маленьким appID
|
2 | AppIDsDescending | Пытаться сначала фармить игры с самым большим appID
|
3 | CardDropsAscending | Пытаться сначала фармить игры с наименьшим количеством доступных для выпадения карточек |
4 | CardDropsDescending | Пытаться сначала фармить игры с наибольшим количеством доступных для выпадения карточек |
5 | HoursAscending | Пытаться сначала фармить игры с наименьшим количеством наигранных часов |
6 | HoursDescending | Пытаться сначала фармить игры с наибольшим количеством наигранных часов |
7 | NamesAscending | Пытаться фармить игры в алфавитном порядке, начиная с A |
8 | NamesDescending | Пытаться фармить игры в обратном алфавитном порядке, начиная с Z |
9 | Random | Пытаться фармить игры в совершенно случайном порядке (разном для каждого запуска программы) |
10 | BadgeLevelsAscending | Пытаться сначала фармить игры с самым маленьким уровнем значка |
11 | BadgeLevelsDescending | Пытаться сначала фармить игры с самым большим уровнем значка |
12 | RedeemDateTimesAscending | Пытаться сначала фармить игры, которые добавлены на аккаунт раньше других |
13 | RedeemDateTimesDescending | Пытаться сначала фармить игры, которые добавлены на аккаунт позже других |
14 | MarketableAscending | Пытаться сначала фармить игры, карточки из которых нельзя продать |
15 | MarketableDescending | Пытаться сначала фармить игры, карточки из которых можно продать |
Поскольку этот параметр - массив, вы можете использовать несколько значений в нужном вам порядке. Например, вы можете добавить значения 15
, 11
и 7
чтобы сортировать сначала по играм с продаваемыми предметами, затем по самому высокому уровню значка, и в конце - по алфавиту. Как вы можете догадаться, порядок на самом деле имеет значение, так как обратный порядок (7
, 11
и 15
) достигает совершенно другого результата (сначала сортирует игры по алфавиту, а из-за того, что названия игр уникальны, два других фактически бесполезны). Большинство пользователей вероятно будут использовать только один способ сортировки, но в случае если вам этого хочется - вы можете уточнить сортировку дополнительными параметрами.
Also notice the word "try" in all above descriptions - the actual ASF order is heavily affected by selected cards farming algorithm and sorting will affect only results that ASF considers same performance-wise. Например, при выбранном алгоритме Simple
, выбранные FarmingOrders
будут полностью соблюдаться в текущей сессии фарма (поскольку у все игры в данном случае одинаковы с точки зрения производительности), а при алгоритме Complex
реальный порядок зависит в первую очередь от наигранных часов и только потом сортируется согласно выбранному FarmingOrders
. Это приведёт к различным результатам, поскольку игры в которых уже есть "время в игре" будут иметь приоритет над остальными, поэтому ASF будет предпочитать в первую очередь игры, у которых "время в игре" уже достигло требуемого в HoursUntilCardDrops
, и только затем производить сортировку этих игр согласно выбранным FarmingOrders
. Аналогично, как только у ASF закончатся игры с требуемым "временем в игре", остаток очереди будет сначала отсортирован по существующему "времени в игре" (поскольку это уменьшит время, требуемое для накрутки времени в этих играх до HoursUntilCardDrops
). Следовательно, этот параметр - это только пожелание, которое ASF будет учитывать пока оно не влияет негативно на производительность (в противном случае из соображений производительности фарма всегда будут иметь приоритет перед FarmingOrders
).
Существует также приоритетная очередь фарма, которая доступна через команду fq
. Если он используется, то фактическая очередь сначала сортируется по производительности, затем по очереди фарма и, наконец, по вашему FarmingOrders
.
Параметр типа bool
со значением по-умолчанию false
. Это свойство определяет, следует ли ASF учитывать для автоматического фарма только приложения, которые вы добавили в приоритетную очередь фарма, доступную с помощью команды fq
. Если этот параметр включен, ASF будет пропускать все appID
отсутствующие в списке, позволяя вам выбрать игры для автоматического фарма. Помните, что если вы не добавили ни одной игры в очередь, ASF будет нечего фармить на вашем аккаунте. Если вы не уверены, нужна ли вам эта возможность, оставьте её равной значению по-умолчанию false
.
Параметр типа ImmutableHashSet<uint>
с пустым значением по-умолчанию. Если ASF нечего фармить, вместо фарма будут запускаться указанные игры (appID
) Steam. Запуск игр таким способом увеличивает "время в игре" для этих игр, но ничего кроме этого. In order for this feature to work properly, your Steam account must own a valid license to all the appIDs
that you specify here, this includes F2P games as well. Эта функция может использоваться одновременно с CustomGamePlayedWhileIdle
с целью запуска игр и одновременно показе заданного статуса в Steam, но в этом случае, как и с CustomGamePlayedWhileFarming
, реальный порядок отображения не гарантируется. Пожалуйста, обратите внимание, что Steam позволяет ASF запустить не более 32
appID
одновременно, поэтому вы не можете указать больше в этом параметре.
Параметр типа byte
со значением по-умолчанию 3
. Этот параметр задаёт, есть ли у аккаунта ограничение на выпадение карточек, и если да - то на сколько часов. Ограничение на выпадение карточек означает что у данного аккаунта не выпадает карточек из игры пока в этой игре не наиграно как минимум HoursUntilCardDrops
часов. К сожалению, нет никакого волшебного способа узнать, есть ли ограничение или нет, поэтому ASF полагается в этом на вас. This property affects cards farming algorithm that will be used. Правильная настройка этого параметра максимизирует прибыль и минимизирует время, необходимое на фарм всех карточек. Помните о том, что нет очевидного ответа, какое значение вам использовать, это полностью зависит от вашего аккаунта. Похоже что старые аккаунты, с которых не запрашивали возврат средств не имеют ограничений на выпадение карт, поэтому им следует использовать значение 0
, а новые аккаунты, и те кто запрашивал возврат средств за игры - имеют ограничение на 3
часа. Но это только теория, и не стоит полагаться на это как на правило. Значение по-умолчанию основано на том, что будет в данном случае меньшим злом, и подходит для большинства случаев.
Параметр типа ImmutableHashSet<byte>
со значением по умолчанию 1, 3, 5
. Этот параметр определяет поведение ASF при отправке предметов от ботов аккаунту с правами Master
- как инициированной вручную с помощью команды, так и автоматической, заданной в одном или более параметрах конфигурации. ASF будет отправлять в предложении обмена только предметы соответствующие LootableTypes
, поэтому вы можете указать, что вы хотите получить в предложениях обмена, которые будет вам присылать бот.
Значение | Имя | Описание |
---|---|---|
0 | Unknown | Типы предметов, которые не попадают ни в одну из категорий ниже |
1 | BoosterPack | Набор карточек, содержащий 3 случайные карточки из игры |
2 | Emoticon | Эмоции, используемые в чате Steam |
3 | FoilTradingCard | Аналог TradingCard , но для металлических карточек |
4 | ProfileBackground | Фоны, используемые в вашем профиле Steam |
5 | TradingCard | Коллекционные карточки Steam, используемые для создания значков (обычных) |
6 | SteamGems | Самоцветы и мешки самоцветов, используемые для создания наборов карточек |
7 | SaleItem | Особые предметы которые можно получить во время распродаж Steam |
8 | Consumable | Особые используемые предметы, которые исчезают после использования |
9 | ProfileModifier | Особые предметы, изменяющие внешний вид профиля Steam |
10 | Sticker | Особые предметы, которые можно использовать в чате Steam |
11 | ChatEffect | Особые предметы, которые можно использовать в чате Steam |
12 | MiniProfileBackground | Особый фон для профиля Steam |
13 | AvatarProfileFrame | Особая рамка для аватара профиля Steam |
14 | AnimatedAvatar | Особый аватар профиля Steam |
15 | KeyboardSkin | Специальный скин клавиатуры для Steam Deck |
16 | StartupVideo | Special startup video for Steam deck |
Обратите внимание, что независимо от настроек выше, ASF будет отправлять только предметы из сообщества (contextID
равно 6) Steam (appID
равно 753), поэтому все игровые предметы, подарки, и так далее, исключены из предложений обмена по определению.
Значение по умолчанию основано на наиболее распространённом применении ботов, и пересылает только наборы карт и сами карты (включая металлические). Этот параметр позволяет вам изменить это поведение по своему вкусу. Обратите внимание, что все типы, кроме описанных выше, будут относиться к типу Unknown
, это может быть важно в случае если Valve выпустит новый тип предметов Steam, такие предметы будут относиться к типу Unknown
, пока их не добавят в какой-то новый тип (в будущих версиях программы). Именно поэтому в общем случае не рекомендуется включать тип Unknown
в вашем LootableTypes
, кроме случая когда вы знаете, что делаете, и понимаете, что ASF отправит вам весь инвентарь в предложении обмена если сеть Steam опять сломается и начнёт обозначать все предметы как Unknown
. Настоятельно не рекомендуем добавлять тип Unknown
в LootableTypes
, даже если вы хотите пересылать всё (остальное).
Параметр типа ImmutableHashSet<byte>
со значением по умолчанию 5
. Этот параметр задаёт, какие типы предметов разрешено обменивать, если в параметре TradingPreferences
включено значение SteamTradeMatcher
. Типы определяются следующим образом:
Значение | Имя | Описание |
---|---|---|
0 | Unknown | Типы предметов, которые не попадают ни в одну из категорий ниже |
1 | BoosterPack | Набор карточек, содержащий 3 случайные карточки из игры |
2 | Emoticon | Эмоции, используемые в чате Steam |
3 | FoilTradingCard | Аналог TradingCard , но для металлических карточек |
4 | ProfileBackground | Фоны, используемые в вашем профиле Steam |
5 | TradingCard | Коллекционные карточки Steam, используемые для создания значков (обычных) |
6 | SteamGems | Самоцветы и мешки самоцветов, используемые для создания наборов карточек |
7 | SaleItem | Особые предметы которые можно получить во время распродаж Steam |
8 | Consumable | Особые используемые предметы, которые исчезают после использования |
9 | ProfileModifier | Особые предметы, изменяющие внешний вид профиля Steam |
10 | Sticker | Особые предметы, которые можно использовать в чате Steam |
11 | ChatEffect | Особые предметы, которые можно использовать в чате Steam |
12 | MiniProfileBackground | Особый фон для профиля Steam |
13 | AvatarProfileFrame | Особая рамка для аватара профиля Steam |
14 | AnimatedAvatar | Особый аватар профиля Steam |
15 | KeyboardSkin | Специальный скин клавиатуры для Steam Deck |
16 | StartupVideo | Special startup video for Steam deck |
Разумеется, обычно имеет смысл использовать в этом параметре только типы 2
, 3
, 4
и 5
, поскольку только эти типы поддерживает STM. ASF включает в себя логику распознавания редкости предметов, поэтому можно безопасно обменивать смайлики и фоны, поскольку ASF посчитает честными только предмета одного и того же типа и из одной и той же игры, у которых одинаковая редкость.
Пожалуйста, обратите внимание, что ASF это не торговый бот и НЕ будет обращать внимание на цену на торговой площадке. Если вы не считаете, что предметы одинаковой редкости из одного набора не одинаковы по цене, то эта опция НЕ для вас. Пожалуйста, подумайте дважды, понимаете ли вы это и согласны ли с этим прежде чем вы решите использовать эту настройку.
Вам следует оставить этому параметру значение по-умолчанию 5
, кроме тех случаев когда вы хорошо знаете, что делаете.
Параметр типа ushort flags
со значением по умолчанию 0
. Это свойство работает как дополнение к OnlineStatus
и определяет дополнительные функции онлайн-присутствия, анонсированные в сети Steam. Требует OnlineStatus
, отличного от Не в сети
, и определяется как показано ниже:
Значение | Имя | Описание |
---|---|---|
0 | None | Нет специальных флагов присутствия в сети, по умолчанию |
256 | ClientTypeWeb | Клиент использует веб-интерфейс |
512 | ClientTypeMobile | Клиент использует мобильное приложение |
1024 | ClientTypeTenfoot | Клиент использует big picture |
2048 | ClientTypeVR | Клиент использует VR шлем |
Обратите внимание что это параметр типа flags
, и следовательно ему может быть присвоена любая комбинация приведенных выше значений. Ознакомьтесь с описанием типа flags если вы хотите узнать больше. Если вы не включите никаких флагов, будет использоваться вариант None
.
Базовый тип EPersonaStateFlag
, который основан на этой собственности, включает в себя больше доступных флагов, Однако, как нам известно, они не имеют никаких последствий на сегодняшний день, поэтому они были сокращены для видимости.
Если вы не уверены как настроить этот параметр - оставьте ему значение по-умолчанию 0
.
Параметр типа byte
со значением по-умолчанию 1
. Этот параметр задаёт статус в сообществе Steam, который будет указывать бот при входе в сеть Steam. На данный момент вы можете выбрать один из нижеприведенных статусов:
Значение | Имя |
---|---|
0 | Offline |
1 | Online |
2 | Busy |
3 | Away |
4 | Snooze |
5 | LookingToTrade |
6 | LookingToPlay |
7 | Invisible |
Статус Offline
чрезвычайно полезен для основных аккаунтов. Как вы уже должны знать, фарм игры отображает ваш статус в Steam как "В игре: XXX", что может ввести в заблуждение ваших друзей, которые подумают что вы играете в игру, которую вы просто фармите. Использование статуса Offline
решает этот проблему - ваш аккаунт никогда не будет отображаться как "в игре", когда вы фармите карточки в ASF. Это возможно благодаря тому, что ASF может не входить в сообщество Steam но при этом продолжать работу, поэтому он запускает игры, подключившись к сети Steam но вообще не оповещая его о том, что мы онлайн. Помните, что игры запущенные в со статусом Offline
всё равно учитываются в наигранное время, и отображаются в разделе "Недавняя активность" на странице вашего профиля.
В добавок к этому, эта функция также полезна если вы хотите получать уведомления и непрочитанные сообщения когда у вас запущен ASF и в то же время не запущен клиент Steam. Поскольку ASF работает как и сам клиент Steam, то хочет ASF того или нет, Steam будет транслировать ему эти сообщения и прочие события. Это не проблема если у вас одновременно запущены ASF и ваш клиент Steam, поскольку оба клиента получат совершенно одинаковые события. Однако, если запущено только ASF, сеть Steam может отмечать некоторые события и сообщения как "доставленные", не смотря на то что ваш обычный клиент Steam не получил их из-за того что не подключен к сети. Статус Offline решает это проблему, поскольку ASF в этом случае не учитывается в обработке событий, поэтому все непрочитанные сообщения и прочие события будут правильно помечены как непрочитанные, когда вы вернётесь.
Важно отметить, что ASF в режиме Offline
не сможет принимать никакие команды через обычные чаты Steam, поскольку чат, как и наличие в сообществе вообще, полностью оффлайн. Решение этой проблемы - использовать режим Invisible
, который работает похожим образом (не отображает статус), но сохраняет возможность получать и отвечать на сообщения (а также возможность отмечать уведомления как просмотренные и сообщения как прочитанные, как описано выше). Режим Invisible
имеет смысл для дополнительных аккаунтов, которые вы не хотите раскрывать (с точки зрения статуса), но которым вы всё же хотите отправлять команды.
Однако, есть одна проблема со статусом Invisible
- он не очень хорошо работает с основными аккаунтами. Проблема в том, что любая сессия Steam, со статусом online, раскрывает реальный статус, даже если сам ASF не делает этого. Это происходит из-за текущего ограничения/ошибки в сети Steam, которое невозможно починить со стороны ASF, поэтому если вы хотите пользоваться режимом Invisible
, то вам необходимо проследить чтобы все другие сессии того же аккаунта тоже были в режиме Invisible
. Это будет именно так для дополнительных аккаунтов, где ASF, скорее всего, единственная активная сессия, но на основном аккаунте, который вы практически всегда захотите видеть как Online
, скрыв при этом активность ASF, и в этом случае режим Invisible
будет полностью бесполезен для вас (мы рекомендуем использовать вместо этого режим Offline
). Мы надеемся что это ограничение/ошибка будет со временем исправлена Valve, но не стоит ожидать что это произойдёт в ближайшее время...
Если вы не уверены, как правильно настроить этот параметр, рекомендуется использовать значение 0
(Offline
) для основных аккаунтов и 1
(Online
) для остальных.
Параметр типа byte
со значением по-умолчанию 0
(PlainText
). Это свойство определяет формат свойства SteamPassword
и в настоящее время поддерживает значения, указанные в разделе security. Вы должны следовать инструкциям, указанным там, так как вам нужно убедиться, что свойство SteamPassword
действительно включает пароль в соответствие с PasswordFormat
. Другими словами, когда вы меняете PasswordFormat
ваш SteamPassword
должен уже быть в этом формате, а не только планироваться как таковой. Вам следует оставить этому параметру значение по-умолчанию 0
, кроме тех случаев когда вы хорошо знаете, что делаете.
Параметр типа bool
со значением по-умолчанию false
. Этот параметр определяет исходное состояние модуля CardsFarmer
. Со значением по-умолчанию false
бот будет автоматически начинать фарм после запуска либо по параметру Enabled
либо по команде start
. Этот параметр следует переключать в true
только если вы хотите вручную запускать процесс фарма командой resume
, либо например если вы планируете всегда использовать команду play
и не собираетесь использовать автоматический модуль CardsFarmer
- он работает точно так же, как команда pause
. Если вы не уверены, нужна ли вам эта возможность, оставьте её равной значению по-умолчанию false
.
Параметр типа byte flags
со значением по-умолчанию 0
. Этот параметр определяет поведение ASF при активации ключей в Steam, и задаётся следующим образом:
Значение | Имя | Описание |
---|---|---|
0 | None | Никаких особых настроек для активации, по умолчанию |
1 | Forwarding | Передавать ключи, которые не удалось активировать, другим ботам |
2 | Distributing | Распределять все ключи между этим и другими ботами |
4 | KeepMissingGames | Не передавать ключи для игр, которые (возможно) отсутствуют на аккаунте, оставлять их неиспользованными |
8 | AssumeWalletKeyOnBadActivationCode | Считать что статус активации ключа BadActivationCode равнозначен статусу CannotRedeemCodeFromClient , и следовательно пытаться их активировать как коды для пополнения кошелька |
Обратите внимание что это параметр типа flags
, и следовательно ему может быть присвоена любая комбинация приведенных выше значений. Ознакомьтесь с описанием типа flags если вы хотите узнать больше. Если вы не включите никаких флагов, будет использоваться вариант None
.
Forwarding
приведёт к тому, что бот будет передавать ключи, которые не удалось активировать, другим подключенным и запущенным ботам, у которых нет данной игры (если удалось проверить). Наиболее распространённая ситуация это передача это игры со статусом AlreadyPurchased
(уже есть на аккаунте) другому боту, у которого нет этой игры, но это значение также поддерживает другие случаи, такие как DoesNotOwnRequiredApp
(отсутствует базовая игра), RateLimited
(слишком много попыток активации) or RestrictedCountry
(ключ не может быть активирован в вашем регионе).
Distributing
приведёт к тому, что все полученные ключи будут распределены между этим и другими ботами. Это означает, что каждый бот получит один ключ и списка. Обычно это используется только если вы активируете много ключей от одной и той же игры, и хотите равномерно распределить их по всем ботам, ситуация противоположная активации нескольких ключей от разных игр. Эта функция не имеет никакого смысла если вы активируете только один ключ в одной команде redeem
(поскольку нет дополнительных ключей, которые можно распределить).
KeepMissingGames
приведёт к тому, что бот будет игнорировать значение Forwarding
если нет уверенности в том, что активируемый ключ от игры, которая уже есть на аккаунте. Это попросту означает, что Forwarding
будет применять только к ключам, получившим статус AlreadyPurchased
, не покрывая другие случаи, такие как DoesNotOwnRequiredApp
, RateLimited
и RestrictedCountry
(см. выше). Обычно вам пригодиться это значение только для основного аккаунта, чтобы убедиться, что активируемые на нём ключи не будут переданы дальше если он временно получил статус RateLimited
. Как вы можете догадаться из описания, это значение не будет иметь абсолютно никакого эффекта, если не включено значение Forwarding
.
AssumeWalletKeyOnBadActivationCode
приведёт к тому, что статус активации ключа BadActivationCode
будет обрабатываться так же, как статус CannotRedeemCodeFromClient
, и следовательно ASF будет пытаться активировать такие ключи как коды для пополнения кошелька. Это необходимо потому, что Steam может возвращать для кодов кошелька статус BadActivationCode
(а не CannotRedeemCodeFromClient
как это было раньше), в результате чего ASF не будет пытаться их активировать. Однако, мы рекомендуем не пользоваться этой настройкой, поскольку в результате ASF будет пытаться активировать все неверные ключи как коды для пополнения кошелька, что приведёт к излишнему количеству (потенциально неверных) запросов к службе Steam, со всеми возможными последствиями. Вместо этого мы рекомендуем пользоваться режимом ForceAssumeWalletKey
для команды redeem^
когда вы знаете, что активируете коды пополнения кошелька, что включит необходимый механизм только при необходимости, по мере надобности.
Если вы включите и Forwarding
и Distributing
, вы получите сочетание передачи с распределением, то есть ASF будет сначала пытаться активировать один ключ на всех аккаунтах (передача) перед тем как переходить к следующему (распределение). Обычно такое сочетание нужно если вы хотите использовать Forwarding
, но со сменой следующего бота для активации, вместо того чтобы перебирать всех ботов по порядку (как происходит при одном Forwarding
). Этот вариант может быть полезен если вы знаете что большинство или все ключи от одной и той же игры, потому что в этой ситуации один Forwarding
будет пытаться активировать их все сначала на пером боте (что имеет смысл если ключи от разных игр), а Forwarding
+ Distributing
будет менять бота для следующего ключа, "передавая" задачу активации нового ключа следующему боту (что имеет смысл если все ключи для одной игры, пропускается бессмысленная попытка активации для каждого ключа).
Реальный порядок ботов для всех вариантов активации - по алфавиту, исключая ботов которые не доступны (не подключены, остановлены и тому подобное). Помните, что у Steam есть ограничени попыток активации, как для одного аккаунта, так и для одного IP, и каждая попытка активации не завершившаяся статусом OK
увеличивает счётчик неудачных попыток. ASF прилагает все усилия, чтобы уменьшить число статусов AlreadyPurchased
, например пытаясь избежать передачи ключа боту, у которого уже есть эта игра, но это не всегда работает из-за того как Steam работает с лицензиями. Использование флагов активации, таких как Forwarding
или Distributing
, всегда увеличивает ваш шанс на получение статуса RateLimited
.
Также помните, что вы не можете передавать или распределять ключи ботам, для которых у вас нет прав доступа. Это должно быть очевидно, но убедитесь что у вас есть права как минимум Operator
для всех ботов, которых вы хотите задействовать в процессе активации, например с помощью команды status ASF
.
Параметр типа byte flags
со значением по-умолчанию 3
. Это свойство определяет поведение ASF для каждого бота при взаимодействии с удаленными сторонними службами и определяется следующим образом:
Имя | Имя | Описание |
---|---|---|
0 | None | Запрещено взаимодействие с третьими сторонами, что делает некоторые функции ASF невозможными для использования |
1 | SteamGroup | Позволяет взаимодействовать с группой ASF в Steam |
2 | PublicListing | Позволяет общаться с листингом ASF STM для того, чтобы попасть в список, если пользователь включил SteamTradeMatcher в TradingPreferences
|
Обратите внимание что это параметр типа flags
, и следовательно ему может быть присвоена любая комбинация приведенных выше значений. Ознакомьтесь с описанием типа flags если вы хотите узнать больше. Если вы не включите никаких флагов, будет использоваться вариант None
.
Этот параметр включает не все сторонние коммуникации, предлагаемые ASF, а только те, которые не управляются другими настройками. Например, если вы включили автообновления ASF, ASF будет связываться как с GitHub (для загрузки), так и с нашим сервером (для проверки контрольной суммы), в соответствии с вашей конфигурацией. Аналогично, включение MatchActively
в TradingPreferences
предполагает связь с нашим сервером для получения списка ботов, которые необходимы для этой функции.
Дальнейшее объяснение по этому вопросу доступно в разделе remote communication. Если у вас нет причин редактировать этот параметр, рекомендуется оставить ему значение по-умолчанию.
Параметр типа bool
со значением по-умолчанию false
. По окончанию фарма всех карточек на одном аккаунте, ASF может автоматически отсылать предложение обмена со всеми выпавшими предметами пользователю с правами Master
, что довольно удобно если вы не хотите заниматься предложениями обмена самостоятельно. Эта функция аналогична команде loot
, поэтому помните что для неё нужно чтобы был установлен пользователь с правами Master
, а также может понадобиться правильный SteamTradeToken
, ну и конечно аккаунту должно быть разрешено совершать обмены. В дополнение к запуску loot
после окончания фарма, если эта функция активна, ASF будет также вызывать loot
каждый раз при получении уведомления о получении новых предметов (только когда фарм не запущен), и после завершения каждого обмена при котором получены новые предметы(всегда). Это особенно удобно для передачи "по цепочке" предметов полученных от других людей на основной аккаунт.
Вероятно вы захотите использовать 2ФА ASF вместе с этой функцией, хотя это не обязательное требование, если вы планируете своевременно подтверждать обмены вручную. Если вы не уверены как настроить этот параметр - оставьте ему значение по-умолчанию false
.
Параметр типа byte
со значением по-умолчанию 0
. Этот параметр очень похож на SendOnFarmingFinished
, с одним отличием - вместо того, чтобы отсылать предложение обмена по окончанию фарма, бот может отсылать предложение обмена каждые SendTradePeriod
часов, не зависимо от того, сколько осталось фармить. Это полезно, если вы хотите получать предметы с дополнительных аккаунтов на регулярной основе, не дожидаясь окончания фарма. Значение по-умолчанию 0
отключает эту функцию, если вы хотите чтобы ваш бот отсылал вам предложения обмена, например, каждый день - поставьте сюда значение 24
.
Вероятно вы захотите использовать 2ФА ASF вместе с этой функцией, хотя это не обязательное требование, если вы планируете своевременно подтверждать обмены вручную. Если вы не уверены как настроить этот параметр - оставьте ему значение по-умолчанию 0
.
Параметр типа bool
со значением по-умолчанию false
. ASF "занимает" аккаунт на всё время пока пока процесс запущен. Когда на аккаунте закончен фарм карточек, ASF периодически проверяет (каждые IdleFarmingPeriod
часов), не появились ли новые игры с карточками, чтобы продолжить фарм без необходимости перезапуска процесса. Это полезно для большинства пользователей, поскольку ASF продолжает фармить по мере необходимости. Однако вы можете захотеть завершать процесс когда фарм на аккаунте закончен, для этого поставьте этому параметру значение true
. Если этот параметр включен, ASF будет выходить из аккаунта когда фарм на нём закончен, а значит не сможет периодически проверять или занимать его. Вам нужно решить, хотите ли вы чтобы ASF работал с данным аккаунтом всё время, или ASF должен останавливать его, когда закончин фарм. Когда все аккаунты остановлены, и процесс не был запущен в режиме --process-required
, ASF также завершит работу, позволяя вашей машине выполнить другие запланированные действия, такие как переход в режим сна или выключение, сразу после того как выпала последняя карточка.
Если вы не уверены как настроить этот параметр - оставьте ему значение по-умолчанию false
.
Параметр типа bool
со значением по-умолчанию false
. Этот параметр указывает, разрешено ли ASF фармить игры, за которые ещё возможен возврат средств. Возврат средств разрешён за игры, которые были куплены не более чем 2 недели назад через магазин Steam, и в которые наиграно менее 2 часов, это описано на странице "Возврат средств в Steam". По-умолчанию этот параметр установлен в значение false
, ASF игнорирует возможность возврата средств, и фармит все доступные игры, как того и будет ожидать большинство пользователей. Однако, вы можете переключить этот параметр в true
если хотите чтобы ASF не фармил игры, за которые возможен возврат средств, давая вам возможность оценить эти игры самостоятельно и без проблем запросить возврат средств при необходимости, не беспокоясь о том что ASF отрицательно повлияет на время в игре. Пожалуйста, обратите внимание, что если вы включите этот параметр, игры купленные в магазине Steam не будут фармиться ASF в течение 14 дней с даты покупки, и это будет отображаться "На этом аккаунте нечего фармить!" если других игр для фарма на аккаунте нет. Если вы не уверены, нужна ли вам эта возможность, оставьте её равной значению по-умолчанию false
.
Параметр типа string
со значением по-умолчанию null
. В этом параметре задаётся ваш логин Steam - тот, с которым вы входите в Steam. Помимо задания логина в этом параметре, вы можете оставить ему значение null
если хотите вводить логин каждый раз при запуске ASF вместо хранения его в конфигурационном файле. Это может быть полезным, если вы не хотите сохранять конфиденциальные данные в конфигурационном файле.
Параметр типа ulong
со значением по-умолчанию 0
. В этом параметре задаётся steamID группы Steam, к которой бот должен автоматически присоединяться, и входить в чат. Вы можете узнать steamID вашей группы перейдя на её страницу, а затем добавив /memberslistxml?xml=1
в конец ссылки в адресной строке, чтобы ссылка приобрела такой вид. Затем вы сможете получить steamID из результирующей выдачи (в некоторых браузерах может понадобиться включить режим просмотра исходного кода), он находится в теге <groupID64>
. В примере выше это будет 103582791440160998
. В добавок к попытке присоединиться к группе на старте, бот будет также автоматически принимать приглашения в эту группу, что даёт вам возможность пригласить бота вручную, если ваша группа не открытая. Если у вас нет группы для ваших ботов, вам следует оставить этому параметру значение по-умолчанию, равное 0
.
Параметр типа string
со значением по-умолчанию null
. В этом параметре задаётся ваш PIN для семейного просмотра. ASF требуется доступ к ресурсам, защищённым средствами семейного просмотра, если вы пользуетесь этим функционалом Steam - вам следует указать ваш PIN для корректной работы ASF. Значение по-умолчанию null
означает что для просмотра содержимого на этом аккаунте не нужен PIN семейного просмотра, это то значение которое вам нужно если вы не пользуетесь этой функцией в Steam.
В некоторых случаях, ASF также может сгенерировать верный код семейного просмотра Steam самостоятельно, хотя это требует значительных ресурсов ОС и дополнительного времени, не говоря уже о том, что успех не гарантируется, поэтому мы рекомендуем не полагаться на эту функцию и вместо этого указать верное значение в параметре SteamParentalCode
конфигурационного файла для использования его в ASF. Если ASF определит, что требуется PIN-код, и он не сможет генерировать его самостоятельно, он попросит вас ввести PIN-код.
Параметр типа string
со значением по-умолчанию null
. В этом параметре задаётся ваш пароль Steam - тот, с которым вы входите в Steam. Помимо задания пароля в этом параметре, вы можете оставить ему значение null
если хотите вводить пароль каждый раз при запуске ASF вместо хранения его в конфигурационном файле. Это может быть полезным, если вы не хотите сохранять конфиденциальные данные в конфигурационном файле.
Параметр типа string
со значением по-умолчанию null
. Если бот находится в вашем списке друзей, он может отправлять вам предложения обмена без указания токена, в этом случае вы можете оставить этому параметру значение null
. Однако, если вы решите что НЕ хотите иметь бота в списке друзей, вам понадобиться сгенерировать и заполнить токен для обменов как пользователю, которому бот должен отправлять обмен. Другими словами, в этом параметре должен быть указан токен для обменов от того аккаунта, который задан как Master
в параметре SteamUserPermissions
этого бота.
Чтобы найти ваш токен, вы должны зайти в Steam с аккаунта, который указан как Master
, перейти сюда и посмотреть на свою ссылка на обмен. Токен, который вы ищете, состоит из 8 символов после &token=
в вашей ссылке на обмен. Вам нужно скопировать эти 8 символов сюда, в параметр SteamTradeToken
. Не нужно указывать целиком ссылку на обмен, и даже часть &token=
, только сам токен (8 символов).
Параметр типа ImmutableDictionary<ulong, byte>
с пустым значением по-умолчанию. Этот параметр - ассоциативный массив, задающий соответствие между пользователем Steam, указанным с помощью 64-битного Steam ID, и числом типа byte
, которое задаёт его права для данного бота ASF. На данный момент доступны следующие права:
Имя | Имя | Описание |
---|---|---|
0 | None | Никаких особых прав, это зарезервированное значение, которое нужно только чтобы описывать те steam ID, которые отсутствуют в этом массиве - нет необходимости задавать какой-то аккаунт с такими правами |
1 | FamilySharing | Даёт минимальный доступ для пользователей использующих семейный доступ. Опять же, это скорее зарезервированное значение, поскольку ASF способен автоматически обнаруживать каким steam ID разрешён доступ к вашей библиотеке |
2 | Operator | Даёт основные права доступа к боту, в основном для активации ключей и добавления бесплатных лицензий |
3 | Master | Даёт полный доступ к данному боту |
Если коротко, этот параметр позволяет вам управлять разрешениями для выбранных пользователей. Разрешения важны для доступа к командам, но также для активации различных функций ASF, таких как принятие предложений обмена. Например, вы можете объявить свой аккаунт как Master
, и дать права Operator
2-3 своим друзьям, чтобы они могли активировать ключи на ваших ботах, но при этом не могли, например, остановить их. Благодаря этому вы легко можете назначать права выбранным пользователям и давать им доступ к выбранным вами ботам до определённой вами степени.
Мы рекомендуем указать только одного пользователя как Master
, и сколько захотите - как Operator
и ниже. Хотя технически возможно указать несколько Master
и ASF, будет корректно с ними работать, например принимать предложения обмена, которые они отправят боту, но ASF будет использовать только одного из них (с самым маленьким steam ID) для всех задач, для которых требуется только одна цель - например, запросов loot
, а также параметров SendOnFarmingFinished
или SendTradePeriod
. Если вы хорошо понимаете эти ограничения, особенно тот факт что запрос loot
всегда будет отсылать предметы аккаунту Master
с самым маленьким steam ID, независимо от того, кто из Master
ов отдал эту команду - вы можете задать здесь несколько пользователей с правами Master
, но мы всё же рекомендуем схему с одним Master
.
Стоит отметить, что дополнительно есть ещё права доступа Owner
, которые задаются в параметре SteamOwnerID
глобальной конфигурации. Вы не можете никому задать права Owner
в этом параметре, поскольку параметр SteamUserPermissions
определяет только права, относящиеся к боту, а не к процессу ASF в целом. Для связанных с ботами задач, SteamOwnerID
обрабатывается так же, как и Master
, поэтому задавать здесь ваш SteamOwnerID
нет необходимости.
Параметр типа byte
со значением по-умолчанию 60
. Normally ASF handles incoming trade offers right after receiving notification about one, but sometimes because of Steam glitches it can't do it at that time, and such trade offers remain ignored until next trade notification or bot restart occurs, which may lead to trades being cancelled or items not available at that later time. If this parameter is set to a non-zero value, ASF will additionally check for such outstanding trades every TradeCheckPeriod
minutes. Default value is selected with balance between additional requests to steam servers and losing incoming trades in mind. However, if you are just using ASF to farm cards, and don't plan to automatically process any incoming trades, you may set it to 0
to disable this feature completely. On the other hand, if your bot participates in public ASF's STM listing or provides other automated services as a trade bot, you may want to decrease this parameter to 15
minutes or so, to process all trades in a timely manner.
Параметр типа byte flags
со значением по-умолчанию 0
. Этот параметр определяет поведение ASF при получении предложений обменов, и задаётся следующим образом:
Имя | Имя | Описание |
---|---|---|
0 | None | Никаких особых настроек для обменов, по умолчанию |
1 | AcceptDonations | Принимаются предложения обменов, в которых бот не отдаёт никаких предметов |
2 | SteamTradeMatcher | Пассивно участвует в предложениях обменов по правилам STM. Ознакомьтесь с разделом "Обмены" чтобы узнать больше |
4 | MatchEverything | Требует, чтобы был задан SteamTradeMatcher , и в сочетании с ним - также принимаются "плохие" сделки в дополнение к "хорошим" и "нейтральным" |
8 | DontAcceptBotTrades | Не принимаются автоматически предложения обмена, отправленные по команде loot другими ботами |
16 | MatchActively | Активно участвует в предложениях обменов по правилам STM. Ознакомьтесь с разделом ItemsMatcherPlugin для дополнительной информации |
Обратите внимание что это параметр типа flags
, и следовательно ему может быть присвоена любая комбинация приведенных выше значений. Ознакомьтесь с описанием типа flags если вы хотите узнать больше. Если вы не включите никаких флагов, будет использоваться вариант None
.
Дальнейшее объяснение логики работы ASF с предложениями обмена, и описание всех доступных флагов вы найдёте в разделе "Обмены".
Параметр типа ImmutableHashSet<byte>
со значением по умолчанию 1, 3, 5
. Это свойство определяет, какие типы предметов Steam будут рассматриваться для передачи между ботами во время команды transfer
. ASF будет отправлять в предложении обмена только предметы соответствующие TransferableTypes
, поэтому вы можете указать, что вы хотите получить в предложениях обмена, отправленных одному из ваших ботов.
Имя | Имя | Описание |
---|---|---|
0 | Unknown | Типы предметов, которые не попадают ни в одну из категорий ниже |
1 | BoosterPack | Набор карточек, содержащий 3 случайные карточки из игры |
2 | Emoticon | Эмоции, используемые в чате Steam |
3 | FoilTradingCard | Аналог TradingCard , но для металлических карточек |
4 | ProfileBackground | Фоны, используемые в вашем профиле Steam |
5 | TradingCard | Коллекционные карточки Steam, используемые для создания значков (обычных) |
6 | SteamGems | Самоцветы и мешки самоцветов, используемые для создания наборов карточек |
7 | SaleItem | Особые предметы которые можно получить во время распродаж Steam |
8 | Consumable | Особые используемые предметы, которые исчезают после использования |
9 | ProfileModifier | Особые предметы, изменяющие внешний вид профиля Steam |
10 | Sticker | Особые предметы, которые можно использовать в чате Steam |
11 | ChatEffect | Особые предметы, которые можно использовать в чате Steam |
12 | MiniProfileBackground | Особый фон для профиля Steam |
13 | AvatarProfileFrame | Особая рамка для аватара профиля Steam |
14 | AnimatedAvatar | Особый аватар профиля Steam |
15 | KeyboardSkin | Специальный скин клавиатуры для Steam Deck |
16 | StartupVideo | Special startup video for Steam deck |
Обратите внимание, что независимо от настроек выше, ASF будет отправлять только предметы из сообщества (contextID
равно 6) Steam (appID
равно 753), поэтому все игровые предметы, подарки, и так далее, исключены из предложений обмена по определению.
Значение по умолчанию основано на наиболее распространённом применении ботов, и пересылает только наборы карт и сами карты (включая металлические). Этот параметр позволяет вам изменить это поведение по своему вкусу. Обратите внимание, что все типы, кроме описанных выше, будут относиться к типу Unknown
, это может быть важно в случае если Valve выпустит новый тип предметов Steam, такие предметы будут относиться к типу Unknown
, пока их не добавят в какой-то новый тип (в будущих версиях программы). Именно поэтому в общем случае не рекомендуется включать тип Unknown
в вашем TransferableTypes
, кроме случая когда вы знаете, что делаете, и понимаете, что ASF отправит вам весь инвентарь в предложении обмена если сеть Steam опять сломается и начнёт обозначать все предметы как Unknown
. Настоятельно не рекомендуем добавлять тип Unknown
в TransferableTypes
, даже если вы собираетесь пересылать весь инвентарь.
Параметр типа bool
со значением по-умолчанию true
. Этот параметр задаёт, должен ли ASF использовать механизм ключей авторизации для этого аккаунта Steam. Механизм ключей авторизации подобен функции "Запомнить мой пароль" официального клиента Steam, он делает возможным для ASF сохранить временный одноразовый ключ авторизации для следующего подключения, снимая необходимость в пароле, коде Steam Guard или 2ФА если сохранённый ключ авторизации верный. Ключ авторизации хранится в файле BotName.db
и обновляется автоматически. Поэтому вам не нужно вводить пароль/код SteamGuard/код 2ФА после того как вы зашли в ASF хотя бы раз.
Ключи авторизации по-умолчанию используются для вашего удобства, чтобы вам не нужно было вводить SteamPassword
и коды SteamGuard или 2ФА (если вы не пользуетесь 2ФА ASF) при каждом входе. Это превосходная альтернатива, поскольку ключ авторизации может быть использован только один раз и никоим образом не раскрывает ваш пароль. Точно такой же метод используется самим клиентом Steam, который сохраняет имя вашего аккаунта и ключ авторизации для следующего входа, что по сути то же самое что использование SteamLogin
с UseLoginKeys
и пустым SteamPassword
в ASF.
Однако, некоторые пользователи могут быть обеспокоены даже такой возможностью, поэтому этот параметр поможет вам если вы хотите чтобы ASF не сохранял никаких ключей, которые позволят ему возобновить предыдущую сессию после закрытия, что приведёт к необходимости полной аутентификации при каждой попытке входа. Отключение этой функции будет работать точно так же, как если бы вы не поставили отметку в поле "Запомнить мой пароль" при входе в официальный клиент Steam. Кроме случаев, когда вы понимаете что делаете, вам стоит оставить этому параметру значение по-умолчанию true
.
Параметр типа byte
со значением по-умолчанию 0
. Это свойство определяет режим пользовательского интерфейса, который будет объявлен ботом после входа в сеть Steam. В настоящее время вы можете выбрать один из режимов ниже:
Имя | Имя |
---|---|
0 |
По умолчанию |
1 |
BigPicture |
2 |
Мобильный |
Если вы не уверены как настроить этот параметр - оставьте ему значение по-умолчанию 0
.
ASF использует достаточно простую файловую структуру.
├── config
│ ├── ASF.json
│ ├── ASF.db
│ ├── Bot1.json
│ ├── Bot1.db
│ ├── Bot1.bin
│ ├── Bot2.json
│ ├── Bot2.db
│ ├── Bot2.bin
│ └── ...
├── ArchiSteamFarm.dll
├── log.txt
└── ...
Чтобы перенести ASF в новое место, например на другой ПК, достаточно скопировать только папку config
, и это же рекомендуется для создания любых "резервных копий ASF", поскольку всё остальное (программу) вы всегда можете скачать с GitHub, не опасаясь повредить внутренние файлы ASF, например из-за неудачного создания резервной копии.
Файл log.txt
содержит журнал, созданный ASF при последнем запуске. Этот файл не содержит никакой конфиденциальной информации, и крайне полезен когда дело доходит до поиска неисправностей и причин падений, и в целом для информации о том, что происходило во время последнего запуска ASF. Мы будет часто просить у вас этот файл, если у вас возникают проблемы и ошибки. ASF управляет этим файлом автоматически, но вы можете дополнительно настроить модуль журналирования ASF если вы продвинутый пользователь.
Папка config
это место где хранятся настройки ASF, включая настройки для всех ботов.
ASF.json
это файл глобальных настроек ASF. Этот конфигурационный файл используется для настройки поведения ASF как процесса, эти настройки влияют на всех ботов и на саму программу. В нём вы найдёте глобальные параметры, такие как настройка владельца ASF, авто-обновлений или режима отладки.
BotName.json
это файл настроек конкретного бота. Этот конфигурационный файл задаёт поведение конкретного бота, поэтому эти настройки индивидуальны для каждого бота, и не распространяются на других ботов. Это позволяет вам настроить ботов с разными значениями параметров, и не обязательно чтобы все они работали одинаково. Именем каждого бота служит уникальный идентификатор, заданный вами вместо BotName
.
Кроме конфигурационных файлов, ASF также хранит в папке config
свои базы данных.
ASF.db
это файл глобальной базы данных ASF. Она служит глобальным постоянным хранилищем, и используется для хранения различной информации, необходимой процессу ASF, такой как IP-адреса локальных адресов Steam. Вам не следует редактировать этот файл.
BotName.db
это база данных конкретного бота. Этот файл используется для хранения важных данных о конкретном боте в постоянном хранилище, таких как ключ авторизации или 2ФА ASF. Вам не следует редактировать этот файл.
BotName.bin
это особый файл для конкретного бота, которых хранит информацию о хеше безопасности Steam. Хеш безопасности используется для аутентификации с использованием механизма SteamGuard
, очень похоже на файл ssfn
в Steam. Вам не следует редактировать этот файл.
BotName.keys
это особый файл, который может использоваться для импорта ключей в модуль фоновой активации. Это не обязательный файл, и не создаётся, а только распознаётся ASF. Этот файл автоматически удаляется после того как ключи успешно импортированы.
BotName.maFile
это особый файл, который может использоваться для импорта 2ФА ASF. Это не обязательный файл, и не создаётся, а только распознаётся ASF если ваш бот BotName
ещё не имеет подключенного 2ФА ASF. Этот файл автоматически удаляется после того как 2ФА ASF успешно импортирован.
Каждый конфигурационный параметр имеет свой тип. Тип параметра определяет диапазон значений, допустимых для него. Мы можете использовать только верные для данного типа значения - если значение будет неверным, ASF не сможет прочесть ваш файл конфигурации.
Мы настоятельно рекомендуем использовать Генератор Конфигураций для создания файлов конфигурации - он берёт на себя большую часть низкоуровневых задач (таких как проверка типов), так что вам остаётся только ввести правильные значения, и вам не придётся разбираться в типах переменных, описанных ниже. Этот раздел в основном для людей, создающих/редактирующих файлы конфигурации вручную, чтобы они знали, какие значения можно использовать.
Типы используемые в ASF это встроенные типы C#, описанные ниже:
bool
- логический тип, принимающий только значения true
и false
.
Пример: "Enabled": true
byte
- Тип беззнакового байта, принимающий только целые числа из диапазона от 0
до 255
(включительно).
Пример: "ConnectionTimeout": 90
ushort
- Тип беззнакового короткого целого, принимающий только целые числа из диапазона от 0
до 65535
(включительно).
Пример: "WebLimiterDelay": 300
uint
- Тип беззнакового целого, принимающий только целые числа из диапазона от 0
до 4294967295
(включительно).
ulong
- Тип беззнакового длинного целого, принимающий только целые числа от 0
до 18446744073709551615
(включительно).
Пример: "SteamMasterClanID": 103582791440160998
string
- Строковый тип, принимающий любую последовательность символов, включая пустую последовательность ""
и null
. Пустая последовательность и значение null
обрабатываются ASF одинаково, поэтому вы можете выбрать на свой вкус, какое значение использовать (мы предпочитаем null
).
Примеры: "SteamLogin": null
, "SteamLogin": ""
, "SteamLogin": "MyAccountName"
Руководство?
- Тип Nullable UUUID, в JSON кодировке как строка. UUID состоит из 32 шестнадцатеричных символов, в диапазоне от 0
до 9
и a
до f
. ASF принимает различные допустимые форматы - строчные буквы, заглавные буквы, с и без тире. В дополнение к действующему UUID, так как это свойство является nullable, специальное значение null
принято указывать на отсутствие UUID для предоставления.
Примеры: "LicenseID": null
, "LicenseID": "f6a0529813f74d119982eb4fe43a9a24"
ImmutableList<valueType>
- Неизменяемая коллекция (набор) уникальных значений заданного типа valueType
. В JSON задаётся как массив элементов заданного типа valueType
. ASF использует тип List
чтобы показать что этот параметр поддерживает указание нескольких значений, и что их порядок может иметь значение.
Пример для типа ImmutableList<byte>
: "FarmingOrders": [15, 11, 7]
ImmutableHashSet<valueType>
- Неизменяемая коллекция (набор) уникальных значений заданного типа valueType
. В JSON задаётся как массив элементов заданного типа valueType
. ASF использует HashSet
чтобы показать что данный параметр имеет смысл только для уникальных значений, поэтому он будет намеренно игнорировать любые возможные дубликаты во время разбора файла (если вы их туда случайно добавите).
Пример для ImmutableHashSet<uint>
: "Blacklist": [267420, 303700, 335590]
ImmutableDictionary<keyType, valueType>
- неизменяемый ассоциативный массив, задающий соответствие уникального ключа типа keyType
значению типа valueType
. В JSON задаётся как объект с парами ключ-значение. Помните, что в этом случае keyType
всегда берётся в кавычки, даже если это значение таких типов как ulong
. Также здесь имеется строгое требование чтобы ключ был уникальным в ассоциативном массиве, на этот раз обусловленное также форматом JSON.
Пример ImmutableDictionary<ulong, byte>
: "SteamUserPermissions": { "76561198174813138": 3, "76561198174813137": 1 }
flags
- Флаговый атрибут объединяет несколько разных значений в одно конечное значение параметра с помощью битовых операций. Это позволяет выбирать любые комбинации допустимых значений одновременно. Окончательное значение формируется как сумма значений всех выбранных опций.
Например, вам даны следующие значения:
Имя | Имя |
---|---|
0 | None |
1 | A |
2 | B |
4 | C |
Использование комбинации B + C
даст в результате значение 6
, использование A + C
даст значение 5
, использование C
даст значение 4
и так далее. Это позволяет вам создавать любые возможные комбинации допустимых значений - если вы решите объединить их все, создав None + A + B + C
, вы получите конечное значение 7
. Обратите внимание, что флаг со значением 0
включён по-умолчанию во все возможные комбинации, поэтому чаще всего этот флаг не задаёт ничего важного (как например None
).
Как видите, в примере выше у нас есть 3 доступных флага, которые можно включить или выключить (A
, B
, C
), и 8
возможных комбинаций суммарно:
None -> 0
A -> 1
B -> 2
A + B -> 3
C -> 4
A + C -> 5
B + C -> 6
A + B + C -> 7
Пример: "SteamProtocols": 7
Из-за ограничений JavaScript, связанных с невозможностью должным образом сериализовать простые поля ulong
в JSON при использовании веб-генератора ConfigGenerator, поля ulong
будут отображаться как строки с префиксом s _
в полученном конфиге. Это включает, например, "SteamOwnerID": 76561198006963719
, который будет записан нашим ConfigGenerator как "s_SteamOwnerID": "76561198006963719"
. В ASF автоматически поддерживает такие строковые параметры, поэтому записи с префиксом s_
в ваших конфигурационных являются верными. Если вы создаёте конфигурационные файлы самостоятельно, мы рекомендуем по возможности придерживаться исходных полей ulong
, но если вы по какой-то причине не можете этого сделать, вы можете также действовать по этой схеме и кодировать их как строки добавляя к названию префикс s_
. Мы надеемся со временем обойти это ограничение JavaScript.
Для ASF высшим приоритетом является сохранение совместимости со старыми конфигурациями. Как вы уже можете знать, отсутствующие свойства конфигурации обрабатываются так же, как они были определены их значениями по умолчанию. Следовательно, если в новой версии ASF добавляется новый параметр, все ваши файлы конфигураций останутся совместимыми с новой версией, и ASF будет обрабатывать новый параметр так будто он задан со значением по-умолчанию. Вы всегда можете добавлять, удалять или изменять конфигурационные параметры в соответствии со своими нуждами.
Мы рекомендуем ограничится заданием только тех параметров, значение которых вы хотите изменить, поскольку все остальные автоматически получат значения по умолчанию, это не только сделает ваш конфигурационный файл понятнее, но также увеличит совместимость в случае если мы решим изменить значение по умолчанию для параметра, который вы не задали сами (например WebLimiterDelay
).
В связи с этим ASF автоматически мигрирует/оптимизирует ваши конфигурации, переформатируя их и удаляя поля, содержащие значения по умолчанию. Вы можете отключить это поведение при помощи **аргумента командной строки ** --no-config-migrate
, если у вас есть конкретная причина, Например, вы предоставляете конфигурационные файлы только для чтения, и вы не хотите, чтобы ASF модифицировал их.
Начиная с ASF V2.1.6.2+, программа отслеживает изменение файлов конфигурации "на лету" - благодаря этому, ASF автоматически:
- Создаёт (и при необходимости запускает) нового бота, если вы создали для него файл конфигурации
- Останавливает (при необходимости) и удаляет старого бота, если вы удалили его файл конфигурации
- Останавливает (и при необходимости запускает) любого бота, если вы изменили его файл конфигурации
- Перезапускает (при необходимости) бота с новым именем, если вы переименовали файл конфигурации
Всё вышеперечисленное достаточно прозрачно и будет выполняться автоматически без необходимости перезапуска программы и не влияя на ботов конфигурационные файлы которых вы не меняли.
В добавок к этому, ASF автоматически перезапустится (если это разрешено в параметре AutoRestart
) если вы измените файл глобальной конфигурации ASF ASF.json
. Также, программа завершится если вы удалите или переименуете его.
Вы можете отключить это поведение с помощью [аргумента командной строки](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Command -line-arguments#arguments) --no-config-watch
, если у вас есть конкретная причина, например, вы не хотите, чтобы ASF реагировал на изменения файла в папке config
.
- 🏡 Главная
- 🔧 Конфигурация
- 💬 ЧАВО
- ⚙️ Настройка (начать здесь)
- 👥 Фоновая активация ключей
- 📢 Команды
- 🛠️ Совместимость
- 🧩 Плагин ItemsMatcherPlugin
- 📋 Управление
- ⏱️ Производительность
- 📡 Удаленная связь
- 👪 Steam Family Sharing
- 🔄 Обмены
- ⌨️ Аргументы командной строки
- 🚧 Устаревание
- 🐳 Docker
- 🤔 Расширенное ЧАВО
- 🚀 Конфигурация для высокой производительности
- 🔗 IPC
- 🌐 Локализация
- 📝 Журналирование
- 💾 Конфигурация для малого ОЗУ
- 🕵🏼♂️ Плагин мониторинга
- 🔌 Плагины
- 🔐 Безопасность
- 🧩 SteamTokenDumperPlugin
- 📦 Сторонние разработки
- 📵 Двухфакторная аутентификация