-
Notifications
You must be signed in to change notification settings - Fork 0
Commands vi VN
ASF hỗ trợ nhiều loại lệnh khác nhau, được sử dụng để kiểm soát hoạt động của các quá trình và trường hợp bot.
Các lệnh có thể được gửi đến bot thông qua nhiều cách khác nhau:
- Thông qua bảng điều khiển ASF
- Thông qua tin nhắn riêng/nhóm Steam
- Thông qua giao diện IPC
Hãy nhớ rằng tương tác ASF yêu cầu bạn phải đủ điều kiện nhận lệnh theo quyền ASF. Đọc qua SteamUserPermissions
và SteamOwnerID
để biết thêm.
Các lệnh được thực thi thông qua trò chuyện trên Steam bị ảnh hưởng bởi CommandPrefix
global configuration property, đó là !
theo mặc định. Điều này có nghĩa là để thực thi, ví dụ: Lệnh status
, bạn thực sự viết !Status
(hoặc tùy chỉnh CommandPrefix
mà bạn chọn thay thế). CommandPrefix
không bắt buộc khi sử dụng bảng điều khiển hoặc IPC và có thể được bỏ qua.
Bắt đầu từ phiển bản V4.0.0.9, ASF hỗ trợ giao diện bản điều khiển tương tác, có thể được bật bằng thuộc tính SteamOwnerID
. Sau đó, chỉ cần nhấn phím c
để bật chế độ lệnh, nhập lệnh của bạn và xác nhận bằng enter.
Bảng điều khiển không tương tác với chế độ Headless
.
Bạn có thể thực thi lệnh với bot ASF thông qua Steam chat. Tất nhiên bạn không thể nói chuyện với chính mình, vì thế bạn cần ít nhất một tài khoản bot khác nếu bạn muốn thực thi lệnh với mục tài khoản chính của bạn.
Theo cách tương tự, bạn có thể sử dụng nhóm chat trong nhóm Steam. Hãy nhớ rằng tùy chọn này yêu cầu đặt thuộc tính SteamMasterClanID
đúng cách, trong trường hợp đó bot sẽ lắng nghe các lệnh trong trò chuyện của nhóm (và tham gia nếu cần). Điều này cũng có thể được sử dụng để "nói chuyện với chính mình" vì nó không yêu cầu tài khoản bot chuyên dụng, trái ngược với trò chuyện riêng tư. Bạn chỉ có thể đặt thuộc tính SteamMasterClanID
cho nhóm mới tạo của mình, sau đó cấp cho bạn quyền truy cập thông qua SteamOwnerID
hoặc SteamUserPermissions
của bot. Bằng cách này, bot ASF (bạn) sẽ tham gia nhóm và trò chuyện với nhóm bạn đã chọn và lắng nghe các lệnh từ tài khoản của chính bạn. Bạn có thể tham gia cùng một phòng chat nhóm để ra lệnh cho chính mình (vì bạn sẽ gửi lệnh đến phòng chat và ví dụ ASF ngồi trên cùng một phòng chat sẽ nhận được chúng, ngay cả khi nó chỉ hiển thị khi tài khoản của bạn ở đó).
Xin lưu ý rằng việc gửi lệnh đến trò chuyện nhóm hoạt động như một rơle. Nếu bạn lệnh redeem X
cho 3 bot của bạn trong cùng cuộc trò chuyện nhóm với bạn, điều đó sẽ dẫn đến kết quả giống như bạn lệnh redeem X
cho mỗi bot trong cuộc trò chuyện riêng tư. Trong hầu hết các trường hợp đây không phải là điều bạn muốn, thay vào đó bạn nên sử dụng lệnh given bot
để gửi tới **một bot trong cửa sổ riêng **. ASF hỗ trợ trò chuyện nhóm, vì trong nhiều trường hợp, đây có thể là nguồn hữu ích để liên lạc với bot của bạn, nhưng bạn hầu như không bao giờ thực hiện bất kỳ lệnh nào trong trò chuyện nhóm nếu có 2 hoặc nhiều bot ASF trong đó, trừ khi bạn hoàn toàn hiểu hành vi ASF được viết ở đây và trên thực tế bạn muốn chuyển tiếp cùng một lệnh tới mọi bot đang lắng nghe bạn.
And even in this case you should use private chat with [Bots]
syntax instead.
Một phương pháp khác nâng cao và linh động hơn để thực thi lệnh, hoàn hảo cho tương tác người dùng (ASF-ui) cũng như các công cụ bên thứ ba hay tập lệnh (ASF API), yêu cầu ASF chạy trong chế độ IPC
, và một máy trạm thực thi lệnh thông qua giao diện IPC.
Lệnh | Truy cập | Mô tả |
---|---|---|
2fa [Bots] |
Master |
Tạo mã thông báo 2FA tạm thời cho các trường hợp bot đã cấp. |
2fano [Bots] |
Master |
Từ chối tất cả các xác nhận 2FA đang chờ xử lý cho các trường hợp bot đã cấp. |
2faok [Bots] |
Master |
Chấp nhận tất cả các xác nhận 2FA đang chờ xử lý cho các trường hợp bot đã cấp. |
addlicense [Bots] <Licenses> |
Operator |
Kích hoạt licenses , được giải thích bên dưới, trên các trường hợp bot đã cấp (chỉ trò chơi miễn phí). |
balance [Bots] |
Master |
Hiển thị số dư ví của các trường hợp bot nhất định. |
bgr [Bots] |
Master |
In thông tin về hàng đợi BGR của các phiên bản bot đã cấp. |
bl [Bots] |
Master |
Liệt kê danh sách người dùng trong danh sách đen từ mô-đun giao dịch của các phiên bản bot đã cấp. |
bladd [Bots] <SteamIDs64> |
Master |
Danh sách đen steamIDs được cung cấp từ mô-đun giao dịch của các phiên bản bot đã cấp. |
blrm [Bots] <SteamIDs64> |
Master |
Removes blacklist of given steamIDs from trading module of given bot instances. |
encrypt <encryptionMethod> <stringToEncrypt> |
Owner |
Encrypts the string using provided cryptographic method - further explained below. |
exit |
Owner |
Stops whole ASF process. |
farm [Bots] |
Master |
Restarts cards farming module for given bot instances. |
hash <hashingMethod> <stringToHash> |
Owner |
Generated a hash of the string using provided cryptographic method - further explained below. |
help |
FamilySharing |
Shows help (link to this page). |
input [Bots] <Type> <Value> |
Master |
Sets given input type to given value for given bot instances, works only in Headless mode - further explained below. |
ib [Bots] |
Master |
Lists apps blacklisted from automatic idling of given bot instances. |
ibadd [Bots] <AppIDs> |
Master |
Adds given appIDs to apps blacklisted from automatic idling of given bot instances. |
ibrm [Bots] <AppIDs> |
Master |
Removes given appIDs from apps blacklisted from automatic idling of given bot instances. |
iq [Bots] |
Master |
Lists priority idling queue of given bot instances. |
iqadd [Bots] <AppIDs> |
Master |
Adds given appIDs to priority idling queue of given bot instances. |
iqrm [Bots] <AppIDs> |
Master |
Removes given appIDs from priority idling queue of given bot instances. |
level [Bots] |
Master |
Shows Steam account level of given bot instances. |
loot [Bots] |
Master |
Sends all LootableTypes Steam community items of given bot instances to Master user defined in their SteamUserPermissions (with lowest steamID if more than one). |
loot@ [Bots] <AppIDs> |
Master |
Sends all LootableTypes Steam community items matching given AppIDs of given bot instances to Master user defined in their SteamUserPermissions (with lowest steamID if more than one). This is the opposite of loot% . |
loot% [Bots] <AppIDs> |
Master |
Sends all LootableTypes Steam community items apart from given AppIDs of given bot instances to Master user defined in their SteamUserPermissions (with lowest steamID if more than one). This is the opposite of loot@ . |
loot^ [Bots] <AppID> <ContextID> |
Master |
Sends all Steam items from given AppID in ContextID of given bot instances to Master user defined in their SteamUserPermissions (with lowest steamID if more than one). |
mab [Bots] |
Master |
Lists apps blacklisted from automatic trading in MatchActively . |
mabadd [Bots] <AppIDs> |
Master |
Adds given appIDs to apps blacklisted from automatic trading in MatchActively . |
mabrm [Bots] <AppIDs> |
Master |
Removes given appIDs from apps blacklisted from automatic trading in MatchActively . |
nickname [Bots] <Nickname> |
Master |
Changes Steam nickname of given bot instances to given nickname . |
owns [Bots] <Games> |
Operator |
Checks if given bot instances already own given games , explained below. |
password [Bots] |
Master |
Prints encrypted password of given bot instances (in use with PasswordFormat ). |
pause [Bots] |
Operator |
Permanently pauses automatic cards farming module of given bot instances. ASF will not attempt to farm current account in this session, unless you manually resume it, or restart the process. |
pause~ [Bots] |
FamilySharing |
Temporarily pauses automatic cards farming module of given bot instances. Farming will be automatically resumed on the next playing event, or bot disconnect. You can resume farming to unpause it. |
pause& [Bots] <Seconds> |
Operator |
Temporarily pauses automatic cards farming module of given bot instances for given amount of seconds . After delay, cards farming module is automatically resumed. |
play [Bots] <AppIDs,GameName> |
Master |
Switches to manual farming - launches given AppIDs on given bot instances, optionally also with custom GameName . 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. Use reset or resume for returning. |
privacy [Bots] <Settings> |
Master |
Changes Steam privacy settings of given bot instances, to appropriately selected options explained below. |
redeem [Bots] <Keys> |
Operator |
Redeems given cd-keys or wallet codes on given bot instances. |
redeem^ [Bots] <Modes> <Keys> |
Operator |
Redeems given cd-keys or wallet codes on given bot instances, using given modes explained below. |
reset [Bots] |
Master |
Resets the playing status back to normal, used during manual farming with play command. |
restart |
Owner |
Restarts ASF process. |
resume [Bots] |
FamilySharing |
Resumes automatic farming of given bot instances. Also see pause , play . |
start [Bots] |
Master |
Starts given bot instances. |
stats |
Owner |
Prints process statistics, such as managed memory usage. |
status [Bots] |
FamilySharing |
Prints status of given bot instances. |
stop [Bots] |
Master |
Stops given bot instances. |
transfer [Bots] <TargetBot> |
Master |
Sends all TransferableTypes Steam community items from given bot instances to target bot instance. |
transfer@ [Bots] <AppIDs> <TargetBot> |
Master |
Sends all TransferableTypes Steam community items matching given AppIDs from given bot instances to target bot instance. This is the opposite of transfer% . |
transfer% [Bots] <AppIDs> <TargetBot> |
Master |
Sends all TransferableTypes Steam community items apart from given AppIDs from given bot instances to target bot instance. This is the opposite of transfer@ . |
transfer^ [Bots] <AppID> <ContextID> <TargetBot> |
Master |
Sends all Steam items from given AppID in ContextID of given bot instances to target bot instance. |
unpack [Bots] |
Master |
Unpacks all booster packs stored in the inventory of given bot instances. |
update |
Owner |
Checks GitHub for ASF updates (this is done automatically every UpdatePeriod ). |
version |
FamilySharing |
Prints version of ASF. |
All commands are case-insensitive, but their arguments (such as bot names) are usually case-sensitive.
[Bots]
argument is optional in all commands. When specified, command is executed on given bots. When omitted, command is executed on current bot that receives the command. In other words, status A
sent to bot B
is the same as sending status
to bot A
, bot B
in this case acts only as a proxy. This can also be used for sending commands to bots that are unavailable otherwise, for example starting stopped bots, or executing actions on your main account (that you're using for executing the commands).
Access of the command defines minimum EPermission
of SteamUserPermissions
that is required to use the command, with an exception of Owner
which is SteamOwnerID
defined in global configuration file (and highest permission available).
Plural arguments, such as [Bots]
, <Keys>
or <AppIDs>
mean that command supports multiple arguments of given type, separated by a comma. For example, status [Bots]
can be used as status MyBot,MyOtherBot,Primary
. This will cause given command to be executed on all target bots in the same way as you'd send status
to each bot in a separate chat window. Please note that there is no space after ,
.
ASF uses all whitespace characters as possible delimiters for a command, such as space and newline characters. This means that you don't have to use space for delimiting your arguments, you can as well use any other whitespace character (such as tab or new line).
ASF will "join" extra out-of-range arguments to plural type of the last in-range argument. This means that redeem bot key1 key2 key3
for redeem [Bots] <Keys>
will work exactly the same as redeem bot key1,key2,key3
. Together with accepting newline as command delimiter, this makes it possible for you to write redeem bot
then paste a list of keys separated by any acceptable delimiter character (such as newline), or standard ,
ASF delimiter. Keep in mind that this trick can be used only for command variant that uses the most amount of arguments (so specifying [Bots]
is mandatory in this case).
As you've read above, a space character is being used as a delimiter for a command, therefore it can't be used in arguments. However, also as stated above, ASF can join out-of-range arguments, which means that you're actually able to use a space character in argument that is defined as a last one for given command. For example, nickname bob Great Bob
will properly set nickname of bob
bot to "Great Bob". In the similar way you can check names containing spaces in owns
command.
Some commands are also available with their aliases, to save you on typing:
Lệnh | Alias |
---|---|
owns ASF |
oa |
status ASF |
sa |
redeem |
r |
redeem^ |
r^ |
[Bots]
argument is a special variant of plural argument, as in addition to accepting multiple values it also offers extra functionality.
First and foremost, there is a special ASF
keyword which acts as "all bots in the process", so status ASF
command is equal to status all,your,bots,listed,here
. This can also be used to easily identify the bots that you have access to, as ASF
keyword, despite of targeting all bots, will result in response only from those bots that you can actually send the command to.
[Bots]
argument supports special "range" syntax, which allows you to choose a range of bots more easily. The general syntax for [Bots]
in this case is firstBot..lastBot
. For example, if you have bots named A, B, C, D, E, F
, you can execute status B..E
, which is equal to status B,C,D,E
in this case. When using this syntax, ASF will use alphabetical sorting in order to determine which bots are in your specified range. Both firstBot
and lastBot
must be valid bot names recognized by ASF, otherwise range syntax is entirely skipped.
In addition to range syntax above, [Bots]
argument also supports regex matching. You can activate regex pattern by using r!<pattern>
as a bot name, where r!
is ASF activator for regex matching, and <pattern>
is your regex pattern. An example of a regex-based bot command would be status r!\d{3}
which will send status
command to bots that have a name made out of 3 digits (e.g. 123
and 981
). Feel free to take a look at the docs for further explanation and more examples of available regex patterns.
<Settings>
argument accepts up to 7 different options, separated as usual with standard comma ASF delimiter. Those are, in order:
Argument | Tên | Child of |
---|---|---|
1 | Profile | |
2 | OwnedGames | Profile |
3 | Playtime | OwnedGames |
4 | FriendsList | Profile |
5 | Inventory | Profile |
6 | InventoryGifts | Inventory |
7 | Comments | Profile |
For description of above fields, please visit Steam privacy settings.
While valid values for all of them are:
Value | Tên |
---|---|
1 | Private |
2 | FriendsOnly |
3 | Public |
You can use either a case-insensitive name, or a numeric value. Arguments that were omitted will default to being set to Private
. It's important to note relation between child and parent of arguments specified above, as child can never have more open permission than its parent. For example, you can't have Public
games owned while having Private
profile.
If you want to set all privacy settings of your bot named Main
to Private
, you can use either of below:
privacy Main 1
privacy Main Private
This is because ASF will automatically assume all other settings to be Private
, so there is no need to input them. On the other hand, if you'd like to set all privacy settings to Public
, then you should use any of below:
privacy Main 3,3,3,3,3,3,3
privacy Main Public,Public,Public,Public,Public,Public,Public
This way you can also set independent options however you like:
privacy Main Public,FriendsOnly,Private,Public,Public,Private,Public
The above will set profile to public, owned games to friends only, playtime to private, friends list to public, inventory to public, inventory gifts to private and profile comments to public. You can achieve the same with numeric values if you want to.
Remember that child can never have more open permission than its parent. Refer to arguments relationship for available options.
addlicense
command supports two different license types, those are:
Type | Alias | Ví dụ | Mô tả |
---|---|---|---|
app |
a |
app/292030 |
Game determined by its unique appID . |
sub |
s |
sub/47807 |
Package containing one or more games, determined by its unique subID . |
The distinction is important, as ASF will use Steam network activation for apps, and Steam store activation for packages. Those two are not compatible with each other, typically you'll use apps for free weekends and permanently F2P games, and packages otherwise.
We recommend to explicitly define the type of each entry in order to avoid ambiguous results, but for the backwards compatibility, if you supply invalid type or omit it entirely, ASF will assume that you ask for sub
in this case. You can also query one or more of the licenses at the same time, using standard ASF ,
delimiter.
Complete command example:
addlicense ASF app/292030,sub/47807
owns
command supports several different game types for <games>
argument that can be used, those are:
Type | Alias | Ví dụ | Mô tả |
---|---|---|---|
app |
a |
app/292030 |
Game determined by its unique appID . |
sub |
s |
sub/47807 |
Package containing one or more games, determined by its unique subID . |
regex |
r |
regex/^\d{4}: |
Regex applying to the game's name, case-sensitive. See the docs for complete syntax and more examples. |
name |
n |
name/Witcher |
Part of the game's name, case-insensitive. |
We recommend to explicitly define the type of each entry in order to avoid ambiguous results, but for the backwards compatibility, if you supply invalid type or omit it entirely, ASF will assume that you ask for app
if your input is a number, and name
otherwise. You can also query one or more of the games at the same time, using standard ASF ,
delimiter.
Complete command example:
owns ASF app/292030,name/Witcher
redeem^
command allows you to fine-tune modes that will be used for one single redeem scenario. This works as temporary override of RedeemingPreferences
bot config property.
<Modes>
argument accepts multiple mode values, separated as usual by a comma. Available mode values are specified below:
Value | Tên | Mô tả |
---|---|---|
FAWK | ForceAssumeWalletKey | Forces AssumeWalletKeyOnBadActivationCode redeeming preference to be enabled |
FD | ForceDistributing | Forces Distributing redeeming preference to be enabled |
FF | ForceForwarding | Forces Forwarding redeeming preference to be enabled |
FKMG | ForceKeepMissingGames | Forces KeepMissingGames redeeming preference to be enabled |
SAWK | SkipAssumeWalletKey | Forces AssumeWalletKeyOnBadActivationCode redeeming preference to be disabled |
SD | SkipDistributing | Forces Distributing redeeming preference to be disabled |
SF | SkipForwarding | Forces Forwarding redeeming preference to be disabled |
SI | SkipInitial | Skips key redemption on initial bot |
SKMG | SkipKeepMissingGames | Forces KeepMissingGames redeeming preference to be disabled |
V | Validate | Validates keys for proper format and automatically skips invalid ones |
For example, we'd like to redeem 3 keys on any of our bots that don't own games yet, but not our primary
bot. For achieving that we can use:
redeem^ primary FF,SI key1,key2,key3
It's important to note that advanced redeem overrides only those RedeemingPreferences
that you specify in the command. For example, if you've enabled Distributing
in your RedeemingPreferences
then there will be no difference whether you use FD
mode or not, because distributing will be already active regardless, due to RedeemingPreferences
that you use. This is why each forcibly enabled override also has a forcibly disabled one, you can decide yourself if you prefer to override disabled with enabled, or vice versa.
encrypt
command allows you to encrypt arbitrary strings using ASF's encryption methods. <encryptionMethod>
must be one of the encryption methods specified and explained in security section. This command is useful in case you'd want to generate encrypted details in advance, e.g. in order to avoid putting your PlainText
password in the config first and then using password
command. We recommend to use this command through secure channels (ASF console or IPC interface, which also has a dedicated API endpoint for it), as otherwise sensitive details might get logged by various third-parties (such as chat messages being logged by Steam servers).
hash
command allows you to generate hashes of arbitrary strings using ASF's hashing methods. <hashingMethod>
must be one of the hashing methods specified and explained in security section. We recommend to use this command through secure channels (ASF console or IPC interface, which also has a dedicated API endpoint for it), as otherwise sensitive details might get logged by various third-parties (such as chat messages being logged by Steam servers).
input
command can be used only in Headless
mode, for inputting given data via IPC or Steam chat when ASF is running without support for user interaction.
General syntax is input [Bots] <Type> <Value>
.
<Type>
is case-insensitive and defines input type recognized by ASF. Currently ASF recognizes following types:
Type | Mô tả |
---|---|
Login |
SteamLogin bot config property, if missing from config. |
Password |
SteamPassword bot config property, if missing from config. |
SteamGuard | Auth code sent on your e-mail if you're not using 2FA. |
SteamParentalCode |
SteamParentalCode bot config property, if missing from config. |
TwoFactorAuthentication | 2FA token generated from your mobile, if you're using 2FA but not ASF 2FA. |
<Value>
is value set for given type. Currently all values are strings.
Let's say that we have a bot that is protected by SteamGuard in non-2FA mode. We want to launch that bot with Headless
set to true
.
In order to do that, we need to execute following commands:
start MySteamGuardBot
-> Bot will attempt to log in, fail due to AuthCode needed, then stop due to running in Headless
mode. We need this in order to make Steam network send us auth code on our e-mail - if there was no need for that, we'd skip this step entirely.
input MySteamGuardBot SteamGuard ABCDE
-> We set SteamGuard
input of MySteamGuardBot
bot to ABCDE
. Of course, ABCDE
in this case is auth code that we got on our e-mail.
start MySteamGuardBot
-> We start our (stopped) bot again, this time it automatically uses auth code that we set in previous command, properly logging in, then clearing it.
In the same way we can access 2FA-protected bots (if they're not using ASF 2FA), as well as setting other required properties during runtime.
- 🏡 Trang chủ
- 🔧 Cấu hình
- 💬 Câu hỏi thường gặp
- ⚙️ Thiết lập (bắt đầu tại đây)
- 👥 Công cụ kích hoạt game trong nền
- 📢 Lệnh
- 🛠️ Khả năng tương thích
- 🧩 ItemsMatcherPlugin
- 📋 Quản lý
- ⏱️ Hiệu năng
- 📡 Liên lạc từ xa
- 👪 Chia sẻ gia đình Steam
- 🔄 Trao đổi