This is another Steambot. But what is a Steambot ? Well, it's a steam account, being managed by a bot. That's it.

What does it really means ? Well, you can do everything a humain will do, but fast and without the needs of a... humain !
Right now, it can do automatic trade offer, change his name, reply to messages, etc.

Please read :
You need a valid steam account, it's seems obvious, but a lot of people message me and send me text like "duh, doesn't work, I didn't put my username nor password, but I still wonder why it doesn't work.".
It's a BOT it means, it require real steam logins. This program just does actions that a normal human have to do it itself. It saves times. Automate things.

Everything is fully automatic

Support mobile confirmation

Easy configuration

Too much things, I can't list them all, and if you find something that he do not, well, message me.

*** NOTE ****
This guide is splitted in two parts, Windows and Linux, if you plan to run ASteambot on a WINDOWS machine, follow the step who have the windows logo next to it however, if you are a Linux user, follow the step with the Linux icon. If a step have both logo, follow it, whitout asking questions, okay ? (Kiding, feel free to ask if anything is NOT clear enough / problems found)

ASteambot will require a connection to a DATABASE server and also need one TCP PORT OPEN !
Usually, you want to use 27018, if you have no game server running on port 27018. If you don't know what is, ask your host. It will explain you how all this work.

Manual :
Download Mono : Download link & documentation : http://www.mono-project.com/download/#download-lin
Start the exe (ASteambot.exe) by writing in your console "mono ASteambot.exe" (make sure the console is in the same folder as ASteambot.exe) and it will ask you to configure it, YOU HAVE TO PUT A VALUE FOR EACH FIELDS !

4) OPTIONAL: If you want to manually edit (Or updater version < 1.6.0) the configuration of ASteambot, you can do so by editing the config file. It's called config.cfg and can be found in the ASteambot folder.

//The bot's steam account name, NOT THE DISPLAY NAME, the bot use to log in :steam_username=blabla1//The bot's steam account passwordsteam_password=highlysecuredpassword//The steam API key, can be found here : https://steamcommunity.com/dev/apikeysteam_apikey=//The steamID, using the STEAMID_X:Y:ZZZZZ format, splitted by space or whatever you want.steam_admins=STEAM_0:1:42047781,STEAM_0:1:42047781 STEAM_0:1:42047781ŽSTEAM_0:1:42047781

//Arkarr's server API key, get it from here : http://raspberrypimaison.ddns.net/website/public/ASteambot/GetAPIKey///YOU NEED THE WHOLE THING Exemple ://ArkarrAPIKey=I sang to my dog in an elevator because that's the way the cookie crumbles/HGUIHZGZU5243653

ArkarrAPIKey=

//Disable or enable market scan (YES/NO):DisableMarketScan=NO

Manual install (advenced user) :

Spoiler

0) Start by installing SOCKET extension on your server : https://forums.alliedmods.net/showthread.php?t=67640
1) You will need to download a version (you should always take the newer version available, except in particular case) of ASteambot on the official github repo. I can't and won't do support on other versions that are NOT directly downloaded from my github repo (as it may contains malicious code).

2) Now that you have a done that, extract the folder version, for exemple V 1.6.0 on your computer. Let's say, the Desktop.
3) Now, open the folder, you will see 8 files. One of them is called config.cfg, open it with a text editor programm, it should be like this :

//Arkarr's server API key, get it from here : http://raspberrypimaison.ddns.net/website/public/ASteambot/GetAPIKey/ArkarrAPIKey=

YOU HAVE TO SET A CORRECT VALUE TO ALL SETTINGS !
TCP_Password, backpacktf_apikey, steam_apikey and steam_password should NOT be every shared. It's very sensible data.
Althrough, if you run in difficulties, you can send me your config file (taking care of removing your sensible informations firstly).
In general, config.cfg should NEVER be shared.

4) Now that you config file is saved and correctly filled, you need to open your ports on the machine that is running the bot.
I can't explain you how to do it, because it depend of the router your host is using (or your home, I don't know). But usually it's in the control panel of your host (not your game server panel)

5) That's it ! You can now click on the executable file (Asteambot.exe) and let the magic begin !

Once you have installed mono, navigate to the version folder using the terminal, and simple write "mono ASteambot.exe" to run the programm, that's it.

OPTIONAL BUT RECOMMENDED :
Import the sql script in your database. Then start ASteambot.
It will insert a default price for each CSGO items wich will get updated right after in a time span of 8 houres.

This list is incomplete :

Spoiler

Code:

[X] broadcast chat from specified server to admin requesting it. Hook to broadcast and stop. Cfg file to configure servers ip port rcon. Ability to interact with ingame chat through bot.
[ ] report calls to all admins. On calls, display : Callid, server, caller id, reported id, connect url, hook to open chat broadcast. Also broadcast Ó message when Ó call is handled with who handled it.
[ ] hook to broadcast a message all admins.
[ ] display list of servers with map and players with Ó hook (!servers !list).<id> <hostname> <map> <players>. Cfg file. Ability to display servers by group (!display dm, !list retakes)
[ ] help to display all available command.
[ ] show steam status (!steamstats)
[ ] some high level power allowed for only 1 steamid like list friendlist, delete friend, join group, add friend. Steamid from cfg file
[ ] allow all incoming trades (out empty). Allow outgoing trades to specific steamid (high lvl power)
[ ] on call, check if reported steam has already been banned in sourceban and display if yes.
[ ] Ability to invite to group and add as friend a specific steamid (!invite STEAM_X:X:XXXXX) for high power only
[ ] calls statistics on who handled most calls over time (!topcall = all time top, !callweek = top of week, !call june,) displayed with id, nick and or steam, number of handled calls
[ ] ability to set bot idle to any game ? (high power lvl)
[ ] !review STEAMID or select player from servers list to check his account history / steamrep / friends bans / VAC / economy / community ban
[ ] !google <request> will print out a link to first google reply to this request
[ ] ability to set custom triggers with custom replies from a cfg file
[ ] log everything into mysql ?
[ ] On calls, add ability to admins to tell the bot to add original caller to his friendlist to open a direct chat between admin and caller, then delete the caller from friendlist when the chat is closed by admin.
[ ] So there should basicaly be 3 levels of rights :
- Owner (from steamid)
- admins (from steamgroup)
- regulars (added by admin to handle call)

Copyright (c) ASteamBot Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

God... Another steambot ? Really ?
Yeah, but wait, there is more ! This one provide a simple interface but complete (okay, well, not yet, still in version 1.0) through TCP messages. So, the bot warn in REAL-TIME when something happen, as exemple : When someone finsih a trade with him ! You might want to give a close look at the "Features" section !

But before continuing I would like to say this :
This bot is been made by Jessecar96 and I slighty modified it to provide such small features (like trades end handling and a speak module, I want to add more in the futur, but I need time). Also this bot is made in C#, so, Mac (heheehhe) and Linux (sorry D;)https://forums.alliedmods.net/showpo...&postcount=124 can already quit. Except if you find a way to run it on Wine or something else.

Also it's a pre-release, many people pushed me to publish this as fast as possible. So, don't except a lot of features YET. But, the things who are already implemented are working fine !

So, why the f. should I use that thing ?
Because like I said 84134803214 times above, this thing have a (simple, okay ?) interface, where you can handle the trades, etc... to create things on your server, so now. Let's said I would like to display a nice message each time someone has finished to trade with the bot, well, you can, take a look at the template plugin (availables in the downloads.)

A progression / feature request can be found here !
[IMG_BROKEN]http://puu.sh/kOyld/59362d9ca1.png[/IMG]

Commands:

No commandsNo Cvar
What did you excepted ? It's a steambot !

BUT

The admin ("MySteamID" in Setting.json) can retrieve ALL items of the bot by typing "ALL" in the trade chat !
[IMG_BROKEN]http://puu.sh/kIy8M/2e5993c60e.png[/IMG]

Also, you can write "LIST" in the chat window, and he will display is inventory.

[IMG_BROKEN]http://puu.sh/kKrCJ/b142883a11.png[/IMG]

Installation :

1) Download the zip archive (The sources are included inside, also the compilled binaries)
2) Go to "SteamBot_Arkarr\SteamBotInterface\bin\Debug" and edit Serttings.json with your favorite text editor.
3) Start the bot by double-clicking on the SteamBotInterface.exe executable file.
4) ???
5) Enjoy !

What I plan to do ?
- a hudge list of features. I don't want to write them down now, will take me all the after-noon.

Request :

None for the moment... feel free to ask !

Screenshots

[IMG_BROKEN]http://puu.sh/kHuhY/5ab56d88f9.PNG[/IMG]

Event / Callbacks (for developper)

REQUEST_CONNECTION - He has to be the first TCP paquet to send to the bot (Right after the connection is made), it's basically just a subscriber, like : Yep, I want you (steambot) to send me all the other event !

TRADEOFFER_ENDED - Called when someone finish (confirm through his emails) the trade offer.
Exemple :TRADEOFFER_ENDED|STEAM_0:1:XXXXXXX|5000,5000, 5001|5002,
those numbers (5000, 5001, etc...) are item definition index. For exemple, here, it's scarp, reclaimed and raffined metal who are traded. The left part is the items that the BOT will have and on the right, it's the items that the USER will have.

Template

Template ? Yeah, this is how you 'speak' with the bot, he send you event, and you handle them.

public void OnPluginStart(){CVAR_SteambotServerIP = CreateConVar("sm_steambot_server_ip", "XXX.XXX.XXX.XXX", "The ip of the server where the steambot is hosted.");CVAR_SteambotServerPort = CreateConVar("sm_steambot_server_port", "11000", "The port of the server where the steambot is hosted, WATCH OUT ! In version 1.0 of the bot, the port is hardcoded and is 11000 !!");CVAR_SteambotTCPPassword = CreateConVar("sm_steambot_tcp_password", "Pa$Sw0Rd", "The password to allow TCP data to be read / send (TCPPassword in settings.json)");

public OnClientSocketConnected(Handle socket, any arg){/* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> We NEED to send the data 'REQUEST_CONNECTION' ONCE and AT THE FIRST CONNECTION so the steambot register us in his client list. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */PrintToServer(">>> CONNECTED !");char data[200];char map[100];GetHostName(map, sizeof(map));Format(data, sizeof(data), "%sREQUEST_CONNECTION%s", steambotPassword, map);SocketSend(clientSocket, data, sizeof(data));