-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Configuration pt BR
Esta página é dedicada a configuração do ASF. Ela serve como uma documentação completa da pasta config
, permitindo que você modifique o ASF conforme suas necessidades.
- Introdução
- Gerador de configuração web
- Configuração do ASF-ui
- Configuração manual
- Configuração global
- Configuração do Bot
- Estrutura de arquivos
- Mapeamento JSON
- Mapeamento de compatibilidade
- Compatibilidade de configurações
- Reinício automático
A configuração do ASF é dividida em duas partes principais: configuração global (do processo) e configuração individual dos bots. Cada bot tem seu próprio arquivo de configuração chamado NomeBot.json
(onde NomeBot
é o nome dado ao bot), enquanto as configurações globais (do processo) do ASF estão em um único arquivo chamado ASF.json
.
Chamamos de bot qualquer conta Steam usada no processo do ASF. Para funcionar corretamente, o ASF precisa de pelo menos uma instância de bot definida. Não há limite de instâncias de bot imposto pelo processo, então você pode usar quantos bots (contas Steam) desejar.
O ASF está utilizando o formato JSON para armazenar seus arquivos de configuração. É um formato amigável para humanos, legível e muito universal, no qual você pode configurar o programa. Porém não se preocupe, você não precisa saber JSON para configurar o ASF. Apenas mencionei isso caso você já queira criar em massa as configurações do ASF com algum tipo de script bash.
A configuração pode ser feita de várias formas. Você pode usar nosso Gerador de configuração web, que é um aplicativo local independente do ASF. Você pode usar nossa interface IPC ASF-ui para configurar diretamente no ASF. Por último, você sempre pode gerar arquivos de configuração manualmente, pois eles seguem uma estrutura JSON fixa especificada abaixo. Explicaremos brevemente as opções disponíveis.
A função do Gerenciador de Configuração web é proporcionar uma interface amigável a ser utilizada na geração de configurações para o ASF. O gerador de configuração web funciona 100% no lado do cliente, o que significa que os detalhes que você está inserindo não são enviados para nenhum lugar, mas processados apenas no seu computador. Isto garante segurança e confiabilidade, pois ele pode até mesmo trabalhar off-line, basta baixar todos os arquivos e executar o index.html
no seu navegador favorito.
O Gerador de configuração web foi testado e roda perfeitamente no Chrome e no Firefox, e deve funcionar corretamente em todos os navegadores mais populares com javascript habilitado.
O uso é muito simples: selecione se você deseja gerar uma configuração ASF
ou Bot
alternando para a guia adequada, certifique-se de que a versão do arquivo de configuração corresponde a sua versão do ASF, então insira todos os dados e clique no botão "download". Mova este arquivo para a pasta config
do ASF, substituindo os arquivos existentes, caso necessário. Repita para todas as modificações eventuais futuras e consulte o restante desta seção para explicação de todas as opções disponíveis para configurar.
Nossa interface IPC ASF-ui também permite que você configure o ASF, e é uma solução superior para reconfigurar o ASF após gerar as configurações iniciais devido ao fato de que ele pode editar as configurações durante a execução, ao contrário do Gerador de Configuração web que as gera estaticamente.
Para usar o ASF-ui você deve habilitar nossa interface IPC. O IPC
está ativado por padrão, portanto você pode acessá-lo imediatamente, desde que não o tenha desativado por conta própria.
Depois de iniciar o programa simplesmente navegue para o endereço IPC do ASF. Se tudo funcionou corretamente, você poderá alterar a configuração do ASF por lá também.
Em geral, recomendamos fortemente o uso do nosso Gerador de Configuração ou da ASF-ui, pois é muito mais fácil e garante que você não cometa nem um erro na estrutura JSON, mas se por algum motivo você não quiser, então você também pode criar as configurações adequadas manualmente. Confira os exemplos JSON abaixo para ter uma boa ideia da estrutura correta, você pode copiar o conteúdo em um arquivo e usá-lo como base para suas configurações. Já que que você não estará usando nenhuma das nossas interfaces, certifique-se que sua configuração é válida, pois o ASF não vai carregá-la se ela não puder ser analisada. Mesmo se for um JSON válido, você ainda precisa garantir que todas as propriedades tenham o tipo adequado, conforme exigido pelo ASF. Para conhecer a estrutura JSON correta de todos os campos disponíveis consulte a seção mapeamento JSON abaixo na nossa documentação.
A configuração global esta localizada no arquivo ASF.json
e tem a seguinte estrutura:
{
"AutoRestart": true,
"Blacklist": [],
"CommandPrefix": "!",
"ConfirmationsLimiterDelay": 10,
"ConnectionTimeout": 90,
"CurrentCulture": null,
"Debug": false,
"DefaultBot": null,
"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,
"PluginsUpdateList": [],
"PluginsUpdateMode": 0,
"ShutdownIfPossible": false,
"SteamMessagePrefix": "/me ",
"SteamOwnerID": 0,
"SteamProtocols": 7,
"UpdateChannel": 1,
"UpdatePeriod": 24,
"WebLimiterDelay": 300,
"WebProxy": null,
"WebProxyPassword": null,
"WebProxyUsername": null
}
Todas as opções são explicadas abaixo:
Tipo bool
com o valor padrão true
. Esta propriedade define se o ASF pode auto-reiniciar caso seja necessário. Existem alguns eventos que requerem a reinicialização do ASF, tal como a atualização (feita com o comando UpdatePeriod
ou update
), edições na configuração do ASF.json
, e o comando restart
. A reinicialização geralmente envolve duas partes: criar um novo processo e encerrar o atual. O valor padrão true
deve ser bom para a maioria dos usuários, no entanto se você estiver executando o ASF através de seu próprio código e/ou com o dotnet
, você pode querer ter controle total sobre o início do processo, e evitar a possibilidade de ter um novo processo (reiniciado) do ASF sendo executado em segundo plano em algum lugar e não no código em primeiro plano, que foi encerrado junto com o antigo processo do ASF. Isto é especialmente importante considerando o fato de que o novo processo deixaria de ser descendente direto do seu script, o que te impossibilitaria de usar as suas entradas de console para ele.
Se for esse o caso, essa propriedade existe especialmente para você e você pode definí-la como false
. Contudo, tenha em mente que, assim, você é o responsável por reiniciar o processo. É importante citar isso pois o ASF vai apenas fechar ao invés de criar um novo processo (por exemplo, após uma atualização), então se você não adicionou uma lógica para esse caso, ele vai simplesmente parar de funcionar até que você o inicie novamente. O ASF sempre fecha com um código de erro apropriado indicando sucesso (zero) ou falha (diferente de zero), assim você pode adicionar a lógica correta em seu código, que deve evitar o reinício automático do ASF em caso de falha ou ao menos fazer uma cópia local do log.txt
para análise posterior. Também tenha em mente que o comando restart
sempre vai reiniciar o ASF, independente de como essa propriedade está configurada, pois ela define o comportamento padrão, enquanto o comando restart
sempre reinicia o processo. A menos que você tenha um motivo para desativar esse recurso, você deve mantê-lo ativado.
Tipo ImmutableHashSet<uint>
com o valor padrão vazio. Como o nome sugere, esta propriedade de configuração global define appIDs (jogos) que serão totalmente ignorados pelo processo de coleta automático. Infelizmente, o Steam adora marcar as insígnias das promoções de verão/inverno como "disponíveis para recebimento de cartas", o que confunde o processo do ASF, fazendo-o acreditar que é um jogo válido que deve ser coletado. Se não houvesse nenhum tipo de lista negra, o ASF acabaria por "travar" na coleta de um jogo que na verdade não é um jogo, e esperaria infinitamente pelo recebimento de cartas que nunca viriam. A lista negra do ASF serve para marcar essas insígnias como não disponíveis para a coleta, de modo que podemos silenciosamente ignorá-las e assim não cair na armadilha.
O ASF inclui duas listas negras padrão: a SalesBlacklist
, que está codificada dentro do código do ASF e não pode ser editada, e a Blacklist
normal, que é definida aqui. A SalesBlacklist
é atualizada juntamente com o ASF e normalmente inclui todos os appIDs "ruins" no momento do lançamento, então se você estiver usando a última versão você não precisa manter a sua Blacklist
própria, descrita aqui. O principal objetivo desta propriedade é permitir que você adicione novos appIDs, ainda não conhecidos no momento do lançamento de uma nova versão do ASF, que não devam ser coletados. A SalesBlacklist
é atualizada o mais rápido possível, portanto não há necessidade de atualizar a sua Blacklist
caso você esteja usando a versão mais recente do ASF, mas sem a Blacklist
você será forçado a atualizar o ASF para que ele "continue rodando" sempre que a Valve liberar novas insígnias de promoções - não quero forçá-lo a usar o código mais recente do ASF, portanto ela existe para que você "conserte" o ASF por sua conta se por algum motivo você não quer ou não pode atualizar a SalesBlacklist
disponível em uma nova versão do ASF, mais ainda quer manter seu velho ASF funcionando. A menos que você tenha uma razão muito forte para editar essa propriedade, você deve mantê-la padrão.
Se você está procurando uma lista negra personalizada para cada bot, dê uma olhada nos comandos fb
, fbadd
e fbrm
.
Tipo string
com o valor padrão !
. Esta propriedade define o prefixo, ** diferenciando maiúsculas de minúsculas**, usado para os comandos do ASF. Em outras palavras, é isso que você precisa digitar antes de cada comando do ASF para fazer com que ele te ouça. Esse parâmetro pode receber o valor null
ou uma string vazia para forçar o ASF a não usar o prefixo, neste caso os comandos são inseridos simplesmente por seus identificadores. No entanto, fazer isso provavelmente vai diminuir o desempenho do ASF já que ele é otimizado para não analisar mensagens que não forem iniciadas com o CommandPrefix
- se você decidir não usar prefixos, o ASF será forçado a ler todas as mensagens e respondê-las, mesmo se elas não forem comandos. Portanto, é recomendável usar algum CommandPrefix
, como /
se você não gostar do valor padrão !
. Para obter consistência, CommandPrefix
afeta todo o processo do ASF. A menos que você tenha uma razão para editar essa propriedade, você deve mantê-la padrão.
Tipo byte
com o valor padrão 10
. O ASF vai garantir que haverá pelo menos o número de segundos de atraso definido em ConfirmationsLimiterDelay
entre duas solicitações consecutivas de confirmações 2FA para evitar ativar o limitador de tráfego - aquelas que são usadas pelo ASF 2FA durante, por exemplo, o comando 2faok
, bem como em várias operações relacionadas a troca. O valor padrão foi definido com base em nossos testes e não deve ser diminuído se você não quiser ter problemas. A menos que você tenha uma razão muito forte para editar essa propriedade, você deve mantê-la padrão.
Tipo byte
com o valor padrão 90
. Essa propriedade define o tempo limite em segundos para várias ações de rede feitas pelo ASF. Em particular, ConnectionTimeout
define o tempo limite em segundos para solicitações HTTP e IPC, ConnectionTimeout / 10
define o número máximo de pulsos perdidos, enquanto ConnectionTimeout / 30
define o número de minutos que permitimos para a solicitação inicial de conexão da Rede Steam. O valor padrão de 90
deve ser adequado para a maioria dos usuários, no entanto, se você tem uma conexão de rede ou PC muito lento, convém aumentar esse número um pouco (uns 120
, por exemplo). Tenha em mente que valores maiores não vão magicamente resolver lentidões ou mesmo alcançar servidores Steam inacessíveis, então nós não devemos esperar infinitamente por algo que não vai acontecer, devemos simplesmente tentar novamente mais tarde. Definir um valor muito alto vai resultar em um atraso excessivo na captura de problemas de rede, bem como na diminuição do desempenho global. Definir um valor muito baixo vai diminuir a estabilidade total e o desempenho, uma vez que o ASF abortará solicitações válidas que ainda estejam sendo analisadas. Portanto, definir esse valor abaixo do padrão não traz nenhuma vantagem, uma vez que os servidores Steam tendem a ser muito lentos de vez em quando e podem exigir mais tempo para analisar pedidos do ASF. O valor padrão é um equilíbrio entre acreditar que nossa conexão de rede é estável e duvidar que a Rede Steam vai manipular nosso pedido em determinado limite de tempo. Se você deseja detectar problemas de rede o quanto antes e fazer o ASF reconectar/responder mais rápido, então o valor padrão deve bastar (você pode diminuir um pouco, 60
por exemplo, para que o ASF se torne menos paciente). Se você notar que o ASF está tendo problemas de rede, tais como falhas em solicitações, pulsos perdidos ou conexões com a Rede Steam interrompidas, possivelmente vale a pena aumentar esse valor se tiver certeza que o problema não é causado pela sua rede, mas pela própria Steam, uma vez que aumentar o tempo de espera torna o ASF mais "paciente" e não decidido a se reconectar imediatamente.
Um exemplo de situação que pode necessitar do aumento desse valor é permitir que o ASF lide com uma quantidade muito grande de ofertas de troca que podem demorar cerca de 2 minutos ou mais para serem completamente aceitas e manipuladas pelo Steam. Aumentando o tempo padrão, o ASF será mais paciente e esperará mais tempo antes de decidir cancelar a troca e abandonar o pedido inicial.
Uma outra situação poderia ser causada por conta de um computador ou conexão com a internet muito lentos que requerem mais tempo para manipular os dados transmitidos. Essa é uma situação muito rara, uma vez que o CPU/Largura de banda quase nunca são um gargalo, mas ainda é uma situação que vale ser mencionada.
Em resumo, o valor padrão é suficiente para a maioria dos casos, mas você pode querer aumentá-lo se necessário. Ainda, indo muito acima do valor padrão não faz muito sentido, uma vez que limites de tempo maiores não consertam magicamente servidores Steam inacessíveis. A menos que você tenha uma razão para editar essa propriedade, você deve mantê-la padrão.
Tipo string
com o valor padrão null
. Por padrão o ASF tenta usar o idioma do seu sistema operacional e vai preferir usar linhas traduzidas para esse idioma se disponível. Isto é possível graças à nossa comunidade que tenta traduzir o ASF para quase todos os idiomas mais populares. Se por algum motivo você não quiser usar o idioma nativo do seu SO, você pode usar esta propriedade de configuração para escolher qualquer outro idioma válido. Para obter uma lista de todas os idiomas disponíveis, visite o MSDN e procure por Language tag
. É bom notar que o ASF aceita tanto instruções de idioma por região, como "en-GB"
, quanto neutros, como "en"
. Especificar o idioma atual também pode afetar outros comportamentos regionais específicos, como formato de moeda/data e outros. Por favor, note que você pode precisar de pacotes de idioma/fontes adicionais para exibir caracteres específicos do idioma corretamente, caso você tenha escolhido um idioma não-nativo que faça uso deles. Normalmente você fará uso desta propriedade se preferir o ASF em inglês ao invés da sua língua nativa.
Tipo bool
com o valor padrão false
. Esta propriedade define se o processo deve ser executado em modo de depuração. Quando em modo de depuração, o ASF cria uma pasta especial chamada debug
ao lado da pasta config
, que mantém o controle de toda a comunicação entre o ASF e os servidores Steam. Informações de depuração podem ajudar a encontrar comportamentos estranhos na rede e no ASF em geral. Além disso, algumas rotinas gerarão muito mais informações, por exemplo, o WebBrowser
indicará um motivo específico pela falha nas solicitações- essas informações são gravadas no log usual do ASF. Você não deve executar o ASF no modo de depuração, a menos que seja solicitado pelo desenvolvedor. Executar o ASF nesse modo diminui o desempenho, afeta negativamente a estabilidade e gera muito mais informações em alguns lugares, portanto ele deve ser usado apenas intencionalmente em um espaço curto de tempo para depurar uma questão particular reproduzindo o problema ou obter mais informações sobre uma falha de solicitação, e assim por diante, mas não para execução normal do programa. Você verá um monte de erros novos, problemas, e exceções - certifique-se de que você tenha um conhecimento razoável sobre o ASF, o Steam e suas peculiaridades caso você decida analisar tudo isso por conta própria, uma vez que nem tudo é relevante.
AVISO: esse modo registra informações potencialmente confidenciais como logins e senhas que você usa para acessar o Steam (para se registrar na rede). Os dados são gravados tanto na pasta depuração
quanto no log.txt
padrão (que agora contém muito mais detalhes para registrar esta informação). Você não deve postar o conteúdo de depuração gerado pelo ASF em um local público, o desenvolvedor do ASF deverá sempre pedir para que você o envie por e-mail, ou outro local seguro. Não armazenamos nem fazemos uso desses detalhes confidenciais, eles são escritos como parte das rotinas de depuração, já que sua presença pode ser relevante para o problema que está te afetando. Nós preferimos que se você não altere a forma com que o ASF faz os registros, mas se você estiver preocupado você pode editar da forma correta esses detalhes confidenciais.
Essa edição significa substituir detalhes confidenciais por asteriscos, por exemplo. Você não deve remover inteiramente as linhas confidenciais, já que sua existência pode ser relevante e deve ser preservada.
Tipo string
com o valor padrão null
. Em alguns cenários, o ASF opera com um conceito de um bot padrão responsável por lidar com determinadas funções, como comandos de IPC ou console interativo, quando você não especifica o bot de destino. Essa propriedade permite que você escolha o bot padrão responsável por lidar com tais cenários, especificando o nome do bot com NomeDoBot
aqui. Caso o bot especificado não exista, ou você utilize um valor padrão de null
, o ASF escolherá o primeiro bot registrado em ordem alfabética. Tipicamente, você utilizará essa propriedade de configuração se deseja omitir o argumento [Bots]
em comandos de IPC e console interativo, escolhendo sempre o mesmo bot como padrão para essas chamadas.
Tipo byte
com o valor padrão 15
. Para que o ASF funcione, é necessário verificar periodicamente num intervalo de minutos informado em FarmingDelay
, para ver se todas as cartas já foram obtidas. Um valor muito baixo vai fazer com que uma quantidade excessiva de solicitações sejam enviadas para o Steam, enquanto um valor muito alto fará com que o ASF continue rodando o jogo até terminar o tempo do FarmingDelay
, mesmo que ele já tenha sido totalmente explorado. O valor padrão deve ser excelente para a maioria dos usuários, mas se você tem muitos bots em execução, você pode considerar aumentá-lo para algo em torno de 30
minutos, a fim de limitar a quantidade de pedidos enviados para o Steam. Felizmente o ASF usa um manipulador de eventos e verifica a página de insígnia do jogo sempre que há notificação de item recebido, então em geral não precisamos verificar isso em intervalos regulares, mas como não confiamos plenamente na Rede Steam - ainda checamos a página de insígnia do jogo caso não tenhamos verificado através das notificações de recebimento no intervalo de tempo do FarmingDelay
(para o caso da Rede Steam não nos informar sobre o item recebido ou coisas assim). Assumindo que a Rede Steam esteja funcionando corretamente, diminuir este valor não vai melhorar a eficiência da coleta, mas aumentará significativamente a sobrecarga de rede - é recomendado aumentá-lo apenas (se necessário) em padrões de 15
minutos. A menos que você tenha uma razão muito forte para editar essa propriedade, você deve mantê-la padrão.
Tipo bool
com o valor padrão true
. Esta propriedade define se o ASF rejeitará automaticamente ofertas de troca que são recebidas de agentes de má atividade conhecidos e marcados como tal. Para fazer isso, o ASF se comunicará com nosso servidor conforme a necessidade para obter uma lista de identificadores Steam na lista negra. Os bots listados são operados por pessoas que são classificadas por nós como prejudiciais para a iniciativa do ASF, tais como aqueles que violam nosso código de conduta, usam as funcionalidades e recursos por nós fornecidos, como a Listagem Pública
para abusar e explorar outras pessoas. ou estão realizando uma atividade totalmente criminosa, como lançar ataques DDoS no servidor. Uma vez que o ASF tem uma posição forte sobre equidade geral, honestidade e cooperação entre seus usuários, a fim de fazer com que toda a comunidade prospere, esta propriedade é habilitada por padrão e, portanto, o ASF filtra bots que classificamos como prejudiciais a serviços oferecidos. A menos que você tenha uma razão forte para editar essa propriedade, tal como discordar da nossa declaração e intencionalmente permitir que esses bots funcionem (incluindo explorar suas contas), você deve mantê-la por padrão.
Tipo byte
com o valor padrão 1
. O ASF vai garantir que haverá um atraso em segundos, definido em ConfirmationsLimiterDelay
, entre duas solicitações consecutivas de processamento (resgate) de presentes/chaves/licenças para evitar ativar o limitador de tráfego. Além disso, o ASF também será utilizado como limitador global para solicitações de lista de jogos, como aquelas emitidas pelo comando owns
command. A menos que você tenha uma razão muito forte para editar essa propriedade, você deve mantê-la padrão.
Tipo bool
com o valor padrão false
. Esta propriedade define se o processo deve ser executado em modo não-interativo. Quando em modo headless, o ASF assume que está rodando em um servidor ou em outro ambiente não interativo, portanto ele não tentará ler qualquer informação através da entrada do console. Isto inclui detalhes sob demanda (credenciais de conta como o código 2FA, o código SteamGuard, a senha ou qualquer outra variável necessária para que o ASF opere) bem como todas as outras entradas de console (como o console de comando interativo). Em outras palavras, o modo Headless
é igual a tornar o console do ASF somente leitura. Essa configuração é útil principalmente para usuários que executam o ASF em servidores, já que em vez de pedir, por exemplo, um código de autenticação, o ASF simplesmente abortará a operação parando a conta em questão. A menos que você esteja executando o ASF em um servidor e tenha confirmado anteriormente que o ASF é capaz de operar em modo não-interativo, você deve manter essa propriedade desabilitada. Qualquer interação do usuário será negada quando o Asf estiver no modo sem interface gráfica (headless), e suas contas não serão executadas se necessitarem de qualquer entrada no console durante a inicialização. Ele é útil para servidores, já que o ASF vai abortar ao tentar se conectar a conta quando forem necessárias credenciais, em vez de esperar (infinitamente) para que o usuário os forneça. Habilitar esse modo também permitirá o uso do comando input
command, que atua como um substituto para a entrada padrão do console. Se você não tem certeza de como definir essa propriedade, deixe-a com o valor padrão false
.
Tipo byte
com o valor padrão 8
. Quanto o ASF não tem o que coletar, ele vai checar periodicamente a cada hora informada em FarmingDelay
, para ver se todas as cartas já foram obtidas. Esse recurso não é necessário se tratando de jogos novos, já que neste caso o ASF verifica automaticamente a página de insígnias. O IdleFarmingPeriod
existe, principalmente, para situações onde jogos antigos que já possuímos passem a ter cartas. Neste caso não há evento algum, por isso o ASF deve verificar periodicamente a página de insígnias para mantermos tudo sob controle. O valor 0
desativa este recurso. Confira também: a preferência ShutdownOnFarmingFinished
em FarmingPreferences
.
Tipo byte
com o valor padrão 4
. O ASF garantirá que haja pelo menos InventoryLimiterDelay
segundos entre duas solicitações consecutivas do inventário na web para evitar o acionamento do limitador de tráfego — essas são usadas, por exemplo, durante a marcação de notificações de inventário como lidas, podendo também ser usadas por plugins de terceiros que buscam o inventário de outros usuários. Essa propriedade não é usada para obter o nosso próprio inventário, já que o ASF utiliza uma chamada de rede interna muito mais eficiente para isso, então não afetará comandos como loot
ou transfer
de forma alguma. O valor padrão de 4
foi definido com base na marcação de inventários de mais de 100 instâncias consecutivas de bots, e deve satisfazer a maioria (se não todos) dos usuários. No entanto, você pode querer diminuir esse valor, ou até mesmo alterá-lo para 0
se tiver uma quantidade muito pequena de bots, para que o ASF ignore o atraso e marque os inventários do Steam muito mais rápido. No entanto, seja avisado de que, caso definir um valor muito baixo, o Steam bloqueará temporariamente o seu IP, o que impedirá que você faça qualquer chamada. Você talvez precise aumentar esse valor se estiver executando muitos bots com muitos pedidos de acesso ao inventário, embora neste caso você deva provavelmente tentar limitar o número dessas solicitações em vez disso. A menos que você tenha uma razão muito forte para editar essa propriedade, você deve mantê-la padrão.
Tipo bool
com o valor padrão true
. Esta propriedade define se o servidor IPC do ASF deve iniciar juntamente com o processo. IPC permite a comunicação entre processos, incluindo o uso de ASF-ui, inicializando um servidor HTTP local. Se você não pretende usar nenhuma integração de terceiros com o ASF, incluindo nosso ASF-ui, você pode desativar essa opção com segurança. Caso contrário, é uma boa ideia mantê-lo ativado (opção padrão).
Tipo string
com o valor padrão null
. Esta propriedade define a senha obrigatória para cada chamada de API feita através do IPC e serve como uma medida de segurança extra. Quando definido como valor não vazio, todas solicitações através do IPC exigirão uma propriedade adicional password
com o valor definido aqui. O valor padrão null
elimina necessidade de senha, fazendo com que o ASF processe todas as consultas. Além disso, habilitar essa opção também habilita o mecanismo interno de prevenção de força bruta IPC, que bloqueia temporariamente o IPAddress
que enviar muitas solicitações não autorizadas em um curto espaço de tempo. A menos que você tenha uma razão para editar essa propriedade, você deve mantê-la padrão.
Tipo byte
com o valor padrão 0
. Esta propriedade define o formato da propriedade IPCPassword
e usa EHashingMethod
como tipo subjacente. Consulte a seção de segurança se quiser mais informações, pois você precisará garantir que a propriedade IPCPassword
de fato inclua uma senha que corresponda a IPCPasswordFormat
. Em outras palavras, quando você alterar o IPCPasswordFormat
então seu IPCPassword
já deve estar nesse formato, não apenas esperando ser mudado posteriormente. A menos que você saiba o que está fazendo, você deve mantê-lo com o valor 0
padrão.
Tipo Guid?
com o valor padrão null
. Essa propriedade permite que nossos patrocinadores melhorem o ASF com recursos opcionais pagos. Por enquanto, isso permite que você use o MatchActively
do plugin ItemsMatcher
.
Apesar de recomendarmos que você utilize o GitHubuma vez que ele oferece tanto opções mensais quanto únicas, bem como permite uma automação completa e acesso imediato nós também aceitamos todas as outras opções de doação atualmente disponíveis. Veja esta postagem para instruções de como doar usando outros métodos e conseguir uma licença manual válida por um determinado período.
Independente do método escolhido, se você é um patrocinador do ASF, você pode obter sua licença aqui. Você precisará entrar com o GitHub para confirmar sua identidade, pedimos apenas informações públicas que são somente leitura, que é o seu nome de usuário. A licença
é composta por 32 caracteres hexadecimais, como f6a0529813f74d119982eb4fe43a9a24
.
Certifique-se de não compartilhar sua LicenseID
com outras pessoas. Como ela é emitida individualmente ela pode ser revogada se for compartilhada. Se por acaso isto aconteceu com você acidentalmente, você pode gerar uma nova no mesmo lugar.
A menos que você deseje habilitar funções extras do ASF não há necessidade de você indicar essa licença.
Tipo byte
com o valor padrão 10
. O ASF vai garantir que haverá um atraso em segundos, definido em LoginLimiterDelay
, entre duas solicitações consecutivas de conexão para evitar ativar o limitador de tráfego. O valor padrão de 10
foi definido com base na conexão de mais de 100 contas bot, e deve satisfazer a maioria dos usuários (se não todos). No entanto você pode querer reduzir/aumentar o valor, ou até mesmo mudar para 0
se você tiver uma quantidade muito pequena de bots, então o ASF irá ignorar o atraso e conectar com a Steam muito mais rápido. Esteja avisado, porém, que definir um valor muito baixo tendo muitos bots irá resultar no Steam banir temporariamente seu IP, e isso irá te impedir de logar de qualquer jeito, com o erro InvalidPassword/RateLimitExceeded
- e isso também inclui seu cliente Steam normal, não apenas o ASF. Da mesma forma, se você estiver rodando um numero excessivo de bots, especialmente junto com outros clientes/ferramentas Steam usando o mesmo endereço IP, provavelmente você precisará aumentar esse valor para espalhar os logins em um período longo de tempo.
Como nota, esse valor também é utilizado como amortecedor de balanceamento de carga em todas as ações regulares do ASF, tais como trocas em SendTradePeriod
. A menos que você tenha uma razão muito forte para editar essa propriedade, você deve mantê-la padrão.
Tipo byte
com o valor padrão 10
. Como você deve saber, a Steam nem sempre funciona corretamente, às vezes situações estranhas podem acontecer como o Steam não gravar o tempo de jogo apesar de estarmos jogando. O ASF permitirá a coleta um único jogo no modo solo pelo tempo máximo, em horas, determinado em MaxFarmingTime
, e vai considerá-lo totalmente explorado após esse período. Isso é necessário para que o processo de coleta não congele em caso de situações estranhas, mas também, se por algum motivo a Steam lançar uma nova insignia que poderia parar o progresso do ASF (veja: Blacklist
). O valor padrão de 10
horas deve ser suficiente para adquirir todas as cartas Steam de um jogo. Definir um valor muito baixo para essa propriedade pode resultar em jogos válidos sendo ignorados (e sim, há jogos válidos que levam até 9 horas para coleta), enquanto definir um valor muito alto pode resultar no congelamento do processo de coleta. Por favor, note que esta propriedade afeta somente um único jogo em uma sessão de coleta simples (por isso, após passar por toda a fila, o ASF retornará a esse título), ela também não é baseada no total de tempo jogado, mas no tempo de coleta interno do ASF, portanto o ASF também retornará à esse título após ser reiniciado. A menos que você tenha uma razão muito forte para editar essa propriedade, você deve mantê-la padrão.
Tipo byte
com o valor padrão 15
. Essa propriedade define a duração máxima de retenção de trocas, em dias, que você está disposto a aceitar - o ASF vai rejeitar trocas que fiquem retidas por mais tempo que o valor de MaxTradeHoldDuration
, como definido na seção de trocas. Esta opção só faz sentido para bots com TradingPreferences
do SteamTradeMatcher
, já que isso não afeta as trocas entre Master
/SteamOwnerID
, nem doações. Trocas retidas são irritantes para todos, e ninguém quer lidar com elas. É suposto que o ASF funcione com regras liberais e ajude a todos, independentemente de trocas retidas ou não - é por isso que essa opção é definida como 15
por padrão. No entanto, se você preferir rejeitar todas as transações afetadas pela retenção de trocas, você pode definir 0
aqui. Por favor, considere o fato de que cartas com vida curta não são afetadas por essa opção e são automaticamente rejeitadas para pessoas com retenção de trocas, conforme descrito na seção trocas, então não há nenhuma necessidade de rejeitar globalmente todo mundo só por causa disso. A menos que você tenha uma razão para editar essa propriedade, você deve mantê-la padrão.
Tipo byte
com o valor padrão 60
. Esta propriedade define a quantidade mínima de tempo, em segundos, que o ASF esperará antes de retomar a coleta de cartas caso tenha sido desconectado anteriormente com LoggedInElsewhere
, o que acontece quando você decide desconectar o ASF ao iniciar um jogo. Este atraso existe principalmente por razões de conveniência e de excesso de desempenho, por exemplo, ele permite que você reinicie o jogo sem precisar lutar contra o ASF que estará ocupando sua conta novamente porque o bloqueio de jogo estava disponível por um segundo. Devido ao fato de que recuperar a sessão causa uma desconexão LoggedInElsewhere
, o ASF tem que passar por todo o procedimento de reconexão, o que coloca uma pressão adicional na sua máquina e na rede Steam, portanto evitar desconexões adicionais, se possível, é preferível. Por padrão, essa configuração é de 60
segundos, o que deve ser suficiente para permitir que você reinicie o jogo sem muita complicação. No entanto, há cenários em que você pode estar interessado em aumentar esse tempo, por exemplo, se a sua rede desconectar com frequência e o ASF tomar a conta muito cedo, o que faz com que seja obrigado a passar pelo processo de reconexão. Nós permitimos um valor máximo de 255
para essa propriedade, que deve ser suficiente para todos os cenários comuns. Além do mencionado acima, também é possível diminuir o atraso, ou até mesmo removê-lo inteiramente usando o valor 0
, embora isso não seja recomendado por razões acima mencionadas. A menos que você tenha uma razão para editar essa propriedade, você deve mantê-la padrão.
Tipo byte
com o valor padrão 0
. Esta propriedade define o modo de otimização que o ASF dará preferência durante o tempo de execução. Atualmente, o ASF suporta dois modos - 0
, que é chamado de MaxPerformance
e 1
, que é chamado MinMemoryUsage
. Por padrão, o ASF prefere executar tantas coisas em paralelo (simultaneamente) quanto possível, melhorando o desempenho pelo balanceamento de carga de trabalho entre todos os núcleos de CPU, vários threads de CPU, soquetes múltiplos e várias tarefas de pool de threads. Por exemplo, o ASF pedirá por sua primeira página de insígnias quando procurar jogos para coletar, e então uma vez que o pedido chegar, o ASF lerá quantas páginas de insígnias você tem, e em seguida, solicitará todas as outras simultaneamente. Isto é o que você deve querer quase sempre, já que a sobrecarga, na maioria dos casos, é mínima e os benefícios do código assíncrono do ASF pode ser visto até mesmo em hardwares mais antigos com um único núcleo de CPU e potência fortemente limitada. No entanto, com muitas tarefas sendo processadas em paralelo, o tempo de execução do ASF é responsável pela manutenção, p. ex., mantendo soquetes abertos, threads ativos e tarefas sendo processadas, que pode resultar no aumento do uso de memória de vez em quando, e se você é extremamente limitado pela memória disponível, você pode querer mudar esta propriedade para 1
(MinMemoryUsage
) a fim de forçar o ASF a usar o mínimo de tarefas possível e normalmente executar possíveis códigos assíncronos paralelos de forma síncrona. Você deve considerar mudanças nessa propriedade apenas se você leu a seção configuração para baixo consumo de memória e quer sacrificar intencionalmente um aumento enorme de desempenho por uma diminuição de sobrecarga de memória muito pequena. Normalmente, esta opção é muito pior do que o que se pode conseguir com outras possibilidades, tais como limitar o uso do ASF ou ajustar o coletor de lixo do tempo de execução, conforme explicado na configuração de pouca memória. Portanto, você deve usar MinMemoryUsage
como último recurso, direitamente antes de recompilação do tempo de execução, caso você não tenha conseguido atingir resultados satisfatórios com outras opções (muito melhores). A menos que você tenha uma razão muito forte para editar essa propriedade, você deve mantê-la padrão.
Tipo ImmutableHashSet<string>
com valor padrão vazio. Esta propriedade define uma lista de nomes de assemblies de plugins que estão na blacklist ou na whitelist para serem considerados para atualizações automáticas, conforme definido pelo PluginsUpdateMode
abaixo.
A menos que você tenha uma razão para editar essa propriedade, você deve mantê-la padrão.
Tipo byte
com o valor padrão 0
. Esta propriedade define o modo de atualização de plugins que dá propósito à PluginsUpdateList
definida acima. Ao especificar esta propriedade, você pode facilmente habilitar/desabilitar atualizações automáticas para todos os plugins, exceto aqueles declarados.
- O valor de
0
, chamado deWhitelist
, desabilita a atualização automática de todos os plugins, exceto aqueles definidos emPluginsUpdateList
. - O valor de
1
, chamado deBlacklist
, habilita a atualização automática de todos os plugins, exceto aqueles definidos emPluginsUpdateList
.
A equipe do ASF gostaria de lembrá-lo que, para sua própria segurança, você deve habilitar atualizações automáticas apenas de desenvolvedores confiáveis. Tenha em mente que plugins maliciosos podem decidir se atualizar ou executar comandos remotos independentemente dessa configuração, por isso, essa configuração se aplica exclusivamente à funcionalidade de atualização de plugins fornecida pelo ASF, e você ainda deve garantir que tenha verificado adequadamente cada plugin que decidiu usar.
As atualizações dos plugins são realizadas por padrão juntamente com a rotina de atualização do ASF - UpdateChannel
e UpdatePeriod
. Os mecanismos de atualização padrão do ASF, como o comando update
, também acionarão a atualização opcional dos plugins. Caso, em vez disso, você desejar atualizar os plugins manualmente sem atualizar a versão do ASF ao mesmo tempo, o comando updateplugins
oferece essa possibilidade.
A menos que você tenha uma razão para editar essa propriedade, você deve mantê-la padrão.
Tipo bool
com o valor padrão false
. Quando habilitado, o ASF tentará desligar o processo se possível, isto é, quando todos os seus bots registrados forem interrompidos. Isso pode ser especialmente útil quando combinado com ShutdownOnFarmingFinished
em todos os seus bots, já que dessa forma o ASF será autorizado a desligar automaticamente quando o último dos seus bots terminar a coleta.
Uma vez que a expectativa da maioria dos usuários é de que o processo funcione em todos os momentos, para usar o IPC
por exemplo, esta opção vem desativada por padrão.
Tipo string
com o valor padrão "/me"
. Esta propriedade define um prefixo que será anexado a todas as mensagens da Steam sendo enviadas pelo ASF. Por padrão o ASF usa o prefixo "/ me"
para distinguir as mensagens do bot mais facilmente, mostrando-os em cores diferentes no chat da Steam. Outro prefixo digno de menção é "/ pre"
que alcança resultados semelhantes, mas usa uma formatação diferente. Você também pode definir essa propriedade como vazia ou null
para desativar inteiramente o uso do prefixo e deixar todas as mensagens do ASF de forma tradicional. É bom notar que esta propriedade afeta apenas mensagens da Steam - as respostas retornadas através de outros canais (como IPC) não são afetadas. A menos que você deseja personalizar o comportamento padrão do ASF, é uma boa ideia deixá-lo assim.
Tipo ulong
com o valor padrão 0
. Esta propriedade define o ID Steam em formato de 64-bit do proprietário do processo ASF, e é muito semelhante a permissão Master
de determinada conta bot (mas global mas em vez disso). Você vai querer definir quase sempre essa propriedade com o ID da sua própria conta principal do Steam. A permissão Master
inclui controle total sobre sua conta bot, mas comandos globais como exit
, restart
ou update
são reservados apenas para o SteamOwnerID
. Isto é conveniente caso você queria executar bots para seus amigos, mas não permitir que eles tenham controle do processo do ASF, como sair dele através do comando exit
, por exemplo. O valor padrão de 0
especifica que não há proprietário do processo do ASF, o que significa que ninguém será capaz de emitir comandos globais do ASF. Tenha em mente que esta propriedade se aplica exclusivamente ao chat Steam. O IPC e o console interativo ainda permitirão que você execute comandos de Proprietário
mesmo se esta propriedade não estiver definida.
Tipo byte flags
com o valor padrão 7
. Esta propriedade define os protocolos Steam que o ASF irá usar ao se conectar aos servidores Steam, que são definidos como abaixo:
Valor | Nome | Descrição |
---|---|---|
0 | None | Sem protocolo |
1 | TCP | Transmission Control Protocol |
2 | UDP | User Datagram Protocol |
4 | WebSocket | WebSocket |
Por favor note que esta propriedade é um campo do tipo flags
, portanto é possível escolher qualquer combinação de valores disponíveis. Confira o mapeamento json se você quiser aprender mais. Não habilitar nenhum flag resulta na opção None
, e essa opção é inválida, por si só.
Por padrão o ASF vai usar todos os protocolos Steam disponíveis como medida para lutar contra tempos de inatividade e outras questões semelhantes do Steam. Normalmente, você vai querer alterar esta propriedade se quiser limitar o ASF a usar apenas um ou dois protocolos específicos. Tal medida poderia ser necessário se você está habilitando, por exemplo, apenas tráfego TCP em seu firewall e você não quer que o ASF tente conectar via UDP. No entanto, a menos que você está depurando determinado problema ou questão, você quase sempre vai desejar garantir que o ASF esteja livre para usar qualquer protocolo que é atualmente suportado e não apenas um ou dois. A menos que você tenha uma razão muito forte para editar essa propriedade, você deve mantê-la padrão.
Tipo byte
com o valor padrão 1
. Essa propriedade define o canal de atualização que está sendo usado, tanto para atualizações automáticas (se UpdatePeriod
for maior que 0
), ou (caso contrário) para atualizar notificações. Atualmente, o ASF suporta três canais de atualização: 0
, chamado de None
, 1
, chamado de Stable
, e 2
, chamado de PreRelease
. O canal Estável
é o canal de lançamento padrão, que deve ser usado pela maioria dos usuários. O canal PreRelease
, além das versões Stable
, também inclui pré-lançamentos dedicados a usuários avançados e outros desenvolvedores para testar novas funcionalidades, confirmar correções de bugs ou dar feedback sobre melhorias planejadas. As versões PreRelease frequentemente contêm bugs não corrigidos, funcionalidades em desenvolvimento ou implementações reescritas. Se você não se considera um usuário avançado, por favor, mantenha o canal de atualização padrão 1
(Estável
). O canal PreRelease
é dedicado a usuários que sabem como relatar bugs, lidar com problemas e fornecer feedback – nenhum suporte técnico será oferecido. Confira o ciclo de lançamento do ASF se você quiser aprender mais. Você também pode definir UpdateChannel
como 0
(Nenhum
), se você quiser remover completamente todas as verificações de versão. Definir UpdateChannel
como 0
desativará inteiramente toda funcionalidade relacionada às atualizações, incluindo o comando update
. Usando o canal Nenhum
é fortemente desencorajado devido ao fato de te expor a todo tipo de problemas (mencionados na descrição de UpdatePeriod
abaixo).
A não ser que você saiba o que está fazendo, nós recomendamos fortemente que você mantenha o valor padrão.
Tipo byte
com o valor padrão 24
. Esta propriedade define quantas vezes o ASF deve buscar por atualizações automáticas. As atualizações são cruciais não só para receber novos recursos e correções de segurança críticas, mas também para receber correções de bugs, melhorias de desempenho, melhorias de estabilidade e muito mais. Quando um valor maior que 0
é definido, o ASF irá automaticamente baixar, substituir e se reiniciar (se a configuração AutoRestart
permitir) quando uma nova atualização estiver disponível. Para isso, o ASF verificará a cada intervalo de horas indicado em UpdatePeriod
se uma nova atualização está disponível no nosso repositório GitHub. Um valor de 0
desativa atualizações automáticas, mas ainda permite que você execute o comando update
manualmente. Você também pode estar interessado em configurar adequadamente o UpdateChannel
que o UpdatePeriod
deve seguir.
O processo de atualização do ASF envolve atualização da estrutura inteira da pasta que o ASF está usando, mas sem mexer em suas configurações ou bancos de dados localizados na pasta config
- isso significa que qualquer arquivos extras não relacionados com o ASF em sua pasta podem ser perdidos durante a atualização. O valor padrão de 24
é um bom equilíbrio entre verificações desnecessárias e uma versão do ASF suficientemente atual.
A menos que você tenha um motivo muito forte para desabilitar esse recurso, você deve manter as atualizações automáticas habilitadas dentro de um período de tempo razoável definido em UpdatePeriod
para o seu próprio bem. Não só porque não damos suporte a outra versão do ASF senão a última estável, mas também porque nós damos a nossa garantia de segurança somente para a versão mais recente. Se você estiver usando uma versão desatualizada do ASF então está intencionalmente se expondo a todo o tipo de problemas, desde pequenos bugs, funcionalidades quebradas, até possíveis suspensões permanentes de conta Steam, então nós recomendamos fortemente, para seu próprio bem, que você se certifique sempre de que a sua versão do ASF esteja atualizada. Atualizações automáticas nos permitem reagir rapidamente a todo o tipo de questões, desativando ou remendando códigos problemáticos antes que ele possa se agravar - se você optar por ficar fora disso, você perde todas nossas garantias de segurança e corre o risco das consequências de executar um código que pode ser potencialmente prejudicial, não somente a rede Steam, mas também (por definição) para sua própria conta Steam.
Tipo ushort
com o valor padrão 300
. Esta propriedade define, em milissegundos, a quantidade mínima de atraso entre o envio de dois pedidos consecutivos para o mesmo serviço web do Steam. Tal atraso é necessário pois o serviço AkamaiGhost, que a Steam usa internamente, inclui um limitador com base no número global de solicitações enviadas em dado período de tempo. Em circunstâncias normais o bloqueio da akamai é um pouco difícil de atingir, mas sob cargas de trabalho muito pesadas com uma enorme fila de pedidos em andamento, é possível acioná-lo, se continuarmos enviando muitas solicitações por um período muito curto de tempo.
O valor padrão foi definido com base no pressuposto de que o ASF é a única ferramenta acessando os serviços web do Steam, em particular steamcommunity.com
, api.steampowered.com
e store.steampowered.com
. Se você estiver usando outras ferramentas que também enviem solicitações para os mesmos serviços web então certifique-se de que sua ferramenta inclui alguma funcionalidade semelhante ao WebLimiterDelay
e defina ambos com o dobro do valor padrão, ou seja 600
. Isso garante que, sob nenhuma circunstância, você vai exceder o envio de mais de 1 pedido a cada 300
ms.
Em geral, reduzir o WebLimiterDelay
para um valor abaixo do padrão é fortemente desencorajado, pois poderia levar a vários bloqueios relacionados ao IP, alguns passíveis de serem permanentes. O valor padrão é bom o suficiente para rodar uma instância única do ASF no servidor, bem como usar o ASF em um cenário normal juntamente com o cliente Steam original. Isso deve ser correto para a maioria dos usos, e você só deve aumentá-lo (nunca diminuí-lo). Em suma, o número global de todas as solicitações enviadas a partir de um único IP para um único domínio da Steam nunca deve exceder mais de 1 pedido a cada 300
ms.
A menos que você tenha uma razão para editar essa propriedade, você deve mantê-la padrão.
Tipo string
com o valor padrão null
. Esta propriedade define um endereço proxy da web que será usado para todas as solicitações internas, http e https, enviadas pelo HttpClient
do ASF, especialmente para serviços como github.com
, steamcommunity.com
e store.steampowered.com
. Solicitações de proxy para o ASF em geral não tem vantagens, mas é extremamente útil para contornar vários tipos de firewalls, especialmente o grande firewall da China.
Essa propriedade é definida como uma sequência de caracteres uri:
Uma string URI é composta por um esquema (suportado: http/https/socks4/socks4a/socks5), um host e uma porta opcional. Um exemplo de uri completa é
http://www.contoso.com:8080
.
Se seu proxy requer autenticação de usuário, você também precisará configurar WebProxyUsername
e/ou WebProxyPassword
. Se não há tal necessidade, configurar apenas esta propriedade é suficiente.
No momento o ASF usa o web proxy somente para solicitações http
e https
, que não incluem comunicação de rede interna da Steam feita dentro cliente Steam interno do ASF. Atualmente não existem planos para oferecer suporte a isso, principalmente devido à falta de funcionalidade do SK2. Se você precisa/quer que isso aconteça, eu sugiro que comece por lá.
A menos que você tenha uma razão para editar essa propriedade, você deve mantê-la padrão.
Tipo string
com o valor padrão null
. Esta propriedade define a senha usada em autenticações basic, digest, NTLM e Kerberos que sejam suportadas pela máquina de WebProxy
alvo, fornecendo a funcionalidade proxy. Se o seu proxy não requer credenciais de usuário, não há nenhuma necessidade de você colocar qualquer coisa. Usar esta opção só faz sentido se WebProxy
também for definido, já que ela não tem efeito caso contrário.
A menos que você tenha uma razão para editar essa propriedade, você deve mantê-la padrão.
Tipo string
com o valor padrão null
. Esta propriedade define o usuário usado em autenticações basic, digest, NTLM e Kerberos que sejam suportadas pela máquina de WebProxy
alvo, fornecendo a funcionalidade proxy. Se o seu proxy não requer credenciais de usuário, não há nenhuma necessidade de você colocar qualquer coisa. Usar esta opção só faz sentido se WebProxy
também for definido, já que ela não tem efeito caso contrário.
A menos que você tenha uma razão para editar essa propriedade, você deve mantê-la padrão.
Como você já deve saber, cada bot deve ter sua própria configuração baseada no exemplo de estrutura JSON abaixo. Comece decidindo como você deseja nomear seu bot (por exemplo: 1.json
, main.json
, primary.json
ou QualquerCoisa.json
) e vá para configuração.
Observação: O bot não pode ser nomeado como ASF
(esse nome é reservado para configuração global), o ASF também vai ignorar qualquer arquivo de configuração cujo nome comece com um ponto.
A configuração do bot tem a seguinte estrutura:
{
"AcceptGifts": false,
"BotBehaviour": 0,
"CompleteTypesToSend": [],
"CustomGamePlayedWhileFarming": null,
"CustomGamePlayedWhileIdle": null,
"Enabled": false,
"FarmingOrders": [],
"FarmingPreferences": 0,
"GamesPlayedWhileIdle": [],
"HoursUntilCardDrops": 3,
"LootableTypes": [1, 3, 5],
"MatchableTypes": [5],
"OnlineFlags": 0,
"OnlinePreferences": 0,
"OnlineStatus": 1,
"PasswordFormat": 0,
"RedeemingPreferences": 0,
"RemoteCommunication": 3,
"SendTradePeriod": 0,
"SteamLogin": null,
"SteamMasterClanID": 0,
"SteamParentalCode": null,
"SteamPassword": null,
"SteamTradeToken": null,
"SteamUserPermissions": {},
"TradeCheckPeriod": 60,
"TradingPreferences": 0,
"TransferableTypes": [1, 3, 5],
"UseLoginKeys": true,
"UserInterfaceMode": 0
}
Todas as opções são explicadas abaixo:
Tipo bool
com o valor padrão false
. Quando habilitado, o ASF vai aceitar e resgatar automaticamente todos os presentes Steam (incluindo vales-presente da carteira) enviados para o bot. Isso também inclui presentes enviadas de usuários que não estejam os definidos em SteamUserPermissions
. Tenha em mente que presentes enviados para o endereço de e-mail não são encaminhados diretamente para o cliente, então o ASF não aceitará esses sem a sua ajuda.
Esta opção é recomendada apenas para contas alternativas, já que é muito provável que você não queira resgatar automaticamente todos os presentes enviados para sua conta principal. Se você não tiver certeza se quer esse recurso habilitado ou não, mantenha-o com o valor false
padrão.
Tipo byte flags
com o valor padrão 0
. Esta propriedade define o comportamento do bot do ASF durante vários eventos e é definida conforme indicado abaixo:
Valor | Nome | Descrição |
---|---|---|
0 | None | Nenhum comportamento especial do bot, o modo menos invasivo, padrão |
1 | RejectInvalidFriendInvites | Fará com que o ASF rejeite (ao invés de ignorar) convites de amizade inválidos |
2 | RejectInvalidTrades | Fará com que o ASF rejeite (ao invés de ignorar) ofertas de troca inválidas |
4 | RejectInvalidGroupInvites | Fará com que o ASF rejeite (ao invés de ignorar) convites inválidos para grupos |
8 | DismissInventoryNotifications | Fará com que o ASF dispense automaticamente todas as notificações de inventário |
16 | MarkReceivedMessagesAsRead | Fará com que o ASF marque automaticamente todas as mensagens recebidas como lidas |
32 | MarkBotMessagesAsRead | Fará com que o ASF marque automaticamente todas as mensagens dos outros bots (ativos na mesma instância) recebidas como lidas |
Por favor note que esta propriedade é um campo do tipo flags
, portanto é possível escolher qualquer combinação de valores disponíveis. Confira o mapeamento json se você quiser aprender mais. Não habilitar nem um flag resultará na opção None
.
Em geral você vai desejar modificar esta propriedade se você espera que o ASF faça certa quantidade de automação relacionados à sua atividade, como seria de esperar de uma conta bot, mas não uma conta primária usada no ASF. Portanto, alterar esta propriedade faz sentido principalmente para contas alternativas, embora você seja livre para usar as opções selecionadas para contas principais também.
O comportamento normal (None
) do ASF é automatizar apenas as ações que o usuário deseja (por exemplo, coleta de cartas ou processamento de trocas do SteamTradeMatcher
, se configurado em TradingPreferences
). Este é o modo menos invasivo, e é benéfico para a maioria dos usuários já que você permanece com controle completo sobre sua conta e pode decidir se deseja permitir certas interações fora do escopo ou não.
Convite de amizade inválido é um convite que não vem de um usuário com permissão FamilySharing
ou superior (definida na opção SteamUserPermissions
). No modo normal o ASF ignora esses convites, como seria de esperar, dando-lhe liberdade de escolha se deseja aceitá-los ou não. RejectInvalidFriendInvites
fará com que esses convites sejam rejeitados automaticamente, que praticamente impedirá que outra pessoas te adicionem a lista de amigos delas (uma vez que o ASF negará todos os pedidos, exceto das pessoas definidas em SteamUserPermissions
). A menos que você queira negar completamente todos os convites de amizade, você não deve habilitar esta opção.
Oferta de troca inválida é uma oferta que não é aceita pelo módulo interno do ASF. Mais sobre este assunto pode ser encontrado na seção trocas, que define todos os tipos de trocas que o ASF está disposto a aceitar automaticamente. Trocas válidas também são definidas por outras configurações, especialmente TradingPreferences
. RejectInvalidTrades
fará com que todas as ofertas de trocas inválidas sejam rejeitadas, em vez de serem ignoradas. A menos que você queira negar completamente todas as ofertas de troca que não são automaticamente aceitas pelo ASF, você não deve habilitar esta opção.
Convite inválidos para grupos são convites que não vem do grupo definido em SteamMasterClanID
. No modo normal o ASF ignora esses convites, como seria de esperar, dando-lhe liberdade de escolha se deseja entrar em determinado Grupo Steam ou não. RejectInvalidGroupInvites
fará com que todos os convites para grupos sejam rejeitados automaticamente, tornando impossível convidá-lo para qualquer outro grupo que não seja o SteamMasterClanID
. A menos que você queira negar completamente todos os convites de grupo, você não deve habilitar esta opção.
DismissInventoryNotifications
é extremamente útil quando você estiver ficando irritado com a quantidade de notificações de novos items pelo Steam. O ASF não pode se livrar da notificação em si pois ela é embutida no seu cliente Steam, mas ele pode limpar a notificação após recebê-la, o que vai apagar a mensagem "novos itens no inventário". Se você preferir avaliar manualmente todos os itens recebidos (principalmente as cartas coletadas pelo ASF) então você deve desabilitar essa opção. Quando você começar a enlouquecer, lembre-se dessa opção.
MarkReceivedMessagesAsRead
vai marcar automaticamente todas as mensagens recebidas pela conta em que o ASF está sendo executado, tanto as privadas quanto em grupo. Essa opção deve ser usada normalmente em contas alternativas para limpar as notificações de "nova mensagem" provenientes, por exemplo, de comandos do ASF. Não recomendamos ativar essa opção em contas principais, a menos que você queira desativar qualquer tipo de notificações de novas mensagens, incluindo aquelas que chegaram quando você estava off-line, assumindo que o ASF estivesse aberto durante esse período.
MarkBotMessagesAsRead
funciona de forma semelhante marcando apenas as mensagens do(s) bot(s) como lidas. No entanto, tenha em mente que ao usar essa opção em chats em grupo com seus bots e outras pessoas, a implementação do Steam que reconhece as mensagens de chat também reconhece todas as mensagens anteriores a que você decidiu marcar, então se você não quiser perder uma mensagem não relacionada que foi recebida entre as marcadas, você vai preferir não usar essa funcionalidade. Obviamente, também é arriscado quando você tem várias contas primárias (por exemplo, de usuários diferentes) executando na mesma instância do ASF, já que você também pode perder as mensagens normais fora do ASF.
Se você está inseguro de como configurar esta opção, é melhor deixá-la padrão.
Tipo ImmutableHashSet<byte>
com o valor padrão vazio. Quando o ASF completar o set do tipo de item especificado aqui ele pode enviar uma proposta de troca com todos os sets para o usuário com permissão Master
, o que é conveniente se você quiser usar uma determinada conta bot para, por exemplo, fazer trocas no STM, enquanto transfere os sets completos para outra conta. Esta opção funciona da mesma forma que o comando loot
, portanto, tenha em mente que ele requer um usuário com o conjunto de permissões Master
, você também pode precisar de um SteamTradeToken
válido, tanto quanto o uso de uma conta que seja, em primeiro lugar, elegível para trocas.
O seguintes tipos de itens são suportados nesta configuração:
Valor | Nome | Descrição |
---|---|---|
3 | FoilTradingCard | Versão brilhante da Carta Colecionável
|
5 | TradingCard | Cartas colecionáveis Steam, sendo usadas para fabricar insígnias (não brilhantes) |
Observe que, independentemente das configurações acima, o ASF solicitará apenas itens da comunidade Steam (appID
753, contextID
6), excluindo assim todos os itens de jogos, presentes e similares da proposta de troca por definição.
Devido ao custo adicional de usar essa opção, é recomendável ativá-la apenas em contas bot que têm uma chance realista de completar conjuntos por conta própria. Por exemplo, não faz sentido ativá-la caso você já estiver usando a preferência SendOnFarmingFinished
em FarmingPreferences
, SendTradePeriod
ou o comando loot
regularmente.
Se você está inseguro de como configurar esta opção, é melhor deixá-la padrão.
Tipo string
com o valor padrão null
. Quando ASF está em processo de coleta, ele pode se mostrar como "Jogando jogo não Steam: CustomGamePlayedWhileFarming
" ao invés do jogo que realmente esteja sendo executado. Isso é útil para o caso de você querer que seus amigos saibam que você está coletando, mas você não usar a opção Off-line
em OnlineStatus
. Por favor, note que o ASF não pode garantir a ordem de exibição atual da rede Steam, portanto isso é apenas uma sugestão que pode, ou não, ser exibida corretamente. Em particular, o nome personalizado não será exibido no algorítimo de coleta Complex
se o ASF preencher todos os 32
slots com jogos que requerem horas para coleta. O valor null
padrão desativa este recurso.
O ASF fornece algumas variáveis especiais que você pode usar em seu texto. O ASF vai substituir o {0}
pelo AppID
do(s) jogo(s) atualmente em andamento(s), enquanto {1}
será substituído pelo ASF por GameName
do(s) jogo(s) atualmente em execução.
Tipo string
com o valor padrão null
. Similar a CustomGamePlayedWhileFarming
, mas para a situação onde o ASF não tem nada para fazer (com todas as coletas da conta feitas). Por favor, note que o ASF não pode garantir a ordem de exibição atual da rede Steam, portanto isso é apenas uma sugestão que pode, ou não, ser exibida corretamente. Se você estiver usando GamesPlayedWhileIdle
junto com esta opção, tenha em mente que GamesPlayedWhileIdle
tem prioridade, pois você não pode declarar mais do que 31
jogos, já que CustomGamePlayedWhiledle
não será capaz de ocupar o slot com o nome personalizado. O valor null
padrão desativa este recurso.
Tipo bool
com valor padrão false
. Essa propriedade define se o bot está habilitado. Uma conta bot habilitada (true
) vai ser iniciada automaticamente quado o ASF for iniciado, enquanto uma conta bot desabilitada (false
) terá que ser iniciada manualmente. Por padrão, todo bot é desabilitado, então provavelmente você vai querer mudar essa propriedade para true
para todos os bots que devem ser iniciados automaticamente.
Tipo ImmutableList<byte>
com o valor padrão vazio. Essa propriedade define a ordem de coleta preferida usada pelo ASF para a conta do bot específica. Atualmente existem as seguintes ordens disponíveis:
Valor | Nome | Descrição |
---|---|---|
0 | Unordered | Sem ordem, aumentando levemente a porformance da CPU |
1 | AppIDsAscending | Tenta coletar dos jogos com os appIDs em ordem crescente |
2 | AppIDsDescending | Tenta coletar dos jogos com o appIDs em ordem decrescente |
3 | CardDropsAscending | Tenta coletar dos jogos com o menor número de cartas disponíveis primeiro |
4 | CardDropsDescending | Tenta coletar dos jogos com o maior número de cartas disponíveis primeiro |
5 | HoursAscending | Tenta coletar dos jogos com o menor número de horas jogadas primeiro |
6 | HoursDescending | Tenta coletar dos jogos com o maior número de horas jogadas primeiro |
7 | NamesAscending | Tenta coletar dos jogos em ordem alfabética, começando do A |
8 | NamesDescending | Tenta coletar dos jogos em ordem alfabética reversa, começando do Z |
9 | Random | Tenta coletar dos jogos em ordem completamente aleatória (diferente cada vez que o programa é executado) |
10 | BadgeLevelsAscending | Tenta coletar dos jogos com o nível de insígnia mais baixo primeiro |
11 | BadgeLevelsDescending | Tenta coletar dos jogos com o nível de insígnia mais alto primeiro |
12 | RedeemDateTimesAscending | Tenta coletar dos jogos mais antigos em sua conta primeiro |
13 | RedeemDateTimesDescending | Tenta coletar dos jogos mais novos em sua conta primeiro |
14 | MarketableAscending | Tenta coletar dos jogos com cartas não comercializáveis primeiro |
15 | MarketableDescending | Tenta coletar dos jogos com cartas comercializáveis primeiro |
Como essa essa propriedade é uma matriz, ela permite que você use várias configurações diferentes em sua ordem fixa. Por exemplo, você pode incluir os valores 15
, 11
e 7
a fim de classificar primeiro por jogos comercializáveis, em seguida, por aqueles com a insígnia de nível mais alto e, finalmente, em ordem alfabética. Como você pode imaginar, a ordem realmente importa, já que a reversa (7
, 11
e 15
) faz algo completamente diferente (classifica jogos em ordem alfabética primeiro, e devido aos nomes dos jogos serem únicos, as outras duas são efetivamente inúteis). A maioria das pessoas provavelmente usará apenas uma dessas ordens, mas caso você queira, você pode também classificar por parâmetros extras.
Note também a palavra "tentar" em todas as descrições acima - a ordem atual do ASF é fortemente afetada pelo algorítimo de coleta de cartas e a classificação afetará apenas os resultados que o ASF considera ser o mesmo com relação a performance. Por exemplo, no algoritmo Simple
, a ordem de coleta selecionada em FarmingOrders
deve ser inteiramente respeitada na sessão atual de coleta (uma vez que cada jogo tem o mesmo valor de desempenho), enquanto no Complex
a ordem atual do algoritmo é afetada primeiro pelas horas, e depois classificada de acordo com escolhido em FarmingOrders
. Isto trará resultados diferentes, já que jogos com tempo de jogo existente terão prioridade sobre os outros, então o ASF vai rodar os jogos que já passaram do tempo configurado em HoursUntilCardDrops
primeiro e só então classificar os demais de acordo com sua escolha em FarmingOrders
. Da mesma forma, assim que o ASF terminar os jogos que já tem horas de jogo ele vai classificar a lista restante colocando os com mais horas em primeiro lugar (já que isso vai diminuir o tempo necessário de execução dos demais títulos que necessitem alcançar o HoursUntilCardDrops
). Portanto, esta propriedade de configuração é apenas uma sugestão que o ASF tentará respeitar enquanto ela não afetar negativamente o desempenho (neste caso, o ASF sempre preferirá o melhor desempenho na coleta em vez da FarmingOrders
).
Há também uma lista de prioridade de coleta acessível através de comandos fq
. Se ele é usado, a ordem de coleta é classificada em primeiro lugar por desempenho, em seguida pela lista de coleta e, finalmente por sua indicação em FarmingOrders
.
Tipo byte flags
com o valor padrão 0
. Essa propriedade define o comportamento do ASF quando estiver coletando, e é definida da seguinte forma:
Valor | Nome |
---|---|
0 | None |
1 | FarmingPausedByDefault |
2 | ShutdownOnFarmingFinished |
4 | SendOnFarmingFinished |
8 | FarmPriorityQueueOnly |
16 | SkipRefundableGames |
32 | SkipUnplayedGames |
64 | EnableRiskyCardsDiscovery |
256 | AutoUnpackBoosterPacks |
Por favor note que esta propriedade é um campo do tipo flags
, portanto é possível escolher qualquer combinação de valores disponíveis. Confira o mapeamento json se você quiser aprender mais. Não habilitar nem um flag resultará na opção None
.
Todas as opções estão descritas abaixo.
FarmingPausedByDefault
define o estado inicial do módulo CardsFarmer
. Normalmente, o bot iniciará automaticamente a coleta de cartas quando for iniciado, seja por causa de Enabled
ou do comando start
. Usar FarmingPausedByDefault
pode ser útil caso você quiser retomar manualmente o processo de coleta automático com resume
, por exemplo, caso você deseja usar play
o tempo todo e nunca usar o módulo automático CardsFarmer
- isso funciona exatamente da mesma forma que o comando pause
.
ShutdownOnFarmingFinished
permite que você desligue o bot assim que ele terminar a coleta. Normalmente, o ASF "ocupa" uma conta durante todo o tempo em que o processo está ativo. Quando ele termina a coleta nessa conta, o ASF verifica periodicamente (a cada hora configurada em IdleFarmingPeriod
), se algum novo jogo com cartas Steam foi adicionado, então ele pode retomar a coleta naquela conta sem a necessidade de reiniciar o processo. Isso é útil para a maioria das pessoas, já que o ASF pode retomar automaticamente a coleta quando necessário. No entanto, você pode querer interromper o processo quando a conta específica terminar de coletar tudo. Você pode alcançar isso usando essa flag. Quando habilitado, o ASF vai desconectar quando a conta for totalmente explorada, o que significa que ela não será periodicamente verificada ou ocupada. Você deve decidir se você prefere que o ASF trabalhe em determinada conta bot o tempo todo, ou se o ASF deve interrompê-la quando o processo de coleta for terminado.
Essa opção faz mais sentido quando combinada com ShutdownIfPossible
, de forma que, quando todas as contas forem paradas, o ASF também será encerrado, colocando sua máquina em repouso e permitindo que você agende outras ações, como suspender ou desligar no mesmo momento da última carta coletada.
SendOnFarmingFinished
permite que você envie automaticamente uma oferta de troca Steam contendo tudo que foi coletado até o momento para o usuário com permissão Master
, o que é muito conveniente se você não quiser se preocupar com as trocas pessoalmente. Esta opção funciona da mesma forma que o comando loot
, portanto, tenha em mente que ele requer um usuário com o conjunto de permissões Master
, você também pode precisar de um SteamTradeToken
válido, tanto quanto o uso de uma conta que seja, em primeiro lugar, elegível para trocas. Quando essa opção está ativada, além de iniciar o loot
após terminar a coleta, o ASF também inicia o loot
a cada notificação de novos itens (quando não estiver coletando) e depois de completar trocas que resultem em novos itens (sempre). Isso é especialmente útil para "encaminhar" itens recebidos de outras pessoas para a nossa conta. Normalmente, você vai querer usar o ASF 2FA junto com essa funcionalidade, embora não seja um requisito se você pretende lidar manualmente com as confirmações de 2FA de maneira oportuna.
FarmPriorityQueueOnly
define se o ASF deve considerar para a coleta automática apenas os aplicativos que você adicionou manualmente à fila de coleta prioritária, disponível através dos comandos fq
. Quando esta opção estiver habilitada, o ASF ignorará todos appIDs
que não estejam na lista, permitindo que você escolha efetivamente os jogos que deseja que o ASF colete. Tenha em mente que se você não adicionar nenhum jogo na lista o ASF atuará como se não houvesse nada para coletar na sua conta.
SkipRefundableGames
define se o ASF deve ignorar jogos que ainda são reembolsáveis da coleta automática. Um jogo reembolsável é um jogo que você comprou na Loja Steam nas últimas duas semanas e que ainda não foi jogado por mais de 2 horas, como indicado na página Reembolsos no Steam. Por padrão, o ASF ignora completamente a política de reembolso do Steam e realiza a coleta em todos os jogos, como a maioria das pessoas esperaria. No entanto, você pode usar esta opção para garantir que o ASF não coletará as cartas de nenhum de seus jogos reembolsáveis tão cedo, permitindo que você avalie esses jogos por conta própria e solicite reembolso, se necessário, sem se preocupar com o ASF afetando negativamente o tempo de jogo. Observe que se você habilitar essa opção os jogos que você comprar da loja do Steam não serão executados pelo ASF antes de 14 dias da data de ativação e será mostrado que não há jogos a serem coletados caso sua conta não tenha mais jogos a serem coletados.
SkipUnplayedGames
define se o ASF deve ignorar jogos que você ainda não iniciou. Jogo não jogado neste contexto significa que você não tem nenhuma hora de jogo registrada para ele no Steam. Caso você use esta flag, esses jogos serão ignorados até que o Steam registre qualquer tempo de jogo para eles. Isso permite que você tenha um controle melhor sobre quais jogos o ASF está apto a coletar, ignorando aqueles que você ainda não teve a chance de experimentar, mantendo recursos selecionados do Steam mais úteis - como sugerir jogos não jogados para jogar.
EnableRiskyCardsDiscovery
ativa um recurso adicional de contingência que é acionado quando o ASF não consegue carregar uma ou mais páginas de insígnias e, portanto, não consegue encontrar jogos disponíveis para coletar. Em particular, algumas contas com uma grande quantidade de drops de cartas podem causar uma situação em que o carregamento das páginas de insígnias não seja mais possível (devido à sobrecarga), e essas contas se tornam impossíveis de serem coletadas simplesmente porque não conseguimos carregar as informações com base nas quais podemos iniciar o processo. Para esses casos raros, esta opção permite o uso de um algoritmo alternativo que utiliza uma combinação de boosters possíveis para criar e pacotes de boosters para os quais a conta é elegível, a fim de encontrar potencialmente jogos disponíveis para coleta. Em seguida, gasta uma quantidade excessiva de recursos para verificar e obter as informações necessárias, tentando iniciar o processo de coleta com uma quantidade limitada de dados e informações para eventualmente chegar a uma situação em que a página do insígnia é carregada e podemos usar a abordagem normal. Por favor, observe que ao usar esse recurso alternativo, o ASF opera apenas com dados limitados, portanto, é completamente normal que o ASF encontre muito menos drops do que na realidade - outros drops serão encontrados em uma etapa posterior do processo de coleta.
Essa opção é chamada de "arriscada" por uma boa razão - ela é extremamente lenta e requer uma quantidade significativa de recursos (incluindo solicitações de rede) para funcionar, portanto, não é recomendado ativá-la, especialmente a longo prazo. Você deve usar essa opção apenas se você determinou previamente que sua conta está enfrentando problemas para carregar as páginas de insignias e o ASF não pode operar nela, sempre falhando ao carregar as informações necessárias para iniciar o processo. Mesmo que tenhamos feito o nosso melhor para otimizar o processo o máximo possível, ainda é possível que essa opção tenha resultados indesejados e possa resultar em suspensões temporárias, e talvez até permanentes, por parte do Steam, devido ao envio de um grande volume de solicitações e à sobrecarga causada nos servidores do Steam. Portanto, alertamos você com antecedência e oferecemos essa opção sem absolutamente nenhuma garantia. Você a está utilizando por sua conta e risco.
AutoUnpackBoosterPacks
irá desempacotar automaticamente todos os pacotes bônus ao receber a notificação de novos itens. Isso permitirá que você adquira imediatamente cartas adicionais, o que pode ser um cenário desejado, especialmente em combinação com outras opções (por exemplo, SteamTradeMatcher
ou CompleteTypesToSend
).
Tipo ImmutableHashSet<uint>
com valor padrão vazio. Se o ASF não tem nada para coletar ele pode jogar seus jogos Steam (appIDs
). Jogar os jogos de tal forma aumenta suas horas "jogadas" nesses jogos, mas nada mais além disso. Para que esse recurso funcione corretamente, sua conta Steam deve possuir uma licença válida para todos os appIDs
que você especificar aqui, incluindo jogos gratuitos. Esse recurso pode ser habilitado juntamente com CustomGamePlayedWhileIdle
para poder jogar seus jogos selecionados e, ao mesmo tempo, mostrar um status personalizado na rede Steam, mas neste caso, como no caso de CustomGamePlayedWhileFarming
, a ordem de exibição real não é garantida. Note que o Steam só permite que o ASF rode até 32
appIDs
no total, portanto esse é o máximo de AppIDs que você pode inserir nesta propriedade.
Tipo byte
com o valor padrão 3
. Esta propriedade define se a conta tem restrição na coleta de cartas, e caso sim, por quantas horas. Restrição de coleta de cartas significa que a conta não receberá cartas de determinados jogos até que os mesmos sejam jogados por pelo menos a quantidade de horas indicada em HoursUntilCardDrops
. Infelizmente não existe uma fórmula mágica para detectar isso, então o ASF depende de você. Esta propriedade afeta o algorítimo de coleta de cartas que será usado. Configurar essa propriedade corretamente vai maximizar os lucros e minimizar o tempo necessário para que as cartas sejam coletadas. Lembre-se que não há nenhuma resposta óbvia se você deve usar um ou outro valor, desde que depende totalmente da sua conta. Parece que as contas mais antigas que nunca pediram reembolso têm o recebimento de cartas sem restrição, então elas devem usar o valor 0
, enquanto novas contas e aqueles que pediram reembolso tem essa restrição e devem manter o valor em 3
. No entanto isso é apenas uma teoria e não deve ser tomada como regra. O valor padrão para essa propriedade foi definido com base no "mal menor" e a maioria dos casos de uso.
Tipo ImmutableHashSet <byte>
com valor padrão de tipos de itens Steam 1, 3, 5
. Essa propriedade define o comportamento do ASF quando estiver coletando tanto manualmente quanto através de algum comando, ou mesmo automaticamente, atrávés de uma ou mais propriedades de configuração. O ASF garantirá que apenas itens definidos em LootableTypes
serão incluídos na oferta de troca, portanto, essa propriedade permite que você escolha o que você deseja receber na uma oferta de troca que está sendo enviada a você.
Valor | Nome | Descrição |
---|---|---|
0 | Unknown | Qualquer tipo que não se encaixa em nenhuma das opções abaixo |
1 | BoosterPack | Pacote de cartas contendo 3 cartas aleatórias de um jogo |
2 | Emoticon | Emoticons para uso na Conversa Steam |
3 | FoilTradingCard | Versão brilhante de TradingCard
|
4 | ProfileBackground | Fundo de perfil para usar em seu Perfil Steam |
5 | TradingCard | Cartas colecionáveis Steam, usadas para fabricar insígnias (não brilhantes) |
6 | SteamGems | Gemas do Steam usadas para criar boosters (pacotes de cartas), incluindo as empacotadas |
7 | SaleItem | Itens especiais ganhos durante as promoções Steam |
8 | Consumable | Itens consumíveis especiais que desaparecem após serem usados |
9 | ProfileModifier | Itens especiais que podem modificar a aparência do Perfil Steam |
10 | Sticker | Itens especiais que podem ser usados na Conversa Steam |
11 | ChatEffect | Itens especiais que podem ser usados na Conversa Steam |
12 | MiniProfileBackground | Plano de fundo especial para o Perfil Steam |
13 | AvatarProfileFrame | Moldura do avatar especial para o Perfil Steam |
14 | AnimatedAvatar | Avatar animado especial para o Perfil Steam |
15 | KeyboardSkin | Skin especial de teclado para Steam Deck |
16 | StartupVideo | Vídeo de inicialização especial para o Steam Deck |
Observe que, independentemente das configurações acima, o ASF solicitará apenas itens da comunidade Steam (appID
753, contextID
6), excluindo assim todos os itens de jogos, presentes e similares da proposta de troca por definição.
A configuração padrão do ASF baseia-se no uso mais comum do bot, coletando apenas pacotes de cartas e cartas colecionáveis (incluindo as brilhantes). A propriedade definida aqui permite que você mude esse comportamento da forma que te satisfaça. Por favor, tenha em mente que todos os tipos não definidos acima serão classificados como Unknown
, o que é especialmente importante quando a Valve libera um novo item da Steam, que será marcado como Unknown
pelo ASF também, até que seja adicionado aqui (em uma versão futura). É por isso que, em geral, não é recomendado incluir o tipo Unknown
em seu LootableTypes
, a menos que você saiba o que está fazendo, e compreende também que o ASF enviará seu inventário inteiro em uma oferta de troca se a rede Steam der algum problema novamente e reportar todos os seus itens como Unknown
. Minha sugestão é não incluir o tipo Unknown
em LootableTypes
, mesmo que você espere transferir tudo.
Tipo ImmutableHashSet <byte>
com valor padrão de tipos de itens Steam 5
. Esta propriedade define quais tipos de itens Steam tem permissão de serem combinados se a opção SteamTradeMatcher
estiver habilitada em TradingPreferences
. Os tipos são definidos abaixo:
Valor | Nome | Descrição |
---|---|---|
0 | Unknown | Qualquer item que não se encaixa em nenhuma das opções abaixo |
1 | BoosterPack | Pacote de cartas contendo 3 cartas aleatórias de um jogo |
2 | Emoticon | Emoticons para uso na Conversa Steam |
3 | FoilTradingCard | Versão brilhante da Carta Colecionável
|
4 | ProfileBackground | Fundo de perfil para usar em seu Perfil Steam |
5 | TradingCard | Cartas colecionáveis Steam, sendo usadas para fabricar insígnias (não brilhantes) |
6 | SteamGems | Gemas Steam usadas para criar pacotes de cartas, incluindo as empacotadas |
7 | SaleItem | Itens especiais ganhos durante as promoções Steam |
8 | Consumable | Consumíveis especiais que desaparecem após serem usados |
9 | ProfileModifier | Itens especiais que podem modificar a aparência do Perfil Steam |
10 | Adesivo | Itens especiais que podem ser usados na Conversa Steam |
11 | ChatEffect | Itens especiais que podem ser usados na Conversa Steam |
12 | MiniProfileBackground | Plano de fundo especial para o Perfil Steam |
13 | AvatarProfileFrame | Moldura do avatar especial para o Perfil Steam |
14 | AnimatedAvatar | Avatar animado especial para o Perfil Steam |
15 | KeyboardSkin | Skin especial de teclado para Steam deck |
16 | StartupVideo | Vídeo de inicialização especial para o Steam deck |
É claro, os tipos de itens que você deve usar para essa propriedade normalmente incluem apenas 2
, 3
, 4
e 5
, já que apenas esses tipos são suportados pelo STM. O ASF inclui uma lógica própria para descobrir a raridade dos itens, portanto também é seguro combinar emoticons ou planos de fundo, uma vez que o ASF vai considerar justo apenas os itens do mesmo jogo e tipo, que também compartilhem a mesma raridade.
Por favor, note que o ASF não é um bot de troca e não vai levar em conta os valores do mercado. Se você não considerar itens da mesma raridade e do mesmo conjunto como equivalentes no preço, então esta opção NÃO é para você. Por favor, avalie bem se você entendeu e concorda com esta declaração antes de decidir alterar esta configuração.
A menos que você saiba o que está fazendo, você deve mantê-lo com o valor 5
padrão.
Tipo ushort flags
com o valor padrão 0
. Esta propriedade funciona como um complemento para OnlineStatus
e especifica recursos adicionais de presença on-line anunciados à Rede Steam. Requer OnlineStatus
diferente de Off-line
, e é definido como abaixo:
Valor | Nome | Descrição |
---|---|---|
0 | None | Nenhuma flag on-line especial, padrão |
256 | ClientTypeWeb | Cliente está usando interface web |
512 | ClientTypeMobile | Cliente está usando dispositivo móvel |
1024 | ClientTypeTenfoot | Cliente está usando big picture |
2048 | ClientTypeVR | Cliente está usando headset VR |
Por favor note que esta propriedade é um campo do tipo flags
, portanto é possível escolher qualquer combinação de valores disponíveis. Confira o mapeamento json se você quiser aprender mais. Não habilitar nem um flag resultará na opção None
.
O tipo subjacente EPersonaStateFlag
no qual essa propriedade se baseia inclui mais flags disponíveis, no entanto, até onde sabemos, eles não têm absolutamente nenhum efeito a partir de hoje, portanto, foram deixados de lado.
Se você não tem certeza de como definir essa propriedade, deixe-a com o valor padrão 0
.
Tipo byte flags
com o valor padrão 0
. Esta propriedade pode habilitar alguns recursos online adicionais na plataforma Steam e é definida como abaixo:
Valor | Nome | Descrição |
---|---|---|
0 | None | Sem preferências especiais online, padrão |
1 | IsSteamDeck | Apresente-se como Steam Deck |
Por favor note que esta propriedade é um campo do tipo flags
, portanto é possível escolher qualquer combinação de valores disponíveis. Confira o mapeamento json se você quiser aprender mais. Não habilitar nem um flag resultará na opção None
.
Se você não tem certeza de como definir essa propriedade, deixe-a com o valor padrão 0
.
Tipo byte
com o valor padrão 1
. Esta propriedade especifica o status na comunidade Steam no qual o bot será anunciado após efetuar login na rede Steam. Atualmente você pode escolher um dos status abaixo:
Valor | Nome |
---|---|
0 | Offline |
1 | Disponível |
2 | Ocupado |
3 | Ausente |
4 | Dormindo |
5 | Querendo trocar |
6 | Querendo jogar |
7 | Invisível |
O status offline
é extremamente útil para contas primárias. Como você deve saber, coletar de um jogo mostra seu status na Steam como "Em jogo: XXX", que pode enganar seus amigos fazendo-os acreditar que você está jogando, enquanto na verdade você está apenas coletando. Usar o status Offline
resolve esse problema - sua conta nunca aparecerá como "em jogo" quando você estiver coletando cartas Steam com o ASF. Isto é possível graças ao fato de que o ASF não precisa se conectar à comunidade Steam para funcionar corretamente, então na verdade estamos jogando esses jogos, conectados à rede Steam, mas sem anunciar nossa presença on-line. Tenha em mente que jogos jogados usando o status offline ainda contam para seu tempo de jogo e são mostrados como "jogado recentemente" no seu perfil.
Além disso, esse recurso também é importante caso você deseje receber notificações e mensagens não lidas quando o ASF estiver rodando, sem manter o cliente Steam aberto ao mesmo tempo. Isto acontece porque o ASF atua como um cliente Steam em si, e quer ASF goste ou não, a Steam transmite todas essas mensagens e outros eventos para ele. Isto não é um problema se você tiver tanto o ASF quanto seu próprio cliente Steam rodando, já que ambos os clientes recebem exatamente os mesmos eventos. No entanto, se apenas o ASF estiver rodando, a rede Steam poderia marcar certos eventos e mensagens como "entregue", apesar do seu cliente Steam tradicional não recebê-los por não estar aberto. O status off-line também resolve esse problema, já que o ASF nunca será considerado para quaisquer eventos da Comunidade neste caso, então todas as mensagens não lidas e outros eventos estarão devidamente marcados quando você voltar.
É importante notar que o ASF rodando em modo Off-line
não estará apto a receber os comandos no chat Steam, já que o chat, assim como toda a comunidade está, na verdade, inteiramente off-line. Uma solução para esse problema é usar o modo Invisível
, que trabalha de forma similar (não expondo o status), mas mantém a habilidade de receber e responder mensagens (podendo potencialmente dispensar notificações e mensagens não lidas como citado acima). O modo Invisível
faz mais sentido em contas alternativas, as quais você não quer expor (ao status automático), mas ainda quer ser apto a enviar comandos.
No entanto, há uma questão com o modo Invisível
- ele não se sai bem com contas primárias. Isso porque qualquer sessão Steam que esteja on-line expõe o status, mesmo que o ASF não o faça. Isso é causado por uma limitação/bug atual da Rede Steam que é impossível de ser corrigida pelo lado do ASF, então se você quer usar o modo Invisível
você precisa se certificar que todas as outras sessões da mesma conta também usem o modo Invisível
. Esse será o caso em contas alternativas onde o ASF seja, esperançosamente, a única sessão ativa, mas em contas primárias você quase sempre preferirá aparecer Online
para seus amigos, escondendo apenas a atividade do ASF, e neste caso o modo Invisível
será inteiramente inútil pra você (nós recomendamos usar o modo Offline
nesse caso). Esperamos que essa limitação/bug seja eventualmente resolvida no futuro pela Valve, mas eu não espero que isso aconteça tão cedo...
Se você não tem certeza de como configurar essa propriedade, é recomendado usar o valor 0
(Offline
) para contas primárias e o padrão 1
(Disponível
) para as outras.
Tipo byte
com o valor padrão 0
(PlainText
). Essa propriadade define o formato da propriedade SteamPassword
, e atualmente suporta os valores especificados na seção segurança. Você deve seguir as instruções especificadas aqui, já que você precisará garantir que a propriedade SteamPassword
de fato inclua a senha em PasswordFormat
. Em outras palavras, quando você alterar o PasswordFormat
então seu SteamPassword
já deve estar nesse formato, não apenas esperando ser mudado posteriormente. A menos que você saiba o que está fazendo, você deve mantê-lo com o valor 0
padrão.
Caso você decida alterar o PasswordFormat
de um bot que já tenha feito login na rede Steam pelo menos uma vez, é possível que você receba um erro de descriptografia único na próxima inicialização do bot - isso é causado pelo fato de que o PasswordFormat
também é usado em relação à criptografia/descriptografia automática de propriedades sensíveis no arquivo de banco de dados Bot.db
. Você pode ignorar com segurança esse erro, pois o ASF será capaz de se recuperar dessa situação por conta própria. Se isso estiver acontecendo constantemente, por exemplo, a cada reinicialização, deve ser investigado.
Tipo byte flags
com o valor padrão 0
. Essa propriedade define o comportamento do ASF quando estiver resgatando cd-keys, e é definida abaixo:
Valor | Nome | Descrição |
---|---|---|
0 | None | Sem preferências especiais de resgate, padrão |
1 | Forwarding | Encaminha keys indisponíveis para serem resgatadas por outros bots |
2 | Distributing | Distribui todas as keys entre si e os outros bots |
4 | KeepMissingGames | Guarda as keys de jogos que (possivelmente) não estejam em sua conta, deixando-as sem uso |
8 | AssumeWalletKeyOnBadActivationCode | Assume que BadActivationCode são iguais à CannotRedeemCodeFromClient e, portanto, tenta resgatá-los como vales presente |
Por favor note que esta propriedade é um campo do tipo flags
, portanto é possível escolher qualquer combinação de valores disponíveis. Confira o mapeamento json se você quiser aprender mais. Não habilitar nem um flag resultará na opção None
.
Forwarding
fará com que o bot encaminhe uma key que não pode ser ativadar, para outro bot conectado e rodando que não tenha aquele jogo em particular (se for possível verificar). A situação mais comum é encaminhar um jogo AlreadyPurchased
(já comprado) para outro bot que não tenha aquele jogo, mas esta opção também abrange outros cenários, tal como DoesNotOwnRequiredApp
(não possui o jogo base), RateLimited
(limite de tentativas excedido) ou RestrictedCountry
(restrição regional).
Distributing
fará com que o bot distribua todas as keys recebidas entre si e os outros bots. Isto significa que cada bot receberá uma key do lote. Normalmente isto é usado somente quando você está resgatando muitas keys de um mesmo jogo, e você quer distribuí-las igualmente entre seus bots, diferente de resgatar keys para vários jogos diferentes. Este recurso não faz sentido se você for resgatar apenas uma key em um único comando redeem
(pois não há nenhuma key extra para ser distribuída).
KeepMissingGames
fará com que o bot ignore o Forwarding
quando ele não conseguir determinar se nosso bot já possui o jogo relacionado àquela key, ou não. Isso significa basicamente que Forwarding
será aplicado somente para keys de jogos AlreadyPurchased
(já comprados), em vez de cobrir também outros casos como DoesNotOwnRequiredApp
(não possui o jogo base), RateLimited
(limite de tentativas excedido) ou RestrictedCountry
(restrição regional). Normalmente você vai querer usar esta opção na conta principal, para garantir que as keys a serem resgatadas nela não sejam passadas adiante caso sua conta atinja o RateLimited
. Como você pode imaginar pela descrição, este campo não tem absolutamente nenhum efeito se Forwarding
não estiver habilitado.
AssumeWalletKeyOnBadActivationCode
fará com que keys tratadas como BadActivationCode
sejam tratadas como CannotRedeemCodeFromClient
e, portanto, fará com que o ASF tente resgatá-las como códigos de vale presente. Isso é necessário pois o Steam pode marcar códigos de vale presente como BadActivationCode
(e não como CannotRedeemCodeFromClient
como de costume), o que fará com que o ASF nunca tente resgatá-los. No entanto, recomendamos fortemente não usar essa preferência, pois isso fará com que o ASF tente resgatar todos os códigos inválidos como sendo vale presentes, resultando em uma quantidade excessiva (e potencialmente inválidas) de pedidos enviados para o serviço Steam, com todas as potenciais consequências. Ao invés disso, recomendamos usar o comando ForceAssumeWalletKey
redeem^
quando for ativar códigos de vale presente, que vai habilitar essa função apenas quando necessário.
Habilitar Forwarding
e Distributing
adicionará a característica de distribuição acima da encaminhamento, fazendo com que o ASF tente resgatar uma chave em todos os bots primeiro (encaminhamento) antes de passar para a próxima (distribuição). Normalmente, você vai querer usar essa opção somente quando você quer encaminhar (Forwarding
), mas com o comportamento alterado para pular o bot quando a key tiver sido usada, em vez de sempre seguir em ordem com todas as keys (que seria o Forwarding
sozinho). Este comportamento pode ser benéfico se você sabe que a maioria, ou mesmo todas, as keys são do mesmo jogo, pois nesta situação o Forwarding
sozinho tenta resgatar tudo em um bot primeiro (que faz sentido se as keys são para jogos diferentes), e Forwarding
+ Distributing
troca de bot para tentar ativar a próxima key, "distribuindo" a tarefa de resgatar uma nova key para outro bot diferente do inicial (que faz sentido se as keys são para o mesmo jogo, pulando uma tentativa inútil de resgate por cada key).
A ordem real para todos os cenários de ativação de keys é alfabética, excluindo os bots que não estão disponíveis (desconectados, parados ou afins). Por favor, tenha em mente que há um limite de tentativas de ativação por IP e por conta a cada hora, e mesmo ativações que estejam OK
somam para tentativas falhas. O ASF fará o seu melhor para minimizar o número de falhas AlreadyPurchased
, por exemplo, ao tentar evitar o encaminhamento de uma key para um bot que já possui esse jogo em particular, mas não há garantia de que isso sempre funcione devido a forma com que o Steam lida com licenças. Usar flags de ativação como Forwarding
ou Distributing
sempre aumentará a probabilidade de atingir RateLimited
.
Também tenha em mente que você não pode encaminhar ou distribuir keys para bots aos quais você não tem acesso. Isso deveria ser óbvio, mas certifique-se que você tem ao menos o acesso Operator
para todos os bots que você quer incluir no processo de ativação, com o comando status ASF
, por exemplo.
Tipo byte flags
com o valor padrão 3
. Essa propriedade define o comportamento individual por bot do ASF quando se trata de comunicação com serviços de terceiros ou remotos, e é definida abaixo:
Valor | Nome | Descrição |
---|---|---|
0 | None | Não permitida nenhuma comunicação com terceiros, tornando os recursos ASF selecionados inutilizáveis |
1 | SteamGroup | Permite comunicação com o Grupo Steam do ASF |
2 | PublicListing | Permite a comunicação com a lista STM do ASF para ser listado, se o usuário também habilitou SteamTradeMatcher em TradingPreferences
|
Por favor note que esta propriedade é um campo do tipo flags
, portanto é possível escolher qualquer combinação de valores disponíveis. Confira o mapeamento json se você quiser aprender mais. Não habilitar nem um flag resultará na opção None
.
Esta opção não incluí todas as comunicações de terceiros oferecidos pelo ASF, somente aquelas que não são implícitas pelas outras configurações. Por exemplo, se você habilitou as atualizações automáticas do ASF, o ASF irá se comunicar com o GitHub (para downloads), e com o nosso servidor (para a verificação do checksum), de acordo com sua configuração. Do mesmo modo que habilitar MatchActively
em TradingPreferences
, faz com que a comunicação seja feita com o nosso servidor para buscar bots listados, que é necessário para essa funcionalidade.
Mais informações a respeito deste assunto está disponível na seção Comunicação Remota. A menos que você tenha uma razão para editar essa propriedade, você deve mantê-la padrão.
Tipo byte
com o valor padrão 0
. Esta propriedade funciona de forma muito semelhante à preferência SendOnFarmingFinished
em FarmingPreferences
, com uma diferença - em vez de enviar uma troca quando a coleta é concluída, também podemos enviá-la a cada X horas, determinado em SendTradePeriod
, independentemente do quanto ainda temos para coletar. Isto é útil se você quiser receber os itens de suas contas adicionais regularmente ao invés de esperar que a coleta termine. O valor padrão 0
desativa este recurso e se você quer que o seu bot envie a proposta de troca, por exemplo, todos os dias, você deve colocar o valor 24
aqui.
Normalmente, você vai querer usar o ASF 2FA junto com essa funcionalidade, embora não seja um requisito se você pretende lidar manualmente com as confirmações de 2FA de maneira oportuna. Se você não tem certeza de como definir essa propriedade, deixe-a com o valor padrão 0
.
Tipo string
com o valor padrão null
. Essa propriedade define seu login Steam - aquele que você usa para entrar no Steam. Além de definir o login Steam aqui, você também pode manter valor padrão null
se desejar digitar seu login Steam em cada inicialização do ASF em vez de colocá-lo na configuração. Isso pode ser útil para você se você não quiser salvar dados confidenciais no arquivo de configuração.
Tipo ulong
com o valor padrão 0
. Esta propriedade define a steamID do grupo Steam que bot deve entrar automaticamente, incluindo seu chat em grupo. Você pode verificar o SteamID de seu grupo navegando até a página dele e, em seguida, adicionando /memberslistxml?xml=1
no final do link que ficará semelhante a este. Então você pode pegar o steamID do seu grupo no resultado, ele estará entre as tags <groupID64>
. No exemplo acima ele seria 103582791440160998
. Além de tentar entrar no grupo quando iniciado, o bot também aceitará automaticamente convites para esse grupo, o que te permite convidar o bot manualmente caso o grupo seja privado. Se você não tem nenhum grupo dedicado aos seus bots, você deve manter essa propriedade com o valor padrão 0
.
Tipo string
com o valor padrão null
. Essa propriedade define o seu PIN de acesso ao Modo Família. O ASF requer acesso a recursos protegidos pelo modo família, portanto se você usa esse recurso, você precisa fornecer ao ASF o PIN de desbloqueio, assim ele poderá operar normalmente. O valor padrão null
significa que não há um PIN necessário para desbloquear esta conta, e isso é o que você precisa se você não usa o modo família.
Em circunstâncias limitadas, o ASF também estará apto a gerar um código por conta própria, embora isso requira uma quantidade considerável de recursos do Sistema Operacional e tempo adicional, e ainda não é garantido que funcione, portanto nós recomendamos não contar com esse recurso e ao invés disso colocar um SteamParentalCode
válido no arquivo de configuração para que o ASF o utilize. Se o ASF determinar que o PIN é necessário e que não será possível gerar um por conta própria, ele pedirá que você digite um.
Tipo string
com o valor padrão null
. Essa propriedade define sua senha Steam - aquela que você usa para entrar no Steam. Além de definir a senha do Steam aqui, você também pode manter valor padrão null
se desejar digitar sua senha do Steam em cada inicialização do ASF em vez de colocá-lo na configuração. Isso pode ser útil para você se você não quiser salvar dados confidenciais no arquivo de configuração.
Tipo string
com o valor padrão null
. Quando você tem seu bot sua lista de amigos ele pode enviar propostas de troca para você diretamente, sem se preocupar com o token de troca, portanto você pode deixar essa propriedade com o valor padrão null
. Se por acaso você decidir não ter seu bot na sua lista de amigos, então você precisará gerar e preencher um token de troca como o usuário para o qual esse bot está esperando para enviar trocas. Em outras palavras, essa propriedade deve ser preenchida com o token de trocas da conta do que é definida com a permissão Master
em SteamUserPermissions
dessa conta bot.
Para encontrar seu token, estando conectado como o usuário com a permissão Master
, navegue até aqui e dê uma olhada em sua URL de troca. O token que procuramos é são os 8 caracteres após &token=
em sua URL de troca. Você deve copiar e colocar esses 8 caracteres aqui, como SteamTradeToken
. Não inclua toda a URL de troca, nem a parte &token=
, apenas o próprio token (8 caracteres).
Tipo ImmutableDictionary<ulong, byte>
com o valor padrão vazio. Esta propriedade é um array associativo que atribui uma correspondência entre determinado usuário Steam identificado pelo steamID de 64-bit e o número em byte
que especifica quis os seus direitos sobre esse bot do ASF. Atualmente as permissões disponíveis para os bots no ASF são definidas como:
Valor | Nome | Descrição |
---|---|---|
0 | None | Sem permissões especiais, esse é apenas um valor de referência que é atribuído quando não há IDs Steam nesse parâmetro - não há necessidade de definir alguém com esta permissão |
1 | FamilySharing | Fornece acesso mínimo para usuários do modo família. Novamente, esse é apenas um valor de referência, uma vez que o ASF é capaz de descobrir automaticamente os IDs Steam que estão autorizados a usar nossa biblioteca |
2 | Operator | Fornece acesso básico a determinadas contas bot, principalmente adicionar licenças e resgatar keys |
3 | Master | Fornece acesso completo a determinada conta bot |
Em resumo, esta propriedade permite que você manipule permissões para determinados usuários. As permissões são importantes principalmente para acessar os comandos do ASF, mas também para habilitar muitos recursos, tais como aceitar trocas. Por exemplo, você pode querer definir sua própria conta como Master
e dar acesso de Operator
para 2 ou 3 dos seus amigos, assim eles podem facilmente resgatar keys para seu bot com o ASF, enquanto não são elegíveis, por exemplo, para parar o processo. Graças a isso você pode facilmente atribuir permissões para determinados usuários e deixá-los usarem seu bot para determinadas tarefas especificadas pelo seu nível.
Recomendamos que defina exatamente um usuário como Master
e quantos você quiser como Operators
e abaixo. Embora seja tecnicamente possível definir vários Masters
e o ASF funcionará corretamente com eles, por exemplo, aceitando todas as trocas enviadas para o bot por eles, o ASF usará apenas um deles (com o menor ID do Steam) para cada ação que requer um único alvo, como uma solicitação de loot
, portanto, também propriedades como a preferência SendOnFarmingFinished
em FarmingPreferences
ou SendTradePeriod
. Se você entende perfeitamente essas limitações, especialmente o fato de que a solicitação de loot
sempre enviará os itens para o Master
com ID Steam mais baixo, independente do Master
que tenha executado o comando, então você pode definir vários usuários com a permissão Master
aqui, mas ainda assim recomendamos um único master.
É bom notar que há mais uma permissão extra Owner
(proprietário), que é declarada com a propriedade de configuração global SteamOwnerID
. Você não pode atribuir a permissão Owner
para ninguém aqui, já que a propriedade SteamUserPermissions
define apenas as permissões que estão relacionadas com a conta bot e não o ASF como um todo. Para tarefas relacionadas aos bots, SteamOwnerID
é tratado da mesma forma que Master
, então definir o seu SteamOwnerID
aqui não é necessário.
Tipo byte
com o valor padrão 60
. Normalmente o ASF lida com ofertas de troca assim que recebe a notificação, mas às vezes, por conta de alguma falha no Steam, não é possível tratá-la no exato momento, e tais ofertas de troca permanecem ignoradas até a próxima notificação de troca ou o reinício do bot, que pode fazer com que as negociações sejam canceladas ou os itens não estejam disponíveis no momento posterior. Se esse parâmetro estiver definido como um valor diferente de zero, o ASF verificará se há trocas pendentes a cada TradeCheckPeriod
minutos. O valor padrão levando em consideração o melhor balanço entre pedidos adicionais aos servidores Steam e a possível perda de trocas. No entanto, se você está usando o ASF apenas para coletar cartas e não planeja processar automaticamente quaisquer trocas recebidas, você pode definí-lo como 0
para desativar este recurso completamente. Por outro lado, caso seu bot participe da listagem STM do ASF ou forneça outros serviços automatizados como um bot de comércio, você pode querer diminuir este parâmetro para 15
minutos, para processar todas as negociações em tempo oportuno.
Tipo byte flags
com o valor padrão 0
. Essa propriedade define o comportamento do ASF quando estiver trocando, e é definida abaixo:
Valor | Nome | Descrição |
---|---|---|
0 | None | Sem preferências especiais de troca, padrão |
1 | AcceptDonations | Aceita trocas em que não estamos perdendo nada |
2 | SteamTradeMatcher | Participa passivamente de trocas do tipo STM. Visite a seção trocas para mais informações |
4 | MatchEverything | Requer que SteamTradeMatcher seja definido, e em combinação com ele - também aceita trocas ruins além de boas e neutras |
8 | DontAcceptBotTrades | Não aceita automaticamente as trocas loot de outras contas bot |
16 | MatchActively | Participa ativamente de trocas do tipo STM. Visite a seção ItemsMatcherPlugin para obter mais informações |
Por favor note que esta propriedade é um campo do tipo flags
, portanto é possível escolher qualquer combinação de valores disponíveis. Confira o mapeamento json se você quiser aprender mais. Não habilitar nenhum flag resultará na opção None
.
Para obter mais explicações sobre a lógica de trocas do ASF e uma descrição de cada flag disponível, visite a seção trocas.
Tipo ImmutableHashSet <byte>
com valor padrão de tipos de itens Steam 1, 3, 5
. Essa propriedade define que tipos de itens do Steam serão considerados para transferência entre bots durante o comando transfer
. O ASF garantirá que apenas itens definidos em TransferableTypes
serão incluídos na oferta de troca, portanto, essa propriedade permite que você escolha o que você deseja receber em uma oferta de troca que está sendo enviada para um de seus bots.
Valor | Nome | Descrição |
---|---|---|
0 | Unknown | Qualquer item que não se encaixa em nenhuma das opções abaixo |
1 | BoosterPack | Pacote de cartas contendo 3 cartas aleatórias de um jogo |
2 | Emoticon | Emoticons para uso na Conversa Steam |
3 | FoilTradingCard | Versão brilhante da Carta Colecionável
|
4 | ProfileBackground | Fundo de perfil para usar em seu Perfil Steam |
5 | TradingCard | Cartas colecionáveis Steam, sendo usadas para fabricar insígnias (não brilhantes) |
6 | SteamGems | Gemas Steam usadas para criar pacotes de cartas, incluindo as empacotadas |
7 | SaleItem | Itens especiais ganhos durante as promoções Steam |
8 | Consumable | Consumíveis especiais que desaparecem após serem usados |
9 | ProfileModifier | Itens especiais que podem modificar a aparência do Perfil Steam |
10 | Adesivo | Itens especiais que podem ser usados na Conversa Steam |
11 | ChatEffect | Itens especiais que podem ser usados na Conversa Steam |
12 | MiniProfileBackground | Plano de fundo especial para o Perfil Steam |
13 | AvatarProfileFrame | Moldura do avatar especial para o Perfil Steam |
14 | AnimatedAvatar | Avatar animado especial para o Perfil Steam |
15 | KeyboardSkin | Skin especial de teclado para Steam deck |
16 | StartupVideo | Vídeo de inicialização especial para o Steam deck |
Observe que, independentemente das configurações acima, o ASF solicitará apenas itens da comunidade Steam (appID
753, contextID
6), excluindo assim todos os itens de jogos, presentes e similares da proposta de troca por definição.
A configuração padrão do ASF baseia-se no uso mais comum do bot, transferindo apenas pacotes de cartas e cartas colecionáveis (incluindo as brilhantes). A propriedade definida aqui permite que você mude esse comportamento da forma que te satisfaça. Por favor, tenha em mente que todos os tipos não definidos acima serão classificados como Unknown
, o que é especialmente importante quando a Valve libera um novo item da Steam, que será marcado como Unknown
pelo ASF também, até que seja adicionado aqui (em uma versão futura). É por isso que, em geral, não é recomendado incluir o tipo Unknown
em seu TransferableTypes
, a menos que você saiba o que está fazendo, e compreende também que o ASF enviará seu inventário inteiro em uma oferta de troca se a rede Steam der algum problema novamente e reportar todos os seus itens como Unknown
. Minha sugestão é não incluir tipo Unknown
em TransferableTypes
, mesmo que você espere transferir tudo.
Tipo bool
com valor padrão true
. Esta propriedade define se o ASF deve usar o mecanismo de chaves de login para essa conta Steam. O mecanismo de chaves de login funciona de forma muito semelhante a opção "lembrar-me neste computador" do cliente oficial do Steam, que permite que o ASF armazene e use a chave de login temporária para a próxima tentativa de conexão, ignorando a necessidade de fornecer a senha, Steam Guard ou código 2FA, enquanto nossa chave de login for válida. A chave de login é armazenada no arquivo BotName.db
e atualizada automaticamente. É por isso que você não precisa fornecer senha/SteamGuard/código 2FA após se conectar com o ASF uma vez.
Chaves de login são usadas por padrão para sua conveniência, portanto você não precisa inserir o SteamPassword
, SteamGuard ou o código 2FA (quando não usar o ASF 2FA) em cada login. Também é uma excelente alternativa, já que a chave de login pode ser usada apenas uma única vez e não revela sua senha original de forma alguma. Exatamente o mesmo método é usado pelo seu cliente Steam original, que salva seu nome de usuário e chave de login para a sua próxima tentativa de conexão, sendo efetivamente o mesmo que usar SteamLogin
com UseLoginKeys
e SteamPassword
vazio no ASF.
No entanto, algumas pessoas podem ficar preocupadas até mesmo com esse pequeno detalhe, portanto esta opção está disponível aqui para o caso de você querer garantir que o ASF não armazene nenhum tipo de token que permitiria retomar a sessão anterior após ela ser fechada, o que resultará na autenticação sendo totalmente obrigatória em cada tentativa de logon. Desabilitar essa opção vai funcionar exatamente da mesma forma que não marcar a opção "Lembrar-me neste computador" no cliente Steam oficial. A menos que você saiba o que está fazendo, você deve mantê-la com o valor true
padrão.
Tipo byte
com o valor padrão 0
. Esta propriedade especifica o modo de interface do usuário com o qual o bot será anunciado após fazer login na rede Steam. Isso pode influenciar como a conta é visível, por exemplo, no chat do Steam, se a sua presença permitir isso através de OnlineStatus
. Atualmente você pode escolher um dos modos abaixo:
Valor | Nome | Descrição |
---|---|---|
0 |
VGUI | Modo cliente Steam padrão |
1 |
Tenfoot | Modo Big Picture |
2 |
Mobile | Aplicativo móvel Steam |
3 |
Web | Sessão do navegador da Web |
4 |
ClientUI | |
5 |
MobileChat | Aplicativo de chat móvel Steam |
6 |
EmbeddedClient |
Nem todos os modos podem ter algum efeito. Além disso, você pode se interessar em verificar OnlinePreferences
, já que alguns recursos adicionais são habilitados lá. Caso você não tem certeza de como definir essa propriedade, deixe-a com o valor padrão 0
.
O ASF usa uma estrutura de arquivos bem simples.
├── 📁 config
│ ├── ASF.json
│ ├── ASF.db
│ ├── Bot1.json
│ ├── Bot1.db
│ ├── Bot2.json
│ ├── Bot2.db
│ └── ...
├── ArchiSteamFarm.dll
├── log.txt
└── ...
Para mover o ASF para um novo local, por exemplo, outro PC, basta mover/copiar a pasta config
, e essa é a forma recomendada de se fazer qualquer "backup do ASF", já que você sempre pode baixar as partes (programa) restantes do GitHub, sem arriscar comprometer arquivos internos do ASF, por um backup falho, por exemplo.
O arquivo log.txt
contém o registro gerado pela última execução do ASF. Esse arquivo não contem nenhuma informação confidencial, e é extremamente útil quando acontecem problemas, travamentos ou simplesmente como informação sobre o que aconteceu na última vez que o ASF foi executado. Muitas vezes nós pediremos por esse arquivo se você se deparar com problemas. O ASF administra automaticamente esse arquivo para você, mas você pode fazer ajustes no módulo logging do ASF se você for um usuário avançado.
A pasta config
é onde fica a configuração do ASF, incluindo todos os seus bots.
ASF.json
é o arquivo de configuração global do ASF. Esta configuração é usada para especificar como o ASF se comporta como um processo, o que afeta todos os bots e o próprio programa. Você pode encontrar propriedades globais aqui, tal como a do proprietário do processo ASF, atualizações automáticas ou depuração.
BotName.json
é um arquivo de configuração de determinada conta bot. Esta configuração é usada para especificar como determinado bot se comporta, portanto, essas configurações são específicas para esse bot e não é compartilhada com os outros. Isso permite que você configure bots com várias configurações diferentes e não necessariamente todos eles trabalhando exatamente da mesma forma. Cada bot é nomeado com um identificador único, escolhido por você no BotName
.
Além dos arquivos de configuração, o ASF também usa a pasta config
para armazenar bancos de dados.
ASF.db
é o arquivo de banco de dados global do ASF. Ele atua como um armazenamento global persistente e é usado para salvar várias informações relacionadas ao processo ASF, tais como IPs de servidores locais Steam. Não edite este arquivo.
BotName.db
é um arquivo de banco de dados de determinada conta bot. Este arquivo é usado para armazenar dados cruciais sobre determinada conta bot em uma armazenamento persistente, como chaves de login ou ASF 2FA. Não edite este arquivo.
BotName.keys
é um arquivo especial que pode ser usado para importar keys para o ativador de jogos em segundo plano. Ele não é obrigatório e nem gerado pelo ASF, mas reconhecido por ele. Esse arquivo é apagado automaticamente quando as keys são importadas com sucesso.
BotName.maFile
é um arquivo especial que pode ser usado para importar o ASF 2FA. Ele não é obrigatório e nem gerado pelo ASF, mas reconhecido por ele se o seu BotName
ainda não usa o ASF 2FA. Esse arquivo é apagado automaticamente quando o ASF 2FA for importado com sucesso.
Cada propriedade de configuração tem seu tipo. O tipo da propriedade define os valores que são válidos para ela. Você só pode usar valores que são válidos para cada campo - se você usar um valor inválido o ASF não será capaz de analisar sua configuração.
É altamente recomendado usar o ConfigGenerator (Gerador de Configuração) para gerar as configurações - ele lida com a maioria das coisas de baixo nível (tais como validação de tipos) para você, então você só precisa definir valores adequados e você também não precisa entender de tipos de variáveis especificados abaixo. Esta seção é dedicada principalmente para as pessoas que querem gerar/editar as configurações manualmente, para que elas saibam quais valores podem usar.
Os tipos usados pelo ASF são nativos do C#, e são especificados abaixo:
bool
- Tipo booleano que aceita apenas os valores true
(verdadeiro) e false
(falso).
Exemplo: "Enabled": true
byte
- Tipo byte sem sinal, aceita apenas números inteiros de 0
a 255
(inclusive).
Exemplo: "ConnectionTimeout": 90
ushort
- Tipo short sem sinal, aceita apenas números inteiros de 0
a 65535
(inclusive).
Exemplo: "WebLimiterDelay": 300
uint
- Tipo integral sem sinal, aceita apenas números inteiros de 0
a 4294967295
(inclusive).
ulong
- Tipo integral longo sem sinal, aceita apenas números inteiros de 0
a 18446744073709551615
(inclusive).
Exemplo: "SteamMasterClanID": 103582791440160998
string
- Cadeia de caracteres, aceita qualquer sequência de caracteres, incluindo sequência vazia ""
e null
. Sequências vazias e valores null
são tratados da mesma forma pelo ASF, então você decide qual quer usar (nós preferimos null
).
Exemplos: "SteamLogin": null
, "SteamLogin": ""
, "SteamLogin": "MeuNomeDeUsuário"
Guid?
- Tipo UUID anulável, codificado como string em JSON. O UUID é composto de 32 caracteres hexadecimais, no intervalo de 0
a 9
e a
até f
. O ASF aceita uma variedade de formatos válidos - minúsculas, maiúsculas, com e sem traços. Além de um UUID válido, uma vez que essa propriedade é anulável, o valor especial null
é aceito para indicar a falta de UUID a fornecer.
Exemplos: "LicenseID": null
, "LicenseID": "f6a0529813f74d119982eb4fe43a9a24"
ImmutableList<valueType>
- Coleção (lista) imutável de valores de determinado valueType
. Em JSON, é definido como uma matriz de elementos de determinado valueType
. O ASF usa a List
para indicar que determinada propriedade suporta vários valores e que sua ordem pode ser relevante.
Exemplo de ImmutableList<byte>
: "FarmingOrders": [15, 11, 7]
ImmutableHashSet<valueType>
- Coleção (conjunto) imutável de valores únicos de determinado valueType
. Em JSON, é definido como uma matriz de elementos de determinado valueType
. O ASF usa o HashSet
para indicar que dada propriedade faz sentido apenas para valores únicos e que sua ordem não importa, portanto ele vai ignorar qualquer potencial duplicata durante a análise (se aconteceu de você colocar alguma).
Exemplo de ImmutableHashSet <uint>
: "Blacklist": [267420, 303700, 335590]
ImmutableDictionary<keyType, valueType>
- Dicionário (mapa) imutável que mapeia uma chave única especificada em keyType
, para o valor especificado em valueType
. Em JSON, é definida como um objeto com pares de valor chave. Tenha em mente que o keyType
deve estar sempre entre aspas, mesmo se for um valor do tipo ulong
. Há também uma exigência rigorosa de a chave ser exclusiva através do mapeamento, desta vez imposta também pelo JSON.
Exemplo de ImmutableDictionary<ulong, byte>
:"SteamUserPermissions": { "76561198174813138": 3, "76561198174813137": 1 }
flags
- Atributos flag combinam diversas propriedades diferentes em um valor final aplicando operações bit a bit. Isso permite que você escolha qualquer combinação possível de vários valores diferentes ao mesmo tempo. O valor final é construído pela soma dos valores de todas as opções habilitadas.
Por exemplo, dados os valores seguintes:
Valor | Nome |
---|---|
0 | None |
1 | A |
2 | B |
4 | C |
Usar B + C
resultaria no valor 6
, usar A + C
resultaria no valor 5
, usar C
resultaria no valor 4
e assim por diante. Isso permite que você crie qualquer combinação possível de valores permitidos - se você decidir habilitar todos eles, fazendo None + A + B + C
, você teria o valor 7
. Note também que um flag com o valor 0
é ativado por definição em todas as outras combinações possíveis, embora muitas vezes seja um flag que não habilite nada específico (tal como None
).
Então como você pode ver, n oexemplo acima temos 3 flags disponíveis para ligar/desligar (A
, B
, C
) e total de 8
valores possíveis:
None -> 0
A -> 1
B -> 2
A + B -> 3
C -> 4
A + C -> 5
B + C -> 6
A + B + C -> 7
Exemplo: "SteamProtocols": 7
Devido a limitações do JavaScript não ser capaz de serializar corretamente simples campos ulong
em JSON ao usar o Gerador de configuração baseado na web, campos ulong
serão renderizados como strings com o prefixo s_
na configuração resultante. Isso inclui, por exemplo, "SteamOwnerID": 76561198006963719
que será escrito pelo ConfigGenerator como "s_SteamOwnerID": "76561198006963719"
. O ASF inclui uma lógica adequada para lidar automaticamente com o mapeamento dessas strings, então as entradas s_
no seu arquivo de configuração são válidas e corretamente geradas. Se você estiver gerando o arquivo de configuração por sua conta, recomendamos manter os campos ulong
iguais ao original, porém, caso você não possa fazer isso, você também pode seguir este esquema e codificá-las como strings com o prefixo s_
adicionado aos seus nomes. Esperamos resolver essa limitação do JavaScript um dia.
É prioridade máxima do ASF se manter compatível com configurações antigas. Como você já deve saber, propriedades de configuração vazias são tratadas como se estivesse com seus valores padrão. Portanto, se novas propriedades de configuração forem introduzidas em novas versões do ASF, todas as suas configurações se manterão compatíveis com a nova versão, e o ASF tratará a nova propriedade de configuração como se definida com o valor padrão. Você sempre pode adicionar, remover ou editar as propriedades de configuração conforme sua necessidade.
Recomendamos limitar a definição de propriedades de configuração para apenas aquelas que você quer mudar, já que dessa forma você automaticamente herda os valores padrão de todas as demais, não apenas mantendo sua configuração limpa mas também aumentando a compatibilidade caso a gente decida mudar o valor padrão de uma propriedade que você não quer mudar por conta própria (por exemplo o WebLimiterDelay
).
Devido ao citado acima, o ASF migrará/otimizará automaticamente suas configurações, reformatando-as e removendo os campos que possuem valor padrão. Você pode desabilitar esse comportamento com o argumento de linha de comando --no-config-migrate
se você tiver um motivo específico para tal, por exemplo, caso você esteja fornecendo arquivos de configuração somente leitura e você não quer que o ASF os modifique.
O ASF está ciente de configurações sendo modificadas "em tempo real" - graças a isso, o ASF automaticamente:
- Criar (e iniciar, caso necessário) um novo bot, quando você criar a configuração do mesmo
- Parar (caso necessário) e remover o bot antigo, quando você excluir a sua configuração
- Parar (e iniciar, caso necessário) qualquer bot, quando você editar a configuração do mesmo
- Reiniciar (caso necessário) o bot com novo nome, quando você renomear sua configuração
Todas as ações acima serão feitas automaticamente, sem a necessidade de reiniciar o programa, ou matar os o processo de outros bots (não afetados pelas mudanças).
Além disso, o ASF também se reiniciará (se o AutoRestart
permitir) caso você modifique a configuração global do ASF ASF.json
. Da mesma forma, o programa será encerrado se você excluir ou renomeá-lo.
Você pode desabilitar esse comportamento com o argumento de linha de comando --no-config-watch
se você tiver um motivo específico para tal, por exemplo, caso você não queira que o ASF reaja a mudanças de nomes de arquivos na pasta config
.
- 🏡 Início
- 🔧 Configuração
- 💬 Perguntas frequentes
- ⚙️ Primeiros passos (comece aqui)
- 👥 Ativador de códigos em segundo plano
- 📢 Comandos
- 🛠️ Compatibilidade
- 🧩 ItemsMatcherPlugin
- 📋 Gerenciamento
- ⏱️ Desempenho
- 📡 Comunicação remota
- 👪 Compartilhamento de Biblioteca Steam
- 🔄 Trocas
- ⌨️ Argumentos de linha de comando
- 🚧 Depreciação
- 🐳 Docker
- 🤔 Perguntas frequentes adicionais
- 🚀 Configuração de alto desempenho
- 🔗 IPC
- 🌐 Localização
- 📝 Registros
- 💾 Configuração para baixo consumo de memória
- 🕵🏼♂️ MonitoringPlugin
- 🔌 Plugins
- 🔐 Segurança
- 🧩 SteamTokenDumperPlugin
- 📦 Aplicativos de terceiros
- 📵 Autenticação em duas etapas