Open-source project
chr233/ASFEnhance avatar
chr233/ASFEnhance

ASFEnhance: extra commands for ArchiSteamFarm bots

ASF 扩展命令插件 / External commands for ArchiSteamFarm

742 stars44 forksC#AGPL-3.0

At a glance

What is it?
chr233/ASFEnhance is a C# plugin for ArchiSteamFarm that adds timed event commands, Steam Awards voting helpers, and a subsystem for managing other plugins. The command set is seasonal by design, which is both its appeal and its catch.
Who is it for?
Adopt ASFEnhance if you already run ArchiSteamFarm and want seasonal event commands and plugin management in one place, and you accept that the event commands disappear in later versions. Do not adopt it as a general purpose automation tool, because the event set is time limited and the plugin's own end user agreement rules out fake reviews and advertising.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 14 days ago.
What is it written in?
Mainly C#, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A plugin that extends ASF with extra commands

ArchiSteamFarm is the bot framework, and ASFEnhance is a plugin that hangs off it. The repository description gives both names, in Chinese and in English, as external commands for ArchiSteamFarm. It is written in C#, published as a single `ASFEnhance.dll` that you drop into the ASF plugins folder, and it is licensed AGPL-3.0, which matters if you plan to modify and redistribute it.

The command set is the product. ASFEnhance groups commands into tables with a command name, a short alias, a required permission level, and a description. That structure is worth reading closely, because the permission column tells you more about how the plugin is meant to be operated than any prose description would. Most entries require `Operator`, while the plugin and submodule management commands ask for `Master`.

The project ships three README files, one in Chinese, one in English and one in Russian, and the English file is README.en.md. Translations are handled through Crowdin, and the repository also contains a wiki directory and an asfenhance-ui directory, so the project is more than a single assembly with a command table.

Installing the DLL and checking that it loaded

Installation is a manual step rather than a package manager flow. The documented path is to download the latest version from the GitHub Releases page, unzip it, put `ASFEnhance.dll` into the `plugins` folder inside the ArchiSteamFarm directory, and restart ArchiSteamFarm.

After the restart you can check that the plugin is alive by issuing either of its two names in the ASF command window:

bash
ASFEnhance
ASFE

If the plugin is missing or failed to load, those commands will not resolve. That check is worth doing immediately after the update rather than at the point where you need a seasonal command, because the whole command table sits behind that one assembly.

The same mechanics apply to updates. The documentation has a section for manual updating alongside the initial install, which tells you something useful about the release cadence: this is a plugin that is reinstalled by hand, so a new release does not reach an existing installation until someone copies the new DLL into place and restarts ASF.

Submodules and the plugin update interface

Since version 2.0.0.0 the plugin carries a subsystem feature, described as the ability to manage and update supported plugins. The listed supported plugins are ASFMultipleProxy, ASFBuffBot, ASFOAuth, ASFTradeExtension, ASFAchievementManagerEx and ASFAwardTool, and an example of a plugin integrating with it is ASFEnhanceAdapterDemoPlugin.

The management surface is a set of commands with aliases and a permission split that is worth remembering:

bash
PLUGINSLIST
PLUGINSVERSION
PLUGINSUPDATE

`PLUGINSLIST` gets the list of currently installed plugins, with the ones at the end marked with brackets indicating that they are submodules ASFEnhance can manage. `PLUGINSVERSION` reports version information for a named plugin, or checks every supported plugin when no name is given. `PLUGINSUPDATE` updates a named module, or all supported modules when no name is given. `PLUGINLIST`, `PLUGINVERSION` and `PLUGINUPDATE` exist as aliases of the plural forms.

The permission split is deliberate in the documentation. Listing plugins needs the Operator permission, while querying versions and triggering updates need Master. That is a sensible hierarchy, since an update is a privileged operation on shared infrastructure.

Updating plugins through ASF itself

ArchiSteamFarm added a plugin update interface in version 6.0.0.0, and the plugin uses it. The update command is:

bash
UPDATEPLUGINS stable ASFEnhance

The `stable` channel name and the plugin name are both part of the documented syntax. Once that interface is available, updating the plugin stops being a manual DLL copy.

The alternative path goes through the built-in `Update` command, which requires a configuration change in ASF.json. The documentation describes two modes. With `PluginsUpdateMode` set to `blacklist`, the built-in update command handles the plugin. With `PluginsUpdateMode` set to `whitelist` and `ASFEnhance` added to `PluginsUpdateList`, only listed plugins are touched.

The Update route is the one that requires editing ASF.json. Between the direct `UPDATEPLUGINS` command and the whitelist route, the whitelist is the better fit for a bot farm that hosts several plugins and does not want every ASF update to reach for this one.

Event commands expire on a schedule you do not control

The seasonal command group is labelled as a limited time event, and the documentation states plainly that these commands are time sensitive and that expired commands will be removed in the next version of the plugin. That design decision is the defining characteristic of the project.

The commands cover Steam store events and profile decorations. `CMF` fetches a profile decoration from the Choices Matter Festival, `DL2` fetches one from Dying Light 2 Stay Human, `CLAIMITEM` gets promotional reward items such as stickers, `CLAIMPOINTSITEM` gets free items from the points store, and `CLAIM20TH` claims the 20th anniversary free item. Each takes an optional bot list, and the aliases are `CI`, `CPI` and `C20`.

There is also a scheduled behaviour. The documentation states that ASFEnhance runs `CLAIMITEM` for the bots listed in `AutoClaimItemBotNames` every 23 hours, starting one hour after launch. If you use that configuration option, items are claimed on a timer without a human triggering each one.

Steam Awards voting commands and their built in fallbacks

The vote commands cover the Steam Awards. `AUTUMNVOTE` (alias `AV`) nominates games for a Steam award, and `WINTERVOTE` (alias `WV`) votes for one. Both take an optional bot list and a list of AppIds, with at most 10 games specified per bot.

The behaviour when you supply fewer AppIds than the limit is spelled out, and it is the detail most people should read twice. If AppIds are not specified, or fewer than 11 are given, the missing part of the vote is cast using built in AppIds. So a partial list does not reduce the number of votes, it changes which games receive them.

Checking the result has its own pair of commands. `CHECKVOTE` (alias `CV`) reports completion, and `CHECKAUTUMNVOTE` (alias `CAV`) and `CHECKWINTERVOTE` (alias `CWV`) cover the two seasons separately. A `VOTE` command also exists, and the documentation notes it maps to either of the seasonal variants depending on the plugin version, which is a small trap when you write scripts against it.

Where the plugin draws its own limits

There are several constraints worth weighing before you install it.

The plugin ships an end user agreement that asks users not to perform unwanted behaviour with it, listing fake reviews and posting advertisements among the examples, and it points to the configuration section for details. It also ships a SECURITY.md file.

The command table is explicitly time limited, so anything you build on `CMF` or `CLAIM20TH` has an expiry date you do not control, and a plugin upgrade can remove a command you depend on. The vote commands accept at most 10 AppIds per bot and fall back to built in AppIds for the remainder, which limits how much control you have over what gets voted for. The README describes only a manual DLL install into the ASF plugins folder, and does not document any other install method.

The AGPL-3.0 licence is the other boundary. If you modify the plugin and ship it to your own users, the copyleft terms reach those users, and the plugin's submodule system creates a network of related plugins from the same author with the same licence.

Editorial conclusion

Adopt ASFEnhance if you already run ArchiSteamFarm and want seasonal event commands and plugin management in one place, and you accept that the event commands disappear in later versions. Do not adopt it as a general purpose automation tool, because the event set is time limited and the plugin's own end user agreement rules out fake reviews and advertising. Check first which command permissions your ASF users hold, since submodule listing needs Operator while version checks and updates need Master, and confirm that the release you install matches your ArchiSteamFarm version, with 2.3.29.0 published on 2026-10-10.

Frequently asked questions

How do I install ASFEnhance for ArchiSteamFarm?

Download the latest version from the GitHub Releases page, unzip it, and place `ASFEnhance.dll` into the `plugins` folder of the ArchiSteamFarm directory, then restart ArchiSteamFarm. The `ASFEnhance` or `ASFE` command confirms that the plugin loaded.

How do I update ASFEnhance once ArchiSteamFarm supports plugin updates?

ArchiSteamFarm 6.0.0.0 added a plugin update interface, and the documented command is `UPDATEPLUGINS stable ASFEnhance`. You can also let the built-in `Update` command handle it by setting `PluginsUpdateMode` to `blacklist`, or to `whitelist` with `ASFEnhance` listed in `PluginsUpdateList`.

Do the ASFEnhance event commands keep working after the event ends?

No. The documentation describes those commands as time limited and says expired commands are removed in the next version of the plugin. That is why the event set is worth treating as temporary tooling rather than a permanent interface.

Official sources

  1. chr233/ASFEnhance on GitHub
  2. Issues
  3. License: AGPL-3.0
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/chr233-asfenhance.svg)](https://hysenlabs.com/projects/chr233-asfenhance)

Was this useful?