gamesense-sdk's Issues
Can't get an event to overwrite previous
Hi, I've setup my Game within Engine and I've registered all of my bindings, and they work as expected (nearly), but I wanted to change the default colour of my bindings from red to green.
To do this I removed all events from Engine using the API, and then called the bind_game_event again, using the same names but green as the colour. Now in Engine they show up as green when it displays the events on the keyboard, but when I call the events, they're still red. Am I doing something wrong or is this a bug / intended behaviour?
The MC mod doesn't support 1.10.2, it only supports 1.8
As the title says. I am playing with MC 1.10.2 and not 1.8, could you please update the mod to 1.10?
Managing Apex M800 keyboard lighting using Gamesense SDK causes flicker
I recently picked up the dev branch of Project Aurora which has Gamesense SDK support. I had some discussion with @ToadKing @brainbug89 and @simon-wh over there:
The "issue" I am having is that even if the colors of the keys are not changing, the keyboard exhibits a barely noticeable flicker, which is not present when using SSE3 to manage the lighting effects.
Even when Aurora uses a solid color, the keys flicker ever so slightly. Is there a "maximum" of data that the Gamesense SDK and the Apex M800 can handle? What can I do to help trouble shoot the problem?
Minecraft mod
You may want to put a check if the item the player holding is a tool, at the moment it acts when no item in hand/item with no durability should be able using instanceof ItemTool iirc or you could check if the item has a durability for future compatibility
Engine App is invalid
MSI GT73VR
I turn on the PrismSync and ImageSync, and it didn't work.
At the same time, I can't open AudioVisualizer.
Flash if value is higher than threshgold
Is there possibility to add option to flash a zone when value in event is higher than set threshold, as it is in SSEngine now for values lower than threshold?
Specifying `keypad-5` in JSON handler kills all handlers
I have a very simple series of handlers in which I'm trying to address a static color to each number of the right-side keypad. When I do this, it works as long as keypad-5
is not included. If I include a handler for this key, it prevents the other handlers from working; and if I simply remove that one handler, the rest of the individual handlers begin working again as expected.
If I use keypad
to set a static color for the entire keypad area, all keys work, including 5.
Any idea what might be happening?
APEX M750 / Firmware Version: 1.20.0.0
SteelSeries Engine 3 / 3.12.13
Thanks!
Scrolling text on Arctis Wireless box and unresponsive endpoint
I'm trying to print some text to the Arctis Wireless box oled screen. I've sucessfully done it by sending context data, however the text gets cut off mid sentence.
Is there any way to scroll longer texts on the screen?
Do we have any means of formatting text that appears on the screen?
The handler I'm sending the request to
{
"game":"TS3TOSSE3",
"event":"POKE_MESSAGE",
"icon_id":0,
"handlers":[
{
"device-type":"screened",
"mode":"screen",
"zone":"one",
"datas":[
{
"has-text":true,
"length-millis":5000,
"arg":"(custom-text:(context-frame: self))"
}
]
}
]
}
The request im sending to the endpoint
{
"game":"TS3TOSSE3",
"event":"POKE_MESSAGE",
"data":{
"frame":{
"custom-text":"THIS IS A ERY LONG TEXT"
}
}
}
The other issue I just started having is regards to how often can you send events and display text on the screen. It seems that I cannot send two request about two-three seconds apart, since the endpoint seems to not forward the request to the box. I see the JSON sent to the endpont just fine, and the response is also valid (spitting back the contents of my request), however nothing happens.
Or rather, this happens:
The screen goes bananas and I have to unplug the device and reset it.
Any idea why is that happening? Is this an issue with my wireless box or bad firmware?
Is there any way to check logs on what the endpoint is trying to do when receiving the request?
I'm obviously stupid..
I lost my whole afternoon today after buying apex m800 to make audio visualizer to work and I just can't.Could someone do a step-by-step tutorial please ?
JSON color gradients not working
Pretty much what the title says. They do nothing.
Reproduction steps
Hardware: Sensei 310
Expected: Mouse wheel turns red
Happened: Mouse wheel did nothing
Terminal log (Windows + Bash):
$ cat "$ALLUSERSPROFILE/SteelSeries/SteelSeries Engine 3/coreProps.json"
{"address":"127.0.0.1:49983","encrypted_address":"127.0.0.1:49984"}
$ export SSE_ADDRESS="http://$(cat "$ALLUSERSPROFILE/SteelSeries/SteelSeries Engine 3/coreProps.json" | cut -c 13-27)"
$ echo $SSE_ADDRESS
http://127.0.0.1:49983
$ curl $SSE_ADDRESS/bind_game_event -X POST -H "Content-Type: application/json" -d '{
"game": "TEST",
"event": "TEST",
"min_value": 0,
"max_value": 100,
"handlers": [
{
"device-type": "mouse",
"zone": "wheel",
"mode": "color",
"color": {
"zero": {
"red": 255,
"green": 0,
"blue": 0
},
"hundred": {
"red": 0,
"green": 0,
"blue": 255
}
}
}
]
}'
{"game_event_binding": {"game":"TEST","event":"TEST","icon_id":0,"min_value":0,"max_value":100,"HandlerDatas":["{\"color\":{\"color\":{\"hundred\":{\"blue\":255,\"green\":0,\"red\":0},\"zero\":{\"blue\":0,\"green\":0,\"red\":255}},\"high\":100,\"low\":0},\"device-type\":\"mouse\",\"mode\":\"color\",\"zone\":\"wheel\"}"],"handlers":[{"color":{"color":{"hundred":{"blue":255,"green":0,"red":0},"zero":{"blue":0,"green":0,"red":255}},"high":100,"low":0},"device-type":"mouse","mode":"color","zone":"wheel"}]}}
$ curl $SSE_ADDRESS/game_event -X POST -H "Content-Type: application/json" -d '{
"game":"TEST",
"event":"TEST",
"data":{
"value":100
}
}'
{"game_event": {"level":"","game":"TEST","event":"TEST","Data":"{\"value\":100}","data":{"value":100}}}
Working handler (to verify API is working, mousewheel turns red)
$ curl $SSE_ADDRESS/bind_game_event -X POST -H "Content-Type: application/json" -d '{
"game": "TEST",
"event": "TEST",
"min_value": 0,
"max_value": 100,
"handlers": [
{
"device-type": "mouse",
"zone": "wheel",
"mode": "color",
"color": {
"red": 255,
"green": 0,
"blue": 0
}
}
]
}'
{"game_event_binding": {"game":"TEST","event":"TEST","icon_id":0,"min_value":0,"max_value":100,"HandlerDatas":["{\"color\":{\"blue\":0,\"green\":0,\"red\":255},\"device-type\":\"mouse\",\"mode\":\"color\",\"zone\":\"wheel\"}"],"handlers":[{"color":{"blue":0,"green":0,"red":255},"device-type":"mouse","mode":"color","zone":"wheel"}]}}
Get assigned Macros with API
I've reviewed the documentation but haven't been able to find a way to request what the current macro and/or key stroke assignment is with the API. Am I just missing it or is this not supported?
Little bit of background on what I want to do. I'd like to create a rainmeter plugin displays my keyboard and mouse configuration on the screen for a few seconds before fading away. Rather then having to hard code the rainmeter plugin with my current configuration and update it when I make changes to my hardware config I'd like it to fetch the individual key names, their currently assigned macro name or key stroke.
It looks like the standard-zones.md is pretty close to what I want but doesn't return info about the zone.
Thanks in advance.
Sending full RGB Data
Hey, im making an LED controller that uses JSON to send the data. I also have an Arctis 5 headset. I'm searching for the way to sync that Controller with my Arctis 5. I been reading about GameSense but all examples uses a gradient value, and i need to send the RGB value. Is there any way to bypass the gradient ?
Apex
Not work on Apex keyboard with examples "audiovisualizer"
Data property
Data property in (GameEvent) is a stringified(serialized) string of an object. This should be a normal JSON child property containing the object
Binding Event on Rival 700 Causes SteelSeries Engine 3 Software to Crash
I've noticed that binding an event using bind_game_event will subsequently cause the software to crash on startup (first attachment below). Requests sent to the API are all successful, as can be seen in the second screenshot of DHC in Chrome. Registering and removing a test game seems to work just fine; it's just binding an event that appears to offend SteelSeries Engine 3. Also, removing the event will calm the software down and allow it to startup, and events sent to the Rival 700 all seem to produce the expected results in my testing, despite the software being upset. In case it's helpful, I've also attached the errorlog.txt and nw-log.txt files below the screenshots.
Update: Just realized that color-related events don't seem to cause this issue
My event-related request bodies look like this:
- bind_game_event
{
"game":"TESTGAME",
"event":"TESTEVENT",
"handlers": [{
"device-type": "screened",
"zone":"one",
"mode":"screen",
"datas": [{
"has-text":true
}]
}]
}
- game_event
{
"game":"TESTGAME",
"event":"TESTEVENT",
"data":{
"value": "TEST!"
}
}
- remove_game_event
{
"game":"TESTGAME",
"event":"TESTEVENT"
}
AudioVisualizer source code
Is the source code for AudioVisualizer engine app published anywhere? I mean the app that comes with SteelSeries engine. My requirement is that I want to limit the visualization to a smaller frequency range but I also don't want to start from scratch. Right now the rightmost part of my keyboard never lights up because there are very few songs that have anything in that range. Any way I can hack the internal audio visualizer would be fine too.
Is it possible to flash a keyboard such that the zones all flash at the same time?
I'm developing on an Apex 150, which has 5 zones and doesn't respond to any device-type except "rgb-5-zone", and does not recognise zone "all", so the only way I've found to illuminate a whole keyboard is to have 5 handlers - one for each zone (or 5 on-device
calls if doing it with lisp).
The problem is if I flash the keyboard, using either json or lisp, the zones all flash out of sync with each other.
In addition, if I want the app to be able to support other keyboards then I need to add handlers for 3 zones on rgb-3-zone, two more for rgb-2-zone, etc, ending up with about 13 handlers in the json structure, or 13 on-device calls in the lisp function)...
{
"game":"MYGAME",
"event":"URGENT",
"icon_id":5,
"handlers":[
{"device-type":"rgb-1-zone","zone":"one","mode":"color","color":{"red":138,"green":43,"blue":226},"rate":{"frequency":1,"repeat_limit":3}},
{"device-type":"rgb-2-zone","zone":"one","mode":"color","color":{"red":138,"green":43,"blue":226},"rate":{"frequency":1,"repeat_limit":3}},
{"device-type":"rgb-2-zone","zone":"two","mode":"color","color":{"red":138,"green":43,"blue":226},"rate":{"frequency":1,"repeat_limit":3}},
{"device-type":"rgb-3-zone","zone":"one","mode":"color","color":{"red":0,"green":0,"blue":255},"rate":{"frequency":1,"repeat_limit":3}},
{"device-type":"rgb-3-zone","zone":"two","mode":"color","color":{"red":138,"green":43,"blue":226},"rate":{"frequency":1,"repeat_limit":3}},
{"device-type":"rgb-3-zone","zone":"three","mode":"color","color":{"red":0,"green":0,"blue":255},"rate":{"frequency":1,"repeat_limit":3}},
{"device-type":"rgb-5-zone","zone":"three","mode":"color","color":{"red":138,"green":43,"blue":226},"rate":{"frequency":1,"repeat_limit":3}},
{"device-type":"rgb-5-zone","zone":"two","mode":"color","color":{"red":96,"green":30,"blue":234},"rate":{"frequency":1,"repeat_limit":3}},
{"device-type":"rgb-5-zone","zone":"four","mode":"color","color":{"red":96,"green":30,"blue":234},"rate":{"frequency":1,"repeat_limit":3}},
{"device-type":"rgb-5-zone","zone":"one","mode":"color","color":{"red":0,"green":0,"blue":255},"rate":{"frequency":1,"repeat_limit":3}},
{"device-type":"rgb-5-zone","zone":"five","mode":"color","color":{"red":0,"green":0,"blue":255},"rate":{"frequency":1,"repeat_limit":3}},
{"device-type":"rgb-5-zone","zone":"all","mode":"color","color":{"red":138,"green":43,"blue":226},"rate":{"frequency":1,"repeat_limit":3}},
{"device-type":"rgb-per-key-zones","zone":"all","mode":"color","color":{"red":138,"green":43,"blue":226},"rate":{"frequency":1,"repeat_limit":3}}
]
}
Is there a way to light up and flash an entire keyboard that works with the whole steelseries range? (Even if it means all zones must be the same colour)
I see there's a show-on-zones
specifier in device.lsp (as opposed to show-on-zone
), but it's not documented and I couldn't get it working - I tried passing a list as its 2nd argument.
Also, is there an API way to set the launchable app metadata?
(I can currently do it using sqlite -> database.db, but SteelSeries probably prefer it be done in a defined forwards-compatible way)
Custom GameSense Application Icons
Hi, I've been working on an application that uses GameSense, and I was wondering if there's any way to get a custom Game Icon in Engine without it being an official game added by SteelSeries.
This isn't a necessity, just a feature that I was wondering is possible, I'm more than happy with the default icons, just curious.
Game_metadata JSON datas
Broken link in writing handlers in json.md file
There is a broken link in the blob/master/doc/api/writing-handlers-in-json.md file, see for the hyperlink Zones by device type.
This link is pointing to the following URL:
https://github.com/SteelSeries/gamesense-sdk/blob/master/doc/standard-zones.md
But this file does not exists
I added a fix, see pull request #7
Mod not working if you join a server with bungee
Some reason how bungeecoord reconnects the user it doesn't seem to register as the player being 'in game' and so when trying to play a mini game on ex. HiveMC it doesn't activate the colours.
Can't write to oled screen on Arctis Wireless box.
Not sure what I'm doing wrong, trying to write text to the oled display on the Arctis wireless box.
Been fiddling around with writing context-handlers, prefix, suffix, icons and data handlers, but I just can't get anything to show up. Ideally I'd like to write custom text and/or graphics.
The application registers with SSE and all posts returns http 200.
When I try to configure the application within SSE, I can see the Arctis Wireless box displayed and a "add event"-button. Clicking that button crashes SSE.
Below is my test code. (I'm running python in the Linux subsystem if the path looks odd).
I'm expecting it to write "38" to the screen, but it doesn't.
import json
import requests
game = "TEST_APPLICATION"
display_name="TEST_DISPLAY_NAME"
event = "DISPLAY"
corePropsPath = "/mnt/c/ProgramData/SteelSeries/SteelSeries Engine 3/coreProps.json"
sseAddress = json.load(open(corePropsPath))["address"]
def register_game():
print "Registering game:"
game_metadata = {
"game": game,
"game_display_name": display_name,
"icon_color_id": 6
}
r = requests.post("http://"+sseAddress+"/game_metadata", json=game_metadata)
print json.dumps(json.loads(r.text), indent=4)
def bind_event():
print "Binding event:"
screen_handler = {
"game": game,
"event": event,
"icon_id": 16,
"handlers": [
{
"device-type": "screened",
"mode": "screen",
"zone": "one",
"datas": [
{
"has-text": "true",
"length-millis": 2000
}
]
}
]
}
r = requests.post("http://"+sseAddress+"/bind_game_event", json=screen_handler)
print json.dumps(json.loads(r.text), indent=4)
def send_event():
print "Sending event:"
event_data = {
"game": game,
"event": event,
"data": { "value": 38 }
}
r = requests.post("http://"+sseAddress+"/game_event", json=event_data)
print json.dumps(json.loads(r.text), indent=4)
register_game()
bind_event()
send_event()
CS:GO team switch color
Is there CS:GO documentation to change the color, based on what Team one is on. For example, to make the steelseries rival 300 mouse Yellow when T, and Blue when on the CT team.
Removing an event or game
When I remove event or game SteelSeries Engine 3 app still shows this. After restart application removed object disappear in menu.
I think this should work in the same way as registering. When registering game or event it shows in menu without application restart.
Clock in display
Is it possible to add a watch to the mouse display?
Rival100 on-device doesn't works.
Looks like both of
(on-device 'mouse show-on-zone: c one:) and (on-device 'mouse show-on-zone: c two:) doesn't works with Rival 100. I've created myrgb.lsp in hax0rbindings, and event in it "SETRGB2" (it's strange that old events which was used from game_event doesn't appears in SSE while are in .lsp script.
There is the code of myrgb.lsp:
(handler "SETRGB2" (lambda (data) (let* ((v (value: data)) (c (color-between red-color green-color v)) (on-device 'mouse show-on-zone: c one:) (on-device 'mouse show-on-zone: c two:)))))
I've tried to execute it from POST request with args:
{
"game":"MYRGB",
"event":"SETRGB2",
"data":{"value":1}
}
but it doesn't works, for sure, if I pass bad value in "value" I'll get an error in golisp-log.txt
When will the minecraft mod be updated? Like to 1.12.2
The minecraft mod is really outdated - a lot of players, like me, are playing on Minecraft 1.12.2 and this mod is still on minecraft 1.8.
So the question - When will it be updated?
Stop Effect function
Hello SteelSeries developers,
You've done an amazing job for the GameSense SDK, but one important function is missing: "Stop Effect"
We can launch an effect with "Send Game Event", but once it is started, it cannot be canceled or stopped. I understand the main idea was to feel Cooldowns in game with tactile alerts, but for the iFeelPixel application we need a "Stop Effect" function to improve the realism of tactile sensations. Do you have any plan to add it in a future release? or is there an alternative function, please?
Continously stream image data to the display
Is there any way to continuously stream image data to the display? I have tried to create two events each of which holds one image. While one is displayed, the other is rendering, then they are switched. However, while switching the default image (stock image/chosen background image) is displayed for a short moment, which is highly disruptive.
Device in question is Rival 700.
SSE3 vs PRo wireless Problem.
Hi. let me just start by saying I know this is the wrong way to get help. But they have tried to close my ticket 2 times now whit out solving the problem I'm having.
The problem I'm having is when I'm trying to connect the transmission box to SSE3 I'm getting this error.
" Warning The core process SteelSeriesEngine3.EXE does not seem to be running."
If someone has some tip that I can trie please let me know. I can provide all logs and everything if someone will need it. The Request number I'm having at support now is (#545098)
Best regards Rasmus
CS:GO gamesense not working under OSX 10.10 and SE 3.4
Hello,
Like the title said, starting the game does not activate the gamesense function.
Also restarting the engine, restarting the game and reloading the cfg does not help.
Any ideas?
Jan
SSE not responding/crashing when rapidly sending events
I'll give a description on what i'm working on first:
I am intercepting the calls Overwatch makes, and redirecting them to SSE. There is a list of colors that makes up the effect. I am assuming index 0 = A, index 1 = B and so on.
The following steps are taken:
- Razer call has been made, list of colors extracted
- Create per-key event binding where each key get it's own handler and color (min/max is 0 and 1)
- Create game event, just having a value of 1
- Serialize/post binding
- Serialize/post event
The 2 effects i know 100% that should occur:
- On the main menu, the entire keyboard should be the same color (the gold/orange OW uses)
- When changing characters in the character screen, a wave should run accros the keyboard (with the character specific color)
They either don't happen, or only partially. And it seems to crash SSE3. Since randomly during the color changes, they keyboard leds don't change anymore. And when i try to configure the game, i get a message saying there are no products connected. If i try to change a preset from a device, nothing happens. When i restart SSE, everything pops responds again as expected.
I also tried to just using the function-keys zone using a single handler. And while not having the desired effect, they do flicker as they should have.
So this tells me that i'm sending too much data in a too rapid pace. But i would like to figure this out how to do this optimal. Since there is no need to allow the user to customize the colors, is there a way to just set keys a certain colors witouth all the bindings and such?
And the added bonus, Overwatch support for Gamesense, someting a lot of people want :P
I have attached a log of what i'm sending and such, if needed i can host my code as well.
World of Warcraft Gamesense Support
Hi,
I bought m800 keyboard and I saw that under engine 3 software there are 3 games supported by gamesense.
It would be good to make support for more popular games like World of Warcraft. WoW is one of the most popular games on the world and new expansion is coming by end of this month.
Is there chance for you guys to make gamesense work with this keyboard m800? I think there is WoW icon on back of keyboard box :)
I tried to open pull request by it doesn't allow me to open.
Publish the mod on platforms like CurseForge
It's annoying to download a technicpack launcher, or compile the entire mod myself. So i hope you can post this mod to CurseForge, the biggest minecraft mod platform. 😄
Sending bitmap to Arctis Wireless Box does not work
I've tried sending image data to my Arctis Wireless box using the following handler:
POST http://127.0.0.1:50035/bind_game_event HTTP/1.1
Content-Type: application/json
{
"game": "TEST",
"event": "DISPLAY",
"handlers": [
{
"device-type": "screened-128x36",
"datas": [
{
"has-text": false,
"image-data": [
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,12,0,0,
0,0,28,0,0,28,0,0,0,112,0,0,0,12,0,0,0,4,28,0,0,28,0,0,0,112,0,0,0,0,0,0,0,14,28,0,0,28,0,0,0,112,0,0,0,0,
0,0,0,4,127,0,120,28,7,0,112,112,224,14,0,0,28,1,128,1,255,193,254,127,31,193,252,115,248,63,140,236,127,
15,224,1,193,195,207,127,63,227,254,119,28,113,207,236,227,156,112,3,128,227,135,28,112,119,6,118,12,96,
207,12,193,152,48,3,28,99,192,28,112,119,7,119,0,192,108,13,128,216,0,31,54,113,248,28,112,119,7,115,192,
192,108,13,128,223,0,63,34,112,254,28,127,247,255,113,248,255,236,13,255,199,224,31,54,112,31,28,127,247,
255,112,28,192,12,13,128,0,112,3,28,96,7,28,112,7,0,112,14,192,12,13,128,0,56,3,128,227,131,28,112,119,7,
118,6,224,108,13,192,216,24,3,193,227,199,31,63,227,254,119,14,112,204,12,225,156,48,1,247,193,254,31,31,
193,252,115,252,63,140,12,127,15,240,0,255,128,124,31,7,0,112,112,240,14,12,12,28,3,128,0,28,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
]
}
]
}
]
}
And then with the event trigger:
POST http://127.0.0.1:50035/game_event HTTP/1.1
Content-Type: application/json
{
"game": "TEST",
"event": "DISPLAY",
"data": { "value": 1 }
}
And the device does not react. I've also tried with "screened" device type which didn't help. Do I need the resolution of the wireless box screen to pass the proper device type and also an array of the proper length?
This information is missing from the docs.
cannot start if other mod are present
hi it's not pausible to start the game with other mod (IC²) i have test different possibilities (copy only the mod into the pack, start from 0 (vannilla add forge/ic² then this mod) and i'm not allone with this probleme (go http://www.technicpack.net/modpack/steelseries-gamesensetm.675193/discuss )
thanks
Arctis Pro Wireless OLED problems
Decided to open new issue referring issues related to scrambling screen at times even though it's been mentioned as sidenote before. (See #58 for screenshots).
Sending JSON request to device will some times cause devices screen to become scrambled causing hard-booting it.
Occurrances seem to be quite random but seem to be related to cases when device gets 2 requests from different sources at same time. Fixed it temporarily by disabling Discord plugin.
We don't happen to have any straightforward way of queuing actions if device is busy? That might be helpful preventing these crashes.
Can't bind color handlers other than static colors
For development, I've made my app send a request to SSE3 to delete itself and its events, before I repopulate them. However, in the Steel Series App, the settings aren't updated. The settings don't seem to affect the hardware at all either. I have no idea what I should be doing, but here's an example that might illustrate what I'm talking about:
{
"game": "MY_APP",
"event": "MY_EVENT",
"min_value": 0,
"max_value": 8,
"icon_id": 1,
"handlers": [
{
"device-type": "mouse",
"zone": "wheel",
"mode": "percent",
"color": {
"zero": {"red": 255, "green": 0, "blue": 0},
"hundred": {"red": 0, "green": 0, "blue": 255}
}
}
]
}
Obviously neither of the colors in the screenshot are red or blue, and I didn't define a range either. The only things that are correct are the number of steps on the range control and the icon_id
The mouse I am working on is the Rival 300. Any help in understanding what is going on would be greatly appreciated, since this is the only place on the internet to get help with this sdk
Keyboard blanking out whole main-keyboard zone after binding letters
Hi, I have an app that has bound events with GameSense using the letters A-Z only. I have one binding for each letter, and they work wonderfully. The issue, however is that the keyboard shuts off the lighting for whole 'main-keyboard' zone.
When I was first testing with my app, I did bind to the 'main-keyboard' zone, but I removed that binding. The only bindings I have now are my A-Z ones. Is this expected behaviour when binding to letters though?
In order to do the bindings I literally did a loop for every letter that called register_game_event
passing the letter for the event
property in the json.
Don't find a key in the rgb-per-key-zones, that is only in the French layout !
Hi there!
I'm using a french layout keyboard, and unfortunately, i think that there is a key we have in france that don't exists in english layouts... so the main problem is that i cannot access or control it, even if i try to change all keys colors...!
I'm working on a software that use keys separately, so having just one that i can't control is really unnoying and frustrating...!
I've tested all the names that are in the list of "Zones specifying various individual keys", and even if i use the group "all", this specific key will not react...
it's the "<>" key by the way...
I would be thankful for any help !!!
Thxxx
Weshhhh
GameSense not working for minimal example
I want to do something like this: #32 (comment)
So first I tried to build a minimal working example. My test.lsp file looks like this:
(handler "TESTEVENT"
(lambda (data)
(let* ((val (value: data))
(c (color-between red-color blue-color val))
(on-device "headset" show-on-zone: c earcups:)))))
and part of the html-file to create and send json game events:
<script type="text/javascript">
var sseAddress = "127.0.0.1:64998"
var GAME = "TEST"
var test_event = function() {
var testEventRequest = new XMLHttpRequest();
var inputvalue = parseInt(document.getElementById("inputValue").value, 10);
var payload = {
"game": GAME,
"event": "TESTEVENT",
"data": {
"value": inputvalue
}
};
try {
var url = "http://" + sseAddress + "/game_event";
testEventRequest.open("POST", url, true);
testEventRequest.setRequestHeader("Content-Type", "application/json");
testEventRequest.send(JSON.stringify(payload));
testEventRequest.onreadystatechange = function() {
if (testEventRequest.readyState == XMLHttpRequest.DONE) {
//alert("test_event: done");
}
};
} catch (e) {
console.error(e);
}
}
I'm modifying the sseAddress
with coreProps.json for every start of SSE.
If I'm using /bind_game_event
to create json event handler, everything works fine. But if I'm using golisp handler, it doesn't work: the color cycling of the headset stops (so GameSense is receiving the event), but it doesn't show the selected color. And after 15 sec (timeout) the color cycling starts again.
What's wrong with my code? (Edit: I'm testing with a Siberia v3 Prism and a Rival)
Docs: *Writing Handlers in JSON* is incomplete.
In the Writing Handlers in JSON doc, in the section Specifying a device type, it says "For a list of valid device type strings, see Reference Sections - Device types
below". The section doesn't seem to exist. There is a separate document (standard-zones.md) that includes the information, but Writing Handlers in JSON doesn't point you to it.
Gradual Interpolation Between Colors?
Not 100% sure if this is the place for feature requests on the sdk, but would it be feasible to add a key for number of milliseconds it should take to transition to a color? I've noticed that all color changes are instant when the event is sent, and this option could make for some nice effects. Or maybe it could be a different visualization mode, which would then require a number of milliseconds to be specified in the handler or event. This would alleviate the need to send a large number of events in quick succession to a device to create this effect (which I think is actually guarded against by the engine, now that I think of it). What do you think?
HTTP 500 Response when binding range-based color handler on Rival 700
First and foremost, I want it to be known that I'm not trying to be a bother with all this activity. I simply have a somewhat ambitious idea that I'd really like to implement with this sdk, and I'm genuinely hoping my shenanigans are helping to make it better :)
Anyway, when I try to bind a handler using the following JSON (copy/pasted from https://github.com/SteelSeries/gamesense-sdk/blob/master/doc/api/json-handlers-color.md this time):
{
"game":"TESTGAME",
"event":"TESTEVENT_COLOR",
"handlers": [{
"device-type":"mouse",
"zone":"wheel",
"mode":"color",
"color": [{
"low": 0,
"high": 10,
"color": {
"red": 255,
"green": 0,
"blue": 0
}
},
{
"low": 11,
"high": 100,
"color": {
"gradient": {
"zero": {
"red": 255,
"green": 0,
"blue": 0
},
"hundred": {
"red": 0,
"green": 255,
"blue": 0
}
}
}
}]
}]
}
The JSON is valid, since I'm not getting any parsing issues in DHC or Notepad++, so maybe this is a bug in the engine? I'm also not getting any errors in any logs for this one, unless these errors are logged somewhere other than %PROGRAMDATA%\SteelSeries\SteelSeries Engine 3\Logs, and nothing stood out to me in the Program Files installation folder either.
Plugins
So, i could not find any info about creating permanent non-game plugin. E.G i want to display time on my Rival 700 screen, how can i do it?
Handler for MSI Mystic Light not working.
Trying to create an Handler through json that would affect the keyboard keys and the back of an MSI laptop.
Sending the game_event changes the keyboard color as expected but not the Mystic Light on the back of the laptop. The documentation states: "rgb-24-zone: Any connected, supported, twenty-four zone RGB device. Covers the MSI Mystic Light."
Using the json handler attached here: JSONHandler.txt, the keyboard reacts properly but not the MSI Mystic Light. The MSI Mystic Light just keeps doing whatever was set using the Steel Series Engine 3.
Allow access from other devices on LAN
Currently i have made a work around by "proxying" requests via a c# program. however i would love to make this work properly with home assistant, i use a arctis pro wireless and the oled screen has some great possibilities for home automation.
but you currently lock the api to 127.0.0.1, which is understandable but perhaps a option could be added?
https://github.com/CyanLabs/Steelseries-Gamesense-API-Proxy
My JSON parsing is a quick and messy solution, the code is extrermely unoptimized and probably has a lot of redundant stuff in it.
Operating System Agnostic / Linux Support
Hi, the developers page http://developer.steelseries.com/gamesense/index.html mentions that the tools are operating system agnostic. I have a laptop with a steelseries keyboard (just 3 regions) and run Ubuntu. How would I go about utilizing these tools on this operating system, from a developers perspective?
Building an IFTTT-like app
Hi, note sure where else to ask. But I'm trying to determine if I can use the SDK (or some other interface via gamesense) to control rgb on my keyboard for tasks outside of gaming. Basically like an IFTTT for the kb... is this doable? I'm also on OSX and not sure if I'm even able to develop on this platform. Any advice here would be grateful!
can SSE drive an LED strip??
Instead of sending game data to sse, can sse send lighting data for digitally addressable led strip light?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.