API Request - Battle and Nuke endpoints
-
One of the more entertaining parts of screeps is watching players battle each other. Unfortunately big battles are not that common and can only be found by luck, word of mouth, or the monthly world review.
I would like to see two new API calls-
* /battles - returns an array of rooms that have had a hostile action (attach, ranged attack, demolish, block upgrading, etc) within the last 100 ticks between two players (excluding NPCs like source keepers and invaders).
* /nukelandings - returns an array of rooms that are being nuked.
If you were willing to go into even further detail-
* /battles/{id} - Returns the first tick of hostilities as well as the names of the players involved.
With something like this we can easily add to the existing slack bots something to push an alert to a specific channel (#thewarpath seems appropriate) as well as to twitter (you could also add something to the website itself). We could even add another layer to the League map with ongoing fights.
The twitter bot would help bring publicity, while both would help get people more engaged in the game. Plus if you add the endpoints we'll do the rest of the work, so it's almost like you're getting free labor out of the deal
-
I think this would bring a lot of publicity. Good idea!
Best thing is you can let the community to all the work for displaying the data!
-
We consider adding something like a "Battle Radar" feature on the world map in the future. It will look like a news feed with links to room replays.
These endpoints might be a nice feature too. However, it feels a bit odd to add some APIs to the game server which are not used in the official game UI, especially when we have no real documented API yet.
-
It might feel odd, but it would be so awesome. It would allow us to build something similar to the battle radar now while you focus on other things, and then you can add the battle radar in down the line. We understand that the API is unofficial so if it breaks or changes we won't complain, but it really feels like this is a missing feature of the game and we really could do so much to fill in that gap.
-
OK then, these endpoints are online:
https://screeps.com/api/experimental/nukes
-
https://screeps.com/api/experimental/pvp?interval=100
whereinterval
is number of ticks from the last pvp action
-
Oh this is awesome! so quick as well! Thank you so much for this quick solution!
-
Could it be that the update broke the notification settings for invaders? I'm getting a lot of
Your X #ID in room YYYY is under attack
-
Yes, some notifications were wrongly sent, it's fixed already.
-
Amazing work on the endpoint! I'm thrilled it was deployed so quickly.
I got a small request which might reduce server load:
The endpoint
https://screeps.com/api/experimental/pvp?interval=100
could we get enter currentTick value?
https://screeps.com/api/experimental/pvp?sinceTick=1337
This way we can hammer the server with less requests by making accurate interval values.
If the request also returned the currentTick it can even be tailored to only request new data.
Amazing work on the api!
-
Great suggestion and what quick implementation!
Keep up the good work
-
https://screeps.com/api/experimental/pvp?interval=100
https://screeps.com/api/experimental/pvp?start=14470247
It returns
{ok: 1, time: 14470307, rooms: [...]}
-
Impressive, most impressive. Thank you Tedivm and ScreepsGameMasters.
-
Oh this is absolutely fantastic! When I made the feature request i wasn't expecting to wake up with it implemented- I'm looking forward to making a few bots this weekend
-
Great work @Artem!
-
Since ticks are recorded, I believe you may come up with the same idea of a replay news feed, so that one can watch the battle even it's been a day or two ago.
-
There is now a bot that lives in #thewarpath which alerts on battles and nukes.
-
Minor bug with the APIs- right now when a player dismantles neutral structures in their rooms (ie, Zergling dismantling his walls in W13S28) it results in a PVP notification.
-
Minor bug with the APIs- right now when a player dismantles neutral structures in their rooms (ie, Zergling dismantling his walls in W13S28) it results in a PVP notification.
Fixed.
-
I know this is experimental but I just observed the following - a couple of rooms showed as objects instead of a room name.
{"ok":1,"nukes":{"shard0":[],"shard1":[{"_id":"5b896eee17e5a8214d76ed8b","type":"nuke","room":"[object Object]","x":25,"y":25,"landTime":11360037,"launchRoomName":"W21N18"},{"_id":"5b8971ef76ab81419cd80bc2","type":"nuke","room":"[object Object]","x":25,"y":25,"landTime":11360242,"launchRoomName":"W21N11"},{"_id":"5b897a8d029da7212ee6008b","type":"nuke","room":"[object Object]","x":25,"y":25,"landTime":11360874,"launchRoomName":"W22N12"},{"_id":"5c4d0b23b9b908332ce6a3fe","type":"nuke","room":"W12S28","x":18,"y":10,"landTime":15021486,"launchRoomName":"W19S32"},{"_id":"5c4d0de005e5f30d8bd4a862","type":"nuke","room":"W12S28","x":18,"y":10,"landTime":15021685,"launchRoomName":"W17S34"},{"_id":"5c4e876cbe6eb97f6d800738","type":"nuke","room":"W53N43","x":34,"y":10,"landTime":15049514,"launchRoomName":"W43N46"},{"_id":"5c4e8846b22bb87a1b08f3e2","type":"nuke","room":"W51N51","x":42,"y":10,"landTime":15049537,"launchRoomName":"W41N51"},{"_id":"5c4ede848f9bdb12957d021c","type":"nuke","room":"W52N49","x":38,"y":9,"landTime":15056023,"launchRoomName":"W42N44"}],"shard2":[],"shard3":[]}}
-
I think that was me. When I was exploring the ability to nuke arbitrarily far away I launched a few nukes against Objects before I got the hack correct.
I was also on the MMO server when I thought I was on PTR. I asked o4kapuk to clean up the errant nuke on MMO, but these might have been missed since they're through a different API.