Mist - a portable, open-source Steam client that lets you chat/trade on any computer
31 replies, posted
Hey everyone, long-time lurker of Facepunch here. I've recently completed a small program I'm pretty proud of, and I'd like to share it with you guys today.
=====What is Mist?=====
Mist is a portable, open-source Steam client written in C# that allows the user to chat and trade TF2 items. It's less than 2MB!
Mist is something I decided to write because I love doing trades, even away from home. Unfortunately I wasn't always able to go on Steam and trade due to restrictions on installing software, for example, and would miss out on business deals.
So Mist is intended to be a solution for that. It's portable and doesn't require Steam, which means that you can put it on a flash drive and bring it anywhere with you.
Mist is built on top of [URL="https://github.com/Jessecar96/SteamBot/"]SteamBot[/URL] and heavily uses its underlying functions to handle chat and trading. And of course, it is open-source as well :)
=====Features=====
* Works with SteamGuard - no need to disable it to use Mist
* Chat with friends
* Trade TF2 items - you are limited to trading only TF2 items for now. Adding other types of items will cause the trade to expire.
* Change display name and status
* Add friends
* Block/ignore friends
* Backpack viewer - view anyone's backpack directly from within the program!
* SteamRep Checker - check any of your friends' SteamRep status
* More to come?
=====What doesn't work=====
* F̶r̶i̶e̶n̶d̶ ̶r̶e̶q̶u̶e̶s̶t̶s̶ ̶a̶r̶e̶ ̶n̶o̶t̶ ̶s̶h̶o̶w̶n̶ ̶i̶n̶ ̶M̶i̶s̶t̶.̶ ̶Y̶o̶u̶ ̶w̶i̶l̶l̶ ̶h̶a̶v̶e̶ ̶t̶o̶ ̶a̶c̶c̶e̶p̶t̶/̶i̶g̶n̶o̶r̶e̶ ̶t̶h̶e̶m̶ ̶m̶a̶n̶u̶a̶l̶l̶y̶ ̶v̶i̶a̶ ̶s̶t̶e̶a̶m̶c̶o̶m̶m̶u̶n̶i̶t̶y̶.̶c̶o̶m̶.̶ ̶T̶h̶i̶s̶ ̶f̶e̶a̶t̶u̶r̶e̶ ̶w̶i̶l̶l̶ ̶b̶e̶ ̶i̶m̶p̶l̶e̶m̶e̶n̶t̶e̶d̶ ̶i̶n̶ ̶a̶ ̶l̶a̶t̶e̶r̶ ̶r̶e̶l̶e̶a̶s̶e̶ [b]This has now been added[/b]
* Can only trade TF2 items
* Occasionally adding items will cause the trade to crash and expire. This is rare but it happens
* Searching for friends - this is planned for a later release
* [B]Linux support[/B] - unfortunately Mist is not compatible with Linux, using either Mono or Wine. Some of the libraries used are incompatible. A separate Linux release is planned in the future, if demand is high enough.
=====Feedback, Contributions and Suggestions=====
[B]Got an idea for a feature? Want to contribute?[/B]
Please report all bugs and suggestions by opening a new issue on [URL="https://github.com/waylaidwanderer/Mist/issues"]the Mist repo[/URL] on GitHub. If you would like to contribute and make your own changes, check out [URL="https://github.com/waylaidwanderer/Mist/blob/master/CONTRIBUTING.md"]how to contribute[/URL].
=====Source Code=====
Mist is open-source and licensed under the [URL="http://www.gnu.org/licenses/gpl.html"]GPL[/URL]. As such, you are free to peruse the code and even contribute to it.
The source code can be found on GitHub. Check it out [URL="https://github.com/waylaidwanderer/Mist"]here[/URL]. You can compile Mist directly from source if you'd like.
=====Download Mist=====
You can always find the latest version of Mist on the Steam Group [URL="http://steamcommunity.com/groups/MistClient/discussions/0/810919057023360607/"]here[/URL].
All versions of Mist requires .NET 4.0 to run. A Steam API key is also required. Get one from [URL="http://steamcommunity.com/dev/apikey"]here[/URL].
=====Screenshots Gallery=====
[URL="http://imgur.com/a/h4NG8"]View screenshots of Mist.[/URL]
"on any computer"
"All versions of Mist requires .NET 4.0 to run"
Doesn't .NET just limit it to Windows? I could be wrong though, but it's difficult to make a claim of it running on any computer when the computer needs Windows. Looks good though
Well, if we're arguing about semantics here, technically you [i]can[/i] run it on any computer as long as you have the right software/OS.
Even on Linux as long as you have Virtualbox you can run it.
True, but if someone only has Linux/OSX and do not have a copy of Windows, it means they have to buy the OS to run your program which runs on any computers. It's like the offers you get a shops when they say "You can get this free if you buy this item". It's not a bad thing to have it only run on Windows, I just don't think you should say it runs on any computer
It runs on any computer with Windows. There :P
These were pretty much rendered useless with the introduction of Steam Webchat and Steam for Linux, though :v:
Webchat is nice but you can't trade with that either.
Wouldn't it work with mono?
Unfortunately not. Mist uses ObjectListView for display many things, and is unsupported by Mono. See the screenshot here: [url]http://puu.sh/2jIHt[/url]
*snip*derp, can't read my own error log.
I hate when people try to make some small useful application and then do something dumb like use some insignificant set of functions of some monstrously huge dependency that was completely pointless to use just because it was slightly more convenient for them to program with.
This application isn't portable, nor is it really open source. It uses a proprietary and shit coding language that only works on Windows, and it also uses a massively bloated framework with the same limitations.
Sorry, but this isn't useful. If it was programmed in Java or C++ and you didn't use dumb dependencies, I might consider trying it.
did you actually suggest he use java lol
This is nice program, good work.
[QUOTE=TehWhale;39970178]did you actually suggest he use java lol
This is nice program, good work.[/QUOTE]
I must admit, Java is probaly not the best approach, but cross-platform would be the only thing that could make this work [U]IMO[/U].
[QUOTE=bohb;39966558]I hate when people try to make some small useful application and then do something dumb like use some insignificant set of functions of some monstrously huge dependency that was completely pointless to use just because it was slightly more convenient for them to program with.
This application isn't portable, nor is it really open source. It uses a proprietary and shit coding language that only works on Windows, and it also uses a massively bloated framework with the same limitations.
Sorry, but this isn't useful. If it was programmed in Java or C++ and you didn't use dumb dependencies, I might consider trying it.[/QUOTE]
Sorry :( I'm already working on a Linux version, which should be easy to port to Mac as well. That's all I can say for now.
[QUOTE=TehWhale;39970178]did you actually suggest he use java lol
This is nice program, good work.[/QUOTE]
Java is one of the few languages that is designed to be cross platform friendly. You have nearly everything you need within Java to get a program off the ground without any external dependencies.
If you made the same application in C++, you'd have to spend more time using something for the display component like SDL.
Although Java is slow and can have security problems, it does have uses. If Java didn't exist, the Internet and the world would be a very different place.
Java isn't slow unless you're doing something really resource intensive. For any basic applications it's fine. As for security problems, they do get patched
It's not really portable if it's stuck to Windows is it?
[QUOTE=Jookia;39980246]It's not really portable if it's stuck to Windows is it?[/QUOTE]
It's portable because you can put it on a usb and run it from there without installing.
A portable app is just defined as an app that can be put on a USB stick and yeah, ran without installing, usually storing any external or generated files on the USB stick as well rather than in the windows appdata folder or registry so that when it's taken to another computer it remembers everything
Here's the changelog for Mist v2.0.0 coming in the next 12 hours:
[QUOTE][U][B]Changelog[/B][/U]
- Fixed the "Add Friend" button from staying in the same place when the form was resized
- Renamed the "Add a Friend"'s title from "AddFriend" to "Add a Friend"
- Added icons to the backpack viewer
- [B]Enabled Mist to run more than one instance from the same folder[/B]
- Fixed trade request being sent to the wrong chat tab in some cases
- Added a toast notification for trade requests
- Moved Mist's settings file to the application's root folder
- Enabled option to add all items in user's inventory to the trade offerings
- [B]Friend requests are now shown within Mist, and can be added/ignored directly within the application[/B]
- Added an option to disable minimizing to tray[/QUOTE]
[QUOTE=jhang;39980264]It's portable because you can put it on a usb and run it from there without installing.[/QUOTE]
Not every computer has .NET 4.0 and having to install a 68 MB dependency to run an 800 kB application is ridiculous.
I've found the main use of this for me is trading between my main account and my alt without having to log onto two computers.
Very useful for me at least.
[QUOTE=bohb;39988708]Not every computer has .NET 4.0 and having to install a 68 MB dependency to run an 800 kB application is ridiculous.[/QUOTE]
Can we please stop arguing semantics? It may not be completely portable, but people find it useful, and as long as that's the case I'm happy enough with it. I'm already working on a Linux version anyway.
[QUOTE=rhx123;39988726]I've found the main use of this for me is trading between my main account and my alt without having to log onto two computers.
Very useful for me at least.[/QUOTE]
Good to hear it :)
Mist v2.0.0 has been released. I'm pretty proud of what I've done between the initial release and this one. Here's the changelog.
[QUOTE][U][B]Changelog[/B][/U]
- Fixed the "Add Friend" button from staying in the same place when the form was resized
- Renamed the "Add a Friend"'s title from "AddFriend" to "Add a Friend"
- Added icons to the backpack viewer
- [B]Enabled Mist to run more than one instance from the same folder[/B]
- Fixed trade request being sent to the wrong chat tab in some cases
- Added a toast notification for trade requests
- Moved Mist's settings file to the application's root folder
- Enabled option to add all items in user's inventory to the trade offerings
- [B]Friend requests are now shown within Mist, and can be added/ignored directly within the application[/B]
- Added an option to disable minimizing to tray
- General bug fixed[/QUOTE]
As always, you can find the latest version here: [url]http://steamcommunity.com/groups/MistClient/discussions/0/810919057023360607/[/url]
wow this is actually really cool
good job
[QUOTE=EpikEnvy2.0;39999043]wow this is actually really cool
good job[/QUOTE]
Thanks :) I'm working on a new update that will allow auto-updating.
[QUOTE=bohb;39988708]Not every computer has .NET 4.0 and having to install a 68 MB dependency to run an 800 kB application is ridiculous.[/QUOTE]
Unless it's a brand-spanking-new install of Windows, chances are .NET 4.0 already has been installed as a dependency to something else.
[QUOTE=lavacano;40001090]Unless it's a brand-spanking-new install of Windows, chances are .NET 4.0 already has been installed as a dependency to something else.[/QUOTE]
Plus I'm pretty sure it's also a recommended update, so if you have Windows Update enabled, chances are you already have it.
Additionally I noticed when I installed Windows 8 on my laptop it already came with .NET 4.0. I'm not sure if Windows 7 is like that too...
Mist v3.0.0 has been released. This version has tons of new features and aims to make trading more secure and better than ever.
[QUOTE][U][B]Changelog[/B][/U]
- Added a "View Profile" option when right-clicking on a friend. This will open their Steam profile in your default browser.
- Implemented filtering/search in the friends' list.
- [B]Implemented an auto-updater. Mist can now update itself without you going to the Steam group.[/B]
- [B]Implemented chat logging. This can be turned off if you wish. Feature is on by default.[/B]
- Implemented chat log viewer. Just right click on your friend.
- [B]Added automatic SteamRep checking when chatting with people on your friends list. You will be notified of scammers or users with special reputation.[/B]
- Added colors to chat. This makes everything much easier to read.
- Added backpack.tf price-checking in the backpack viewer.
- [B]Added backpack.tf price-checking in trade. This feature is turned off by default.[/B]
- Added colors to trade chat. Items added to trade will now be displayed with their respective quality colors in trade chat.
- Trade events will be logged in the chat log
- Mist now notifies friends that the user is using the application via a "Now Playing" notification
- Added exit option to Mist
- General bug fixes and tweaks[/QUOTE]
As always, you can find the latest version here: [url]http://steamcommunity.com/groups/MistClient/discussions/0/810919057023360607/[/url]
[QUOTE=jhang;40052650]Mist v3.0.0 has been released. This version has tons of new features and aims to make trading more secure and better than ever.
As always, you can find the latest version here: [url]http://steamcommunity.com/groups/MistClient/discussions/0/810919057023360607/[/url][/QUOTE]
[code]See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.ComponentModel.Win32Exception (0x80004005): Class not registered
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at MistClient.Login.label4_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Label.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Mist
Assembly Version: 3.0.0.0
Win32 Version: 3.0.0.0
CodeBase: file:///C:/Users/Osku/Desktop/Mist_v3.0.0_Release/Mist.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
SteamKit2
Assembly Version: 1.3.0.30188
Win32 Version: 1.3.0.30188
CodeBase: file:///C:/Users/Osku/Desktop/Mist_v3.0.0_Release/lib/SteamKit2.DLL
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
[/code]
i clicked on the "API Key" text, clicked "yes" on the steam api key dialog popup box thing and i got this
i tried mist 2.0.0 before, it had similar errors
i'm on windows 8 and i have .net 4.0 installed
Sorry, you need to Log In to post a reply to this thread.