-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Configuration zh HK
ๆญค้ ้ขๅฐ้็จๆผ ASF ้
็ฝฎใ ๆไพ้ๆผ config
็ฎ้็ๅฎๆดๆไปถ๏ผๅ
่จฑๆจไพ็
งๆจ็้ๆฑ่ชฟๆด ASFใ
- ไป็ดน
- ็ถฒ้ ่จญๅฎๆช็ข็ๅจ
- ASF-ui configuration
- ๆๅ้ ็ฝฎ
- ๅ จๅ้ ็ฝฎ
- ๆฉๆขฐไบบ้ ็ฝฎ
- ๆชๆก็ตๆง
- JSON ๆ ๅฐ
- ๅ ผๅฎนๆงๆ ๅฐ
- ้ ็ฝฎๅ ผๅฎนๆง
- ่ชๅ้่ผ
ASF้
็ฝฎๅ็บๅ
ฉๅไธป่ฆ้จๅโโๅ
จๅ๏ผๆต็จ๏ผ้
็ฝฎๅๆฏๅๆฉๆขฐไบบ็้
็ฝฎใ ๆฏๅๆฉๆขฐไบบ้ฝๆ่ชๅทฑ็ๆฉๆขฐไบบ่จญๅฎๆช๏ผๅ็บ BotName.json
๏ผๅ
ถไธญ BotName
ๆฏๆฉๆขฐไบบ็ๅ็จฑ๏ผ๏ผ่ๅ
จๅ ASF๏ผ้ฒ็จ๏ผ้
็ฝฎๆฏไธๅๅ็บ ASF.json
็ๆชใ
ๆฏๅๆฉๆขฐไบบ้ฝๆฏไธๅๅจ ASF ้ฒ็จไธญ้่ก็็จ็ซ็ Steam ๅธณๆถใ ็บไบ่ฝๅค ๆญฃๅธธๅทฅไฝ๏ผASF ้่ฆๅฎ็พฉ่ณๅฐไธๅๆฉๆขฐไบบๅฏฆไพใ ๆฉๆขฐไบบๅฏฆไพๆฒๆ้็จๅผทๅถ้ๅถ๏ผๅ ๆญคๆจๅฏไปฅๆ นๆ้่ฆไฝฟ็จไปปๆๆธ้็ๆฉๆขฐไบบ(Steamๅธณๆถ)ใ
ASFไฝฟ็จ JSON ๆ ผๅผไพๅญๅฒๅ ถ่จญๅฎๆชใ ๅฎๆฏไบบๆงๅ็ใๅฏ่ฎ็ใๅปฃๆณ้ฉ็จ็ๆ ผๅผ๏ผๆจๅฏไปฅๅจๅ ถไธญๅฐ็จๅผ้ฒ่ก้ ็ฝฎใ ไธ้ไธ็จๆๅฟ๏ผๆจไธ้่ฆ็บไบ้ ็ฝฎ ASF ๅปๅฐ้ไบ่งฃ JSONใ ๆๆๅฐๅฎๅชๆฏ่ๆ ฎๅฐๆจๅฏ่ฝๆๆณ่ฆไฝฟ็จๆ็จฎ Bash ่ ณๆฌๆน้ๅตๅปบๅคง้ ASF ้ ็ฝฎๆชๆกใ
Configuration can be done in several ways. You can use our Web-based ConfigGenerator, which is a local app independent of ASF. You can use our ASF-ui IPC frontend for configuration done directly in ASF. Lastly, you can always generate config files manually, as they follow fixed JSON structure specified below. We'll explain shortly the available options.
The purpose of our Web-based ConfigGenerator is to provide you with a friendly frontend that is used for generating ASF configuration files. ็ถฒ้ ่จญๅฎๆช็ข็ๅจๆฏ100% ๅบๆผ็จๆถ็ซฏ็๏ผ้ๆๅณ่ๆจ่ผธๅ
ฅ็่ฉณ็ดฐ่ณ่จ้ฝไธๆ่ขซไธๅณ๏ผ่ๅชๅจๆฌๅฐ่็ใ ้ไฟ่ญไบๅฎๅ
จๆงๅๅฏ้ ๆง๏ผๅ ็บๅฆๆๆจ้กๆไธ่ผๆๆ็ธ้ๆชๆก๏ผไฝตๅจๆจๅๆ็็่ฆฝๅจไธญๆ้ๅ
ถไธญ็ index.html
๏ผๅฎ็่ณๅฏไปฅโ**้ข็ท**โๅทฅไฝใ
็ถฒ้ ่จญๅฎๆช็ข็ๅจๅทฒ็ถๅจ Chrome ๅ Firefox ไธ็ถ้้ฉ่ญๅฏไปฅๆญฃๅธธ้่ก๏ผไฝๅฎไนๆ่ฉฒๅฏไปฅๅจๆๆๆต่ก็ๆฏๆด JavaScript ็็่ฆฝๅจไธญๆญฃๅธธๅทฅไฝใ
ๅฎ็็จๆณ้ๅธธ็ฐกๅฎโโๅๆๅฐๆญฃ็ขบ็ๆจ็ฐฝไพ้ธๆ่ฆ็ๆ ASF
่จญๅฎๆช้ๆฏ Bot๏ผๆฉๆขฐไบบ๏ผ
่จญๅฎๆช๏ผ็ขบไฟๆ้ธ่จญๅฎๆช็็ๆฌ่ๆจ็ ASF ็ๆฌ็ธๅน้
๏ผ็ถๅพ่ผธๅ
ฅๆๆ่ฉณ็ดฐไฟกๆฏไธฆ้ปๆใไธ่ผใๆ้ใ ๅฐๆญคๆช็งปๅๅฐ ASF config
็ฎ้๏ผๅฆๆ้่ฆ๏ผๅฐ่ฆ่็พๆๆชใ ๅฆๆ่ฆ็นผ็บ้
็ฝฎ๏ผๅ้่ฆไปฅไธๆไฝ๏ผไธฆๅ่ๆฌ้ ็ๅ
ถไป้จๅไปฅไบ่งฃๆๆๅฏ็จ็้ธ้
ใ
Our ASF-ui IPC interface allows you to configure ASF as well, and is superior solution for reconfiguring ASF after generating the initial configs due to the fact that it can edit the configs in-place, as opposed to Web-based ConfigGenerator which generates them statically.
In order to use ASF-ui, you must have our IPC interface enabled itself. IPC
is enabled by default, therefore you can access it right away, as long as you didn't disable it yourself.
After launching the program, simply navigate to ASF's IPC address. If everything worked properly, you can change ASF configuration from there as well.
In general we strongly recommend using either our ConfigGenerator or ASF-ui, as it's much easier and ensures you won't make a mistake in the JSON structure, but if for some reason you don't want to, then you can also create proper configs manually. Check JSON examples below for a good start in proper structure, you can copy the content into a file and use it as a base for your config. Since you're not using any of our frontends, ensure that your config is valid, as ASF will refuse to load it if it can't be parsed. Even if it's a valid JSON, you also have to ensure that all the properties have the proper type, as required by ASF. For proper JSON structure of all available fields, refer to JSON mapping section and our documentation below.
ๅ
จๅ้
็ฝฎไฝๆผ ASF.json
ๆชไธญ๏ผๅ
ทๆไปฅไธ็ตๆง๏ผ
{
"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
}
ไปฅไธๆฏๅฐๆๆ้ธ้ ็่งฃ้๏ผ
้ ่จญๅผ็บ true
็ bool
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉๆฏๅฆๅ
่จฑ ASF ๅจ้่ฆๆ่ช่ก้ๅใ ๆไธไบไบไปถ้่ฆ ASF ่ช่ก้ๅ๏ผไพๅฆ ASF ๆดๆฐ๏ผ้้ UpdatePeriod
ๆ update
ๅฝไปคๅฎๆ๏ผ๏ผไปฅๅ ASF.json
้
็ฝฎ็็ทจ่ผฏใrestart
ๅฝไปค็ญใ ้ๅธธๆ
ๆณไธ๏ผ้ๅๅ
ๆฌๅ
ฉๅ้จๅโโๅตๅปบๆฐๆต็จๅๅฎๆ็ถๅๆต็จใ ไฝๆฏ๏ผๅคงๅคๆธไฝฟ็จ่
ๆ่ฉฒๅฏไปฅไฝฟ็จๅฎไธฆไฟ็ๅฑฌๆง้ ่จญๅผ็บ true
โโๅฆๆๆจๆญฃๅจ้้่ชๅทฑ็่
ณๆฌ้่ก ASF๏ผๆ่
ไฝฟ็จ dotnet
้่ก ASF๏ผๅๅฏ่ฝๅธๆๅฎๅ
จๆงๅถ้ฒ็จ็ๅๅ๏ผไธฆ้ฟๅ
ไปฅไธๆ
ๆณ๏ผไฝฟๆฐ็๏ผ้ๅ๏ผASF้ฒ็จๅจๅพๅฐ้้ป้่ก๏ผ่ไธๆฏๅจ่
ณๆฌ็ๅๆฏไธญ้่ก๏ผ้ไบ้ฒ็จ่่็ASF้ฒ็จไธ่ตท้ๅบใ ่ๆ
ฎๅฐๆฐ็ๆต็จๅฐไธๅๆฏๆจๅๆๆต็จ็็ดๆฅๅๆฏ๏ผ้ไธ้ปๅฐคๅ
ถ้่ฆ๏ผ้ๅฐไฝฟๆจ็กๆณไฝฟ็จๆจๆบ็ไธปๆงๅฐ่ผธๅ
ฅใ
ๅจๆญคๅฑฌๆงๅ
็บๆจๆๅ็ๆ
ๆณไธ๏ผๆจๅฏไปฅๅฐๅ
ถ่จญ็ฝฎ็บ false
ใ ไฝๆฏ๏ผ่ซ่จไฝ๏ผๅจ้็จฎๆ
ๆณไธ ๆจ ่ฒ ่ฒฌ้ๅ้ฒ็จใ ้ๅจๆ็จฎ็จๅบฆไธๅพ้่ฆ๏ผๅ ็บASFๅฐๅ
้ๅบ๏ผ่้็ๆๆฐ็้ฒ็จ๏ผไพๅฆๆดๆฐๅพ๏ผ๏ผๅ ๆญค๏ผๅฆๆๆจๆฒๆๆทปๅ ้่ผฏ๏ผๅฎๅฐๅๆญขๅทฅไฝ๏ผ็ดๅฐๆจๅๆฌกๅๅๅฎใ ASF็ธฝๆฏไฝฟ็จๆ็คบๆๅ๏ผ้ถ๏ผๆ้ๆๅ๏ผ้้ถ๏ผ็้ฏ่ชคไปฃ็ขผ้ๅบ๏ผ้ๆจฃๆจๅฐฑๅฏไปฅๅจ่
ณๆฌไธญๆทปๅ ๅ้ฉ็้่ผฏ๏ผๅพ่้ฟๅ
ๅจๅบ็พๆ
้ๆ่ชๅ้ๅASF๏ผๆ่
่ณๅฐ่ฃฝไฝ log.txt
็ๆฌๆฉ่คๆฌไปฅ็ฒๅพ้ฒไธๆญฅ็ๆ็จๅๆใ ้่ฆ่จไฝ๏ผ็ก่ซๆญคๅฑฌๆง่จญ็ฝฎ็ๆนๅผๅฆไฝ๏ผrestart
ๅฝไปค้ฝๅฐๅง็ต้ๅ ASF๏ผๅ ็บๆญคๅฑฌๆงๅฎ็พฉ้ ่จญ่ก็บ๏ผ่ restart
ๅฝไปคๅง็ตๆ้ๆฐๅๅ้ฒ็จใ ้ค้ๆจๆ็็ฑ็ฆ็จๆญคๅ่ฝ๏ผๅฆๅๆไฟๆๅ็จๅฎใ
้ ่จญๅผ็บ็ฉบ็ ImmutableHashSet<uint>
้กๅใ As the name suggests, this global config property defines appIDs (games) that will be entirely ignored by automatic ASF farming process. ไธๅนธ็ๆฏ๏ผSteamๅๆญกๅฐๅคๅญฃ/ๅฌๅญฃ้ทๅฎๅพฝ็ซ ๆจ่จ็บใๆๅกๆ่ฝใ๏ผ้ๆฌบ้จไบASF้ฒ็จ๏ผไฝฟๅ
ถ็ธไฟก้ๆฏไธๅๅฏไปฅๆๅก็้ๆฒใ ๅฆๆๆฒๆไปปไฝ้ปๅๅฎ๏ผASFๆ็ตๆใๆใไธๅๅนถไธๅญๅจ็้ๆฒ๏ผไธฆ็ก้็ญๅพ
๐ฃดๅญๅจ็ๅก็ๆ่ฝใ ASF้ปๅๅฎ็็ฎ็ๆฏๅฐ้ไบๅพฝ็ซ ๆจ่จ็บไธๅฏๆๅก๏ผๅ ๆญค๏ผๆๅๅจๆๅกๆๅฏไปฅๅฟฝ่ฆ้ไบๅพฝ็ซ ๏ผ่้ฟๅ
่ฝๅ
ฅ้ท้ฑใ
ASF includes two blacklists by default - SalesBlacklist
, which is hardcoded into the ASF code and not possible to edit, and normal Blacklist
, which is defined here. SalesBlacklist
is updated together with ASF version and typically includes all "bad" appIDs at the time of release, so if you're using up-to-date ASF then you do not need to maintain your own Blacklist
defined here. ๆญคๅฑฌๆง็ไธป่ฆ็ฎ็ๆฏๅ
่จฑๆจๅฐๅจASF็ผไฝๆๆช็ฅ็ๆฐappIDs่จญ็ฝฎ็บ้ปๅๅฎ๏ผไธไบๆๅกใ Hardcoded SalesBlacklist
is being updated as fast as possible, therefore you're not required to update your own Blacklist
if you're using latest ASF version, but without Blacklist
you'd be forced to update ASF in order to "keep running" when Valve releases new sale badge - I don't want to force you to use latest ASF code, therefore this property is here to allow you "fixing" ASF yourself if you for some reason don't want to, or can't, update to new hardcoded SalesBlacklist
in new ASF release, yet you want to keep your old ASF running. ้ค้ๆจๆๅผท็็ไฟฎๆนๆ้ก๏ผๅฆๅๆไฟๆๅฎ็บ้ข่จญๅผใ
If you're looking for bot-based blacklist instead, take a look at fb
, fbadd
and fbrm
commands.
้ ่จญๅผ็บ ๏ผ
็ string
้กๅใ ๆญคๅฑฌๆงๆๅฎ็จๆผASF**ๅฝไปค** ็ๅคงๅฐๅฏซๆๆ ้ฆ็ขผใ ๆๅฅ่ฉฑ่ชช๏ผ้ๆฏๆจ้่ฆๅจๆฏๅ ASF ๅฝไปคไนๅๅ ไธ็ๅ
งๅฎน๏ผไปฅไฝฟASFๅต่ฝๅฝไปคใ ๅฏไปฅๅฐๆญคๅผ่จญ็ฝฎ็บ null
ๆ็ฉบ๏ผไปฅ่ฎ ASF ไธไฝฟ็จๅฝไปค้ฆ็ขผ๏ผๅจ้็จฎๆ
ๆณไธ๏ผๆจๅฏไปฅไฝฟ็จๅ
ถๆฎ้่ญๅฅ็ขผ่ผธๅ
ฅๅฝไปคใ ไฝๆฏ๏ผ้ๆจฃๅๅฏ่ฝๆ้ไฝASF็ๆง่ฝ๏ผๅ ็บASF ็ถ้ๅชๅ๏ผๅฆๆไธๅพ CommandPrefix
้ๅง๏ผๅฐฑไธๆ้ฒไธๆญฅๅๆๆถๆฏโโๅฆๆๆจๆๆๆฑบๅฎไธไฝฟ็จๅฎ๏ผASFๅฐ่ขซ่ฟซ่ฎๅๆๆๆถๆฏไธฆๅฐๅ
ถๅๅบๅๆ๏ผๅณไฝฟๅฎๅไธๆฏASF ๅฝไปคใ ๅ ๆญค๏ผๅฆๆๆจไธๆณไฝฟ็จ้ ่จญๅผ !
๏ผๅปบ่ญฐๆจ็นผ็บไฝฟ็จๆไบ CommandPrefix
๏ผๅฆ /
ใ ็บไบไฟๆไธ่ด๏ผ CommandPrefix
ๆๅฝฑ้ฟๆดๅ ASF ้ฒ็จใ ้ค้ๆจๆๅ
ๅ็ไฟฎๆน็็ฑ๏ผๅฆๅๆไฟๆๅฎ็บ้ ่จญๅผใ
้ๆฏไธๅ้ ่จญๅผ็บ10
็byte
้กๅๅฑฌๆงใ ASFๅฐ็ขบไฟๅ
ฉๆฌก2FA็ขบ่ช่ซๆฑไน้่ณๅฐๆConfirmationsLimiterDelay
็ง็ๆๅปถ๏ผไปฅๅ
่งธ็ผ้็้ๅถโโ้ๅฐ็จๆผ**ASF 2FAๅท่ก2faok
ๅฝไปคๆๅ
ถไปไบคๆ็ธ้ๆไฝใ ้ ่จญๅผๅบๆผๆๅ็ๆธฌ่ฉฆ่จญๅฎ, ๅฆๆๆจไธๆณ้ๅฐๅ้ก, ๅไธๆ้ไฝ้ ่จญๅผใ ้ค้ๆจๆๅผท็**็ไฟฎๆนๆ้ก๏ผๅฆๅๆไฟๆๅฎ็บ้ข่จญๅผใ
้ๆฏไธๅ้ ่จญๅผ็บ90
็ byte flags
้กๅๅฑฌๆงใ ๆญคๅฑฌๆงๅฎ็พฉ ASFๅท่ก็ๅ็จฎ็ถฒ่ทฏๆไฝ็่ถ
ๆ (ไปฅ็ง็บๅฎไฝ)ใ ็ฐก่่จไน, ConnectionTimeout
ๅฎ็พฉไบ HTTP ๅ IPC ่ซๆฑ็่ถ
ๆ(็งๆธ๏ผ, ConnectionTimeout
ๅฎ็พฉไบๅคฑๆๆดปๅ่จ่็ๆๅคงๆธ้, ่ ConnectionTimeout/30
ๅฎ็พฉไบๆๅๅ
่จฑๅๅง Steam ็ถฒ่ทฏ้ฃๆฅ่ซๆฑ็ๅ้ๆธใ 90
็้ ่จญๅผๅฐๅคงๅคๆธไบบไพ่ชชๆ่ฉฒๆฏๅ้ฉ็๏ผไฝๆฏ๏ผๅฆๆๆจ็็ถฒ่ทฏ้ฃๆฅๆPC้ๅบฆ็ธ็ถๆ
ข๏ผๆจๅฏ่ฝๅธๆ็จๅพฎๅขๅคงๆญคๅผ๏ผๅฆ 120
๏ผใ ่ซ่จไฝ, ๅณไฝฟๆฏๆดๅคง็ๅผไบฆ็กๆณ็ฅๅฅๅฐไฟฎๅพฉ็ทฉๆ
ข็่ณ็กๆณ่จชๅ็ Steam ไผบๆๅจ, ๅ ๆญคๆๅไธๆ่ฉฒ็ก้็ญๅพ
ไธๆ็ผ็็ไบๆ
, ๅช้็จๅพๅ่ฉฆใ ๅฆๆๅฐๆญคๅผ่จญ็ฝฎๅพ้้ซ, ๅฐๅฐ่ดๆ็ฒ็ถฒ่ทฏๅ้ก็้ๅบฆๅปถ้ฒ, ไธฆ้ไฝๆด้ซๆง่ฝใ ๅฐๆญคๅผ่จญ็ฝฎๅพ้ไฝไนๆ้ไฝๆด้ซ็ฉฉๅฎๆงๅๆง่ฝ, ๅ ็บASFๅฐไธญๆญขไปๅจๅๆ็ๆๆ่ซๆฑใ ๅ ๆญค๏ผๅฐๆญคๅผ่จญ็ฝฎ็บไฝๆผ้ ่จญๅผ้ๅธธๆฒๆๅชๅข๏ผๅ ็บ Steamไผบๆๅจๅพๅพๆๆๆ้ๅธธๆ
ข๏ผไธฆไธๅฏ่ฝ้่ฆๆดๅค็ๆ้ไพๅๆASF่ซๆฑใ ้ ่จญๅผๆฏๅจ็ธไฟกๆๅ็็ถฒ่ทฏ้ฃๆฅๆฏ็ฉฉๅฎ็ๅๆท็่ธๆฑฝ็ถฒ่ทฏๅจ็ตฆๅฎ็่ถ
ๆไธ่็ๆๅ็่ซๆฑไน้็ๅนณ่กกใ ๅฆๆๆจๆณๆดๆฉๅฐ็ผ็พๅ้กไธฆไฝฟASF็้ๆฐ้ฃๆฅ/ๅๆ้ๅบฆๆดๅฟซ, ้ ่จญๅผๆ่ฉฒ่จญ็บ (ๆ็ฅไฝๆผ, ๅฆ 60
, ๅพ่ๆธๅฐASF ็็ญๅพ
ๆ้)ใ ๅฆๆๆจๆณจๆๅฐ ASF ้ๅฐไบ็ถฒ็ตกๅ้ก๏ผไพๅฆๅคฑๆ็่ซๆฑใๅคฑๅปๅฟ่ทณๆ่ Steam ็้ฃๆฅไธญๆท๏ผ้ฃ้บผๅฆๆๆจ็ขบๅฎๆญคๅ้กๆฏ็ฑๆจ็็ถฒ็ตก๏ผ่้Steamๆฌ่บซ้ ๆ๏ผๅๅขๅ ๆญคๅผๅฏ่ฝๆฏๆๆ็พฉ็๏ผๅ ็บๅขๅ ่ถ
ๆไฝฟASF ๆดโๆ่ๅฟโ๏ผ่ไธๆฏๆฑบๅฎ็ซๅณ้ๆฐ้ฃๆฅใ
ไธๅๅฏ่ฝ้่ฆๅขๅ ๆญคๅฑฌๆง็็คบไพๆ ๆณๆฏ่ฎASF่็ไธๅ้ๅธธๅทจๅคง็ไบคๆๆๆก๏ผๅฏ่ฝ้่ฆๅคงไบ2ๅ้็ๆ้ๆ่ฝ่ขซSteamๅฎๅ จๆฅๅไธฆ่็ใ ้้ๅขๅ ่ถ ๆ็้ ่จญๅผ, ๅจๆฑบๅฎๆพๆฃไบคๆไนๅ๏ผASF ๅฐๆดๆ่ๅฟ, ็ญๅพ ๆด้ท็ๆ้ใ
ๅฆไธ็จฎๆ ๆณๅฏ่ฝๆฏ็ฑๆผๆฉๅจๆไบ่ฏ็ถฒ้ฃๆฅ้ๅธธๆ ข, ้่ฆๆดๅค็ๆ้ไพ่็ๆญฃๅจๅณ่ผธ็่ณๆใ ้ๆฏ้ๅธธ็ฝ่ฆ็ๆ ๆณ, ๅ ็บCPU\ ็ถฒ่ทฏ้ ปๅฏฌๅนพไนๅพไพ้ฝไธๆฏ็ถ้ ธ, ไฝ้ไป็ถๆฏไธๅๅผๅพๆๅ็ๅฏ่ฝๆงใ
็ฐก่่จไน, ้ ่จญๅผๅจๅคงๅคๆธๆ ๆณไธๆ่ฉฒๆฏๅ้ฉ็, ไฝ่ฅ้่ฆ๏ผๆจๅฏ่ฝ่ฆๅขๅ ้ ่จญๅผใ ไธ้๏ผ้ ้ ้ซๆผ้ ่จญๅผไนๆฒๆๅคๅคงๆ็พฉ๏ผๅ ็บๆดๅคง็่ถ ๆไบฆ็กไฟฎๅพฉ็กๆณ่จชๅ็Steam ไผบๆๅจ็้ญๆณใ ้ค้ๆจๆๅ ๅ็ไฟฎๆน็็ฑ๏ผๅฆๅๆไฟๆๅฎ็บ้ ่จญๅผใ
้ ่จญๅผ็บ null
็ string
้กๅใ ้ ่จญๆ
ๆณไธ๏ผASFๅฐๅ่ฉฆไฝฟ็จๆจ็ๆไฝ็ณป็ตฑ่ช่จ๏ผไธฆไธๆด้กๆไฝฟ็จ่ฉฒ่ช่จไธญ็็ฟป่ญฏๅญไธฒ๏ผๅฆๆๅฏ็จ๏ผใ ้ๆๆ่ฌๆๅ็็คพๅๆๅก๏ผไปๅ่ดๅๆผๆจๅASFๅจๅ็จฎไธปๆต่ช่จไธญ็**ๆฌๅๅ**้ฒ็จใ ๅฆๆ็ฑๆผๆ็จฎๅๅ ๆจไธๆณไฝฟ็จๆฌๆฉ่ช่จ๏ผๅๅฏไปฅไฝฟ็จๆญค้
็ฝฎๅฑฌๆง้ธๆ่ฆไฝฟ็จ็ไปปไฝๆๆ่ช่จใ ๆ้ๆๆๅฏ็จ่ช็ณป็ๆธ
ๅฎ๏ผ่ซ่จชๅ **MSDN**ไธฆๆฅๆพ่ช่จๆจ็ฑค
ใ It's nice to note that ASF accepts both specific cultures, such as "en-GB"
, but also neutral ones, such as "en"
. ๆๅฎ็ถๅ่ช็ณป้ๅฏ่ฝๆๅฝฑ้ฟๅ
ถไปไพ่ณดๆผ่ช็ณป็่ก็บ๏ผๅฆ่ฒจๅนฃ/ๆฅๆๆ ผๅผ็ญใ ่ซๆณจๆ๏ผๅฆๆๆจ้ธๆ้ๆฌๆฉ่ช่จ๏ผๅๅฏ่ฝ้่ฆ้กๅค็ๅญ้ซ/่ช่จๅ
ไพๆญฃ็ขบ้กฏ็คบๆ้ธ่ช่จ็ๅญๅ
ใ ้ๅธธ๏ผๅฆๆๆจๆดๅๆญก่ฎASFไฝฟ็จ่ฑ่ช่ไธๆฏๆจ็ๆฏ่ช๏ผๅ้ไฝฟ็จๆญค้
็ฝฎๅฑฌๆงใ
้ ่จญๅผ็บ false
็ bool
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉ้ฒ็จๆฏๅฆๆๅจๅต้ฏๆจกๅผไธ้่กใ ๅจๅต้ฏๆจกๅผไธ๏ผASFๆๅจ config
ๆ้ๅตๅปบไธๅ็นๆฎ็ debug
็ฎ้๏ผ็จๆผ่ท่นคASFๅ Steam ไผบๆๅจไน้็ๆด้ซ้ไฟกใ ่ชฟ่ฉฆ่ณ่จๆๅฉๆผ็ผ็พ่็ถฒ็ตกๅไธ่ฌASFๅทฅไฝๆต็ธ้็ๆฃๆๅ้กใ ้คๆญคไนๅค๏ผๆไบ็จๅผๅธธๅผๅฐๆดๅ ่ฉณ็ดฐ๏ผไพๅฆ WebBrowser
ๅฐๆ่ชชๆ่ซๆฑๅคฑๆ็็ขบๅๅๅ โโ้ไบๆข็ฎๅฐ่ขซๅฏซๅ
ฅๆญฃๅธธ็ASFๆฅ่ชไธญใ ้ค้้็ผไบบๅกๆๅบ่ฆๆฑ๏ผๅฆๅๆจไธๆๅจๅต้ฏๆจกๅผไธ้่กASFใ ๅจๅต้ฏๆจกๅผ ไธ้่กASFๆ้ไฝๆง่ฝ๏ผไธๅฉๆผ็ฉฉๅฎๆง๏ผไธฆไธๆฏ ็ๆ้ๅค่จๆฏ๏ผๅ ๆญคๅปบ่ญฐ ๅ
้่ฆๆไฝฟ็จ๏ผไปฅ็จๆผ่ชฟ่ฉฆ็นๅฎๅ้กใ้็พ้ฏ่ชคๆ็ฒๅๆ้ๅคฑๆ่ซๆฑ็ๆดๅค่ณ่จ๏ผไฝ ไธๆๅจๆญฃๅธธๆ
ๆณไธ้่กๆญคๆจกๅผใ ๆจๅฐ็ๅฐไธๅ ๆฐ็้ฏ่ชคใๅ้กๅ็ฐๅธธโโๅฆๆๆจๆฑบๅฎ่ชๅทฑๅๆๆๆ้ไบๅ
งๅฎน๏ผ่ซ็ขบไฟๆจๅฐASFๅSteamๆๅ
ๅ็็ญ่งฃ๏ผๅ ็บไธฆ้ๆๆๅ
งๅฎน้ฝ่ๅ้ก็ธ้ใ
่ญฆๅ๏ผ ๅ็จๆญคๆจกๅผๅฐ่จ้ ๆฝๅจ็ๆๆ่ณ่จ๏ผๅฆ็ป้ๅๅ็จๆผ็ป้ๅฐSteam็ๅฏ็ขผ๏ผไปฅไฝ็ถฒ็ตกๆฅ่ช่จ้๏ผใ ้ไบ่ณๆๆขๅฏซๅ
ฅ debug
็ฎ้๏ผไนๅฏซๅ
ฅๆจๆบ log.txt
(ๆญค่ณ่จๅฐ่ขซ่ฉณ็ดฐๅฐ่จ้)ใ ๆจไธๆ่ฉฒๅจไปปไฝๅ
ฌๅ
ฑไฝ็ฝฎ็ผไฝ ASF็ๆ็่ชฟ่ฉฆๅ
งๅฎน๏ผASF ้็ผไบบๅกๅง็ตๆ้ๆจๆๅฐๅ
ถ็ผ้ๅฐไป็้ปๅญ้ตไปถๆๅ
ถไปๅฎๅ
จไฝ็ฝฎใ ๆๅไธๆๅฒๅญๆๅฉ็จ้ไบๆๆ่ณ่จ๏ผไปๅๅชๆฏไฝ็บๅฏ่ฝ็้ฏ่ชคๅ ็ด ่ขซ่จ้ๆผ่ชฟ่ฉฆๅ
งๅฎนไธญใ ๆๅๆดๅธๆๆจไธไปฅไปปไฝๆนๅผๆน่ฎASFๆฅ่ช่จ้๏ผไฝๅฆๆๆจๆๅฟ๏ผๆจๅฏไปฅ็ทจ่ผฏ้ไบๆๆ็็ดฐ็ฏใ
ๆจๅฏไปฅ็จ็นๆฎ็ฌฆ่ๆฟๆๆๆ็็ดฐ็ฏ๏ผไพๅฆ**ใ ไฝ ๆ่ฉฒ้ฟๅ ๅฎๅ จๅช้คๆๆ็ๆธๆ๏ผๅ ็บๅฎๅ็ๅญๅจๅฏ่ฝ่ๅ้ก็ธ้๏ผๆ่ฉฒไบไปฅไฟ็ใ
้ ่จญๅผ็บ null
็ string
้กๅใ In some scenarios ASF functions with a concept of a default bot responsible for handling something - for example IPC commands or interactive console when you don't specify target bot. This property allows you to choose default bot responsible for handling such scenarios, by putting its BotName
here. If given bot doesn't exist, or you use a default value of null
, ASF will pick first registered bot sorted alphabetically instead. Typically you want to make use of this config property if you want to omit [Bots]
argument in IPC and interactive console commands, and always pick the same bot as the default one for such calls.
้ๆฏไธๅ้ ่จญๅผ็บ15
็ byte flags
้กๅๅฑฌๆงใ ASFๆๅจๅทฅไฝๆๆฏFarmingDelay
ๅ้ๆชขๆฅ็ถๅๆๅก็้ๆฒๆฏๅฆๅทฒ็ถๆ่ฝไบๆๆ็ๅก็ใ ๅฐๆญคๅฑฌๆง่จญ็ฝฎๅพ้ไฝๅฏ่ฝๆๅฐ่ด็ผ้้ๅค็Steam่ซๆฑ๏ผ่่จญ็ฝฎ้้ซๅฏ่ฝๆๅฐ่ดASFๅจๆๅกๅฎๆไนๅพไป็ถใๅทฅไฝใ้farmingdelay
ๅ้ใ ้ ่จญๅผๆ่ฉฒๆฏ้ฉๅๅคงๅคๆธ็จๆถ็๏ผๅฆๆๆจๆ่จฑๅคๆฉๆขฐไบบๅจ้่ก๏ผๅๅฏไปฅ่ๆ
ฎๅฐๅ
ถๅขๅ ่ณ้กไผผ 30
ๅ้๏ผไปฅ้ๅถ็ผ้Steam่ซๆฑใ ๅผๅพไธๆ็ๆฏ๏ผASFไฝฟ็จๅบๆผไบไปถ็ๆฉๅถ๏ผๆๅจๆถๅฐๆฏๅๆ่ฝ็Steam็ฉๅๆๆชขๆฅ้ๆฒๅพฝ็ซ ้ ้ข๏ผๆไปฅ้ๅธธๆๅ็่ณไธ้่ฆๆฏ้ไธๅฎๆ้ๆชขๆฅ๏ผไฝ็ฑๆผๆๅไธ่ฝๅฎๅ
จไฟกไปปSteam็ถฒ็ตกโโๆๅไป็ถ้่ฆๆๅๆชขๆฅ้ๆฒๅพฝ็ซ ้ ้ข๏ผๅฆๆๆๅๆช่ฝๅจFarmingDelay
ๅ้ๅ
งๆชขๆฅๅก็ๆ่ฝไบไปถ๏ผ่ฌไธSteam็ถฒ่ทฏๆฒๆ้็ฅๆๅๆ้็ฉๅๆ่ฝๆ้กไผผ็่ณ่จ๏ผใ ๅ่จญSteam็ถฒ็ตกๅทฅไฝๆญฃๅธธ๏ผ้ไฝๆญคๅผ ไธๆไปฅไปปไฝๆนๅผๆ้ซๆๅกๆ็๏ผ่ ๅชๆ้กฏ่ๅขๅ ็ถฒ็ตก้้ทโโๅปบ่ญฐไฟๆ15
ๅ้็้ ่จญๅผ๏ผไธฆๅ
ๅจ้่ฆๆๆๅขๅ ๅฎ๏ผใ ้ค้ๆจๆๅผท็็ไฟฎๆนๆ้ก๏ผๅฆๅๆไฟๆๅฎ็บ้ข่จญๅผใ
้ ่จญๅผ็บ true
็ bool
้กๅใ This property defines whether ASF will automatically decline trade offers that are received from known and marked bad actors. In order to do that, ASF will communicate with our server on as-needed basis to fetch a list of blacklisted Steam identificators. The bots listed are operated by people that are classified as harmful towards ASF initiative by us, such as those that violate our code of conduct, use provided functionality and resources by us such as PublicListing
in order to abuse and exploit other people, or are doing outright criminal activity such as launching DDoS attacks on the server. Since ASF has strong stance on overall fairness, honesty and cooperation between its users in order to make the whole community thrive, this property is enabled by default, and therefore ASF filters bots that we've classified as harmful from services offered. Unless you have a strong reason to edit this property, such as disagreeing with our statement and intentionally allowing those bots to operate (including exploiting your accounts), you should keep it at default.
้ๆฏไธๅ้ ่จญๅผ็บ1
็ byte flags
้กๅๅฑฌๆงใ ASFๅฐ็ขบไฟๆฏๅ
ฉๅ้ฃ็บ็ๅฐ้ๆฒ/ๅบ่/่จฑๅฏ่ญ็่็๏ผๅ
ๆ๏ผ่ซๆฑไน้่ณๅฐ้้GiftsLimiterDelay
็ง๏ผไปฅ้ฟๅ
่งธ็ผ้็้ๅถใ In addition to that it'll also be used as global limiter for game list requests, such as the one issued by owns
command. Unless you have a strong reason to edit this property, you should keep it at default.
้ ่จญๅผ็บ false
็ bool
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉ้ฒ็จๆฏๅฆๆๅจHeadlessๆจกๅผไธ้่กใ ๅจ Headless ๆจกๅผไธ๏ผASF ๅๅฎๅฎๅจๆๅๅจๆๅ
ถไป้ไบคไบๅผ็ฐๅขไธญ้่ก๏ผๅ ๆญคๅฎไธๆๅ่ฉฆ้้ๆงๅถๅฐ่ผธๅ
ฅ่ฎๅไปปไฝไฟกๆฏใ ้ๅ
ๆฌ้่ฆ็่ฉณ็ดฐไฟกๆฏ๏ผๅธณๆถๆๆ๏ผๅฆ 2FA ไปฃ็ขผ๏ผSteamGuard ไปฃ็ขผ๏ผๅฏ็ขผๆ ASF ้่กๆ้็ไปปไฝๅ
ถไป่ฎๆธ๏ผไปฅๅๆๆๅ
ถไปๆงๅถๅฐ่ผธๅ
ฅ๏ผๅฆไบคไบๅผๅฝไปคๆงๅถๅฐ๏ผใ ๆๅฅ่ฉฑ่ชช๏ผHeadless
ๆจกๅผ็ญๅๆผๅฐ ASF ๆงๅถๅฐ่จญ็ฝฎ็บๅฏ่ฎใ ๆญค่จญ็ฝฎไธป่ฆ็จๆผๅจๅ
ถๆๅๅจไธ้่ก ASF ็็จๆถ๏ผ็ถ ASF ้่ฆ่็จๆถไบคไบ๏ผไพๅฆ่ฉขๅ 2FA ไปฃ็ขผๆ๏ผASFๅฐ้้ๅๆญขๅธณๆถไปฅไธญๆญขๆไฝใ ้ค้ๆจๅจไผบๆๅจไธ้่กASF๏ผไธฆไธๆจไปฅๅๅทฒ็ขบ่ชASF่ฝๅค ๅจnon-headlessๆจกๅผไธ้่ก๏ผๅฆๅๆ็ฆ็จๆญคๅฑฌๆงใ Any user interaction will be denied when in headless mode, and your accounts will not run if they require any console input during starting. ้ๅฐไผบๆๅจๅพๆ็จ๏ผๅ ็บASFๅฏไปฅๅจ่ฆๆฑๆไพๆๆๆไธญๆญข็ป้ๅธณๆถ็ๅ่ฉฆ๏ผ่ไธๆฏ๏ผ็ก้๏ผๅฐ็ญๅพ
็จๆถๆไพ้ไบๆๆใ Enabling this mode will also allow you to use input
command which acts as a replacement for standard console input. ๅฆๆๆจไธ็ขบๅฎ่ฉฒๅฆไฝ่จญ็ฝฎๆญคๅฑฌๆง๏ผ่ซๅฐๅ
ถไฟ็็บ้ ่จญๅผfalse
ใ
้ๆฏไธๅ้ ่จญๅผ็บ8
็byte flags
้กๅๅฑฌๆงใ ็ถASFๆฒๆไปปไฝๅฏๆๅก็้ๆฒๆ๏ผๅฎๅฐๆฏIdleFarmingPeriod
ๅฐๆๅฎๆๆชขๆฅๅธณๆถๅ
งๆฏๅฆๆไธไบๆฐ็้ๆฒๅฏไพๆๅกใ ็ถๆๅ็ฒๅพๆฐ้ๆฒๆ๏ผไธฆไธ้่ฆๆญคๅ่ฝ๏ผๅ ็บASF่ถณๅค ๆบ่ฝ๏ผๅฏไปฅๅจ้็จฎๆ
ๆณไธ่ชๅๆชขๆฅๅพฝ็ซ ้ ใ IdleFarmingPeriod
ไธป่ฆ็จๆผๅธณๆถไธญๅทฒๆ็้ๆฒๆฐๅขๅก็็ๆ
ๆณใ ๅจ้็จฎๆ
ๆณไธๆฒๆไบไปถ่ขซ่งธ็ผ๏ผๅ ๆญคASFๅฟ
้ ๅฎๆๆชขๆฅๅพฝ็ซ ้ ใ ๅฐๆญคๅผ่จญ็ฝฎ็บ0
ๅฏ็ฆ็จๆญคๅ่ฝใ Also check: ShutdownOnFarmingFinished
preference in FarmingPreferences
.
byte
type with default value of 4
. ASF will ensure that there will be at least InventoryLimiterDelay
seconds in between of two consecutive web inventory requests to avoid triggering rate-limit - those are being used for example during marking inventory notifications as read, might also be used by third-party plugins fetching inventory of other users. This property is not used for fetching our own inventory, as ASF is using much more efficient internal network call for that, so it'll not affect commands like loot
or transfer
in any way. Default value of 4
was set based on marking inventories of over 100 consecutive bot instances, and should satisfy most (if not all) of the users. You may however want to decrease it, or even change to 0
if you have very low amount of bots, so ASF will ignore the delay and mark Steam inventories much faster. Be warned though, as setting it too low will result in Steam temporarily banning your IP, and that will prevent you from making any calls at all. ๅฆๆๆจ้่กๅคง้็็ๆฉๆขฐไบบไธฆๆๅคง้ๅบซๅญ่ซๆฑ๏ผๅๅฏ่ฝ้้่ฆๅขๅ ๆญคๅผ๏ผไธ้ๅจ้็จฎๆ
ๆณไธ๏ผๆจๅฏ่ฝๆดๆ่ฉฒๅ่ฉฆ้ๅถ้ไบ่ซๆฑ็ๆธ้ใ ้ค้ๆจๆๅผท็็ไฟฎๆนๆ้ก๏ผๅฆๅๆไฟๆๅฎ็บ้ข่จญๅผใ
้ ่จญๅผ็บ true
็ bool
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉไบASF็**IPC**ไผบๆๅจๆฏๅฆๆ่ไธป้ฒ็จไธๅๅๅใ IPC allows for inter-process communication, including usage of ASF-ui, by booting a local HTTP server. If you do not intend to use any third-party IPC integration with ASF, including our ASF-ui, you can safely disable this option. Otherwise, it's a good idea to keep it enabled (default option).
้ ่จญๅผ็บ null
็ string
้กๅใ ๆญคๅฑฌๆง็บ้้IPCๅท่ก็ๆฏๅAPIๅฎ็พฉๅผทๅถๆงๅฏ็ขผ๏ผไฝ็บ้กๅค็ๅฎๅ
จๆชๆฝใ ็ถๆญคๅผ้็ฉบๆ๏ผๆๆIPC่ซๆฑ้ฝ้่ฆๅฐ้กๅค็password
ๅฑฌๆง่จญ็ฝฎ็บๆญค่ๆๅฎ็ๅฏ็ขผใ ้ ่จญๅผ็บnull
ๅฐไฝฟASF่ทณ้ๅฏ็ขผ้ฉ่ญ่ๆฅๅๆๆ่ซๆฑใ ้คๆญคไนๅค๏ผๅ็จๆญค้ธ้
้ๅ็จไบๅ
ง็ฝฎ็IPCๅๆดๅ็ ด่งฃๆฉๅถ๏ผ่ฉฒๆฉๅถๅฐๅจๅต่ฝๅฐๆIPAddress
ๅจ็ญๆ้ๅ
ง็ผ้้ๅคๆช็ถๆๆฌ็่ซๆฑๅพ๏ผๆซๆๅฐ็ฆๅฎใ ้ค้ๆจๆๅ
ๅ็ไฟฎๆน็็ฑ๏ผๅฆๅๆไฟๆๅฎ็บ้ ่จญๅผใ
้ๆฏไธๅ้ ่จญๅผ็บ0
็ byte flags
้กๅใ This property defines the format of IPCPassword
property and uses EHashingMethod
as underlying type. Please refer to Security section if you want to learn more, as you'll need to ensure that IPCPassword
property indeed includes password in matching IPCPasswordFormat
. In other words, when you change IPCPasswordFormat
then your IPCPassword
should be already in that format, not just aiming to be. ้ค้ไฝ ็ฅ้่ชๅทฑๅจๅไป้บผ๏ผๅฆๅไฝ ๆ่ฉฒไฟ็้ ่จญๅผ0
ใ
Guid?
type with default value of null
. This property allows our sponsors to enhance ASF with optional features that require paid resources to work. For now, this allows you to make use of MatchActively
feature in ItemsMatcher
plugin.
While we recommend you to utilize GitHub since it offers monthly and one-time tiers, as well as allows full automation and gives you immediate access, we also support all other currently-available donation options. See this post for instructions on how to donate using other methods in order to get a manual license valid for given period.
Regardless of the method used, if you're ASF sponsor, you can obtain your license here. You'll need to sign in with GitHub for confirming your identity, we ask only for read-only public information, which is your username. LicenseID
is made out of 32 hexadecimal characters, such as f6a0529813f74d119982eb4fe43a9a24
.
Ensure that you do not share your LicenseID
with other people. Since it's issued on personal basis, it might get revoked if it's leaked. If by any chance this happened to you accidentally, you can generate a new one from the same place.
Unless you want to enable extra ASF functionalities, there is no need for you to provide the license.
้ๆฏไธๅ้ ่จญๅผ็บ10
็byte
้กๅๅฑฌๆงใ ASF ๅฐ็ขบไฟๆฏๅ
ฉๆฌก้ฃๆฅ่ซๆฑไน้่ณๅฐ้้LoginLimiterDelay
็งไปฅ้ฟๅ
่งธ็ผ้็้ๅถใ ้ ่จญๅผ 10
ๆฏๅบๆผ้ฃๆฅ100ๅคๅๆฉๆขฐไบบๅฏฆไพ็ๆ
ๆณ่จญ็ฝฎ็๏ผๆ่ฉฒ้ฉ็จๆผๅคงๅคๆธ๏ผๅฆๆไธๆฏๅ
จ้จ๏ผ็จๆถใ ไฝๆฏ๏ผๆจๅฏ่ฝๅธๆๅขๅ /ๆธๅฐๅฎ๏ผๅฆๆๆจ็ๆฉๆขฐไบบๆธ้้ๅธธๅฐ๏ผๆจๅฏ่ฝ็่ณๆณๅฐๅ
ถๆดๆน็บ 0 0
๏ผ้ๆจฃ ASF ๅฐๅฟฝ็ฅๅปถ้ฒไธฆๆดๅฟซๅฐ้ฃๆฅๅฐ Steamใ ไธ้๏ผ่ซๆณจๆ๏ผ่ฅๆฏๅจๅคง้ๆฉๆขฐไบบๅๆๅทฅไฝๆ๏ผๅฐๆญคๅผ่จญ็ฝฎๅพๅคชไฝๆๅฐ่ดSteamๆซๆๅฐ็ฆๆจ็ IP๏ผ้ๅฐ่งธ็ผInvalidPassword/RateLimitExceeded
้ฏ่ชค๏ผๅพนๅบ้ปๆญขๆจ็็ป้โโไธๅ
ๆฏ ASF๏ผ้ๅ
ๆฌๆจ็ Steam ๅฎขๆถ็ซฏใ ๅๆจฃ๏ผๅฆๆๆจ้่ฆ้่กๅคง้ๆฉๆขฐไบบ๏ผ็นๅฅๆฏ่ไฝฟ็จ็ธๅ IP ไฝๅ็ๅ
ถไป Steam ็จๆถ็ซฏ/ๅทฅๅ
ทไธ่ตท้่ก๏ผๅๅพๅฏ่ฝ้่ฆๅขๅ ๆญคๅผ๏ผไปฅๅฐ็ป้่ซๆฑๅๆฃๅฐๆด้ท็ๆ้ๆฎตใ
้่จป๏ผๆญคๅผ้็จๆผๆๆ ASF-่จ็ซๆไฝ็่ฒ ่ผๅนณ่กก็ทฉ่กๅ๏ผไพๅฆไบคๆๆจกๅกไธญ็ SendTradePeriod
ใ ้ค้ๆจๆๅผท็็ไฟฎๆนๆ้ก๏ผๅฆๅๆไฟๆๅฎ็บ้ข่จญๅผใ
้ๆฏไธๅ้ ่จญๅผ็บ10
็byte
้กๅๅฑฌๆงใ As you should know, Steam is not always working properly, sometimes weird situations can happen such as our playtime not being recorded, despite of, in fact, playing a game. ASF ๅฐๅจ solo ๆจกๅผไธๆๅคๅฐไธๅ้ๆฒๆๅกMaxFarmingTime
ๅฐๆ๏ผไธฆ่ช็บๅฎๅจ่ฉฒๆ้ๅพๅฎๆๆๆๆๅก้ฒ็จใ ็บไบ้ฟๅ
ๆๅก้็จๅๆปฏไธๅ๏ผ้ๆฏๅฟ
้็๏ผไฝๅฆๆ็ฑๆผๆ็จฎๅๅ Steam ็ผไฝไบไธๅๆฐ็ๅพฝ็ซ ๏ผๆญคๅพฝ็ซ ๅฏ่ฝๅฐ้ปๆ ASF ็ๆๅก้ฒๅฑ๏ผ่ฆ๏ผ้ปๅๅฎ
๏ผใ ้ ่จญๅผ 10
ๅฐๆๆ่ฉฒ่ถณไปฅๅพไธๅ้ๆฒไธญ็ฒๅๆๆSteamๅกใ ๅฐๆญคๅฑฌๆง่จญ็ฝฎๅพ้ไฝๅฏ่ฝๆๅฐ่ด่ทณ้ๆๆ็้ๆฒ๏ผๆฏ็๏ผๆไบ้ๆฒ็่ณ้่ฆ้ท้9ๅๅฐๆๆ่ฝๅฎๅ
จๅฎๆๆๅก๏ผ๏ผ่่จญ็ฝฎๅพ้้ซๅฏ่ฝๆๅฐ่ดๆๅก้็จๅๆปฏไธๅใ ่ซๆณจๆ๏ผๆญคๅฑฌๆงๅ
ๅฝฑ้ฟๅฎๅๆๅก้ฒ็จไธญ็ๅฎๅ้ๆฒ๏ผๅ ๆญคๅจๅฎๆๆดๅ้ๅๅพ ASF ๅฐ่ฟๅ่ฉฒๆจ้ก๏ผ๏ผๅฎไนไธๆฏๅบๆผ้ๆฒ็ธฝๆ้่ๆฏๅบๆผ ASF ๅ
ง้จๆๅกๆ้๏ผๅ ๆญค ASF ไนๅฐๅจ้ๅๅพ่ฟๅๅฐ่ฉฒๆจ้กใ ้ค้ๆจๆๅผท็็ไฟฎๆนๆ้ก๏ผๅฆๅๆไฟๆๅฎ็บ้ข่จญๅผใ
้ๆฏไธๅ้ ่จญๅผ็บ15
็ byte flags
้กๅๅฑฌๆงใ ๆญคๅฑฌๆงๅฎ็พฉไบๆๅ้กๆๆฅๅๅค้ทๆ้็ไบคๆๆซๆโโๅฆ**ไบคๆไธ็ฏไธญๆ่ฟฐ๏ผ ASF ๅฐๆ็ตๆซๆๆ่ถ
้MaxTradeHoldDuration
ๅคฉ็ไบคๆๆๆกใ ๆญค้ธ้
ๅ
็จๆผๅจTradingPreferences
ไธญๅ็จSteamTradeMatcher
็ๆฉๆขฐไบบ๏ผๅ ็บๅฎไธๅฝฑ้ฟไพ่ชMaster
/SteamOwnerID
็ไบคๆ๏ผๆๆฏๆ่ดใ ไบคๆๆซๆๆฏๅพ็
ฉไบบ็๏ผๆฒไบบๆๆณ่ขซๅฎๅฐๆพใ ASF ๆ่ฉฒๅจ่ช็ฑ่ฆๅไธๅทฅไฝ๏ผไธฆๅนซๅฉๆฏๅไบบ๏ผ็ก่ซๆฏๅฆๅญๅจไบคๆๆซๆโโ้ๅฐฑๆฏ็บไป้บผๆญค้ธ้
็้ ่จญๅผ็บ15
ใ ไธ้๏ผๅฆๆๆจๆดๅธๆๆ็ตๆๆๆ่ขซๆซๆ็ไบคๆๆๆก๏ผๆจๅฏไปฅๅฐๆญคๅผ่จญ็ฝฎ็บ0
ใ ่ซ่ๆ
ฎ้ๆจฃไธๅไบๅฏฆ๏ผ็ญๆๅ
งๆๅคฑๆ็ๅกไธๅๆญค้ธ้
็ๅฝฑ้ฟ๏ผไธฆไธ ASF ๆ่ชๅๆ็ตๅญๅจๆซๆ็ไบคๆ๏ผๅฆไบคๆ**้จๅไธญๆ่ฟฐ๏ผๆไปฅๆฒๆๅฟ
่ฆๅ ็บ้ๅๅๅ ่ๆ็ตๆๆ็ไบบใ ้ค้ๆจๆๅ
ๅ็ไฟฎๆน็็ฑ๏ผๅฆๅๆไฟๆๅฎ็บ้ ่จญๅผใ
้ๆฏไธๅ้ ่จญๅผ็บ60
็byte
้กๅๅฑฌๆงใ This property defines minimum amount of time, in seconds, which ASF will wait before resuming cards farming if it got previously disconnected with LoggedInElsewhere
, which happens when you decide to forcefully disconnect currently-farming ASF by launching a game. This delay exists mainly for convenience and overhead reasons, for example it allows you to restart the game without having to fight with ASF occupying your account again only because playing lock was available for a split second. Due to the fact that reclaiming the session causes LoggedInElsewhere
disconnect, ASF has to go through whole reconnect procedure, which puts additional pressure on the machine and Steam network, therefore avoiding additional disconnects, if possible, is preferable. By default, this is configured at 60
seconds, which should be enough to allow you restart the game without much hassle. However, there are scenarios when you could be interested in increasing it, for example if your network disconnects often and ASF is taking over too soon, which causes being forced to go through the reconnect process yourself. We allow a maximum value of 255
for this property, which should be enough for all common scenarios. In addition to the above, it's also possible to decrease the delay, or even remove it entirely with a value of 0
, although that is usually not recommended due to reasons stated above. ้ค้ๆจๆๅ
ๅ็ไฟฎๆน็็ฑ๏ผๅฆๅๆไฟๆๅฎ็บ้ ่จญๅผใ
้ๆฏไธๅ้ ่จญๅผ็บ0
็ byte flags
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉ ASF ๅจ้่กๆๅๅฅฝ็ๅชๅๆจกๅผใ ็ถๅ ASF ๆฏๆดๅ
ฉ็จฎๆจกๅผโโ0
๏ผๅณMaxPerformance
๏ผ1
๏ผๅณMinMemoryUsage
ใ ้ ่จญๆ
ๆณไธ๏ผASFๅธๆ็กๅฏ่ฝๅคๅฐไธฆ่ก๏ผๅๆ๏ผ้่ก๏ผ้้้่ทจๆๆ CPU ๅ
งๆ ธใๅคๅ CPU ๅท่ก็ทใๅคๅ้่จ็ซฏๅๅคๅๅท่ก็ทๆฑ ไปปๅ็่ฒ ่ผๅนณ่กกๅทฅไฝไพๆ้ซๆง่ฝใ For example, ASF will ask for your first badge page when checking for games to farm, and then once request arrived, ASF will read from it how many badge pages you actually have, then request each other one concurrently. ้ๆ่ฉฒ็ธฝๆฏๆจๆณๆณ่ฆ็๏ผๅ ็บๅฎๅจๅคงๅคๆธๆ
ๆณไธ่ฝไฝฟ้้ทๆๅฐๅ๏ผ็่ณๅจๅฎๅ CPu ๅ
งๆ ธๅๅ่ๆฅตๅคง็ๆ่็กฌ้ซไธไน่ฝ็ๅฐ็ฐๆญฅ ASF ไปฃ็ขผ็ๅฅฝ่ใ ไฝๆฏ๏ผ็ฑๆผ่จฑๅคไปปๅๆฏไธฆ่ก่็็๏ผๅ ๆญค ASF ้่กๆ่ฒ ่ฒฌ็ถญ่ญทๅฎๅ๏ผไพๅฆ๏ผ ไฟๆๅฅๆฅๅญๆ้๏ผ็ท็จ่ๆผๆดปๅ็ๆ
ไธฆ่็ๆญฃๅจ่็็ไปปๅ๏ผ้ๅฏ่ฝๆไธๆๅขๅ ่จๆถ้ซไฝฟ็จ้๏ผๅฆๆๆจๅๅฏ็จ่จๆถ้ซ็้ๅถ๏ผๅฏ่ฝ้่ฆๅฐๆญคๅฑฌๆงๅๆ็บ1
๏ผMinMemoryUsage
๏ผไปฅๅผทๅถ ASF ็กๅฏ่ฝๅฐๅฐไฝฟ็จไปปๅ๏ผไธฆไธ้ๅธธไปฅๅๆญฅๆนๅผ้่กๅฏ่ฝ็ไธฆ่ก็ฐๆญฅไปฃ็ขผใ You should consider switching this property only if you previously read low-memory setup and you intentionally want to sacrifice gigantic performance boost, for a very small memory overhead decrease. Usually this option is much worse than what you can achieve with other possible ways, such as by limiting your ASF usage or tuning runtime's garbage collector, as explained in low-memory setup. Therefore, you should use MinMemoryUsage
as a last resort, right before runtime recompilation, if you couldn't achieve satisfying results with other (much better) options. Unless you have a strong reason to edit this property, you should keep it at default.
้ ่จญๅผ็บ็ฉบ็ ImmutableHashSet<string>
้กๅใ This property defines list of plugin assembly names that are either blacklisted or whitelisted for being considered for automatic updates, as per PluginsUpdateMode
defined below.
้ค้ๆจๆๅ ๅ็ไฟฎๆน็็ฑ๏ผๅฆๅๆไฟๆๅฎ็บ้ ่จญๅผใ
้ๆฏไธๅ้ ่จญๅผ็บ0
็ byte flags
้กๅใ This property defines plugins update mode that gives meaning to PluginsUpdateList
defined above. By specifying this property you can easily enable/disable automatic updates for all plugins except those declared.
- Value of
0
, calledWhitelist
, disables automatic update of all plugins, except those defined inPluginsUpdateList
. - Value of
1
, calledBlacklist
, enables automatic update of all plugins, except those defined inPluginsUpdateList
.
ASF team would like to remind you that, for your own safety, you should enable automatic updates only from trusted parties. Keep in mind that malicious plugins can decide to update themselves or execute remote commands regardless of this setting, this is why this setting applies to ASF-provided plugins update functionality exclusively, and you should still ensure that you've appropriately verified every plugin that you've decided to use.
Updates of plugins are performed by default along with ASF update routine - UpdateChannel
and UpdatePeriod
. Standard ASF update mechanisms such as update
command will also trigger optional plugins update. If instead you'd like to update plugins manually without updating ASF version at the same time, updateplugins
command offers such possibility.
้ค้ๆจๆๅ ๅ็ไฟฎๆน็็ฑ๏ผๅฆๅๆไฟๆๅฎ็บ้ ่จญๅผใ
้ ่จญๅผ็บ false
็ bool
้กๅใ When enabled, ASF will try to shutdown the process if possible, that is, when all of your registered bots are stopped. This can be especially useful when combined with ShutdownOnFarmingFinished
on all of your bot instances, since this way ASF will be allowed to automatically shutdown when the last one of your bots finishes farming.
Since the expectation of majority of the users is to have the process running at all times, e.g. for IPC
usage, this option is disabled by default.
้ ่จญๅผ็บ "/me "
็ string
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉไบไธๅ้ฆ็ขผ, ่ฉฒ้ฆ็ขผๅฐไฝ็บASF็ผ้็ๆๆ Steam ๆถๆฏ็้ฆ็ขผใ ้ ่จญๆ
ๆณไธ, ASFไฝฟ็จ"/me "
้ฆ็ขผ, ไปฅไพฟ้้ๅจ Steam ่ๅคฉไธญไปฅไธๅ็้ก่ฒ้กฏ็คบๆฉๆขฐไบบๆถๆฏไพๆด่ผ้ฌๅฐๅๅๆฉๆขฐไบบๆถๆฏใ ๅฆไธๅๅผๅพๆๅ็ๅฐๆนๆฏ "/pre "
้ฆ็ขผ, ๅฎๅฏฆ็พไบ้กไผผ็็ตๆ, ไฝไฝฟ็จไบไธๅ็ๆ ผๅผใ ๆจ้ๅฏไปฅๅฐๆญคๅฑฌๆง่จญ็ฝฎ็บ็ฉบๅญไธฒๆ null
, ไปฅไพฟๅฎๅ
จ็ฆ็จ้ฆ็ขผ, ไธฆไปฅๅณ็ตฑๆนๅผ่ผธๅบๆๆASFๆถๆฏใ ๅฅฝๆถๆฏๆฏ, ๆญคๅฑฌๆงๅ
ๅฝฑ้ฟ Steam ๆถๆฏ-้้ๅ
ถไป้้ (ๅฆ IPC) ่ฟๅ็ๅๆไธๅๅฝฑ้ฟใ ้ค้ๆจ่ฆ่ช่จๆจๆบ ASF ่ก็บ, ๅฆๅๆๅฅฝๅฐๅ
ถไฟ็็บ้ ่จญๅผใ
้ ่จญๅผ ็บ0
็ ulong
้กๅใ ๆญคๅฑฌๆงไปฅ64ไฝๅฝขๅผ็Steam IDๅฎ็พฉ ASF ้ฒ็จๆๆ่
๏ผ้กไผผไบ็ตฆๅฎๆฉๆขฐไบบๅฏฆไพ็ master
่จฑๅฏๆฌ๏ผไฝไฝ็จๆผๅ
จๅ๏ผใ ้ๅธธๆจๆ่ฉฒๆๅธๆๅฐๅฑฌๆง่จญ็ฝฎ็บๆจ็SteamไธปๅธณๆถIDใ Master
่จฑๅฏๆฌๅ
ๆฌๅฐๅ
ถๆฉๅจไบบๅฏฆไพ็ๅฎๅ
จๆงๅถ๏ผ ๅ
SteamOwnerID
ไธญๆๅฎ็็จๆถๆ่ฝ็ผไฝๅ
จๅๅฝไปค๏ผๅฆ exit``restart
ๆ update
ใ ้ๅพๆนไพฟ๏ผๅ ็บไฝ ๅฏ่ฝๆณ็บไฝ ็ๆๅ้่กๆฉๆขฐไบบ๏ผๅๆไธๅ
่จฑไปๅ้้ exit
ไน้ก็ๅฝไปคๆงๅถ ASF ้ฒ็จใ ้ ่จญๅผ 0
่กจ็คบ็ถๅASF้ฒ็จ็กๆๆ่
๏ผ้ๆๅณ่ๆฒๆไบบ่ฝๅค ็ผๅบๅ
จๅ ASF ๅฝไปคใ Keep in mind that this property applies to Steam chat exclusively. IPC, as well as interactive console, will still allow you to execute Owner
commands even if this property is not set.
้ๆฏไธๅ้ ่จญๅผ็บ7
็ byte flags
้กๅๅฑฌๆงใ ๆญคๅฑฌๆงๅฎ็พฉไบ ASF ๅจ้ฃๆฅ Steam ไผบๆๅจๆไฝฟ็จ็็ถฒ็ตกๅ่ญฐ๏ผๅ
ถๅฎ็พฉๅฆไธ๏ผ
ๅผ | ๅ็จฑ | ๆ่ฟฐ |
---|---|---|
0 | None | ็กๅ่ญฐ |
1 | TCP | ๅณ่ผธๆงๅถๅ่ญฐ |
2 | UDP | ็จๆถๆธๆๅ ฑๅ่ญฐ |
4 | WebSockets | WebSockets |
Please notice that this property is flags
field, therefore it's possible to choose any combination of available values. Check out json mapping if you'd like to learn more. ไธๅ็จไปปไฝๆจ่ชๆๅฐ่ดNone
้ธ้
่ขซๅ็จ๏ผไธฆไธ่ฉฒ้ธ้
ๆฌ่บซๆชๆพๆๅฎๆๆๅผใ
By default ASF will use all available Steam protocols as a measure for fighting with downtimes and other similar Steam issues. Typically you want to change this property if you want to limit ASF into using only one or two specific protocols. ๅฆๆๆจๅชๅจ้ฒ็ซ็ไธๅ็จ TCP ๆต้๏ผไธฆไธไธๅธๆ ASF ๅ่ฉฆ้้ UDP ้ฒ่ก้ฃๆฅ๏ผๅๅฏ่ฝ้่ฆ้ๆจฃ็ๆชๆฝใ ไฝๆฏ๏ผ้ค้ๆจๆญฃๅจ่ชฟ่ฉฆ็นๅฎๅ้กๆๆผๆด๏ผๅฆๅๆจๅนพไน็ธฝๆฏๅธๆ็ขบไฟ ASF ๅฏไปฅ่ช็ฑไฝฟ็จ็ถๅๆฏๆ็ไปปไฝๅ่ญฐ๏ผ่ไธๅ ๅ ๆฏไธๅๆๅ ฉๅใ ้ค้ๆจๆๅผท็็ไฟฎๆนๆ้ก๏ผๅฆๅๆไฟๆๅฎ็บ้ข่จญๅผใ
้ๆฏไธๅ้ ่จญๅผ็บ1
็ byte flags
้กๅๅฑฌๆงใ ๆญคๅฑฌๆงๅฎ็พฉๆญฃๅจไฝฟ็จ็ๆดๆฐ้้๏ผ็จๆผ่ชๅๆดๆฐ๏ผๅฆๆUpdatePeriod
ๅคงๆผ0
๏ผ๏ผๆๆถๅฐๆดๆฐ้็ฅๆ๏ผๅ
ถไปๆ
ๆณ๏ผใ Currently ASF supports three update channels - 0
which is called None
, 1
, which is called Stable
, and 2
, which is called PreRelease
. ็ฉฉๅฎ็
้้ๆฏ้ ่จญๅผ๏ผ้ฉ็จๆผๅคงๅคๆธ็จๆถใ PreRelease
channel in addition to Stable
releases, also includes pre-releases dedicated for advanced users and other developers in order to test new features, confirm bugfixes or give feedback about planned enhancements. PreRelease versions often contain unpatched bugs, work-in-progress features or rewritten implementations. If you don't consider yourself advanced user, please stay with default 1
(Stable
) update channel. PreRelease
channel is dedicated to users who know how to report bugs, deal with issues and give feedback - no technical support will be given. ๅฆๆๆจๆณไบ่งฃๆดๅค่ณ่จ๏ผ่ซๆฅ็ ASF ็ผๅธๅจๆใ ๅฆๆ่ฆๅฎๅ
จ็ฆ็จๆๆ็ๆฌๆดๆฐ๏ผ้ๅฏไปฅๅฐUpdateChannel
่จญ็ฝฎ็บ0
๏ผNone
๏ผใ ๅฐ UpdateChannel
่จญ็ฝฎ็บ 0
ๅฐๅฎๅ
จ็ฆ็จ่ๆดๆฐ็ธ้็ๆดๅๅ่ฝ, ๅ
ๆฌ update
ๅฝไปคใ ๅผท็ๅปบ่ญฐไธ่ฆไฝฟ็จNone
้้๏ผๅ ็บๆจๆ้ๅฐๅ็จฎๅ้ก๏ผๅจไธ้ข็UpdatePeriod
่ชชๆไธญๆๅฐ๏ผใ
้ค้ๆจ็ฅ้ๆจๅจๅไป้บผ๏ผๅฆๅๆๅ ๅผท็ ๅปบ่ญฐไฟๆๅฎ็บ้ ่จญๅผใ
้ๆฏไธๅ้ ่จญๅผ็บ24
็ byte flags
ๅฑฌๆงใ ๆญคๅฑฌๆงๅฎ็พฉ ASF ๆชขๆฅ่ชๅๆดๆฐ็้ ป็ใ ๆดๆฐไธๅ
ๅฐๆผๆฅๆถๆฐๅ่ฝๅ้้ตๅฎๅ
จไฟฎ่ฃ็จๅผ่ณ้้่ฆ, ่ไธๅฐๆผๆฅๆถ้ฏ่ชคไฟฎๅพฉใๆง่ฝๅขๅผทใ็ฉฉๅฎๆงๆน้ฒ็ญไน่ณ้้่ฆใ ็ถ่จญ็ฝฎๅคงๆผ0
็ๅผๆ๏ผASF ๅฐๅจๆฐ็ๆฌๅฏ็จๆ่ชๅไธ่ผ๏ผๆฟๆไธฆ้ๆฐๅๅ๏ผๅฆๆAutoRestart
่ขซๅ็จ๏ผใ ็บไบๅฏฆ็พ้ไธ็ฎๆจ, ASFๅฐๆฏ UpdatePeriod
ๅฐๆๆชขๆฅไธๆฌกๆๅ็GitHub ๅญๅฒๅบซไธๆฏๅฆๆๆฐ็ๆดๆฐใ ๆญคๅผ็บ 0
ๆ็ฆ็จ่ชๅๆดๆฐ๏ผไฝๆจไปๅฏๆๅๅท่ก update
ๅฝไปคใ ๆจๅฏ่ฝ้ๆ่่ถฃไบ่งฃ่จญ็ฝฎ UpdatePeriod
ๆ้ตๅพช็้ฉ็ถ UpdateChannel
ใ
ASF ็ๆดๆฐ้็จๆถๅ ASF ๆญฃๅจไฝฟ็จ็ๆดๅ่ณๆๅคพ็ตๆง็ๆดๆฐ๏ผไฝไธๆถๅไฝๆผconfig
็ฎ้ไธญๆจ่ชๅทฑ็้
็ฝฎๆๆธๆๅบซโโๆๅณ่ๅจๅ
ถ็ฎ้ไธญ่ ASF ็ก้็ไปปไฝ้กๅคๆชๅฏ่ฝๆๅจๆดๆฐๆ้ไธๅคฑใ 24
็้ป่ชๅผๆฏไธๅฟ
่ฆ็ๆชขๆฅๅ็ถญๆ ASF ๆดๆฐไน้็่ฏๅฅฝๅนณ่กกใ
้ค้ๆจๆๅผท็็็็ฑ่ฆ็ฆ็จๆญคๅ่ฝ๏ผๅฆๅๆจๆ่ฉฒๅจๅ็็UpdatePeriod
ไธญๅ็จ่ชๅๆดๆฐ๏ผ้ๆฏๅบๆผ็บๆจ่ชๅทฑๅฉ็็่ๆ
ฎใ ้ไธๅ
ๆฏๅ ็บๆๅไธๆฏๆดๆๆฐ็็ฉฉๅฎ ASF ็ๆฌ็ฏๅไนๅค็ไบๆ
๏ผ้ๅ ็บๆๅๅ
็บๆๆฐ็ๆฌๆไพๅฎๅ
จไฟ้ใ ๅฆๆๆจไฝฟ็จ็ๆฏ้ๆ็ASF็ๆฌ๏ผ้ฃ้บผๆจๅฏ่ฝๅฐ่ชๅทฑๆด้ฒๆผๅ็จฎๅ้ก๏ผๅพๅฐ้ฏ่ชคๅฐๅ่ฝๆๅฃ๏ผไปฅ**Steam ๅธณๆถๆฐธไน
ๅฐ้ๅ็ต๏ผๆไปฅ็บไบๆจ่ชๅทฑ็ๅฉ็๏ผๆๅๅผท็ๆจ่ฆ**็ขบไฟๆจ็ ASF ็ๆฌๆฏๆๆฐ็ใ ่ชๅๆดๆฐๅ
่จฑๆๅ่ฝๅค ๅจๅ็ดไนๅ็ฆ็จๆไฟฎ่ฃๆๅ้ก็ไปฃ็ขผ๏ผๅพ่ๅฟซ้ๆๅฐๆๆ้กๅ็ๅ้กโโๅฆๆๆจ้ธๆ้ๅบๅฎ๏ผๆจๅฐๅคฑๅปๆๅ็ๆๆๅฎๅ
จไฟ้๏ผไธฆไธ้่ฆ่ช่กๆฟๆ้่กๅฏ่ฝๆๅฎณ็ไปฃ็ขผๆๅธถไพ็้ขจ้ชๅพๆ๏ผ ไธๅ
ๆฏไพ่ช Steam ็ถฒ็ตก็ๅจ่
๏ผ้๏ผ้กงๅๆ็พฉ๏ผๆจ่ชๅทฑ็ Steam ๅธณๆถใ
้ ่จญๅผ็บ 300
็ ushort
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉๅๅไธ Steam Web ๆๅ็ผ้ๅ
ฉๅ้ฃ็บ่ซๆฑไน้็ๆๅฐๅปถ้ฒ๏ผไปฅๆฏซ็ง็บๅฎไฝ๏ผใ ๆญค้กๅปถ้ฒๆฏๅฟ
่ฆ็๏ผๅ ็บ Steam ๅ
ง้จไฝฟ็จ** AkamaiGhost **ๆๅๅจ็ตฆๅฎ็ๆ้ๆฎต้ๅถๅบๆผๅ
จๅ่ซๆฑๆธ้็้็ใ ๅจๆญฃๅธธๆ
ๆณไธ๏ผakamai ้ๅถๅพ้ฃ่งธ็ผ๏ผไฝๆฏๅฆๆๆๅๅจๅคช็ญ็ๆ้ๅ
งไธๆท็ผ้้ๅค่ซๆฑ๏ผๅฐ่ด้ๅธธ็น้็ๅทฅไฝ่ฒ ่ผๅๅคง้ๆญฃๅจ้ฒ่ก็่ซๆฑ้ๅ๏ผๅๅฏ่ฝ่งธ็ผๅฎใ
้ ่จญๅผๆฏๅบๆผ ASF ๆฏ่จชๅๅ็จฎ Steam Web ๆๅ็ๅฏไธๅทฅๅ
ทไพ่จญๅฎ็๏ผ็นๅฅๆฏ steamcommunity.com
๏ผapi.steampowered.com
ๅstore.steampowered.com
ใ ๅฆๆๆจๆญฃๅจไฝฟ็จๅ
ถไปๅทฅๅ
ทๅๅไธ Web ๆๅ็ผ้่ซๆฑ๏ผ้ฃ้บผๆจๆ่ฉฒ็ขบไฟๆจ็ๅทฅๅ
ทๅ
ๅซ้กไผผWebLimiterDelay
็ๅ่ฝ๏ผไธฆๅฐๅ
ฉ่
้ฝ่จญ็ฝฎ็บ้ ่จญๅผ็ๅ
ฉๅ๏ผๅณ600
ใ ้ไฟ่ญไบๅจไปปไฝๆ
ๆณไธ๏ผๆจ้ฝไธๆๆฏ 300
ๆฏซ็ง็ผ้่ถ
้1ๅ็่ซๆฑใ
้ๅธธ๏ผๆๅๅผท็ๅๅฐ้ไฝWebLimiterDelay
็้ ่จญๅผ๏ผๅ ็บๅฎๅฏ่ฝๆๅฐ่ดๅ็จฎ่ IP ็ธ้็ๅฐ้๏ผๅ
ถไธญไธไบๅฐ้ๅฏ่ฝๆฏๆฐธไน
ๆง็ใ ้ ่จญๅผ่ถณไปฅๅจไผบๆๅจไธ้่กๅฎๅ ASF ๅฏฆไพ๏ผไปฅๅๅจๆญฃๅธธๆ
ๆณไธ่ๅๅง Steam ็จๆถ็ซฏไธ่ตทไฝฟ็จ ASFใ It should be correct for majority of usages, and you should only increase it (never lower it). ็ฐก่่จไน๏ผๅพๅฎๅ IP ็ผ้ๅฐๅฎๅ Steam ๅ็ๆๆๅ
จๅ่ซๆฑ็ๆธ้ไธๆ่ถ
้ๆฏ 300
ๆฏซ็ง1ๅใ
้ค้ๆจๆๅ ๅ็ไฟฎๆน็็ฑ๏ผๅฆๅๆไฟๆๅฎ็บ้ ่จญๅผใ
้ ่จญๅผ็บ null
็ string
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉไบไธๅ Web ไปฃ็ๅฐๅ๏ผ่ฉฒๅฐๅๅฐ็จๆผ ASF ็HttpClient
็ผ้็ๆๆๅ
ง้จhttpๅhttps่ซๆฑ๏ผๅฐคๅ
ถๆฏๅฐๆผgithub.com
๏ผsteamcommunity.com
ๅstore.steampowered.com
ใ ไธ่ฌไพ่ชช๏ผASF ไฝฟ็จไปฃ็่ซๆฑๆฒๆไปปไฝๅชๅข๏ผไฝๅฎๅฐๆผ็น้ๅ็จฎ้ฒ็ซ็็นๅฅๆ็จ๏ผๅฐคๅ
ถๆฏไธญๅ็้ฒ็ซ็ใ
ๆญคๅฑฌๆงๅฎ็พฉ็บ URI ๅญไธฒ๏ผ
A URI string is composed of a scheme (supported: http/https/socks4/socks4a/socks5), a host, and an optional port. ๅฎๆด URI ๅญไธฒ็ไธๅ็คบไพๆฏ
"HTTP://contoso.com:8080"
ใ
ๅฆๆๆจ็ไปฃ็้่ฆ็จๆถ่บซไปฝ้ฉ่ญ๏ผๅ้้่ฆ่จญ็ฝฎWebProxyUsername
ๅ/ๆWebProxyPassword
ใ ๅฆๆ็กๆญค้ๆฑ๏ผๅ
่จญ็ฝฎๆญคๅฑฌๆงๅฐฑ่ถณๅค ไบใ
็พๅจ๏ผASFๅ
ๅฐhttp
ๅhttps
่ซๆฑไฝฟ็จWebไปฃ็๏ผไธๅ
ๆฌๅจ ASF ๅ
ง้จ Steam ๅฎขๆถ็ซฏๅ
ง็ๅ
ง้จ Steam ็ถฒ็ตก้ไฟกใ ็ถๅๆฒๆๆฏๆด้ไธ้ป็่จ็ซ๏ผไธป่ฆๅๅ ๆฏ็ผบๅฐ SK2 ๅ่ฝใ ๅฆๆไฝ ๆณๅฏฆ็พๅฎ๏ผๆๅปบ่ญฐๅพๆญค่้ๅงใ
้ค้ๆจๆๅ ๅ็ไฟฎๆน็็ฑ๏ผๅฆๅๆไฟๆๅฎ็บ้ ่จญๅผใ
้ ่จญๅผ็บ null
็ string
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉๅจๆไพไปฃ็ๅ่ฝ็็ฎๆจWebProxy
้ป่
ฆๆฏๆด็ๅบๆฌใๆ่ฆใNTLMๅKerberos ่บซไปฝ้ฉ่ญไธญไฝฟ็จ็ๅฏ็ขผๅญๆฎตใ ๅฆๆๆจ็ไปฃ็ไธ้่ฆ็จๆถๆๆ๏ผๅ็ก้ๅจๆญค่่ผธๅ
ฅไปปไฝๅ
งๅฎนใ ๅชๆๅจๅ็จ WebProxy
ๆ๏ผไฝฟ็จๆญค้ธ้
ๆๆๆ็พฉ๏ผๅฆๅๅฎๆฒๆไปปไฝๆๆใ
้ค้ๆจๆๅ ๅ็ไฟฎๆน็็ฑ๏ผๅฆๅๆไฟๆๅฎ็บ้ ่จญๅผใ
้ ่จญๅผ็บ null
็ string
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉๅจๆไพไปฃ็ๅ่ฝ็็ฎๆจWebProxy
้ป่
ฆไธญไฝฟ็จ็ๅบๆฌใๆ่ฆใNTLM ๅ Kerberos ่บซไปฝ้ฉ่ญไธญไฝฟ็จ็ๅฏ็ขผๅญๆฎตใ ๅฆๆๆจ็ไปฃ็ไธ้่ฆ็จๆถๆๆ๏ผๅ็ก้ๅจๆญค่่ผธๅ
ฅไปปไฝๅ
งๅฎนใ ๅชๆๅจๅ็จ WebProxy
ๆ๏ผไฝฟ็จๆญค้ธ้
ๆๆๆ็พฉ๏ผๅฆๅๅฎๆฒๆไปปไฝๆๆใ
้ค้ๆจๆๅ ๅ็ไฟฎๆน็็ฑ๏ผๅฆๅๆไฟๆๅฎ็บ้ ่จญๅผใ
ๆญฃๅฆๆจๆ่ฉฒ็ฅ้็๏ผๆฏๅๆฉๆขฐไบบ้ฝๆ่ฉฒๆๅบๆผไธ้ข็็คบไพJSON็ตๆง็็จ็ซ้
็ฝฎใ ๅพๆฑบๅฎๅฆไฝๅฝๅๆฉๆขฐไบบ้ๅง๏ผไพๅฆ1.json
๏ผmain.json
๏ผprimary.json
ๆAnythingElse.json
๏ผไธฆ่ฝๅ้
็ฝฎใ
**่ซ่ฌน่จ๏ผ**ๆฉๆขฐไบบไธ่ฝ่ขซ่ฝๅฝๅ็บASF
๏ผๅ ็บ่ฉฒ้้ตๅญๆฏ็บๅ
จๅ้
็ฝฎไฟ็็๏ผ๏ผASF ไนๆๅฟฝ็ฅไปฅ้ป้้ ญ็ๆๆ้
็ฝฎๆชใ
ๆฉๆขฐไบบ้ ็ฝฎๅ ทๆไปฅไธ็ตๆง๏ผ
{
"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
}
ไปฅไธๆฏๅฐๆๆ้ธ้ ็่งฃ้๏ผ
้ ่จญๅผ็บ false
็ bool
้กๅใ ๅ็จๅพ๏ผASF ๅฐ่ชๅๆฅๅไธฆๅ
ๆ็ผ้็ตฆๆฉๆขฐไบบ็ๆๆ Steam ็ฆฎๅ๏ผๅ
ๆฌ้ขๅ
็ฆฎๅๅก๏ผใ ้้ๅ
ๆฌไพ่ชSteamUserPermissions
ไธญๅฎ็พฉ็็จๆถไปฅๅค็็จๆถ็็ฆฎ็ฉใ ่ซ่จไฝ๏ผ็ผ้ๅฐ้ปๅญ้ตไปถๅฐๅ็็ฆฎ็ฉไธๆ็ดๆฅ่ฝ็ผ็ตฆๅฎขๆถ็ซฏ๏ผๅ ๆญค ASF ไธ่ฝๅจๆฒๆๆจๅนซๅฉ็ๆ
ๆณไธๆฅๅ้ไบ็ฆฎ็ฉใ
ๅปบ่ญฐๅ
ๅฐๅ็จๅธณๆถไฝฟ็จๆญค้ธ้
๏ผๅ ็บๆจๅพๅฏ่ฝไธๅธๆ่ชๅๅ
ๆ็ผ้ๅฐไธปๅธณๆถ็ๆๆ็ฆฎๅใ ๅฆๆๆจไธ็ขบๅฎๆฏๅฆ่ฆๅ็จๆญคๅ่ฝ๏ผ่ซๅฐๅ
ถไฟ็็บ้ ่จญๅผfalse
ใ
้ๆฏไธๅ้ ่จญๅผ็บ0
็ byte flags
ๅฑฌๆงใ ๆญคๅฑฌๆงๅฎ็พฉๅ็จฎไบไปถไธญ็ ASF ๆฉๆขฐไบบ่ก็บ๏ผๅฎ็พฉๅฆไธ๏ผ
ๅผ | ๅ็จฑ | ๆ่ฟฐ |
---|---|---|
0 | None | ๆฒๆ็นๆฎ็ๆฉๆขฐไบบ่ก็บ๏ผๆๅฐไพตๅ ฅๆจกๅผ๏ผ้ ่จญๅผ |
1 | RejectInvalidFriendInvites | ๅฐๅฐ่ด ASF ๆ็ต๏ผ่ไธๆฏๅฟฝ็ฅ๏ผ็กๆ็ๅฅฝๅ้่ซ |
2 | RejectInvalidTrades | ๅฐๅฐ่ด ASF ๆ็ต๏ผ่ไธๆฏๅฟฝ็ฅ๏ผ็กๆ็ไบคๆๅ ฑๅน |
4 | RejectInvalidGroupInvites | ๅฐๅฐ่ด ASF ๆ็ต๏ผ่ไธๆฏๅฟฝ็ฅ๏ผ็กๆ็็พค็ต้่ซ |
8 | DismissInventoryNotifications | ๅฐๅฐ่ด ASF ่ชๅ้้ๆๆๅบซๅญ้็ฅ |
16 | MarkReceivedMessagesAsRead | ๅฐๅฐ่ด ASF ่ชๅๆจ่จๆๆๆถๆฏ็บๅทฒ่ฎ |
32 | MarkBotMessagesAsRead | Will cause ASF to automatically mark messages from other ASF bots (running in the same instance) as read |
Please notice that this property is flags
field, therefore it's possible to choose any combination of available values. Check out json mapping if you'd like to learn more. ไธๅ็จไปปไฝๆจ่ชๆๅฐ่ดNone
้ธ้
ใ
ไธ่ฌๆ ๆณไธ๏ผๅฆๆๆจๅธๆASFๅท่ก่ๅ ถๆดปๅ็ธ้็ไธๅฎๆธ้็่ชๅๅ๏ผๅ้่ฆไฟฎๆนๆญคๅฑฌๆง๏ผๅ ็บๅฎๅฏ่ฝไพ่ชๆฉๆขฐไบบๅธณๆถ๏ผ่ไธๆฏASFไธญไฝฟ็จ็ไธป่ฆๅธณๆถใ ๅ ๆญค๏ผๆดๆนๆญคๅฑฌๆงไธป่ฆ้ฉ็จๆผๅ็จๅธณๆถ๏ผๅ็ฎกๆจไนๅฏไปฅ่ช็ฑไฝฟ็จไธปๅธณๆถ็้ธๅฎ้ธ้ ใ
Normal (None
) ASF behaviour is to only automate things that user wants (e.g. cards farming or SteamTradeMatcher
offers processing, if set in TradingPreferences
). ้ๆฏๆๅฐไพตๅ
ฅๆง็ๆจกๅผ๏ผๅฎๅฐๅคงๅคๆธ็จๆถ้ฝๆๅฅฝ่๏ผๅ ็บๆจๅฏไปฅๅฎๅ
จๆงๅถๆจ็ๅธณๆถ๏ผไธฆไธๆจๅฏไปฅๆฑบๅฎๆฏๅฆๅ
่จฑๆไบ่ถ
ๅบ็ฏๅ็ไบคไบใ
็กๆๅฅฝๅ้่ซๆฏไพ่ชๅฐ็ถๅๅธณๆถไธๅ
ทๆFamilySharing
ๆฌ้๏ผๅจSteamUserPermissions
ไธญๅฎ็พฉ๏ผๆๆด้ซๆฌ้็็จๆถ็ๅฅฝๅ้่ซใ ๆญฃๅธธๆจกๅผไธ็ ASF ๆๅฟฝ็ฅ้ไบ้่ซ๏ผๆญฃๅฆๆจๆๆๆ็้ฃๆจฃ๏ผ่ฎๆจๅฏไปฅ่ช็ฑ้ธๆๆฏๅฆๆฅๅ้ไบ้่ซใ ๅ็จRejectInvalidFriendInvites
ๆๅฐ่ด้ไบ้่ซ่ขซ่ชๅๆ็ต๏ผ้ๅฏฆ้ไธๆ็ฆ็จๅ
ถไปไบบๅฐๆจๆทปๅ ๅฐไปๅ็ๆๅๅ่กจ๏ผๅ ็บASFๅฐๆ็ตๆๆๆญค้ก่ซๆฑ๏ผ้คไบ SteamUserPermissionsไธญๆๅฎ็ไบบๅก
๏ผใ ้ค้ๆจๆณๅพนๅบๆ็ตๆๆๅฅฝๅ้่ซ๏ผๅฆๅๆจไธๆๅ็จๆญค้ธ้
ใ
็กๆไบคๆๆๆกๆฏไธ่ขซASFๅ
ง็ฝฎๆจก็ตๆๆฅๅ็ๆๆกใ ๆ้ๆญคๅ้ก็ๆดๅคไฟกๆฏๅฏไปฅๅจ** ไบคๆ **้จๅๆพๅฐ๏ผ่ฉฒ้จๅๆ็ขบๅฎ็พฉไบASF้กๆ่ชๅๆฅๅๅชไบ้กๅ็ไบคๆใ ๆๆไบคๆ้็ฑๅ
ถไป่จญ็ฝฎๅฎ็พฉ๏ผๅฐคๅ
ถๆฏ TradingPreferences
ใ RejectInvalidTrades
ๅฐๅฐ่ดๆๆ็กๆไบคๆๆๆก่ขซๆ็ต๏ผ่ไธๆฏ่ขซๅฟฝ็ฅใ ้ค้ๆจๆณ็ดๆฅๆ็ตASFๆช่ชๅๆฅๅ็ๆๆไบคๆๆๆก๏ผๅฆๅๆจไธๆๅ็จๆญค้ธ้
ใ
็กๆ็พค็ต้่ซๆฏไพ่ชSteamMasterClanID
ไนๅค็พค็ต็้่ซใ ๆญฃๅธธๆจกๅผไธ็ASFๆๅฟฝ็ฅ้ฃไบ็พค็ต้่ซ๏ผๆญฃๅฆๆจๆๆๆ็้ฃๆจฃ๏ผๅ
่จฑๆจ่ช่กๆฑบๅฎๆฏๅฆ่ฆๅ ๅ
ฅ็นๅฎ็Steam็พค็ตใ ๅ็จRejectInvalidGroupInvites
ๅฐๅฐ่ดๆๆ้ไบ็พค็ต้่ซ่ขซ่ชๅๆ็ต๏ผๅฏฆ้ไธๆจ็กๆณ่ขซ้่ซๅ ๅ
ฅSteamMasterClanID
ไนๅค็ไปปไฝๅ
ถไป็พค็ตใ ้ค้ๆจๆณๅพนๅบๆ็ตๆๆ็พค็ต้่ซ๏ผๅฆๅๆจไธๆๅ็จๆญค้ธ้
ใ
DismissInventoryNotifications
is extremely useful when you start getting annoyed by constant Steam notification about receiving new items. ASF็กๆณๆถ้ค้็ฅๆฌ่บซ๏ผๅ ็บๅฎไพ่ชๆจ็Steamๅฎขๆถ็ซฏ๏ผไฝๅฎ่ฝๅค ๅจๆถๅฐ้็ฅๅพ่ชๅๆธ
้ค้็ฅ๏ผ้ๅฐไธๅ็ไธโๅบซๅญไธญ็ๆฐ้
็ฎโ้็ฅใ If you expect to evaluate yourself all received items (especially cards farmed with ASF), then naturally you shouldn't enable this option. ๅฆๆๆจๅทฒ็ถ้ๅงๆ็ไบ๏ผ่ซ่จไฝ้ๅ
ๅ
ๆฏไธๅ้ธ้
ใ
MarkReceivedMessagesAsRead
will automatically mark all messages being received by the account on which ASF is running, both private and group, as read. ้้ๅธธๅ
ๆ็ฑๅ็จๅธณๆถไฝฟ็จ๏ผไปฅไพฟๆธ
้คโๆฐๆถๆฏโ้็ฅ๏ผไพๅฆ๏ผ ๅจๅท่กASFๅฝไปคๆๅพๆจ้ฃ่ฃกๆถๅฐ็ๆถๆฏใ ๆๅไธๅปบ่ญฐๅฐๆญค้ธ้
็จๆผไธป่ฆๅธณๆถ๏ผ้ค้ๆจๅธๆ่ชๅทฑ้ฟๅ
ๆถๅฐไปปไฝ้กๅ็ๆฐ้ตไปถ้็ฅ๏ผๅ
ๆฌๆจๅจ้ข็ทๆ๏ผASFไป่ๆผ้ๆพ็ๆ
่ไธไบ็ๆ็้็ฅใ
MarkBotMessagesAsRead
works in a similar manner by marking only bot messages as read. However, keep in mind that when using that option on group chats with your bots and other people, Steam implementation of acknowledging chat message also acknowledges all messages that happened before the one you decided to mark, so if by any chance you don't want to miss unrelated message that happened in-between, you typically want to avoid using this feature. Obviously, it's also risky when you have multiple primary accounts (e.g. from different users) running in the same ASF instance, as you can also miss their normal out-of-ASF messages.
ๅฆๆๆจไธ็ขบๅฎๅฆไฝ้ ็ฝฎๆญค้ธ้ ๏ผๆๅฅฝๅฐๅ ถไฟ็็บ้ ่จญๅผใ
้ ่จญๅผ็บ็ฉบ็ ImmutableHashSet<byte>
้กๅใ When ASF is done with completing a given set of item types specified here, it can automatically send steam trade with all finished sets to the user with Master
permission, which is very convenient if you'd like to utilize given bot account for e.g. STM matching, while moving finished sets to some other account. ๆญค้ธ้
่loot
ๅฝไปค็ไฝ็จ็ธๅ๏ผๅ ๆญค่ซ่ฌน่จ๏ผ้ฆๅ
ๆจ้่ฆๆๆ็SteamTradeToken
๏ผ ไธฆไฝฟ็จๅฏฆ้ๆ่ณๆ ผ้ฒ่กไบคๆ็ๅธณๆถ๏ผไธๅชๆMaster
ๆฌ้้็็จๆถๆ่ฝๅท่กใ
As of today, the following item types are supported in this setting:
ๅผ | ๅ็จฑ | ๆ่ฟฐ |
---|---|---|
3 | FoilTradingCard | ้ไบฎ้กๅ็TradingCard
|
5 | TradingCard | Steamไบคๆๅก็๏ผๅฏ็จๆผๅๆๅพฝ็ซ (้้ๅก๏ผ |
Please note that regardless of the settings above, ASF will only ask for Steam community items (appID
of 753, contextID
of 6), so all game items, gifts and likewise, are excluded from the trade offer by definition.
Due to additional overhead of using this option, it's recommended to use it only on bot accounts that have a realistic chance of finishing sets on their own - for example, it makes no sense to activate if you're already using SendOnFarmingFinished
preference in FarmingPreferences
, SendTradePeriod
or loot
command on usual basis.
ๅฆๆๆจไธ็ขบๅฎๅฆไฝ้ ็ฝฎๆญค้ธ้ ๏ผๆๅฅฝๅฐๅ ถไฟ็็บ้ ่จญๅผใ
้ ่จญๅผ็บ null
็ string
้กๅใ ็ถASFๆๅกๆ๏ผๅฎๅฏไปฅ้กฏ็คบ็ๆ
็บโ็ฉ้Steam้ๆฒ๏ผCustomGamePlayedWhileFarming
โ่ไธๆฏ็ถๅๆๅก็้ๆฒใ ๅฆๆๆจๆณ่ฎๆจ็ๆๅ็ฅ้ๆจๆญฃๅจๆๅก๏ผไฝๆจไธๆณไฝฟ็จOffline
็OnlineStatus
๏ผ้ๅฐ้ๅธธๆ็จใ ่ซๆณจๆ๏ผASF็กๆณๅนฒ้ Steam็ถฒ็ตก็ๅฏฆ้้กฏ็คบ้ ๅบ๏ผๅ ๆญค้ๅชๆฏไธ็จฎๅปบ่ญฐ๏ผๅฏ่ฝๆๆญฃ็ขบ้กฏ็คบ๏ผไนๅฏ่ฝไธๆใ In particular, custom name will not display in Complex
farming algorithm if ASF fills all 32
slots with games requiring hours to be bumped. null
็้ ่จญๅผ็ฆ็จๆญคๅ่ฝใ
ASF provides a few special variables that you can optionally use in your text. {0}
will be replaced by ASF with AppID
of currently farmed game(s), while {1}
will be replaced by ASF with GameName
of currently farmed game(s).
้ ่จญๅผ็บ null
็ string
้กๅใ ้กไผผๆผCustomGamePlayedWhileFarming
๏ผไฝๆฏ็จๆผASF็กๅกๅฏๆ็ๆ
ๆณ๏ผๅ ็บๅธณๆถๅทฒ็ถ็ฒๅพไบๆๆ็ๅฏๆ่ฝๅก็๏ผใ ่ซๆณจๆ๏ผASF็กๆณๅนฒ้ Steam็ถฒ็ตก็ๅฏฆ้้กฏ็คบ้ ๅบ๏ผๅ ๆญค้ๅชๆฏไธ็จฎๅปบ่ญฐ๏ผๅฏ่ฝๆๆญฃ็ขบ้กฏ็คบ๏ผไนๅฏ่ฝไธๆใ If you're using GamesPlayedWhileIdle
together with this option, then keep in mind that GamesPlayedWhileIdle
get priority, therefore you can't declare more than 31
of them, as otherwise CustomGamePlayedWhileIdle
will not be able to occupy the slot for custom name. null
็้ ่จญๅผ็ฆ็จๆญคๅ่ฝใ
้ ่จญๅผ็บ false
็ bool
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉๆฉๆขฐไบบๆฏๅฆๅ็จใ ๅ็จ็ๆฉๆขฐไบบๅฏฆไพ๏ผtrue
๏ผๅฐๅจASF้่กๆ่ชๅๅๅ๏ผ่็ฆ็จ็ๆฉๆขฐไบบๅฏฆไพ๏ผfalse
๏ผๅฐ้่ฆๆๅๅๅใ ้ป่ชๆ
ๆณไธ๏ผๆฏๅๆฉๆขฐไบบ้ฝ่ขซ็ฆ็จ๏ผๅ ๆญคๆจๅฏ่ฝๅธๆๅฐๆ่ชๅๅๅ็ๆๆๆฉๆขฐไบบ็ๆญคๅฑฌๆงๅๆ็บtrue
ใ
ImmutableList<byte>
type with default value of being empty. ๆญคๅฑฌๆงๅฎ็พฉASF็จๆผ็ตฆๅฎๆฉๆขฐไบบๅธณๆถ็้ฆ้ธๆๅก้ ๅบใ ็ถๅๅฏ้ธ็ๆๅกไฝๅๅฆไธ๏ผ
ๅผ | ๅ็จฑ | ๆ่ฟฐ |
---|---|---|
0 | Unordered | ็กๅบ๏ผ็ฅๅพฎๆ้ซCPUๆง่ฝ |
1 | AppIDsAscending | ๅ่ฉฆๅชๅ
ๅฐ appIDs ๆๅฐ็้ๆฒ้ฒ่กๆๅก |
2 | AppIDsDescending | ๅ่ฉฆๅชๅ
ๅฐ appIDs ๆๅคง็้ๆฒ้ฒ่กๆๅก |
3 | CardDropsAscending | ๅ่ฉฆๅชๅ ๅฐๅฉ้คๆ่ฝๅก็ๆธ็ฎๆๅฐ็้ๆฒ้ฒ่กๆๅก |
4 | CardDropsDescending | ๅ่ฉฆๅชๅ ๅฐๅฉ้คๆ่ฝๅก็ๆธ็ฎๆๅค็้ๆฒ้ฒ่กๆๅก |
5 | HoursAscending | ๅ่ฉฆๅชๅ ๅฐๅทฒ้็ฉๆ้ๆ็ญ็้ๆฒ้ฒ่กๆๅก |
6 | HoursDescending | ๅ่ฉฆๅชๅ ๅฐๅทฒ้็ฉๆ้ๆ้ท็้ๆฒ้ฒ่กๆๅก |
7 | NamesAscending | ๅ่ฉฆๆๅญๆฏๅๅบๆๅก๏ผๅพ A ้ๅง |
8 | NamesDescending | ๅ่ฉฆๆๅญๆฏ้ๅบๆๅก๏ผๅพ Z ้ๅง |
9 | Random | ๅ่ฉฆๅฎๅ จ้จๆฉๆๅก๏ผๆฏๆฌก้ฒ็จ็ๆๅกไฝๅไธๅ๏ผ |
10 | BadgeLevelsAscending | ๅ่ฉฆๅชๅ ๅฐๅพฝ็ซ ็ญ็ดๆไฝ็้ๆฒ้ฒ่กๆๅก |
11 | BadgeLevelsDescending | ๅ่ฉฆๅชๅ ๅฐๅพฝ็ซ ็ญ็ดๆ้ซ็้ๆฒ้ฒ่กๆๅก |
12 | RedeemDateTimesAscending | ๅ่ฉฆๅ ๅฐๆๅ็ๅธณๆถ่ฃๆ่็้ๆฒ้ฒ่กๆๅก |
13 | RedeemDateTimesDescending | ๅ่ฉฆๅ ๅฐๆๅ็ๅธณๆถ่ฃๆๆฐ็้ๆฒ้ฒ่กๆๅก |
14 | MarketableAscending | ๅ่ฉฆๅ ๅฐๆ่ฝไธๅฏๅฎๅก็็้ๆฒ้ฒ่กๆๅก |
15 | MarketableDescending | ๅ่ฉฆๅ ๅฐๆ่ฝๅฏๅฎๅก็็้ๆฒ้ฒ่กๆๅก |
็ฑๆผๆญคๅฑฌๆงๆฏไธๅๆธ็ต๏ผๅ ๆญคๅฎๅ
่จฑๆจๆๅบๅฎ้ ๅบไฝฟ็จๅคๅไธๅ็่จญ็ฝฎใ ไพๅฆ๏ผๆจๅฏไปฅ่จญ็ฝฎ15
๏ผ11
ๅ7
็ๅผ๏ผไปฅไพฟๅ
ๆๆๆ่ฝๅฏไบคๆๅก็้ๆฒ้ฒ่กๆๅบ๏ผ็ถๅพๆๅพฝ็ซ ็ดๅฅๆ้ซ็้ๆฒ้ฒ่กๆๅบ ๏ผๆๅพๆ้ๆฒๅ็จฑๅญๆฏ้ ๅบๆๅใ As you can guess, the order actually matters, as reverse one (7
, 11
and 15
) achieves something entirely different (sorts games alphabetically first, and due to game names being unique, the other two are effectively useless). ๅคงๅคๆธไบบๅฏ่ฝๅชไฝฟ็จๅ
ถไธญไธๅ้ ๅบ๏ผไฝๅฆๆๆจ้กๆ๏ผๆจ้ๅฏไปฅ้้้กๅค็ๅๆธ้ฒไธๆญฅๆๅบใ
ๅฆ่ซๆณจๆไปฅไธๆๆๆ่ฟฐไธญ็โๅ่ฉฆโไธ่ฉโโๅฏฆ้็ASF้ ๅบๅๆ้ธ** ๆๅก็ฎๆณ**็ๅฝฑ้ฟ๏ผไธฆไธๆๅบๅฐๅ
ๅฝฑ้ฟASF่ช็บๆง่ฝ็ธๅ็็ตๆใ ไพๅฆ๏ผๅจSimple
็ฎๆณไธญ๏ผๅจ็ถๅ็ๆๅกๆ่ฉฑไธญๆ่ฉฒๅฎๅ
จ้ตๅพชๆ้ธ็FarmingOrders
๏ผๅ ็บๆฏๅ้ๆฒๅ
ทๆ็ธๅ็ๆง่ฝๅผ๏ผ๏ผ่ๅจComplex
็ฎๆณไธญ๏ผๅฏฆ้้ ๅบ้ฆๅ
ๅ้ๆฒๆ้ๅฝฑ้ฟ๏ผ็ถๅพๆ นๆๆ้ธFarmingOrders
้ฒ่กๆๅบใ ้ๅฐๅฐ่ดไธๅ็็ตๆ๏ผๅ ็บๅ
ทๆ้ๆฒๆ้็้ๆฒๅฐๅชๅ
ๆผๅ
ถไป้ๆฒ๏ผๅ ๆญคASFๅฐ้ฆๅ
ๅชๅ
้ธๆ้ๆฒๆ้ๆปฟ่ถณๆ้็HoursUntilCardDrops
็้ๆฒ๏ผ็ถๅพๅ
้้ๆจ้ธๆ็ FarmingOrders
้ฒไธๆญฅๅฐ้ไบ้ๆฒ้ฒ่กๆๅบใ ๅๆจฃ๏ผไธๆฆASFๅฎๆๅฐ็ฝฎ้ ้ๆฒ็ๆๅก๏ผๅฎๅฐ้ฆๅ
ๆ้ๆฒๆ้ๅฐๅฉ้ค้ๅๆๅบ๏ผๅ ็บ้ๅฐๆธๅฐๅฐไปปไฝๅฉ้ค้ๆฒๆๅกไปฅ้HoursUntilCardDrops
ๆ้็ๆ้๏ผใ Therefore, this config property is only a suggestion that ASF will try to respect, as long as it doesn't affect performance negatively (in this case, ASF will always prefer farming performance over FarmingOrders
).
There is also farming priority queue that is accessible through fq
commands. If it's used, actual farming order is sorted firstly by performance, then by farming queue, and finally by your FarmingOrders
.
้ๆฏไธๅ้ ่จญๅผ็บ0
็ byte flags
ๅฑฌๆงใ This property defines ASF behaviour related to farming, and is defined as below:
ๅผ | ๅ็จฑ |
---|---|
0 | None |
1 | FarmingPausedByDefault |
2 | ShutdownOnFarmingFinished |
4 | SendOnFarmingFinished |
8 | FarmPriorityQueueOnly |
16 | SkipRefundableGames |
32 | SkipUnplayedGames |
64 | EnableRiskyCardsDiscovery |
256 | AutoUnpackBoosterPacks |
Please notice that this property is flags
field, therefore it's possible to choose any combination of available values. Check out json mapping if you'd like to learn more. ไธๅ็จไปปไฝๆจ่ชๆๅฐ่ดNone
้ธ้
ใ
All of the options are described below.
FarmingPausedByDefault
defines initial state of CardsFarmer
module. Normally bot will automatically start farming when it's started, either because of Enabled
or start
command. Using FarmingPausedByDefault
can be used if you want to manually resume
automatic farming process, for example because you want to use play
all the time and never use automatic CardsFarmer
module - this works exactly the same as pause
command.
ShutdownOnFarmingFinished
allows you to shutdown bot once it's done farming. Normally ASF is "occupying" an account for the whole time of process being active. ็ถ็ตฆๅฎๅธณๆถๅฎๆๆๅกไนๅพ๏ผASF ๆๅฎๆ๏ผๆฏๅIdleFarmingPeriod
ๅฐๆ๏ผๆชขๆฅๅธณๆถ็ๆ
๏ผๅฆๆๅจๆญคๆ้ๆฐๅขไบไธไบๅธถๆ Steam ๅก็ๆฐ้ๆฒ๏ผ้ฃ้บผๅฎๅฏไปฅๅจ็ก้้ๅ็ๆ
ๆณไธๆขๅพฉ่ฉฒๅธณๆถ็ๆๅก้ฒ็จใ ้ๅฐๅคงๅคๆธไบบ้ฝๅพๆ็จ๏ผๅ ็บ ASF ๅฏไปฅๅจ้่ฆๆ่ชๅๅพฉๅๆๅกใ However, you may actually want to stop the process when given account is fully farmed, you can achieve that by using this flag. ๅ็จๅพ๏ผASF ๅฐๅจๅธณๆถๅฎๅ
จ็ตๆๆๅกๅพ็ปๅบ๏ผ้ๆๅณ่ ASF ไธๆๅฐๆญคๅธณๆถ้ฒ่กๅฎๆๆชขๆฅๆไฝ็จใ ๆจๆ่ฉฒ่ชๅทฑๆฑบๅฎๆฏๅฆๆดๅๆญกASFๅจๆดๅๆ้ๅ
งไฝฟ็จ็ตฆๅฎ็ๆฉๆขฐไบบๅฏฆไพ๏ผๆ่
ASFๆฏๅฆๆ่ฉฒๅจๆๅก้็จๅฎๆๆๅๆญขๅฎใ
This option makes the most sense to be combined with ShutdownIfPossible
, so when all accounts are stopped, ASF will shutdown as well, putting your machine at rest and allowing you to schedule other actions, such as sleep or shutdown at the same moment of last card dropping.
SendOnFarmingFinished
allows you to automatically send steam trade containing everything farmed up to this point to user with Master
permission, which is very convenient if you don't want to bother with trades yourself. ๆญค้ธ้
่loot
ๅฝไปค็ไฝ็จ็ธๅ๏ผๅ ๆญค่ซ่ฌน่จ๏ผ้ฆๅ
ๆจ้่ฆๆๆ็SteamTradeToken
๏ผ ไธฆไฝฟ็จๅฏฆ้ๆ่ณๆ ผ้ฒ่กไบคๆ็ๅธณๆถ๏ผไธๅชๆMaster
ๆฌ้้็็จๆถๆ่ฝๅท่กใ ๆญค้ธ้
่ๆผๆดปๅ็ๆ
ๆ๏ผASF้คไบๅจๅฎๆๆๅกๅพๅท่กloot
ไนๅค๏ผ้๏ผ ็ธฝๆฏ๏ผๆๅจๆถๅฐๆฏๅๆฐ็ฉๅ้็ฅ๏ผไธๆๅกๆ๏ผๆๅฎๆๆฏๆฌกไบคๆไนๅพๅท่กloot
ใ ้ๅฐๆผๅฐๅพๅฅ่ๆถๅฐ็็ฉๅใ่ฝ็ผใๅฐๆๅ็ๅธณๆถ็นๅฅๆ็จใ Typically you'll want to use ASF 2FA together with this feature, although it's not a requirement if you intend to handle 2FA confirmations manually in timely fashion.
FarmPriorityQueueOnly
defines if ASF should consider for automatic farming only apps that you added yourself to priority farming queue available with fq
commands. When this option is enabled, ASF will skip all appIDs
that are missing on the list, effectively allowing you to cherry-pick games for automatic ASF farming. Keep in mind that if you didn't add any games to the queue then ASF will act as if there is nothing to farm on your account.
SkipRefundableGames
defines if ASF should skip games that are still refundable from automatic farming. ๆ่ฌๅฏ้ๆฌพ็้ๆฒ๏ผๆฏไฝ ๅจ้ๅป2ๅจๅ
ง้้ Steam ๅๅบ่ณผ่ฒทไฝ้ๆฒๆ้ไธ่ถ
้2ๅฐๆ็้ๆฒ๏ผๅฆ **Steam ้ๆฌพ**้ ้ขๆ่ฟฐใ By default, ASF ignores Steam refunds policy entirely and farms everything, as most people would expect. However, you can use this flag if you want to ensure that ASF won't farm any of your refundable games too soon, allowing you to evaluate those games yourself and refund if needed without worrying about ASF affecting playtime negatively. Please note that if you enable this option then games you purchased from Steam Store won't be farmed by ASF for up to 14 days since redeem date, which will show as nothing to farm if your account doesn't own anything else.
SkipUnplayedGames
defines if ASF should skip games that you didn't launch yet. Unplayed game in this context means that you have exactly no playtime recorded for it on Steam. If you use this flag, then such games will be skipped until Steam registers any playtime for them. This allows you to control better which games ASF is eligible to farm, skipping those that you didn't have a chance of trying out yet, keeping selected Steam features more useful - such as suggesting unplayed games to play.
EnableRiskyCardsDiscovery
enables additional fallback which triggers when ASF is unable to load one or more of badge pages and is therefore unable to find games available for farming. In particular, some accounts with massive amount of card drops might cause a situation where loading badge pages is no longer possible (due to overhead), and those accounts are impossible for farming purely because we can't load the information based on which we can start the process. For those handful cases, this option allows alternative algorithm to be used, which uses a combination of boosters possible to craft and booster packs the account is eligible for, in order to find potentially available games to idle, then spending excessive amount of resources for verifying and fetching required information, and attempting to start the process of farming on limited amount of data and information in order to eventually reach a situation when badge page loads and we'll be able to use normal approach. Please note that when this fallback is used, ASF operates only with limited data, therefore it's completely normal for ASF to find much less drops than in reality - other drops will be found at later stage of farming process.
This option is called "risky" for a very good reason - it's extremely slow and requires significant amount of resources (including network requests) for operation, therefore it's not recommended to be enabled, and especially in long-term. You should use this option only if you previously determined that your account suffers from being unable to load badge pages and ASF can't operate on it, always failing to load necessary information to start the process. Even if we made our best to optimize the process as much as possible, it's still possible for this option to backfire, and it might cause unwanted outcomes, such as temporary and maybe even permanent bans from Steam side for sending too many requests and otherwise causing overhead on Steam servers. Therefore, we warn you in advance and we're offering this option with absolutely no guarantees, you're using it at your own risk.
AutoUnpackBoosterPacks
will automatically unpack all booster packs upon receiving new items notification. This will allow you to immediately acquire additional card drops, which might be wanted scenario especially in combination with other options (e.g. SteamTradeMatcher
or CompleteTypesToSend
).
้ ่จญๅผ็บ็ฉบ็ ImmutableHashSet<uint>
้กๅใ ๅฆๆ ASF ๆฒๆไปปไฝ้ๆฒๅฏไพๆๅก๏ผๅฎๅฏไปฅ้็ฉๆๅฎ็ Steam ้ๆฒ (appIDs
)ใ ไปฅ้ๆจฃ็ๆนๅผ็ฉ้ๆฒๆๅขๅ ้ฃไบ้ๆฒ็ใ้็ฉๆ้ทใ๏ผไฝ้คๆญคไนๅค๏ผๅฅ็กไป็จใ In order for this feature to work properly, your Steam account must own a valid license to all the appIDs
that you specify here, this includes F2P games as well. ๆญคๅ่ฝๅฏไปฅ่CustomGamePlayedWhileIdle
ๅๆๅ็จ๏ผไปฅไพฟๅจSteam็ถฒ็ตกไธญ้กฏ็คบ่ช่จ้ๆฒ็ๆ
๏ผไฝๅจCustomGamePlayedWhileFarming
้้กๆ
ๆณไธญ๏ผ ๅฏฆ้็้กฏ็คบ้ ๅบ็กๆณไฟ่ญใ ่ซๆณจๆ๏ผSteam ๅ
่จฑ ASF ๆๅคๅๆ้็ฉ 32
ๅ appIDs
๏ผๅ ๆญคๆจ่จญ็ฝฎ่ฉฒๅฑฌๆงๆๆๅ่ๆญคๅผใ
้ๆฏไธๅ้ ่จญๅผ็บ3
็byte
้กๅๅฑฌๆงใ ๆญคๅฑฌๆงๅฎ็พฉๅธณๆถๆฏๅฆๆๅก็ๆ่ฝ้ๅถ๏ผ่ฅๆ๏ผๅๅฎ็พฉๅๅงๅฐๆๆธใ ๅ้ๅถ็ๅกๆ่ฝๆๅณ่ๅธณๆถๅจ็ตฆๅฎ็้ๆฒ็ฉไบ่ณๅฐ hoursuntilcards
ๅฐๆๅไธๆ็ฒๅพไปปไฝๆ่ฝ็ๅก็ใ ไธๅนธ็ๆฏ๏ผๆฒๆ็ฅๅฅ็ๆนๆณไพๆชขๆธฌๅฎ๏ผๆไปฅASFไพ่ณดๆผไฝ ใ ๆญคๅฑฌๆงๅฝฑ้ฟๅฐไฝฟ็จ็**ๆๅก็ฎๆณ**ใ ๆญฃ็ขบ่จญ็ฝฎๆญคๅฑฌๆงๅฐๆๅคง้ๅบฆๅฐๆ้ซๆ็๏ผไธฆๆๅคง้ๅบฆๅฐๆธๅฐๆๅกๆ้็ๆ้ใ ่ซ่จไฝ๏ผๆจๆฏๅฆๆ่ฉฒไฝฟ็จไฝๅผ๏ผ้ๆฒๆๆ้กฏ็็ญๆก๏ผๅ ็บๅฎๅฎๅ
จๅๆฑบๆผๆจ็ๅธณๆถใ ๅพไพๆฒๆ่ฆๆฑ้ๆฌพ็่็จๆถไผผไนๅจๅก็ๆ่ฝไธไธๅ้ๅถ๏ผๆไปฅไปๅๆ่ฉฒไฝฟ็จ0
็ๅผ๏ผ่ๆฐๅธณๆถๅ้ฃไบ่ฆๆฑ้ๆฌพ็ไบบๅจๅก็ๆ่ฝไธๆ3
ๅฐๆ็้ๅถใ ็ถ่๏ผ้ๅชๆฏ็่ซ๏ผไธๆไฝ็บไธๆขๅฎ็ใ ๆญคๅฑฌๆง็้ป่ชๅผๆฏๅบๆผโๅ
ฉๅฎณ็ธๆฌๅๅ
ถ่ผโๅๅคงๅคๆธ็จไพ่จญ็ฝฎ็ใ
้ ่จญๅผ็บ 1๏ผ3๏ผ5
็ ImmutableHashSet<byte>
้กๅใ This property defines ASF behaviour when looting - both manual, using a command, as well as automatic one, through one or more configuration properties. ASFๅฐ็ขบไฟไบคๆๆๆกไธญๅชๅ
ๅซ็ฌฆๅLootableTypes
็็ฉๅ๏ผๅ ๆญค๏ผๆญคๅฑฌๆงๅ
่จฑๆจ้ธๆ่ฆๅจ็ผ้็ตฆๆจ็ไบคๆๆๆกไธญๆถๅฐ็ๅ
งๅฎนใ
ๅผ | ๅ็จฑ | ๆ่ฟฐ |
---|---|---|
0 | Unknown | ไธๅฑฌๆผไปฅไธไปปไฝ้กๅ็้กๅ |
1 | BoosterPack | ๅ ๅซ3ๅผตไพ่ชๅไธ้ๆฒ็ๅก็็ๆดๅ ๅ |
2 | Emoticon | ๅจSteam่ๅคฉไธญไฝฟ็จ็่กจๆ ็ฌฆ่ |
3 | FoilTradingCard | ้ไบฎ้กๅ็TradingCard
|
4 | ProfileBackground | ๅฏๅจๆจ็Steamๅไบบ่ณๆ้ ไธญไฝฟ็จ็่ๆฏ |
5 | TradingCard | Steamไบคๆๅก็๏ผๅฏ็จๆผๅๆๅพฝ็ซ (้้ๅก๏ผ |
6 | SteamGems | ็จๆผ่ฃฝไฝๆดๅ ๅ ็ Steam ๅฏถ็ณ๏ผๅ ๆฌๅฏถ็ณ่ข |
7 | SaleItem | Steam็น่ณฃๆ้็ฒๅพ็็นๆฎ็ฉๅ |
8 | Consumable | ไฝฟ็จๅพๆถๅคฑ็็นๆฎๅฐ็ฉๆๅ |
9 | ๅไบบๆชๆกไฟฎๆนๅจ | ๅฏไปฅไฟฎๆนSteam่จญๅฎๆชๅค่ง็็นๆฎ็ฉๅ |
10 | Sticker | Special items that can be used on Steam chat |
11 | ChatEffect | Special items that can be used on Steam chat |
12 | MiniProfileBackground | Special background for Steam profile |
13 | AvatarProfileFrame | Special avatar frame for Steam profile |
14 | AnimatedAvatar | Special animated avatar for Steam profile |
15 | KeyboardSkin | Special keyboard skin for Steam deck |
16 | StartupVideo | Special startup video for Steam deck |
Please note that regardless of the settings above, ASF will only ask for Steam community items (appID
of 753, contextID
of 6), so all game items, gifts and likewise, are excluded from the trade offer by definition.
ASF ้ ่จญๅบๆผๆฉๅจไบบ็ๆๅธธ่ฆ็จๆณ๏ผๅ
ๆพๅๆดๅ
ๅ
ๅไบคๆๅก็๏ผๅ
ๆฌ้ไบฎๅก็๏ผใ ้่ฃๅฎ็พฉ็ๅฑฌๆงๅ
่จฑไฝ ไปฅไปปไฝไปคไฝ ๆปฟๆ็ๆนๅผๆน่ฎ้็จฎ่ก็บใ ่ซ่จไฝ๏ผไธ้ขๆชๅฎ็พฉ็ๆๆ้กๅ้ฝๅฐ้กฏ็คบ็บUnknown
้กๅ๏ผ้ๅจValve็ผๅธไธไบๆฐ็Steam้
็ฎๆๅฐค็บ้่ฆ๏ผ่ฉฒ้
็ฎๅฐ่ขซASFๆจ่จ็บUnknown
๏ผ็ดๅฐๅฎ่ขซๆทปๅ ๅฐ้่ฃก๏ผๅจๅฐไพ็็ๆฌไธญ๏ผใ ้ๅฐฑๆฏ็บไป้บผไธ่ฌไธๅปบ่ญฐๅจLootableTypes
ไธญ้ธๆUnknown
้กๅ๏ผ้ค้ๆจ็ฅ้่ชๅทฑๅจๅไป้บผ๏ผไธฆไธ้็ญ่งฃ่ฌไธSteam ็ถฒ็ตกๅดฉๆฝฐไธฆๅฐๆจ็ๆๆๅๅๆจ่จ็บUnknown
๏ผASFๆๅจไบคๆๆๆกไธญ็ผ้ๆจ็ๆดๅๅบซๅญใ My strong suggestion is to not include Unknown
type in the LootableTypes
, even if you expect to loot everything (else).
้ ่จญๅผ็บ 5
็ ImmutableHashSet<byte>
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉๅจๅ็จTradingPreferences
ไธญ็SteamTradeMatcher
้ธ้
ๆๅ
่จฑๅน้
็Steam็ฉๅ้กๅใ ้กๅ็ๅฎ็พฉๅฆไธ๏ผ
ๅผ | ๅ็จฑ | ๆ่ฟฐ |
---|---|---|
0 | Unknown | ไธๅฑฌๆผไปฅไธไปปไฝ้กๅ็้กๅ |
1 | BoosterPack | ๅ ๅซ3ๅผตไพ่ชๅไธ้ๆฒ็ๅก็็ๆดๅ ๅ |
2 | Emoticon | ๅจSteam่ๅคฉไธญไฝฟ็จ็่กจๆ ็ฌฆ่ |
3 | FoilTradingCard | ้ไบฎ้กๅ็TradingCard
|
4 | ProfileBackground | ๅฏๅจๆจ็Steamๅไบบ่ณๆ้ ไธญไฝฟ็จ็่ๆฏ |
5 | TradingCard | Steamไบคๆๅก็๏ผๅฏ็จๆผๅๆๅพฝ็ซ (้้ๅก๏ผ |
6 | SteamGems | ็จๆผ่ฃฝไฝๆดๅ ๅ ็ Steam ๅฏถ็ณ๏ผๅ ๆฌๅฏถ็ณ่ข |
7 | SaleItem | Steam็น่ณฃๆ้็ฒๅพ็็นๆฎ็ฉๅ |
8 | Consumable | ไฝฟ็จๅพๆถๅคฑ็็นๆฎๅฐ็ฉๆๅ |
9 | ๅไบบๆชๆกไฟฎๆนๅจ | ๅฏไปฅไฟฎๆนSteam่จญๅฎๆชๅค่ง็็นๆฎ็ฉๅ |
10 | Sticker | Special items that can be used on Steam chat |
11 | ChatEffect | Special items that can be used on Steam chat |
12 | MiniProfileBackground | Special background for Steam profile |
13 | AvatarProfileFrame | Special avatar frame for Steam profile |
14 | AnimatedAvatar | Special animated avatar for Steam profile |
15 | KeyboardSkin | Special keyboard skin for Steam deck |
16 | StartupVideo | Special startup video for Steam deck |
็ถ็ถ๏ผ้ๅธธๆจๆ่ฉฒๅ
ๅจๆญคๅฑฌๆงไธญ้ธๆ2
๏ผ3
๏ผ4
ๅ5
๏ผ ๅ ็บSTMๅชๆฏๆ้ไบ้กๅใ ASFๅ
ๅซ็จๆผๅคๆท็ฉๅ็จๆๅบฆ็ๆญฃ็ขบ้่ผฏ๏ผๅ ๆญคๅน้
่กจๆ
็ฌฆ่ๆ่ๆฏไนๆฏๅฎๅ
จ็๏ผๅ ็บASFๅฐ่ช็บไพ่ช็ธๅ้ๆฒๅ้กๅ็็ฉๅๅ
ทๆ็ธๅ็็จๆๆงใ
่ซๆณจๆ๏ผASF ไธฆ้ไบคๆๆฉๆขฐไบบ๏ผไธฆไธ้ๅฟๅธๅ ดๅนๆ ผใ ๅฆๆๆจไธ่ช็บๅไธ้ๅไธญ็จๆๅบฆ็ธๅ็็ฉๅๆฏ็ญๅน็๏ผ้ฃ้บผ้ๅ้ธ้ ไธ้ฉๅๆจใ ๅฆๆๆจๆฑบๅฎๆดๆนๆญค่จญ็ฝฎ๏ผ่ซๅจๆญคไนๅ่ฉไผฐๅ ฉๆฌกไปฅ็่งฃไธฆๅๆๆญค่ฒๆใ
้ค้ไฝ ็ฅ้่ชๅทฑๅจๅไป้บผ๏ผๅฆๅไฝ ๆ่ฉฒไฟ็้ ่จญๅผ5
ใ
ushort flags
type with default value of 0
. This property works as supplement to OnlineStatus
and specifies additional online presence features announced to Steam network. Requires OnlineStatus
other than Offline
, and is defined as below:
ๅผ | ๅ็จฑ | ๆ่ฟฐ |
---|---|---|
0 | None | No special online presence flags, default |
256 | ClientTypeWeb | Client is using web interface |
512 | ClientTypeMobile | Client is using mobile app |
1024 | ClientTypeTenfoot | Client is using big picture |
2048 | ClientTypeVR | Client is using VR headset |
Please notice that this property is flags
field, therefore it's possible to choose any combination of available values. Check out json mapping if you'd like to learn more. ไธๅ็จไปปไฝๆจ่ชๆๅฐ่ดNone
้ธ้
ใ
The underlying EPersonaStateFlag
type that this property is based on includes more available flags, however, to the best of our knowledge they have absolutely no effect as of today, therefore they were cut for visibility.
ๅฆๆๆจไธ็ขบๅฎ่ฉฒๅฆไฝ่จญ็ฝฎๆญคๅฑฌๆง๏ผ่ซๅฐๅ
ถไฟ็็บ้ ่จญๅผ0
ใ
้ๆฏไธๅ้ ่จญๅผ็บ0
็ byte flags
ๅฑฌๆงใ This property can enable some additional online features on the Steam platform, and is defined as below:
ๅผ | ๅ็จฑ | ๆ่ฟฐ |
---|---|---|
0 | None | No special online preferences, default |
1 | IsSteamDeck | Present itself as Steam Deck |
Please notice that this property is flags
field, therefore it's possible to choose any combination of available values. Check out json mapping if you'd like to learn more. ไธๅ็จไปปไฝๆจ่ชๆๅฐ่ดNone
้ธ้
ใ
ๅฆๆๆจไธ็ขบๅฎ่ฉฒๅฆไฝ่จญ็ฝฎๆญคๅฑฌๆง๏ผ่ซๅฐๅ
ถไฟ็็บ้ ่จญๅผ0
ใ
้ๆฏไธๅ้ ่จญๅผ็บ1
็ byte flags
้กๅๅฑฌๆงใ ๆญคๅฑฌๆงๅฎ็พฉๆฉๆขฐไบบๅจ็ป้Steam็ถฒ็ตกๅพๅฐ้กฏ็คบ็Steam็คพๅ็ๆ
ใ ็ถๅๆจๅฏไปฅ้ธๆไปฅไธ็ๆ
ไนไธ๏ผ
ๅผ | ๅ็จฑ |
---|---|
0 | ้ข็ท |
1 | ็ทไธ |
2 | ๅฟ็ข |
3 | ้ข้ |
4 | ๆ็็ก |
5 | ๆๅพ ไบคๆ |
6 | ๆๅพ ็ฉ้ๆฒ |
7 | ้่บซ |
Offline
็ๆ
ไธป่ฆ้ฉ็จๆผไธปๅธณ่ใ ๆญฃๅฆๆจๆ่ฉฒ็ฅ้็๏ผๆๅกๆๅฏฆ้ไธ้กฏ็คบๆจ็Steam็ๆ
็บ "ๅจ็ฉ้ๆฒ๏ผXXX"๏ผ้ๅฏ่ฝๆ่ชคๅฐๆจ็ๆๅไปฅ็บไฝ ๅจ็ฉ้ๆฒ๏ผ่ๅฏฆ้ไธๆจๅชๆฏๅจๆๅกใ Offline
็ๆ
่งฃๆฑบไบ้ๅๅ้ก - ็ถๆจไฝฟ็จASFๆๅกๆ๏ผๆจ็ๅธณๆถๆฐธ้ ไธๆ้กฏ็คบ็บโ้ๆฒไธญโใ ้ๆฏๅฏ่ฝ็๏ผๅ ็บASFไธๅฟ
็ป้Steam็คพๅ๏ผๅณๅฏๆญฃๅธธๅทฅไฝ๏ผๅ ๆญคๆๅๅฏฆ้ไธๆญฃๅจ็ฉ้ๆฒ๏ผ้ฃๆฅๅฐSteam็ถฒ็ตก๏ผไฝๆ นๆฌๆฒๆๅฎฃๅธๆๅ็ๅจ็ท็ๆ
ใ ่ซๆณจๆ๏ผ้ข็ท็ๆ
ไธ็ฉ็้ๆฒไปๅฐ่จๅ
ฅๆจ็้ๆฒๆ้๏ผไธฆๅจๆจ็ๅไบบ่ณๆไธญ้กฏ็คบ็บโๆ่ฟ็ฉ็้ๆฒโใ
้คๆญคไนๅค๏ผๅฆๆๆจๅธๆๅจASF้่กๆๆฅๆถ้็ฅๅๆช่ฎๆถๆฏ๏ผๅๆไธๆ้Steamๅฎขๆถ็ซฏ๏ผๆญคๅ่ฝไนๅพ้่ฆใ ้ๆฏๅ ็บASFๆฌ่บซๅ ็ถSteamๅฎขๆถ็ซฏ๏ผ็ก่ซASFๆฏๅฆ้กๆ๏ผSteam้ฝๆๅๅ ถๅปฃๆญๆๆ้ไบๆถๆฏๅๅ ถไปไบไปถใ ๅฆๆๆจๅๆ้่กASFๅๆจ่ชๅทฑ็Steamๅฎขๆถ็ซฏ๏ผๅ้ไธๆฏๅ้ก๏ผๅ ็บๅ ฉๅๅฎขๆถ็ซฏ้ฝๆถๅฐๅฎๅ จ็ธๅ็ไบไปถใ ไฝๆฏ๏ผๅฆๆๅชๆASFๆญฃๅจ้่ก๏ผSteam็ถฒ็ตกๅฏ่ฝๆๅฐๆไบไบไปถๅๆถๆฏๆจ่จ็บโๅทฒ็ผ้โ๏ผๅ็ฎกๆจ็ๅณ็ตฑSteamๅฎขๆถ็ซฏ็ฑๆผไธๅญๅจ่ๆชๆถๅฐๅฎใ Offline ็ๆ ไน่งฃๆฑบไบ้ๅๅ้ก๏ผๅ ็บๅจ้็จฎๆ ๆณไธ๏ผASFๅพๆช่ขซ่ๆ ฎๅ่ไปปไฝ็คพๅไบไปถ๏ผๅ ๆญค็ถๆจ่ฟๅๆ๏ผๆๆๆช่ฎๆถๆฏๅๅ ถไปไบไปถๅฐ่ขซๆญฃ็ขบๆจ่จ็บๆช่ฎใ
้่ฆ็ๆฏ่ฆๆณจๆ๏ผๅจOffline
ๆจกๅผไธ้่ก็ASFๅฐไธ่ฝไปฅๅธธ่ฆ็Steam่ๅคฉๆนๅผๆฅๆถๅฝไปค๏ผๅ ็บ่ๅคฉไปฅๅๆดๅ็คพๅ็ๅญๅจๅฏฆ้ไธๆฏๅฎๅ
จ้ข็ท็ใ ่งฃๆฑบๆญคๅ้ก็ๆนๆณๆฏไฝฟ็จ invisible
ๆจกๅผ๏ผๅฎไปฅ้กไผผ็ๆนๅผๅทฅไฝ๏ผไธๅ
ฌ้็ๆ
๏ผ๏ผไฝไฟๆๆฅๆถๅๅๆ่จๆฏ็่ฝๅ๏ผๅ ๆญคไนๅฏ้้้็ฅๅๆช่ฎๆถๆฏ๏ผๅฆไธๆๆ่ฟฐ๏ผใ Invisible
ๆจกๅผๅฐๆจไธๅธๆๅ
ฌ้๏ผ็ๆ
ๆน้ข๏ผไฝไป่ฝ็ผ้ๅฝไปค็ๅ็จๅธณๆถๆๆๆ็พฉใ
ไฝๆฏ๏ผInvisible
ๆจกๅผๆไธๅๅ้กโโๅฎไธ้ฉ็จๆผไธปๅธณๆถใ ้ๆฏๅ ็บ็ถๅๅจ็ท็ไปปไฝ Steamๆ่ฉฑ้ฝๅฐๅ
ฌ้็ๆ
๏ผๅณไฝฟASFไธฆ็กๆญคๆใ ้ๆฏ็ถๅๅจASF็ซฏ็กๆณไฟฎๅพฉ็Steam็ถฒ็ตก้ๅถ/้ฏ่ชค้ ๆ็๏ผๅ ๆญคๅฆๆๆจๆณไฝฟ็จInvisible
ๆจกๅผ๏ผๆจ้้่ฆ็ขบไฟ** ๆๆ**ๅไธๅธณๆถ็ๅ
ถไปๆ่ฉฑไนไฝฟ็จInvisible
ๆจกๅผใ ้็งๆ
ๆณ้ฉ็จๆผASF็บๅฏไธๆดปๅๆ่ฉฑ็ๅ็จๅธณๆถ๏ผไฝๅจไธปๅธณๆถไธ๏ผๆจๅคงๆฆๆๅธๆๅฐOnline
็ๆ
้กฏ็คบ็ตฆๆจ็ๆๅ๏ผๅ
้ฑ่ASFๆดปๅ๏ผๅจ้็จฎๆ
ๆณไธInvisible
ๆจกๅผๅฐไฝ ไพ่ชชๆฏซ็กๅนซๅฉ๏ผๆๅๅปบ่ญฐไฝฟ็จOffline
ๆจกๅผ๏ผใ ๅธๆValveๅฐๅจๆชไพ่งฃๆฑบ้ๅ้ๅถ/้ฏ่ชค๏ผไฝๆ่ฆบๅพ้ๆฏๆ็ไนๅนด็ณปๅโฆโฆ
ๅฆๆๆจไธ็ขบๅฎๅฆไฝ่จญ็ฝฎๆญคๅฑฌๆง๏ผๅปบ่ญฐๅฐไธปๅธณๆถไฝฟ็จ 0
(Offline
)๏ผไธฆ็บๅ
ถไปๅธณๆถไฝฟ็จ้ ่จญๅผ 1
(Online
)ใ
byte
type with default value of 0
(PlainText
). This property defines the format of SteamPassword
property, and currently supports values specified in the security section. You should follow the instructions specified there, as you'll need to ensure that SteamPassword
property indeed includes password in matching PasswordFormat
. ๆๅฅ่ฉฑ่ชช๏ผ็ถๆจๆดๆนPasswordFormat
ๅ๏ผๆจ็SteamPassword
ๆ ผๅผๅทฒ็ถ่ฎๆดใ ้ค้ไฝ ็ฅ้่ชๅทฑๅจๅไป้บผ๏ผๅฆๅไฝ ๆ่ฉฒไฟ็้ ่จญๅผ0
ใ
If you decide to change PasswordFormat
of a bot that has already logged in to Steam network at least once, it's possible that you'll get one-time decrypt error on the next bot's start - this is caused by the fact that PasswordFormat
is also used in regards to automatic encryption/decryption of sensitive properties in Bot.db
database file. You can safely ignore that error, as ASF will be able to recover from this situation on its own. If it's happening on constant basis though, e.g. each restart, it should be investigated.
้ๆฏไธๅ้ ่จญๅผ็บ0
็ byte flags
ๅฑฌๆงใ ๆญคๅฑฌๆงๅฎ็พฉASFๅจๅ
ๆcd-keysๆ็่ก็บ๏ผๅฎ็พฉๅฆไธ๏ผ
ๅผ | ๅ็จฑ | ๆ่ฟฐ |
---|---|---|
0 | None | ้ ่จญๅผ๏ผ็ก็นๆฎๆฟๆดปๅๅฅฝ |
1 | Forwarding | ๅฐ็กๆณๅ ๆ็้้ฐ่ฝฌ็ผ็ตฆๅ ถไปๆฉๆขฐไบบ |
2 | Distributing | ๅจ่ชๅทฑๅๅ ถไปๆฉๆขฐไบบไน้ๅ้ ๆๆๅฏ้ฐ |
4 | KeepMissingGames | ่ฝ็ผๆไฟ็๏ผๅฏ่ฝ๏ผ็ผบๅฐๆธธๆฒ็ๅฏ้ฐ๏ผไธๅปๆฟๆดปๅฎ |
8 | AssumeWalletKeyOnBadActivationCode | Assume that BadActivationCode keys are equal to CannotRedeemCodeFromClient , and therefore try to redeem them as wallet keys |
Please notice that this property is flags
field, therefore it's possible to choose any combination of available values. Check out json mapping if you'd like to learn more. ไธๅ็จไปปไฝๆจ่ชๆๅฐ่ดNone
้ธ้
ใ
Forwarding
ๅฐๅฐ่ด็ถๆๆฉๆขฐไบบ๏ผๅฆๆๆชขๆฅๅฐๅ
ถ๏ผ็ผบๅฐ่ฉฒ็นๅฎ้ๆฒๆ๏ผๅฐๆญค็กๆณๅ
ๆ็ๅฏ้ฐ่ฝ็ผ็ตฆๅฆไธๅ้ฃๆฅไธฆ็ป้็ๆฉๆขฐไบบใ ๆๅธธ่ฆ็ๆ
ๆณๆฏๅฐAlreadyPurchased
็้ๆฒ่ฝ็ผ็ตฆๅฆไธๅๅฐๆชๆๆ่ฉฒ็นๅฎ้ๆฒ็ๆฉๆขฐไบบ๏ผไฝๆญค้ธ้
้ๆถต่ๅ
ถไปๅ ดๆฏ๏ผไพๅฆDoesNotOwnRequiredApp
๏ผๅฐๆชๆๆ้ๆฒๆฌ้ซ๏ผ๏ผRateLimited
ๆRestrictedCountry
๏ผ้ๆฒ้ๅ๏ผใ
Distributing
ๅฝไปคๅฐๅฐ่ดๆฉๆขฐไบบๅจ่ช่บซๅๅ
ถไปๆฉๆขฐไบบไน้ๅ็ผๆๆๆฅๆถๅฐ็้้ฐใ ้ๆๅณ่ๆฏๅๆฉๆขฐไบบ้ฝๆๅพๆน่็ไธญ็ฒๅพไธๅๅฏ้ฐใ ้ๅธธ๏ผๅชๆ็ถๆจ็บๅไธ้ๆฒๅ
ๆๅคๅ้้ฐๆ๏ผๆๆไฝฟ็จๆญคๅ่ฝ๏ผไธฆไธๆจๅธๆๅฐๅฎๅๅๅปๅฐๅไฝๅจๆจ็ๆฉๆขฐไบบไธญ๏ผ่ไธๆฏ็บๅ็จฎไธๅ็้ๆฒๅ
ๆ้้ฐใ ๅฆๆๆจๅชๅ
ๆๅฎๅ ๅ
ๆ
ๆไฝไธญ็ไธๅ้้ฐ๏ผๅๆญคๅ่ฝๆฏซ็กๆ็พฉ๏ผๅ ็บๆฒๆ่ฆๅ็ผ็้กๅค้้ฐ๏ผใ
็ถๆๅ็กๆณ็ขบๅฎ่ขซๅ
ๆ็ๅฏ้ฐๆฏๅฆๅฏฆ้ไธ็ฑๆๅ็ๆฉๆขฐไบบๆๆๆ๏ผKeepMissingGames
ๅฐๅฐ่ดๆฉๆขฐไบบ่ทณ้Forwarding
ใ ้ๆๅณ่Forwarding
ๅฐๅ
ๆ็จๆผAlreadyPurchased
้ๆฒๅฏ้ฐ๏ผ่ไธ่ฆ่ๅ
ถไปๆ
ๆณ๏ผไพๅฆDoesNotOwnRequiredApp
๏ผ RateLimited
ๆRestrictedCountry
ใ ้ๅธธ๏ผๆจๅฏ่ฝๅธๆๅจไธปๅธณๆถไธไฝฟ็จๆญค้ธ้
๏ผไปฅ็ขบไฟ็ถๆจ็ๆฉๆขฐไบบ็ๆ
ๆซๆ็บRateLimited
ๆ๏ผไธๆ้ฒไธๆญฅ่ฝ็ผๅจๅ
ถไธๅ
ๆ็ๅฏ้ฐใ ๆญฃๅฆๆจๅพๆ่ฟฐไธญ็ๆธฌ็้ฃๆจฃ๏ผๅฆๆๆชๅ็จForwarding
๏ผๅๆญคๅญๆฎต็ต็กๆๆใ
AssumeWalletKeyOnBadActivationCode
will cause BadActivationCode
keys to be treated as CannotRedeemCodeFromClient
, and therefore result in ASF trying to redeem them as wallet keys. This is needed because Steam might announce wallet keys as BadActivationCode
(and not CannotRedeemCodeFromClient
as it used to), resulting in ASF never attempting to redeem them. However, we recommend against using this preference, as it'll result in ASF trying to redeem every invalid key as a wallet code, resulting in excessive amount of (potentially invalid) requests sent to the Steam service, with all the potential consequences. Instead, we recommend to use ForceAssumeWalletKey
redeem^
mode while knowingly redeeming wallet keys, which will enable the needed workaround only when it's required, on as-needed basis.
ๅๆๅ็จForwarding
ๅDistributing
ๅฐๅจ่ฝ็ผๅ่ฝไนไธๆทปๅ ๅ็ผๅ่ฝ๏ผ้ไฝฟๅพASF้ฆๅ
ๅ่ฉฆๅจๆๆๆฉๆขฐไบบไธๅ
ๆไธๅๅฏ้ฐ๏ผ่ฝ็ผ๏ผ๏ผ็ถๅพๅ่ฝ็งปๅฐไธไธๅ๏ผๅ็ผ๏ผใ ้ๅธธ๏ผๆจๅชๅธๆๅจ้่ฆForwarding
ๆไฝฟ็จๆญค้ธ้
๏ผๅฎๆน่ฎไบไฝฟ็จๅฏ้ฐ็ๆฉๅจไบบ็่ก็บ๏ผ่ไธๆฏๅง็ตๆ้ ๅบไฝฟ็จๆฏๅๅฏ้ฐ๏ผ้ๅฐๆฏ Forwarding๏ผๅ
่ฝ็ผ๏ผ
๏ผใ ๅฆๆๆจ็ฅ้ๅคงๅคๆธ็่ณๆๆๅฏ้ฐ้ฝ็ถๅฎๅฐๅไธๅ้ๆฒ๏ผ้็จฎ่ก็บๆๅพๆ็จ๏ผๅ ็บๅจ้็จฎๆ
ๆณไธ๏ผForwarding
ๆ้ฆๅ
ๅ่ฉฆๅจไธๅๆฉๆขฐไบบไธๅ
ๆๆๆๅฏ้ฐ๏ผๅฆๆๆฏๅๅฏ้ฐ็จๆผไธๅ็้ๆฒ๏ผ๏ผForwarding
+ Distributing
ๅฐๅจไธไธๅๅฏ้ฐไธๅๆๆฉๆขฐไบบ๏ผๅฐๆฐๅฏ้ฐ็ๅ
ๆไปปๅโๅ็ผโๅฐๅฆไธๅๆฉๆขฐไบบไธ๏ผๅฆๆ้ตๆฏ้ๅฐๅไธๅ้ๆฒ๏ผ้ฃ้บผ้ๆฏๆๆ็พฉ็๏ผๆฏๅๅฏ้ฐๅฐ่ทณ้ไธๆฌกๆฏซ็กๆ็พฉ็ๅ่ฉฆ๏ผใ
ๆๆๅ
ๆๆนๆก็ๅฏฆ้้ ๅบๆฏๆๆฉๆขฐไบบๅ็จฑๅญๆฏ้ ๅบๆๅ็๏ผไธๅ
ๆฌไธๅฏ็จ็ๆฉๆขฐไบบ ๏ผๆช้ฃๆฅ๏ผๅๆญขๆ้กไผผๆ
ๆณ๏ผใ ่ซ่จไฝ๏ผๆฏๅIPๅๆฏๅๅธณๆถๅจไธๅฐๆๅ
ๅญๅจๅ
ๆๆฌกๆธ็้ๅถ๏ผไธฆไธๆฏๆฌกไปฅOK
็ตๅฐพ็ๅ
ๆๅ่ฉฆ้ฝๆๅฐ่ดๅคฑๆใ ASFๅฐ็กๆๅคงๅชๅๆธๅฐAlreadyPurchased
ๅคฑๆ็ๆฌกๆธ๏ผไพๅฆ้้ๅ่ฉฆ้ฟๅ
ๅฐๅฏ้ฐ่ฝ็ผ็ตฆๅทฒ็ถๆๆ่ฉฒ็นๅฎ้ๆฒ็ๅฆไธๅๆฉๆขฐไบบ๏ผไฝ็ฑๆผSteam่็่จฑๅฏ่ญ็ๆนๅผ๏ผๅฎไธฆไธ็ธฝ่ฝไฟ่ญๅทฅไฝใ ไฝฟ็จๅ
ๆๆจ่ช๏ผไพๅฆForwarding
ๆDistributing
๏ผๅฐๅง็ตๅขๅ ๆจ่งธ็ผRateLimited
็ๅฏ่ฝๆงใ
้่ฆ่จไฝ๏ผๆจไธ่ฝๅฐ้้ฐ่ฝ็ผๆๅ็ผ็ตฆๆจ็กๆฌ่จชๅ็ๆฉๆขฐไบบใ ้ๆ่ฉฒๆฏ้กฏ่ๆ่ฆ็๏ผไฝ่ซ็ขบไฟๆจ่ณๅฐ่ฆๅฐๅ
ๆ้็จไธญๅ
ๅซๆๆ็ๆฉๅจไบบๆๆOperator
่จชๅๆฌ้๏ผไพๅฆๅฏไปฅๅท่กstatus ASF
** ๅฝไปค **ใ
้ๆฏไธๅ้ ่จญๅผ็บ3
็ byte flags
ๅฑฌๆงใ This property defines per-bot ASF behaviour when it comes to communication with remote, third-party services, and is defined as below:
ๅผ | ๅ็จฑ | ๆ่ฟฐ |
---|---|---|
0 | None | No allowed third-party communication, rendering selected ASF features unusable |
1 | SteamGroup | Allows communication with ASF's Steam group |
2 | PublicListing | Allows communication with ASF's STM listing in order to being listed, if user has also enabled SteamTradeMatcher in TradingPreferences
|
Please notice that this property is flags
field, therefore it's possible to choose any combination of available values. Check out json mapping if you'd like to learn more. ไธๅ็จไปปไฝๆจ่ชๆๅฐ่ดNone
้ธ้
ใ
This option doesn't include every third-party communication offered by ASF, only those that are not implied by other settings. For example, if you've enabled ASF's auto-updates, ASF will communicate with both GitHub (for downloads) and our server (for checksum verification), as per your configuration. Likewise, enabling MatchActively
in TradingPreferences
implies communication with our server to fetch listed bots, which is required for that functionality.
Further explanation on this subject is available in remote communication section. ้ค้ๆจๆๅ ๅ็ไฟฎๆน็็ฑ๏ผๅฆๅๆไฟๆๅฎ็บ้ ่จญๅผใ
้ๆฏไธๅ้ ่จญๅผ็บ0
็ byte flags
้กๅใ This property works very similar to SendOnFarmingFinished
preference in FarmingPreferences
, with one difference - instead of sending trade when farming is done, we can also send it every SendTradePeriod
hours, regardless of how much we have to farm left. ๅฆๆๆจๆณ้จๆๅพๆจ็ๅฐ่่ ๆพๅ
ๆๅกๆๅพ๏ผ่ไธๅฟ
็ญๅพ
ๅฎๅฎๆๆๅก๏ผ้ๅฐๆๅพๆๅนซๅฉใ ้ ่จญๅผ 0
ๅฐ็ฆ็จๆญคๅ่ฝ๏ผๅฆๆๆจๆณ่ฎๆจ็ๆฉๅจไบบๅๆจ็ผ้ไบคๆ๏ผไพๅฆๆฏๅคฉ๏ผๆจๆ่ฉฒๅฐๆญคๅผ่จญ็ฝฎ็บ24
ใ
Typically you'll want to use ASF 2FA together with this feature, although it's not a requirement if you intend to handle 2FA confirmations manually in timely fashion. ๅฆๆๆจไธ็ขบๅฎ่ฉฒๅฆไฝ่จญ็ฝฎๆญคๅฑฌๆง๏ผ่ซๅฐๅ
ถไฟ็็บ้ ่จญๅผ0
ใ
้ ่จญๅผ็บ null
็ string
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉๆจ็ Steam ๅธณ่โโ็จๆผ็ป้ Steam ็ๅธณ่ใ In addition to defining steam login here, you may also keep default value of null
if you want to enter your steam login on each ASF startup instead of putting it in the config. This may be useful for you if you don't want to save sensitive data in config file.
้ ่จญๅผ ็บ0
็ ulong
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉๆฉๆขฐไบบๆ่ชๅๅ ๅ
ฅ็Steam็พค็ต๏ผๅ
ๆฌๅ
ถ่ๅคฉๅฎค๏ผ็steamIDใ ่ฅๆฏ่ฆ็ฒๅ็พค็ตSteamID๏ผๆจๅฏไปฅๅฐ่ชๅฐๆจ็็พค็ต**้ ้ข**๏ผ็ถๅพๅจ้ฃ็ตๆซๅฐพๅ ไธ /memberslistxml?xml=1
่ฎๅฎ็ไธๅปๅ t้ๆจฃ. ็ถๅพ๏ผๆจๅฏไปฅๅพ <groupID64>
ๆจ็ฑค่็ฒๅๆจ็พค็ต็ SteamIDใ ๅจไธ้ข็ไพๅญไธญ๏ผๅฎๅฐๆฏ 103581414460998
ใ ้คไบๅ่ฉฆๅจๅๅๆๅ ๅ
ฅ็ตฆๅฎ็็ต๏ผๆฉๆขฐไบบ้ๆ่ชๅๆฅๅ่ฉฒ็ต็็ต้่ซ๏ผ้ไฝฟๆจๅฏไปฅๅจๆจ็็ตๅ็จ็งไบบๆๅก่ณๆ ผๆๆๅ้่ซๆจ็ๆฉๆขฐไบบ ใ ๅฆๆๆจๆฒๆๅฐ้็จๆผๆจ็ๆฉๅจไบบ็ไปปไฝ็พค็ต๏ผๅๆไฟ็ๆญคๅฑฌๆง้ ่จญๅผ็บ 0
ใ
้ ่จญๅผ็บ null
็ string
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉๆจ็ Steam ๅฎถๅบญ็ฃ่ญท PIN ็ขผใ ASF requires an access to resources protected by steam parental, therefore if you use that feature, you should provide ASF with parental unlock PIN, so it can operate normally. ้ ่จญๅผ null
ๆๅณ่็ก้ Steam ๅฎถๅบญ็ฃ่ญท PIN ็ขผๅณๅฏ่งฃ้ๆญคๅธณๆถ๏ผๅฆๆๆจไธไฝฟ็จSteam ๅฎถๅบญ็ฃ่ญทๅ่ฝ๏ผ้ๅฏ่ฝๅฐฑๆฏๆจๆณ่ฆ็ใ
In limited circumstances, ASF is also able to generate a valid Steam parental code itself, although that requires excessive amount of OS resources and additional time to complete, not to mention that it's not guaranteed to succeed, therefore we recommend to not rely on that feature and instead put valid SteamParentalCode
in the config for ASF to use. If ASF determines that PIN is required, and it'll be unable to generate one on its own, it'll ask you for input.
้ ่จญๅผ็บ null
็ string
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉๆจ็ Steam ๅฏ็ขผโโ็จๆผ็ป้ Steam ็ๅฏ็ขผใ In addition to defining steam password here, you may also keep default value of null
if you want to enter your steam password on each ASF startup instead of putting it in the config. This may be useful for you if you don't want to save sensitive data in config file.
้ ่จญๅผ็บ null
็ string
้กๅใ ็ถๆจ็ๆฉๆขฐไบบๅจๆจ็ๅฅฝๅๅ่กจไธญๆ๏ผๆฉๆขฐไบบ็ก้ไปฃ็ขผๅณๅฏไปฅ็ซๅณๅๆจ็ผ้ไบคๆ๏ผๅ ๆญคๆจๅฏไปฅๅฐๆญคๅฑฌๆงไฟ็็บ้ ่จญๅผ null
ใ ไฝๆฏ๏ผๅฆๆๆจๆฑบๅฎไธๅฐๆจ็ๆฉๆขฐไบบๆพๅจๆจ็ๆๅๅ่กจไธญ๏ผ่ๆจๅๆๆๆญคๆฉๆขฐไบบๅๆจ็ผ้ไบคๆ๏ผ้ฃ้บผๆจๅฐ้่ฆ็ๆไธฆๅกซๅ
ไบคๆไปฃ็ขผใ ๆๅฅ่ฉฑ่ชช๏ผๆญคๅฑฌๆงๆๅกซๅ
ๆญค ๆฉๆขฐไบบๅฏฆไพ็SteamUserPermissions
ไธญ่จญ็ฝฎ็Master
ๆฌ้็ๅธณๆถ็ไบคๆไปฃ็ขผใ
็บไบๆพๅฐๆจ็ไปฃ็ขผ๏ผ่ฅไฝฟ็จMaster
ๆฌ้็จๆถ็ป้๏ผ่ซๅฐ่ช่ณ** ๆญค่ **ไธฆๆฅ็ๆจ็ไบคๆ็ถฒๅใ ๆๅ่ฆๅฐๆพ็ไปฃ็ขผๆฏไฝๆผๆจ็ไบคๆ้ฃ็ตไธญ &token=
้จๅไนๅพ็ 8 ๅๅญๅ
ใ ๆจๆ่ฉฒ่ค่ฃฝไธฆ็ฒ่ฒผ้ 8 ๅๅญๅ
ๆผsteamtradetoken
่ใ ไธฆไธๅ
ๅซๆดๅไบคๆ้ฃๆฅ๏ผไบฆ็ก้ &token=
้จๅ๏ผๅ
ๅ
้่ฆไปฃ็ขผๆฌ่บซ๏ผ8ๅๅญๅ
๏ผใ
้ ่จญๅผ็บ็ฉบ็ImmutableDictionary<ulong, byte>
้กๅใ ๆญคๅฑฌๆงๆฏไธๅๅญๅ
ธๅฑฌๆง๏ผๅฎๅฐ็ฑ64ไฝSteamIDๆจ่ญ็็ตฆๅฎSteam็จๆถๆ ๅฐๅฐbyte
็ทจ่๏ผ่ฉฒ็ทจ่ๅฎ็พฉๆญค็จๆถๅจASFๅฏฆไพไธญ็ๆฌ้ใ ASFไธญ็ถๅๅฏ็จ็ๆฉๆขฐไบบๆฌ้ๅฎ็พฉ็บ๏ผ
ๅผ | ๅ็จฑ | ๆ่ฟฐ |
---|---|---|
0 | None | ็ก็นๆฎๆฌ้๏ผ้ไธป่ฆๆฏๅ้ ็ตฆSteamIDไธๅจ่จญ็ฝฎไธญ็็จๆถโโ็ก้ๅฎ็พฉๅ ทๆๆญคๆฌ้็ไปปไฝไบบ |
1 | FamilySharing | ๆไพ่ฆชๅๅไบซ็จๆถ็ๆไฝ่จชๅๆฌ้ใ ๅไธๆฌก๏ผ้ไธป่ฆๆฏไธๅๅ่ๅผ๏ผๅ ็บASF่ฝๅค ่ชๅ็ผ็พๆๅๅ ่จฑไฝฟ็จๆๅ็ๅบซ็็จๆท็SteamID |
2 | Operator | ๆไพๅฐ็ตฆๅฎๆฉๆขฐไบบๅฏฆไพ็ๅบๆฌ่จชๅๆฌ้๏ผไธป่ฆๆฏๆทปๅ ่จฑๅฏ่ญๅๅ ๆๅฏ้ฐ |
3 | Master | ๆไพๅฐ็ตฆๅฎๆฉๆขฐไบบๅฏฆไพ็ๅฎๅ จ่จชๅๆฌ้ |
็ฐก่่จไน๏ผๆญคๅฑฌๆงๅ
่จฑๆจ่ช่จ็ตฆๅฎไฝฟ็จ่
็่จฑๅฏๆฌใ ๆฌ้ไธป่ฆ็จๆผ่จชๅASF ** ๅฝไปค ๏ผไฝไน็จๆผๅ็จ่จฑๅคASFๅ่ฝ ๏ผๅฆๆฅๅไบคๆใ ไพๅฆ๏ผๆจๅฏ่ฝๅธๆๅฐ่ชๅทฑ็ๅธณๆถ่จญ็ฝฎ็บMaster
๏ผไธฆ็บๆจ็2-3ไฝๆๅๆไพOperator
่จชๅๆฌ้๏ผไปฅไพฟไปๅๅฏไปฅไฝฟ็จASF่ผ้ฌ็บๆจ็ๆฉๆขฐไบบๅ
ๆๅฏ้ฐ๏ผ ไฝๅปไธ่ฝ**ๅๆญขๅฎใ ๅ ๆญค๏ผๆจๅฏไปฅ่ผ้ฌๅฐๅฐ่จฑๅฏๆฌๅ้
็ตฆ็ตฆๅฎ็็จๆถ๏ผไธฆ่ฎไปๅๅจๆจๆๅฎ็็ฏๅๅ
งไฝฟ็จๆจ็ๆฉๆขฐไบบใ
ๆๅๅปบ่ญฐๆจๅช่จญ็ฝฎไธไฝ master
็จๆถ๏ผ่ณๆผๆฌ้็บ Operators
ๅไปฅไธ็็จๆถ๏ผๆจๅฏไปฅๅ็ฎก่จญ็ฝฎๆจๅธๆ็ไปปๆๆธ้ใ While it's technically possible to set multiple Masters
and ASF will work correctly with them, for example by accepting all of their trades sent to the bot, ASF will use only one of them (with lowest steam ID) for every action that requires a single target, for example a loot
request, so also properties like SendOnFarmingFinished
preference in FarmingPreferences
or SendTradePeriod
. If you perfectly understand those limitations, especially the fact that loot
request will always send items to the Master
with lowest steam ID, regardless of the Master
that actually executed the command, then you can define multiple users with Master
permission here, but we still recommend a single master scheme.
ๅผๅพๆณจๆ็ๆฏ๏ผ้ๆไธๅ้กๅค็Owner
ๆฌ้๏ผๅฎ่ขซๅฎ็พฉๆผSteamOwnerID
ๅ
จๅ้
็ฝฎๅฑฌๆงใ ๆจไธ่ฝ็บ้่ฃก็ไปปไฝไบบๅ้
Owner
่จฑๅฏๆฌ๏ผๅ ็บ SteamUserPermissions
ๅฑฌๆงๅ
ๅฎ็พฉ่ๆฉๆขฐไบบๅฏฆไพ็ธ้็่จฑๅฏๆฌ๏ผ่ไธๆฏๅฎ็พฉๆดๅ ASF ้ฒ็จใ ๅฐๆผ่ๆฉๆขฐไบบ็ธ้็ไปปๅ๏ผSteamOwnerID
่Master
็่็ๆนๅผ็ธๅ๏ผๅ ๆญคไธ้่ฆๅจๆญค่ๅฎ็พฉSteamOwnerID
ใ
้ๆฏไธๅ้ ่จญๅผ็บ60
็byte
้กๅๅฑฌๆงใ Normally ASF handles incoming trade offers right after receiving notification about one, but sometimes because of Steam glitches it can't do it at that time, and such trade offers remain ignored until next trade notification or bot restart occurs, which may lead to trades being cancelled or items not available at that later time. If this parameter is set to a non-zero value, ASF will additionally check for such outstanding trades every TradeCheckPeriod
minutes. Default value is selected with balance between additional requests to steam servers and losing incoming trades in mind. However, if you are just using ASF to farm cards, and don't plan to automatically process any incoming trades, you may set it to 0
to disable this feature completely. On the other hand, if your bot participates in public ASF's STM listing or provides other automated services as a trade bot, you may want to decrease this parameter to 15
minutes or so, to process all trades in a timely manner.
้ๆฏไธๅ้ ่จญๅผ็บ0
็ byte flags
ๅฑฌๆงใ ๆญคๅฑฌๆงๅฎ็พฉASFๅจไบคๆไธญ็่ก็บ๏ผๅฎ็พฉๅฆไธ๏ผ
ๅผ | ๅ็จฑ | ๆ่ฟฐ |
---|---|---|
0 | ็ก | ้ ่จญๅผ๏ผ็ก็นๆฎไบคๆๅๅฅฝ |
1 | AcceptDonations | ๆฅๅๅฐๆๅ็กไปปไฝๆๅคฑ็ไบคๆ |
2 | SteamTradeMatcher | ่ขซๅๅ่ **STM**ไบคๆใ ่จชๅ ไบคๆ ไบ่งฃๆดๅค่ณ่จ |
4 | ๅน้ ๆๆ็ฉๅ | ้่ฆ่จญ็ฝฎ SteamTradeMatcher , ไธฆ่ๅ
ถๅๆไฝฟ็จ--้คไบๅฐๆๅๆๅฉ็ๅ็กๆ็ไบคๆๅค, ้ๆฅๅไธๅฉไบคๆ |
8 | DontAcceptBotTrades | ไธ่ชๅๆฅๅไพ่ชๅ
ถไปๆฉๆขฐไบบๅฏฆไพ็ loot ไบคๆ |
16 | MatchActively | ไธปๅๅ่ **STM**ไบคๆใ Visit ItemsMatcherPlugin for more info |
Please notice that this property is flags
field, therefore it's possible to choose any combination of available values. Check out json mapping if you'd like to learn more. ไธๅ็จไปปไฝๆจ่ชๆๅฐ่ดNone
้ธ้
ใ
ๆ้ASFไบคๆ้่ผฏ็้ฒไธๆญฅ่ชชๆไปฅๅๆฏๅๅฏ็จๆจ่ช็่ชชๆ๏ผ่ซ่จชๅ** ไบคๆ **้จๅใ
้ ่จญๅผ็บ 1๏ผ3๏ผ5
็ ImmutableHashSet<byte>
้กๅใ This property defines which Steam item types will be considered for transfering between bots, during transfer
command. ASFๅฐ็ขบไฟไบคๆๆๆกไธญๅ
ๆๅ
ๅซ็ฌฆๅTransferableTypes
็็ฉๅ๏ผๅ ๆญค่ฉฒๅฑฌๆงๅ
่จฑๆจ้ธๆ่ฆๅจ็ผ้็ตฆๆจ็ๆๅๆฉๆขฐไบบ็ไบคๆๆๆกไธญๆถๅฐ็็ฉๅใ
ๅผ | ๅ็จฑ | ๆ่ฟฐ |
---|---|---|
0 | Unknown | ไธๅฑฌๆผไปฅไธไปปไฝ้กๅ็้กๅ |
1 | BoosterPack | ๅ ๅซ3ๅผตไพ่ชๅไธ้ๆฒ็ๅก็็ๆดๅ ๅ |
2 | Emoticon | ๅจSteam่ๅคฉไธญไฝฟ็จ็่กจๆ ็ฌฆ่ |
3 | FoilTradingCard | ้ไบฎ้กๅ็TradingCard
|
4 | ProfileBackground | ๅฏๅจๆจ็Steamๅไบบ่ณๆ้ ไธญไฝฟ็จ็่ๆฏ |
5 | TradingCard | Steamไบคๆๅก็๏ผๅฏ็จๆผๅๆๅพฝ็ซ (้้ๅก๏ผ |
6 | SteamGems | ็จๆผ่ฃฝไฝๆดๅ ๅ ็ Steam ๅฏถ็ณ๏ผๅ ๆฌๅฏถ็ณ่ข |
7 | SaleItem | Steam็น่ณฃๆ้็ฒๅพ็็นๆฎ็ฉๅ |
8 | Consumable | ไฝฟ็จๅพๆถๅคฑ็็นๆฎๅฐ็ฉๆๅ |
9 | ๅไบบๆชๆกไฟฎๆนๅจ | ๅฏไปฅไฟฎๆนSteam่จญๅฎๆชๅค่ง็็นๆฎ็ฉๅ |
10 | Sticker | Special items that can be used on Steam chat |
11 | ChatEffect | Special items that can be used on Steam chat |
12 | MiniProfileBackground | Special background for Steam profile |
13 | AvatarProfileFrame | Special avatar frame for Steam profile |
14 | AnimatedAvatar | Special animated avatar for Steam profile |
15 | KeyboardSkin | Special keyboard skin for Steam deck |
16 | StartupVideo | Special startup video for Steam deck |
Please note that regardless of the settings above, ASF will only ask for Steam community items (appID
of 753, contextID
of 6), so all game items, gifts and likewise, are excluded from the trade offer by definition.
ASF ้ ่จญๅบๆผๆฉๅจไบบ็ๆๅธธ่ฆ็จๆณ๏ผๅ
ไบคๆๆดๅ
ๅ
ๅไบคๆๅก็๏ผๅ
ๆฌ้ไบฎๅก็๏ผใ ้่ฃๅฎ็พฉ็ๅฑฌๆงๅ
่จฑไฝ ไปฅไปปไฝไปคไฝ ๆปฟๆ็ๆนๅผๆน่ฎ้็จฎ่ก็บใ ่ซ่จไฝ๏ผไธ้ขๆชๅฎ็พฉ็ๆๆ้กๅ้ฝๅฐ้กฏ็คบ็บUnknown
้กๅ๏ผ้ๅจValve็ผๅธไธไบๆฐ็Steam้
็ฎๆๅฐค็บ้่ฆ๏ผ่ฉฒ้
็ฎๅฐ่ขซASFๆจ่จ็บUnknown
๏ผ็ดๅฐๅฎ่ขซๆทปๅ ๅฐ้่ฃก๏ผๅจๅฐไพ็็ๆฌไธญ๏ผใ ้ๅฐฑๆฏ็บไป้บผไธ่ฌไธๅปบ่ญฐๅจTransferableTypes
ไธญ้ธๆUnknown
้กๅ๏ผ้ค้ๆจ็ฅ้่ชๅทฑๅจๅไป้บผ๏ผไธฆไธ้็ญ่งฃ่ฌไธSteam ็ถฒ็ตกๅดฉๆฝฐไธฆๅฐๆจ็ๆๆๅๅๆจ่จ็บUnknown
๏ผASFๆๅจไบคๆๆๆกไธญ็ผ้ๆจ็ๆดๅๅบซๅญใ ๅจๆญคๆๅผท็ๅปบ่ญฐไธ่ฆๅจTransferableTypes
ไธญ้ธๆ Unknown
้กๅ๏ผๅณไฝฟๆจ็็ๅธๆไบคๆไปปไฝ้กๅ็็ฉๅใ
้ ่จญๅผ็บ true
็ bool
้กๅใ ๆญคๅฑฌๆงๅฎ็พฉASFๆฏๅฆๆไฝฟ็จๆญคSteamๅธณๆถ็็ป้ๅฏ้ฐๆฉๅถใ ็ป้ๅฏ้ฐๆฉๅถ่ๅฎๆนSteamๅฎขๆถ็ซฏ็โ่จไฝๆโ้ธ้
้ๅธธ็ธไผผ๏ผ้ไฝฟๅพASFๅฏไปฅๅญๅฒๅไฝฟ็จ่จๆไธๆฌกๆง็ป้ๅฏ้ฐ้ฒ่กไธไธๆฌก็ป้ๅ่ฉฆ๏ผๅช่ฆๆๅ็็ป้ๅฏ้ฐๆๆ๏ผ้ๅฐฑๅฏไปฅ้ฟๅ
ๆไพๅฏ็ขผใSteam Guard ๆ 2FA ไปฃ็ขผ็้ๆฑใ ็ป้ๅฏ้ฐๅญๅฒๅจBotName.db
ๆไปถไธญไธฆๆ่ชๅๆดๆฐใ ๅ ๆญคๅจไฝฟ็จASFๆๅ็ป้ไธๆฌกๅพไธ้่ฆๅๆไพๅฏ็ขผ/ SteamGuard / 2FAไปฃ็ขผใ
็บๆนไพฟ่ตท่ฆ๏ผ้ ่จญๆ
ๆณไธไฝฟ็จๅทฒไฟๅญ็็ป้ๅฏ้ฐ๏ผๅ ๆญคๆจ็ก้ๅจๆฏๆฌก็ป้ๆ่ผธๅ
ฅSteamPassword
๏ผSteamGuardๆ2FAไปฃ็ขผ๏ผๆชๅ็จ**ASF 2FA**็่ฉฑ๏ผใ ้ไนๆฏๅช่ถ็ๆฟไปฃๆนๆณ๏ผๅ ็บ็ป้้้ฐๅช่ฝไฝฟ็จไธๆฌก๏ผๆ
ๆจ็ๅๅงๅฏ็ขผไธๆไปฅไปปไฝๆนๅผ้กฏ็คบใ ๅฎ่ๆจ็Steamๅฎขๆถ็ซฏๅฎๅ
จ็ธๅ็ๆนๆณ๏ผๆไฟๅญๆจ็ๅธณๆถๅๅ็ป้ๅฏ้ฐไปฅ็จๆผไธๆฌก็ป้ๅ่ฉฆ๏ผ่ไฝฟ็จUseLoginKeys
ๅSteamLogin
ไธฆๅจASFไธญๆธ
็ฉบSteamPassword
็ๆนๅผๅฅ็กไบ่ดใ
ไฝๆฏ๏ผๆไบไบบๅฏ่ฝๅจๆ้ๅ็ดฐ็ฏ๏ผๅ ๆญคๅฆๆๆจๆณ็ขบไฟASFไธๆๅญๅฒไปปไฝ้กๅ็ไปฃ็ขผไปฅๅ
่จฑๅ
ถๅจ้้ๅพๆขๅพฉไธไธๅๆ่ฉฑ๏ผ้่ฃกๅฏไปฅๅ็จๆญค้ธ้
๏ผ้ๅฐๅฐ่ดๆฏๆฌก็ป้ๅ่ฉฆ้ฝๅฟ
้ ้ฒ่กๅฎๅ
จ่บซไปฝ้ฉ่ญใ ็ฆ็จๆญค้ธ้
็ๅทฅไฝๅ็่ๅจๅฎๆน Steam ็จๆถ็ซฏไธๅพ้ธใ่จไฝๆใๅฎๅ
จ็ธๅใ ้ค้ๆจ็ฅ้่ชๅทฑๅจๅไป้บผ๏ผๅฆๅๆๅฐๅ
ถไฟ็็บ้ ่จญๅผ true
ใ
้ๆฏไธๅ้ ่จญๅผ็บ0
็ byte flags
้กๅใ This property specifies user interface mode that the bot will be announced with after logging in to the Steam network. It might influence how the account is visible e.g. on the Steam chat, if your presence allows that through OnlineStatus
. Currently you can choose one of below modes:
ๅผ | ๅ็จฑ | ๆ่ฟฐ |
---|---|---|
0 |
VGUI | Default Steam client mode |
1 |
Tenfoot | Big picture mode |
2 |
Mobile | Steam mobile app |
3 |
Web | Web browser session |
4 |
ClientUI | |
5 |
MobileChat | Steam mobile chat app |
6 |
EmbeddedClient |
Not all modes might have an effect. Also, you might be interested in checking OnlinePreferences
, since some additional features are enabled there. ๅฆๆๆจไธ็ขบๅฎ่ฉฒๅฆไฝ่จญ็ฝฎๆญคๅฑฌๆง๏ผ่ซๅฐๅ
ถไฟ็็บ้ ่จญๅผ0
ใ
ASF ไฝฟ็จ็ๆช็ตๆง็ธ็ถ็ฐกๅฎใ
โโโ ๐ config
โ โโโ ASF.json
โ โโโ ASF.db
โ โโโ Bot1.json
โ โโโ Bot1.db
โ โโโ Bot2.json
โ โโโ Bot2.db
โ โโโ ...
โโโ ArchiSteamFarm.dll
โโโ log.txt
โโโ ...
็บไบๅฐASF็งปๅๅฐๆฐไฝ็ฝฎ๏ผไพๅฆๅฆไธๅฐPC๏ผๅช้็งปๅ/่ค่ฃฝconfig
็ฎ้ๅฐฑ่ถณๅค ไบ๏ผ้ๆฏๅท่กไปปไฝๅฝขๅผ็โASFๅไปฝโ็ๆจ่ฆๆนๅผ๏ผๅ ็บๆจๅง็ตๅฏไปฅๅพGitHubไธ่ผๅฉ้ค็๏ผ็จๅบ๏ผ้จๅ๏ผๅๆไธๅญๅจ็ ดๅฃๅ
ง้จASFๆชๆก็้ขจ้ช๏ผไพๅฆ้ฏ่ชคๅไปฝใ
logt 123. txt
ๆชไฟๅญๆจไธไธๆฌก้่ก ASF ็ๆ็ๆฅ่ชใ ๆญคๆชๆกไธๅ
ๅซไปปไฝๆๆไฟกๆฏ๏ผๅจๆถๅๅ้กใๅดฉๆฝฐๆๅ
ไฝ็บไธๆฌก ASF ้่กไธญ็ไฟกๆฏๆฅ่ชๆ้ๅธธๆ็จใ ๅฆๆๆจ้ๅฐๅ้กๆ้ฏ่ชค๏ผๆๅๆ็ถๅธธ่ฉขๅๆญคๆชๆกใ ASFๆ่ชๅ็บๆจ็ฎก็ๆญคๆชๆก๏ผไฝๅฆๆๆจๆฏ้ฒๅ ฆ็จๆถ๏ผๆจๅฏไปฅ้ฒไธๆญฅ่ชฟๆดASF ** ่จ้ **ๆจก็ตใ
ASFๅๅ
ถๆๆๆฉๆขฐไบบ้
็ฝฎไฟๅญๆผconfig
็ฎ้ไธญใ
ASF.json
ๆฏ ASF ๅ
จๅ้
็ฝฎๆชใ ๆญค้
็ฝฎ็จๆผๅฎ็พฉASFๅฆไฝไฝ็บ้ฒ็จ้่ก๏ผ้ๆๅฝฑ้ฟ็จๅบๆฌ่บซๅๆๆๆฉๆขฐไบบใ ๆจๅฏไปฅๅจ้ฃ่ฃกๆพๅฐๅ
จๅๅฑฌๆง๏ผไพๅฆASF้ฒ็จๆๆ่
๏ผ่ชๅๆดๆฐๆ่ชฟ่ฉฆใ
BotName.json
ๆฏ็ตฆๅฎๆฉๆขฐไบบๅฏฆไพ็้
็ฝฎใ ๆญค้
็ฝฎ็จๆผๆๅฎ็ตฆๅฎๆฉๆขฐไบบๅฏฆไพ็่ก็บๆนๅผ๏ผๅ ๆญค้ไบ่จญ็ฝฎๅ
้ฉ็จๆผ่ฉฒๆฉๆขฐไบบ๏ผ่ไธๆฏ่ๅ
ถไปๆฉๆขฐไบบๅ
ฑไบซใ ้ๅ
่จฑๆจ้
็ฝฎๅ
ทๆๅ็จฎไธๅ่จญ็ฝฎ็ๆฉๆขฐไบบ๏ผ่็ก้่ฆๆฑๆๆๆฉๆขฐไบบ้ฝไปฅๅฎๅ
จ็ธๅ็ๆนๅผๅทฅไฝใ ๆฏๅๆฉๅจไบบ้ฝ็ฑๆจๅจBotName
ไธญ้ธๆ็ๅฏไธๆจ่ญ็ฌฆๅฝๅใ
้คไบ่จญๅฎๆชๅค๏ผASF้ไฝฟ็จ config
็ฎ้ไพๅญๅฒๆธๆๅบซใ
ASF.db
ๆฏไธๅๅ
จๅASFๆธๆๅบซๆชใ ๅฎๅ
็ถๅ
จๅๆไน
ๅญๅฒ๏ผ็จๆผไฟๅญ่ ASF ้ฒ็จ็ธ้็ๅ็จฎไฟกๆฏ๏ผไพๅฆๆฌๅฐ Steam ไผบๆๅจ็IPๅฐๅใ ๆจไธๆๅฐๆญคๆช้ฒ่กไปปไฝๆน่ฎใ
BotName.db
ๆฏ็ตฆๅฎๆฉๆขฐไบบๅฏฆไพ็ๆธๆๅบซใ ๆญคๆช็จๆผๅจๆไน
ๅญๅฒๆ้็ตฆๅฎๆฉๆขฐไบบๅฏฆไพ็้้ตๆธๆ๏ผๅฆ็ป้้้ฐๆ ASF 2FA ไปฃ็ขผใ ๆจไธๆๅฐๆญคๆช้ฒ่กไปปไฝๆน่ฎใ
BotName.keys
ๆฏไธๅ็จๆผๅฐๅบ่ๅฐๅ
ฅ **ๅพๅฐๅบ่ๅๅๅจ**็็นๆฎๆชใ It's not mandatory and not generated, but recognized by ASF. ๆๅๅฐๅ
ฅ้้ฐๅพ๏ผๆญคๆชๅฐ่ชๅ่ขซๅช้คใ
BotName.maFile
ๆฏไธๅ็จๆผๅฐๅ
ฅ **ASF 2FA**็็นๆฎๆชใ It's not mandatory and not generated, but recognized by ASF if your BotName
does not use ASF 2FA yet. ๆๅๅฐๅ
ฅ ASF 2FA ๅพ๏ผๆญคๆชๅฐ่ชๅ่ขซๅช้คใ
ๆฏๅ้ ็ฝฎๅฑฌๆง้ฝๆ็ธๆ็้กๅใ ๅฑฌๆง็้กๅๅฎ็พฉไบๆๆๅผใ ๅช่ฝไฝฟ็จๅฐ็ตฆๅฎ้กๅๆๆ็ๅผโโๅฆๆไฝฟ็จ็กๆๅผ๏ผASF ๅฐ็กๆณๅๆๆจ็้ ็ฝฎใ
ๆๅๅผท็ๅปบ่ญฐๆจไฝฟ็จConfigGenerator็ๆ้ ็ฝฎๆช โโๅฎๆ็บๆจ่็ๅคงๅคๆธๅ็ดๅ งๅฎน๏ผไพๅฆ้กๅ้ฉ่ญ๏ผ๏ผๅ ๆญคๆจๅช้่ฆ่ผธๅ ฅๆญฃ็ขบ็ๅผ๏ผ่ไธ้่ฆไบ่งฃไธ้ขๆๅฎ็่ฎ้้กๅใ ๆฌ็ฏไธป่ฆ็จๆผๆๅ็ๆ/็ทจ่ผฏ้ ็ฝฎ็็จๆถ๏ผไฝฟๅพไปๅ็ฅ้ๅฏไปฅไฝฟ็จๅชไบๅผใ
ASF ไฝฟ็จ็้กๅๆฏๆฌๆฉ C๏ผ้กๅ๏ผๅฆไธๆ็คบ๏ผ
bool
โโๅธๆ้กๅ๏ผๅ
ๆฅๅ true
ๅ false
ๅผใ
็ฏไพ๏ผ"Enabled": true
byte
โโ็ก็ฌฆ่ๅญ็ฏ้กๅ๏ผๅๅผ็ฏๅ็บๅพ0
ๅฐ255
๏ผๅ
ๆฌ๏ผ็ๆดๆธใ
็ฏไพ๏ผ"ConnectionTimeout": 90
ushort
โโ็ก็ฌฆ่็ญๆดๆธ้กๅ๏ผๅๅผ็ฏๅ็บๅพ0
ๅฐ65535
๏ผๅ
ๆฌ๏ผ็ๆดๆธใ
็ฏไพ๏ผ"WebLimiterDelay": 300
uint
โโ็ก็ฌฆ่ๆดๆธ้กๅ๏ผๅๅผ็ฏๅ็บๅพ 0
ๅฐ 4294967295
๏ผๅ
ๆฌ๏ผ็ๆดๆธใ
ulong
โโ็ก็ฌฆ่้ทๆดๆธ้กๅ๏ผๅ
ๆฅๅๅพๅๅผ็ฏๅ็บๅพ 0
ๅฐ 184674407791615
๏ผๅ
ๆฌ๏ผ็ๆดๆธใ
็ฏไพ๏ผ"SteamMasterClanID": 103582791440160998
string
โโๅญไธฒ้กๅ๏ผๆฅๅไปปไฝๅญๅ
ๅบๅ๏ผๅ
ๆฌ็ฉบๅผ ""
ๅ null
ใ ASFๅฐ็ฉบๅบๅๅnull
ๅผ่ฆ็บ็ธๅ๏ผๅ ๆญคๆจๅฏไปฅๆ นๆ่ชๅทฑ็ๅๅฅฝ้ธๆไฝฟ็จๅชไธๅ๏ผๆๅๆจ่ฆไฝฟ็จnull
๏ผใ
็ฏไพ๏ผ"SteamLogin": null
, "SteamLogin": ""
, "SteamLogin": "MyAccountName"
Guid?
- Nullable UUID type, in JSON encoded as string. UUID is made out of 32 hexadecimal characters, in range from 0
to 9
and a
to f
. ASF accepts variety of valid formats - lowercase, uppercase, with and without dashes. In addition to valid UUID, since this property is nullable, a special value of null
is accepted to indicate lack of UUID to provide.
Examples: "LicenseID": null
, "LicenseID": "f6a0529813f74d119982eb4fe43a9a24"
ImmutableList<valueType>
- Immutable collection (list) of values in given valueType
. ๅจ JSON ไธญ, ๅฎ่ขซๅฎ็พฉ็บ็ตฆๅฎ valueType
ไธญ็ๅ
็ด ้ฃๅใ ASF uses List
to indicate that given property supports multiple values and that their order might be relevant.
Example for ImmutableList<byte>
: "FarmingOrders": [15, 11, 7]
ImmutableHashSet<valueType>
โโ ็ตฆๅฎ valueType
ไธญๅฏไธๅผ็้ๅใ ๅจ JSON ไธญ, ๅฎ่ขซๅฎ็พฉ็บ็ตฆๅฎ valueType
ไธญ็ๅ
็ด ้ฃๅใ ASF uses HashSet
to indicate that given property makes sense only for unique values and that their order doesn't matter, therefore it'll intentionally ignore any potential duplicates during parsing (if you happened to supply them anyway).
ImmutableHashSet<uint>
็็ฏไพ๏ผ"Blacklist": [267420, 303700, 335590]
ImmutableDictionary<keyType, valueType>
- Immutable dictionary (map) that maps a unique key specified in its keyType
, to value specified in its valueType
. ๅจJSONไธญ๏ผๅฎ่ขซๅฎ็พฉ็บๅ
ทๆ้ตๅผๅฐ็ๅฐ่ฑกใ ่ซ่จไฝ๏ผๅจ้็จฎๆ
ๆณไธๅง็ตๅผ็จkeyType
๏ผๅณไฝฟๅฎๆฏไพๅฆulong
็ๅผ้กๅใ There is also a strict requirement of the key being unique across the map, this time enforced by JSON as well.
ImmutableDictionary<ulong, byte>
็็ฏไพ๏ผ "SteamUserPermissions": { "76561198174813138": 3, "76561198174813137": 1 }
flags
โโFlagsๅฑฌๆง้้ๆ็จๆไฝ้็ฎๅฐๅนพๅไธๅ็ๅฑฌๆง็ตๅๆไธๅๆ็ตๅผใ ้ๅ
่จฑๆจๅๆ้ธๆๅ็จฎไธๅๅ
่จฑๅผ็ไปปไฝๅฏ่ฝ็ตๅใ ๆ็ตๅผ็บๆๆๅทฒๅ็จ้ธ้
็ๅผ็็ธฝๅใ
่ไพไพ่ชช๏ผ็ตฆๅบไปฅไธ็ๅผ๏ผ
ๅผ | ๅ็จฑ |
---|---|
0 | ็ก |
1 | A |
2 | B |
4 | C |
ไฝฟ็จB + C
ๆๅพๅฐ6
็ๅผ๏ผไฝฟ็จA + C
ๆๅพๅฐ5
็ๅผ๏ผ ไฝฟ็จC
ๆๅพๅฐ4
็ๅผ๏ผไพๆญค้กๆจใ ้ๅ
่จฑๆจๅตๅปบไปปไฝๅฏ่ฝ็ๅ็จๅผ็ตๅโโๅฆๆๆจๆฑบๅฎๅ็จๆๆ้ไบๅผ๏ผNone + A + B + C
๏ผๆจๅฐ็ฒๅพ7
ใ ๅฆ่ซๆณจๆ๏ผๆๅฎ็พฉ๏ผๅผ็บ0
็ๆจ่ชๅจๆๆๅ
ถไปๅฏ็จ็ตๅไธญ้ฝๅ็จ๏ผๅ ๆญค้ๅธธๅฎๆฏไธๅไธ่ฝๅ็จไปปไฝๅ
งๅฎน็ๆจ่ช๏ผไพๅฆNone
๏ผใ
ๅฆๆจๆ่ฆ๏ผๅจไธ้ข็็คบไพไธญ๏ผๆๅๆ3ๅๅฏ็จ็ๆจ่ชไพๅ็จ/ๅ็จ๏ผA
๏ผB
๏ผC
๏ผ๏ผไปฅๅ< code> 8 ็งๆด้ซๅฏ่ฝ็ๅผ๏ผ
None -> 0
A -> 1
B -> 2
A + B -> 3
C -> 4
A + C -> 5
B + C -> 6
A + B + C -> 7
Example: "SteamProtocols": 7
Due to JavaScript limitations of being unable to properly serialize simple ulong
fields in JSON when using web-based ConfigGenerator, ulong
fields will be rendered as strings with s_
prefix in the resulting config. This includes for example "SteamOwnerID": 76561198006963719
that will be written by our ConfigGenerator as "s_SteamOwnerID": "76561198006963719"
. ASF ๅ
ๅซ่ชๅ่็ๆญคๅญ็ฌฆไธฒๆ ๅฐ็ๆญฃ็ขบ้่ผฏ๏ผๅ ๆญค้
็ฝฎไธญ็s _
ๆข็ฎๅฏฆ้ไธๆฏๆญฃ็ขบ็ๆไธๆๆ็ใ ๅฆๆๆจๆ็ฎ่ชๅทฑ็ๆ้
็ฝฎ๏ผๆๅๅปบ่ญฐ็กๅฏ่ฝๅ
ๆไฝฟ็จๅๅงulong
ๅญๆฎต๏ผไฝๅฆๆๆจไธ่ฝ้ๆจฃๅ๏ผๆจไนๅฏไปฅ้ตๅพชๆญค่ฆๅไธฆไฝฟ็จๅฐๅฎๅ็ทจ็ขผ็บไปฅs_
็บๅ็ถด็ๅญ็ฌฆไธฒ ใ ๆๅๅธๆ้ๅJavaScript้ๅถ่ฝๆ็ต่ขซ่งฃๆฑบใ
It's top priority for ASF to remain compatible with older configs. As you should already know, missing config properties are treated the same as they would be defined with their default values. Therefore, if new config property gets introduced in new version of ASF, all your configs will remain compatible with new version, and ASF will treat that new config property as it'd be defined with its default value. ๆจๅฏไปฅ้จๆๆ นๆ้่ฆๆทปๅ ๏ผๅช้คๆ็ทจ่ผฏ้ ็ฝฎๅฑฌๆงใ
We recommend to limit defined config properties only to those that you want to change, since this way you automatically inherit default values for all other ones, not only keeping your config clean but also increasing compatibility in case we decide to change a default value for property that you don't want to explicitly set yourself (e.g. WebLimiterDelay
).
Due to above, ASF will automatically migrate/optimize your configs by reformatting them and removing fields that hold default value. You can disable this behaviour with --no-config-migrate
command-line argument if you have a specific reason, for example you're providing read-only config files and you don't want ASF to modify them.
ASF is aware of configs being modified "on-the-fly" - thanks to that, ASF will automatically:
- ๅตๅปบ้ ็ฝฎๆ๏ผๆฐๅข๏ผไธฆๅจ้่ฆๆๅๅ๏ผๆฐ็ๆฉๆขฐไบบๅฏฆไพ
- ๅช้คๅ ถ้ ็ฝฎๆๅๆญข๏ผๅฆๆ้่ฆ๏ผไธฆๅช้ค่็ๆฉๆขฐไบบๅฏฆไพ
- ็ทจ่ผฏๅ ถ้ ็ฝฎๆ๏ผๅๆญข๏ผไธฆๅจ้่ฆๆๅๅ๏ผไปปไฝๆฉๆขฐไบบๅฏฆไพ
- ้ๅฝๅๆฉๆขฐไบบ็้ ็ฝฎๆ๏ผไปฅๆฐๅ็จฑ้ๆฐๅๅ๏ผๅฆๆ้่ฆ็่ฉฑ๏ผ่ฉฒๆฉๆขฐไบบ
ไปฅไธๆๆๅ งๅฎน้ฝๆฏ้ๆ็๏ผ็ก้้ๆฐๅๅ็จๅบๆๆฎบๆญปๅ ถไป๏ผๆชๅๅฝฑ้ฟ็๏ผๆฉๆขฐไบบ็จๅบๅฏฆไพๅณๅฏ่ชๅๅฎๆใ
In addition to that, ASF will also restart itself (if AutoRestart
permits) if you modify core ASF ASF.json
config. Likewise, program will quit if you delete or rename it.
You can disable this behaviour with --no-config-watch
command-line argument if you have a specific reason, for example you don't want from ASF to react to file changes in config
folder.
- ๐ก Home
- ๐ง Configuration
- ๐ฌ FAQ
- โ๏ธ Setting up (start here)
- ๐ฅ ๅพๅฐๅบ่ๅๅๅจ
- ๐ข Commands
- ๐ ๏ธ Compatibility
- ๐งฉ ItemsMatcherPlugin
- ๐ Management
- โฑ๏ธ Performance
- ๐ก Remote communication
- ๐ช Steam ่ฆชๅๅไบซ
- ๐ Trading