GameDog [v5.0] - Chroma for CS:GO and DOTA2 | Razer Insider
Skip to main content
GameDog Chroma Game Integrations



Currently Supports:



  • Counter-Strike: Global Offensive

  • Dota 2



Current Version: 2.4

Download:
HERE



Old Beta Version: 3.7

Download: HERE



New Beta Version: 5.0

Download:
HERE



DOTA2 INFO: With a recent Update Valve disabled the gameintegration per default cause of performance issues for some users who didn't even know about it. This can be reenabled by adding "-gamestateintegration" to the launch settings.



https://i.gyazo.com/56961ea93f61a971ef59e77b12950b86.png





How to Install:



  • Download latest Version from the Razer Workshop or the GameDog Thread.

  • Install GameDog

  • Open Synapse and make sure Chroma Apps are enabled under the "Chroma Apps -> Settings" Tab

  • Start GameDog

  • Make sure your Chroma Devices play a Green Animation and then return back to your default Profile.

  • Make sure under Settings in GameDog the Directory to your Game is set correctly.

  • Minimize GameDog. It will stay open in the Tray Bar.

  • Start your Game and GameDog should receive Data and change the lighting accordingly.

  • After playing GameDog will revert the Keyboard back to your Synapse Profile



FAQ:

https://gitlab.com/Chromatin/GameDog#faq



If you feel like donating something I'd be very happy:

Either via Paypal

or via

Steam Tradeoffer

Thank you very much!











Changelog:



- 5.0



  • Full rewrite, New UI, improved performance

  • Fixed Bug causing "SDK not found" error on start

  • Fixed Bug with HttpRequestException





- 2.4



  • CS:GO: Fixed Crash





-
2.1



  • Workaround for slow updates caused by Valves broken API





- 2.0 (Just a minor Bugfix release to internal Version 5895)



  • Dota 2: Fix passive items lighting up as a Key





- 2.0



  • Allows staying in the Background

    That means GameDog does NOT turn yellow anymore. Once you start gamedog it plays a starting animation (Green light running along all Devices). After that GameDog returns to your default Synapse profile! This behaviour can be changed in Settings but is activated by default. Make sure to MINIMIZE the Window (it moves to the tray) and do NOT close the Window as that closes GameDog completly.





  • Start with Windows

    Makes the above actually useful. It makes GameDog start with Windows in the Background. You can now also start GameDog with the Parameter "/StartMinimized" which will Minimize gamedog right to the tray. It WON'T play any starting animation in that mode and won't initialize Chroma until you actually start a Game!





  • Import and Export of Assignments to share with Friends!

    With the Export and Import Buttons in the Assignments view you can get a JSON (Text) representation of your Assignments you can save as Textfile if you want to switch between profiles. Just click on Export and then click on "ok" to make GameDog copy everything into your clipboard. Now you can store this in your own Textfile for later use and just copy and paste it into the Box that appears when you click on "Import".



    But that not enough!



    You can also enter URLs to textfiles that are then downloaded so you can host your profile via any text file hosting service.





  • Single-time Key Flash for Game Values

    Allows you to let a Key flash for a moment if a Value changes (for example your HP drops or your Ammo drops)





  • Complete Dota Support

    Support for Ability Cooldowns, Item Cooldowns, Buyback (only if the money is enough...the cooldown isn't checked, sorry), Status Effects, Day- and Nightclock...if there is anything you want, please let me know.





  • New Devices added

    Keypads (tested with Orbweaver) and Headsets (Razer Kraken) are now supported!

    Keys for the Keypad are set similar to the Keyboard Keys and the Headset is a on/off switch as it can only show one state. The Headset is not very fast as it fades from one color to the other so some things might not work as expected!





  • CS:GO Changes

    Bombtimer moved to 40 Seconds. Added grenades as Game Value.





  • Better Game Lookup (Thanks njbmartin!)

    Games are now found even outside of the Steam Folder within a Steam Library.



- 1.2



  • Added better Error Handling for internal Server instead of swallowing Errors. If something doesn't work please send me the Logfile (GameDog.txt) available in: %AppData%\\GameDog\\logs

  • Fixed an issue that caused (caught) Exceptions when wearing a Knife. Preventing spam on the logfile.





-
1.1



  • Fixed an issue where Synapse won't recognize GameDog as a Chroma App if SDK is not enabled. Giving users the posibility to enable the SDK in Synapse if it's the only Chroma App ever.





- 1.0



  • Official Release





- 0.11



  • Fixed Version after SDK update





- 0.10



  • Support for Firefly and Mamba TE! (Thanks Razer for the support!)

  • Removed MANY of the plugins like Health and Armor and replaced it with a single "Two Color" Plugin where you can choose which Game Value to be used. One Plugin for Health, Armor etc.



  • Added a Countdown Plugin which works similar as the above but disables one key after theother (100% means all glowing, 0% means 1 key glowing). That's helpful as the requested Bombcountdown as an example. (See the Bomb Countdown default assignment)



  • Added an "Active Weapon Clip/Max" Game Value.



  • Changed the way Keymappings are done a bit to make it slightly more obvious which Keys are selected.



  • Added ChromaXML for Synapse support.



  • Minimizing to Tray. Even so Colore added support for Uninit the Razer SDK doesn't seem to support apps running in the background and just using the SDK when they need to yet. But it's being looked into.( https://github.com/CoraleStudios/Colore/pull/121 )

  • Added a text to make Doubleclick as well as rearranging Assigments more prominent

  • I probably forgot something...





- 0.5





  • Limited Dota support!

  • Effects are back

  • Stats screen removed for now

  • Assignments work like layers on top of each other and can be rearranged via Drag and Drop. Highest priority is at the bottom.

  • "Fill Color" makes the whole Keyboard light up

  • "Menu and Typing" makes the Keyboard light up completly in menu (Orange by default) and while typing in chat(white)

  • Added a "Flash below" property allowing to define a value below that point when they Key should flash

  • Assignments can be named

  • Colors can be choosen via a Color Picker

  • Bombtime is customizable

  • Better Description for Assignment Properties

  • Keys can be ordered

  • Performance improvments





- 0.4



  • Fixed Steam Search, Added Custom CS:GO Folder in Settings

  • Fixed Crashes

  • Detecting if no SDK is installed

  • Added Custom Colors and Changed how Assignments are made

  • Added new Function: "Kill Counter (Test)"

  • Temporarily Removed Effects Flashed, Smoked and Burning. They will be back again.

  • Introduced Crash and Application Logs





It's using the great Colore C# Chroma SDK Library!



What it is right now (besides Buggy and Ugly (not that much anymore) for now):



  • Using official CS:GO API to read out stats (same API GameSense uses)

  • Following effects can be displayed on the Keyboard





  • Flashed

  • Smoked

  • Burning





  • Keys can be assigned to the following "Functions":





  • Static Color (Displayed in one color all the time)

  • Two Colors (Displays a Game Value in a range from 0 to 100% (or true/false as 0 and 100%) and fades between two Colors. If the percent drops below the "Flash below percent" the Key or Mouse(pad) side will start flashing either in the Color defined via Flash Color or if that one is transparent in the Color defined via Color Start and Color End. Every Game Value that does not include "Percent" is displayed either as 0% or as 100% depending on the true/false state of the Value.)

  • Count Down Colors (Same as Two Colors but makes the Assigned Keys or Mouse(pad) sides light up in the defined order depending on the percentage)

  • Effect: x (Makes the whole Keyboard light up for an Effect, White for flash, Grey for smoke and red for Burning)

  • Kill Counter (Sets Keys one after another for each Kill the player did this round. This means if there are 5 Keys assigned and the player got 2 Headshots and one normal Kill, then 2 of the 5 Keys will light up in the HeadshotColor, one will light up in the KillColor one one will light up in the NoneColor

  • Bomb (Fades Keys from ColorStart to ColorEnd within 35 Seconds. Then switches to ColorDefusable (defusable with Def-Kit) for 5 Seconds before going to ColorNonDefusable)

  • Roundphase (Displays Freezetime (FreezetimeColor), Live (PlayingColor) or unknown (UndefinedColor) state of the current round on Keys)

  • Menu and Typing (Lights up the whole Keyboard depending if the user is Typing or in Menu)





  • If CS:GO or Dota is installed outside of the Steam Folder then go to settings and change the CS:GO Folder or Dota Folder Settings Key.



I really hope to get some feedback and hope people like that.
Here is Version 0.2 ready to be installed (it will remove 0.1 so can easily be installed over the other one). I'm right now giving it out in this post as a PreRelease before updating the Main post as I did many changes and it would be nice if someone can just check if it actually works. I sadly don't have another Computer with Steam + Razer SDK + Chroma Keyboard to test beside my Developer Machine.



https://onedrive.live.com/redir?resid=205D00A1CA4B3620!3734&authkey=!AO__8HAp67JBOV4&ithint=file%2cmsi



Just a few words to the new Version and Issues:

If the Keyboard does not light up once you start GameDog something is wrong. Either the SDK is not installed, the Registry key is not set with the reg file or another Chroma App / Synapse are causing troubles and you should shut them down. The WASD Keys and some Other keys should light up per default when you first start GameDog even without CSGO being launched.



With Version 0.2 I'm checking for different Pathes in the registry. If it can't find anything it will wait until the user updates the Settings in the "settings" Tab and try again (the Reset button in Settings does not yet work!)



GameDog stores all the Settings and Assignments in %AppData%\\GameDog please don't fiddle with the files manually! You can however remove the files to restore Defaults!



To configure Assigments go to "games" and on the right menu click "Assignments". Here you can see a list of assignments. One Assignment Contains of a State to bind to (example Health), one Color and multiple Keys. Doubleclick an existing Assignment to change it or click on "New" to create a new one. You can have multiple Assignments of the same type so you can for example let one Key Fade between blue and red while another one Fades between Green and Blue (as an example).



The Color can be changed with the dropboxes beneath the big rectangle which shows the color. That's not how I want it to be in the end but it's good for now I think. I will include a Colorpicker one day. The Dropboxes are in the order Red, Green, Blue. As higher the value as more of that color is added. For example 255, 0, 0 will be red. 0, 255, 0 will be Green. 255, 126, 0 will be orange and so on.



I know the Assignment Overview is not yet very helpful as it just shows the State-Name but I will try to change that in one of the next versions to include the number of Keys and the Color. Same goes for the Color Names. But I think it's not hard to understand what the Colors mean. Especially with a bit trying it's easy to figure out. Just Save it again and the Keyboard will reload and display.



I also temporarily removed the effects such as Flash and Smoke and Burning! These will be readded later :)



All of that is cause I added a Plugin-System which allows with a little bit of knowledge of C# to write your own States soon! The Pluginsystem is not yet live but it's nearly finished.



Thank you very much so the support and testing again 🙂
NIce i'll try!!!



But, when I set the steam folder the .exe crashes.
Yay!!

I reinstalled steam and the keys are glowing /o/



BUT, life, ammo, guns... aren't glowing.

http://imgur.com/odEIG0s

When the game is running there's no stats 😞
@WolfspiritM

Thank you for your fast answer!

I had installed the SDK, but reinstalled it. It works now without problems!

I also tested the new version of GameDog. It works very fine, i don't had any issues. I set health to to my F-Keys and it worked, but is it possible to make a fluid transition between the colors? Because the color is going from green to red only if i am dying. Another idea would be, that there are many different color stages (for example, the keys become orange if your are below 60% Health) or something like this.



I don't have a clue, how this program is linked to my keyboard or to Razer Synapse. But is it possible to import profiles i have already made in my Synapse to your application? Because i have created a CS:GO profile and my idea was to include the this "health alerts" in that profile.



I'm already a huge fan of your work! :)

Keep it up 🙂
@Allff0 Just to make sure...you did start CS:GO after GameDog, right? When you start CS:GO with console, can you see a line sa"Loading Game State Integration:..."



@TeyMarOniX

Thank you for the feedback! The funny thing is it should be a fluit transition between the "FromColor" to the "ToColor" for "Health". It's interesting you see a jump there. Same goes for Armor. Only a few like Helmet does have an on/off trigger.

When a bomb is planted, do you see the transition there? It should go from Green to red within 35 seconds.



For the importing of Synape profile I'm not sure. I might take a look at how they are stored and if it is possible. You could try setting the CS:GO Profile in Synapse first without shutting down Synapse and then start GameDog. It could work. (Never mind it won't. I might add a "Don't clear everything" option in the settings for this later)
I just uploaded a new Version 0.3 as the 0.2 Version was crashing once you got more then one Grenade. (Obviously I'm not using Grenades that much so I didn't notice)
When I start the app it says it couldn't find me Steam installation folder, so I go to settings and it's already set there. When I click either "Save" or "Reset" app crashes, I checked Gamedog.exe.config and there doesn't seem to be a node (idk how they are called in XML) for Steam path. Or do you save the path in registry?
Hi,



Sorry for my late response.

Here is a new Version which should not crash anymore.

https://onedrive.live.com/redir?resid=205D00A1CA4B3620!3735&authkey=!AEWz52wLRycFtxk&ithint=file%2cmsi



I fixed many potentional crashes. Optimized the Steam search and in Settings you can now manually set the Path to CS:GO (where the csgo.exe is placed) (copy and paste for now, sorry, no Explorer Browser to search for it yet). There is no need to set the SteamPath in settings for now only make sure the CSGOPath is set correctly.



As a little gimmik I also added a new StateEvent called "Kill Counter" where you can define Keys that start glowing depending on how many people you killed in the current round! The default is set to the Macro Keys which I like very much. For now sadly there is no way to set an Order for the Keys but I will add this.



Will add this Version to the MainPost if I get good feedback 🙂 If something crashes please send me the %AppData%\\GameDog\\GameDog.log via http://pastebin.com over the Conversations here.
WolfspiritM
Hi,



Sorry for my late response.

Here is a new Version which should not crash anymore.

https://onedrive.live.com/redir?resid=205D00A1CA4B3620!3735&authkey=!AEWz52wLRycFtxk&ithint=file,msi



I fixed many potentional crashes. Optimized the Steam search and in Settings you can now manually set the Path to CS:GO (where the csgo.exe is placed) (copy and paste for now, sorry, no Explorer Browser to search for it yet). There is no need to set the SteamPath in settings for now only make sure the CSGOPath is set correctly.



As a little gimmik I also added a new StateEvent called "Kill Counter" where you can define Keys that start glowing depending on how many people you killed in the current round! The default is set to the Macro Keys which I like very much. For now sadly there is no way to set an Order for the Keys but I will add this.



Will add this Version to the MainPost if I get good feedback 🙂 If something crashes please send me the %AppData%\\GameDog\\GameDog.log via http://pastebin.com over the Conversations here.


Nicely done!
Finally got home and installed this.

Wow, I've installed the 0.1 version and it already worked even my Steam folder being different from the standard one. Then I've updated to the latest one 0.4 and it is awesome!



Going to test some stuff and I'll post it later :)



Thank you so much!
Cool app, but the bomb timer doesn't seem to work properly in 3rd party clients for csgo though. Using the cevo client in my first game the lights would work but skip through purple, and they did not light up at all during my second game.
madw0rld
bomb timer doesn't seem to work properly in 3rd party clients


Hi! :-)

Do the other bindings work correctly there?

It's only the bombtimer that doesn't work?

Do the Health Fade between green -> red (orange when you have 50hp left) or does it jump from green to red at 0hp?

Can you or Have you try if it works launching CS:GO directly (easiest way is to just test against bots)?

Thanks!
WolfspiritM
Hi! :)

Do the other bindings work correctly there?

It's only the bombtimer that doesn't work?

Do the Health Fade between green -> red (orange when you have 50hp left) or does it jump from green to red at 0hp?

Can you or Have you try if it works launching CS:GO directly (easiest way is to just test against bots)?

Thanks!


Just a note on the bomb timer, it's not guaranteed to always have the same countdown 😉
njbmartin
Just a note on the bomb timer, it's not guaranteed to always have the same countdown


Oh yes. That's right. Good point. This could be the issue here. As mentioned in the First post the BombTimer right now is fixed to 45 Seconds (35 Seconds green->red, 5 Seconds purple, 5 Seconds white). It will recognize the bomb exploded or defused events before that and stop the countdown but if the bombtime ingame is set to for example 35 seconds it just won't get purple or white at all. There is no way to get the remaining time via API sadly (or I have not found it...sadly the API isn't documented officially). I could implement a way to recognize bomb timer based on the previous rounds (if it exploded once) but that won't be a good way I think. However I already made the 45 Seconds customizable in the background just didn't expose the property to the View yet. I will include that in one of the next releases so you can set it manually. 🙂 Matchmaking is always 45 Seconds that's why I used that as a default.
WolfspiritM
Oh yes. That's right. Good point. This could be the issue here. As mentioned in the First post the BombTimer right now is fixed to 45 Seconds (35 Seconds green->red, 5 Seconds purple, 5 Seconds white). It will recognize the bomb exploded or defused events before that and stop the countdown but if the bombtime ingame is set to for example 35 seconds it just won't get purple or white at all. There is no way to get the remaining time via API sadly (or I have not found it...sadly the API isn't documented officially). I could implement a way to recognize bomb timer based on the previous rounds (if it exploded once) but that won't be a good way I think. However I already made the 45 Seconds customizable in the background just didn't expose the property to the View yet. I will include that in one of the next releases so you can set it manually. 🙂 Matchmaking is always 45 Seconds that's why I used that as a default.


Hey, thanks for the quick response.



I first tried offline with bots and the bomb timer worked fine every time. The bomb timer is different on 3rd party clients and set to 35 seconds. Everything else seems to work fine so it seems that might be the reason it doesn't work.



If there is any way too implement the 35 second timer in the future that would be great. Alternatively, is there any way to include something similar to the other csgo bomb timer app were you manually start the bomb timer that counts down?
May I ask which API are you using to get data from current game?
Will it work with my deathstalker chroma??
tYn0
May I ask which API are you using to get data from current game?


It's not publicly available as it was actually intended to be used at big events.
njbmartin
It's not publicly available as it was actually intended to be used at big events.


Then how did he got access to it? How can I be sure he isn't reading the values from memory and we won't get ourselves VACed?
tYn0
Then how did he got access to it? How can I be sure he isn't reading the values from memory and we won't get ourselves VACed?




It won't get you VAC'd. It is an officially supported method for retrieving live game stats, however like I said, it was originally intended for use at live tournament events. It doesn't require reading any values from memory. I'd imagine @WolfspiritM had done some snooping as to how GameSense folks had done it, and learnt from that.
Sorry for late responses and lack of updates. Right now I'm implementing some initial functions for Dota. Next Version will have a customizable Bombtimer as well as an easier way to select Colors.



cebulinek22
Will it work with my deathstalker chroma??


I can't tell for sure as I right now only have a Blackwidow to test, but as I'm using Colore's "Keyboard" class it should work on all supported chroma Keyboards. I will also try to see if I can make it working for other things like Mice or the Firefly.



tYn0
Then how did he got access to it? How can I be sure he isn't reading the values from memory and we won't get ourselves VACed?


It's completly using the API @njbmartin mentioned and that is what GameSense uses in the background. I'm not reading out anything (neither from memory nor from anywhere else) cause the games (CS:GO for now, Dota coming next version) are sending the data to my application themself every few seconds or whenever something changes. I was able to figure out how GameSense gets the data (even without doing anything illegal like reverse engineering!) and I've just redone that for Chroma 🙂 You can't do anything bad like cheating with that API cause you will only get what you see on screen anyways (besides a little few extras like bullets for all of your weapons in inventory (or actually the player your spectating)) and the data the game sends is limited (you can't for example get your teammembers health or money nor the enemies, It's also why I can't tell how long the bomb will take to explode as I only can catch the planted and defused/exploded event but nothing inbetween). As @njbmartin said I think this API is used for big events to send data and informations to the moderators or external stats Servers, as it would even work over network.



If you don't trust me with that, then I'm sorry, but then just don't use it and everything is fine and you don't have to worry. It's an official but undocumented API. Before it causes any vac ban, Valve would just disable it with an update (remember: The games are sending the data, I'm just listening to them) and all GameSense and GameDog users won't get any glowing Keyboards and mice anymore but I doubt that will happen.
It's completly using the API @njbmartin mentioned and that is what GameSense uses in the background. I'm not reading out anything (neither from memory nor from anywhere else) cause the games (CS:GO for now, Dota coming next version) are sending the data to my application themself every few seconds or whenever something changes. I was able to figure out how GameSense gets the data (even without doing anything illegal like reverse engineering!) and I've just redone that for Chroma 🙂 You can't do anything bad like cheating with that API cause you will only get what you see on screen anyways (besides a little few extras like bullets for all of your weapons in inventory (or actually the player your spectating)) and the data the game sends is limited (you can't for example get your teammembers health or money nor the enemies, It's also why I can't tell how long the bomb will take to explode as I only can catch the planted and defused/exploded event but nothing inbetween). As @njbmartin said I think this API is used for big events to send data and informations to the moderators or external stats Servers, as it would even work over network.



If you don't trust me with that, then I'm sorry, but then just don't use it and everything is fine and you don't have to worry. It's an official but undocumented API. Before it causes any vac ban, Valve would just disable it with an update (remember: The games are sending the data, I'm just listening to them) and all GameSense and GameDog users won't get any glowing Keyboards and mice anymore but I doubt that will happen.[/quote]

Thank you for clarification 🙂
Here is a new Version as PreRelease. I'm not going to update the main post until I know it works for others, too. Would be nice if someone could try it :-)

https://onedrive.live.com/redir?resid=205D00A1CA4B3620!3740&authkey=!AEeJGwzDrEL0x8E&ithint=file%2cmsi



There are many many changes. One of the biggest change is the integration of Dota! Right now there are only a very limited Events I've integrated as Dota at the moment is nothing more then a proof of concept. There is Health, Alive and Casts. I'd love to get some ideas what could be done more for Dota as I'm not a Dota player.



The keyboard won't light up when you start GameDog anymore. It starts once you start the game (either Dota or CS:GO).



For CS:GO:

- I've readded the Effects.

- The Assignments now work like "layers" on top of each other you can rearrange them via Drag and Drop. For example if the Effects are at the bottom you won't see any other Keys while flashed. If they are at the top other keys will be on top of the flash effect.

- I added a "Fill Color" that makes the whole Keyboard light up.

- "Menu and Typing" makes the Keyboard light up completly in menu (Orange by default) and while typing in chat (white).

- For many things like "Health" I added a "Flash below" which will make the key flash if health for example is below 10 or the current weapon only has 3 bullets left.

- You can name an Assignment to make it easier to find.

- Colors can now be easily choosen via a Color Picker.

- Bombtime is customizable

- Assignment Properties have a slightly better description now

- Keys can have an Order now (definied via numbers). It's ugly and I'm working on a better solution, but for now it works.

- Performance improvements

- ... I bet I forgot something



Troubleshooting:

- If you have issues with your previous settings click on Reset.

- If there is no Game available under Games, go to settings and check the pathes, save, then restart GameDog.

- If there are some other issues go to: C:\\Users\\USERNAME\\AppData\\Roaming\\GameDog and remove the Assignments.xml and Settings.xml and try again. If it crashes somehow, please send me the logfiles in the logs folder there.
I think for the bomb timer, you should make the "numpad" lighting up from 10 to 0.
Qayum1616
I think for the bomb timer, you should make the "numpad" lighting up from 10 to 0.


I will change the bombtimer for one of the next versions a bit to include the following changes:

- Set a start and end when to light up (for example between 10 and 0)

- Add a switch to make the keys stop lighting up one after another within this range



That means you'd just add a bombtimer assignment. Assign Num9 till Num0 in this order, enable the switch and set start to 10 and end to 0. When the bomb timer then reaches 10 Seconds it will light up all keys...at 9 Num9 will stop glowing...etc.



Will that do what you'd like?

Reply