Denied Investigate (& Implement) A Method To Externally Read VTime Data (Or Otherwise Get Player Hours)

This suggestion has been denied and will not receive development.
Status
Not open for further replies.

What does this suggestion change/add/remove:

If at all possible, implement a system that allows things like Google Sheets to retrieve the hours that SteamIDs have been on a job for, in a given timeframe (For that day would be a good minimum, but given the way activity checking works (at least in (UK) E-11), most preferred would be to specify hours, but make that part of the call optional).

The process would ideally look something like:
  1. A department's roster makes an API call to the server (I think we would need some kind of basic support on how to set up this call, maybe a guide if possible?), provides a timeframe, a list of SteamIDs and I guess some kind of ID that refers to departmental/regimental jobgroup (E-11, Nu7, DEA, etc.)?, i.e.:
    For the date of 01/01/1970 [and optionally, between the hours of say, 14:00 & 20:00], provide the hours on E-11 for STEAM_A:X:XXXXXXX, STEAM_B:X:XXXXXXX & STEAM_C:X:XXXXXXX.

  2. Server returns the date, SteamID & the hours that SteamID has played that job during the supplied timeframe (without including time marked as AFK if possible), i.e.:
    01/01/1970, STEAM_A:X:XXXXXXX, 3.85
    01/01/1970, STEAM_B:X:XXXXXXX, 0 [maybe don't return ones with 0 or less hours (yes, "less than 0" sounds stupid, but is probably entirely possible, knowing all the systems we work with)]
    01/01/1970, STEAM_C:X:XXXXXXX, 0.75
Alternatively to reduce API calls, there could be a spreadsheet resource made available to departmental/regimental roster managers, in which the server regularly posts that info, so every few hours it would spit out date, jobgroup ID, SteamID and hours - Which could then be read from by departmental/regimental spreadsheets:

01/01/1970, E-11, STEAM_A:X:XXXXXXX, 3.85​
01/01/1970, Nu7, STEAM_Z:X:XXXXXXX, 11​
01/01/1970, DEA, STEAM_H:X:XXXXXXX, 6.7​
01/01/1970, E-11, STEAM_B:X:XXXXXXX, 2.6​
and so on.​
Departmental and regimental spreadsheets would then from that, just look at the ones relevant to their department/regiment. This method would mean not having to distribute the method for making API calls to the server and decrease the likelihood that it could be abused by a malicious actor.

Has something similar been suggested before? If so, why is your suggestion different?:

Closest previous suggestion I could find was this accepted suggestion from Kwan (presently in the Dev Tracker Backlog) about making /vtime display job-specific time - This suggestion is sort of querying and if possible, suggesting to create a way of externally retrieving a given SteamID's time spent on a job (likely via an API call). Additionally, their suggestion reasoning is more about presenting that information in applications for positions, whereas mine is about using that data in activity logging.

Possible Positives of the suggestion (At least 2):

The option of being able to automate activity logging in this manner would improve the following for departments that choose to implement it:
  • Increased appealability of being in a department/regiment & Convenience for the individual - Where some departments have to currently manually log hours with forms (or however other departments the track activity do it; I know (UK) CI right now uses the built-in regimental activity thing that shows how many days ago someone was online which really only works for them, as there are only CI jobs in the CI faction (assuming that only tracks when you were last in the faction, if it checks when you were last on the server, then... I mean it still works for them to see if that person is active, but it's still imprecise to the level where it's inappropriate for some use cases, such as in (UK) E-11 where we want to make sure you're active on the job)), this expectation placed on players from department leadership to regularly clock in hours typically discourages them from wanting to stay in that department/regiment, as the chore is too bothersome for them, which prevents that department from having as populous as it could be and is ultimately an impact on server health - Players may also have commitments to other roles and positions they have in the server, especially staff (Draw a Venn Diagram of staff members and MTF operatives and be surprised how populous the middle section is) who have to do a lot already without the added responsibilities of being in an MTF (an in UK E-11, logging your hours is one of those responsibilities). Implementing automation of activity logging overcomes this issue.

  • Improved means to track activity on a job - In addition to current departments that track activity, the possibility for automatic tracking enables potential solutions for other departments that would like to track activity, but are already doing too much and would find the prospect of having to manually log hours otherwise unwieldy or unreasonable to implement.

  • Harder to fake hours - Switching from manual hour logging to automatic hour logging means that someone can't forge the amount of hours they played for, the later point about abuse not withstanding.

  • Impossible to forget to log - Can't forget to log hours if they're done for you.

  • Decreased/complete elimination of roster griefing - Since it would be based on an in-game activity and you can't manually log hours after the switch, someone (especially any discharged person that still has the form link - or anyone that's like otherwise received the form from being given the link - ideally people shouldn't just be distributing activity form links like that for this reason but it's not like we can stop someone from just flagging d-class and throwing it out in chat for people to grief: i mean, if we (the CO team) find out that someone's doing that, that's 100% a blacklist, but again, we can't stop it from happening) can't then just fill out the activity forms with IDs of people currently on the roster and a bajillion hours. This has been an occurring issue with (UK) E-11 and (UK) Nu-7 in the past and so far our only solve is to delete the relevant logs; Recently we (E-11) ended up just making a new form altogether because it became an increasingly recurring issue. And of course, new official document, new ownership transfer request to Ventz. Which leads into my next point:

  • Less document transfer requests for Ventz - So ignoring the one spreadsheet for the alternative method of getting that data to the departmental spreadsheet as detailed above for now (which Ventz would also need to own), Ventz has to own every official form or GDrive resource, including things created for things like activity logging. Again, not sure how other departments do it, but it's likely that Ventz needs to own that material, too.

  • Less VTime check sits for staff - Frees up staff time to do other important things and might also make staff work less dull if they're getting a bunch of these.

Possible Negatives of the suggestion:

  • Dev time to implement - Might not even be possible, fully understand if so.

  • Ability of department to implement this into their roster if they want to - Ideally this shouldn't be the case with a well-written enough guide, but I get that not everyone can roster good.

  • API calls - Depending on how it's implemented on the roster side, might be too much traffic. Would have to be set up right and responsibly. Also depending on distribution, that API call could be used improperly and is an avenue for a DDoS attack.

  • In-game abuse - It would be easier to cheat the system by just sitting AFK/otherwise doing nothing on a job for the required amount of hours instead of doing what they're supposed to; But the onus for catching and dealing with this is on the individual departments - Same as when if someone tries to fake their logs. This is an IC issue and should be dealt with as such.

  • Underutilisation - It's possible that not enough departments would use this system to warrant its implementation.

Based on the Positives & Negatives, why should this suggestion be accepted:

It's time to discuss the elephant in the room.

At least in UK, the biggest thing holding a significant portion of people back from joining departments/regiments that have activity requirements, is after putting the hours in, having to log those hours with their department. We recently cut down our activity logging form in UK E-11 to just date, SteamID and hours a few months back and that has improved things, but the prospect still seems unsavoury to a lot of people. I have had recruits actually ask me if I was joking, when I told them that they have to log hours.

If this is at all possible, please pursue this with urgency. I get this sounds weird coming from the best performing department on the UK server right now and while I'm always looking for ways to improve, I'm also looking at things holding us back. This is one of them.
 
Last edited:

Chad

Civil Gamers Expert
Jan 27, 2022
689
152
91
+support but idk if google spreadsheet could handle it
 
You can use time-outs for that kinda stuff, you'd obtain an api key through civilnetworks(dot)com, and it like grants you so many calls per x time before being time-outed.
oooh. i see. i have zero experience with API programming (mostly because i have bad experience with any kind of networking implementation) so that's interesting to know, thanks.
 
Feb 27, 2022
67
11
91
24
tl;dr Ditch google Docs/Sheets, make them built into civilgamers.com

Better yet, just make a completely built-in roster and documents hub on like a subdomain, like
Code:
roster.civilgamers.com/scprp/uk/epsilon-11
documents.civilgamers.com/scprp/us/alpha-1
roster.civilgamers.com/mrp/uk/[whatever regiments they have]
Like for real, Google Sheets is kinda crap for the amount of custom formula's some Regiments have. Having the rosters be completely custom built will make everything run so much smoother, will allow Senior position holders to automate stuff way more easily and help out with managing permissions. Plus, having the documents hosted on civilgamers.com makes sure that Vents will always have ownership over every document, and helps prevent griefers.
 
+Support
-I believe our roster manager wanted to do something similar to this
(But couldn't due to a GMod update I believe?) which would just put the hours played on CI into the roster. This would be hella useful

If you need a TLDR:
It adds a system that takes the playtime of someone, and puts it on a roster to see how many hours they played.
This would make activity checks wayyyy easier, and duty logs wouldn't be a thing (yay)
 
tl;dr Ditch google Docs/Sheets, make them built into civilgamers.com

Better yet, just make a completely built-in roster and documents hub on like a subdomain, like
Code:
roster.civilgamers.com/scprp/uk/epsilon-11
documents.civilgamers.com/scprp/us/alpha-1
roster.civilgamers.com/mrp/uk/[whatever regiments they have]
Like for real, Google Sheets is kinda crap for the amount of custom formula's some Regiments have. Having the rosters be completely custom built will make everything run so much smoother, will allow Senior position holders to automate stuff way more easily and help out with managing permissions. Plus, having the documents hosted on civilgamers.com makes sure that Vents will always have ownership over every document, and helps prevent griefers.
The primary issue I see with a bespoke setup like that is, is what if we want to implement some kind of feature that is possible in Sheets via throwing a bunch of formulae together, i.e. E-11's/Nu-7's (de)merit system - If we don't have the mechanisms to implement what we want, then we have to consult the relevant developers on the issue to get that sorted. That's unnecessary dev time spent on the issue and something that we would then have to wait on for it to be implemented, not even mentioning the dev time for making an entire custom rosters system in the first place, when compared to creating an API that will just return existing VTime data - Which... Would still need to happen anyway, it's not like making that would magically create the method to retrieve that need data from the GMod server. So in effect, what you're saying isn't really even anything to do with my suggestion - It's just suggesting more cumbersome work for a potentially negative effect.

Additionally, systems are not standardised across rosters; You can check between Nu-7's and E-11's rosters and see that we both do things very differently, so trying to have a roster system that does not fundamentally operate the way Sheets does would be disastrous in this regard. Paging @Auburn here for reasons which I hope are obvious, but you hopefully get my idea. CI would also hate this as well, as they have additional rosters for their subdivisions.

And even then if you're not providing enough substitute systems of sufficient quality, you'd still have to let departments/regiments have whatever other docs they need on GDrive anyway (otherwise you're stifling roleplay), so you'd just be dealing with both systems regardless.

I do otherwise get your idea and where your mind is - I see the positives of that, but the downsides of outweigh it, I'm afraid.
 
Last edited:

Chad

Civil Gamers Expert
Jan 27, 2022
689
152
91
Also I do know that you can use battle metrics to do this pretty easy. All you have to do is link the server with battle metrics I believe.
 
Also I do know that you can use battle metrics to do this pretty easy. All you have to do is link the server with battle metrics I believe.
well that's an interesting proposal, but really it's up to NL and the devs what exactly they want to implement for the server that will fulfil this suggestion if they accept it... i guess that makes this NFCT but i'm out of space in the title to add the tag

the proposal is just saying "investigate the feasibility of doing this and then do it"
 
  • Like
Reactions: Chad
Status
Not open for further replies.