Add ActionLog to the API



  • One of the things that I find frustrating in screeps is that you cant directly tell which tower shot which creep or which creep targeted which other creep.

    I recently discovered that this information is stored in the database in the actionLog object that is attached to most room.objects. It contains information about whether a creep or tower has attacked, repaired, rangedAttacked etc and which location it attacked / repaired... as well as whether that object has been attacked.

    I would request the action log is added to the API for creeps and structures. As this information is already in the database I would of thought it would be a fairly simple addition that would have minimal impact on performance.

    👍


  • I already did a thumbs up, but yes, this would be excellent. We should post use cases though as use cases are always good motivation for exposing something. If there's no use cases then no matter how simple it is, it's extra work for no reason.

    Personally I'm sure I would use it to feed into combat analysis. This would mostly to be to look for mistakes in enemy combat code that I could potentially exploit. Some stuff we can work out now, but things are impossible to tell. Overhealing for example.



  • I'd love this.

    Access to this log could help with debugging, and parsing it log could be a trigger to start certain processes (such as refilling a tower, spawning a healer, and so on).

    It'll also allow for pretty graphs when feeding it into S+ Grafana 🙂


  • Dev Team

    actionLog exists only to support animations in UI, it is not intended to be exposed to players. It doesn't support all actions, it has no information about target object IDs (only room positions), and creating an API on top of that would be very ugly and suboptimal. We have a better plan on implementing room-wide events, see discussion here. In fact, when it is implemented, actionLog is no longer needed and will be removed, so that exposing it to players now is not a good long-term decision.



  • @artch can we please have some details about that? That was very vage...
    In example status (draft;prototype;testing) and a lose time frame?

    BTW. how does the history work? Since this is basically a history maybe that just needs a rework and a api...



  • @artch I appreciate it wouldn't be a perfect solution, but its better than what we have now.

    I have experience of running software dev team so totally understand that you have limited resources and many features you would like to implement. So is this feature ever likely to make it from backlog into a release? The discussion you linked is now 7 months old and as far as I am aware is no closer to reality.


  • Dev Team

    Since this feature shows high interest, we're escalating its priority now. Keep in touch.

    👍

  • Dev Team