So I've looked into this, and I don't believe I'll be able to implement it
I looked at the one way vBOptimise caches the "Show Groups" query (made defunct in a newer version of vBulletin as vB cache, which vBO supports, caches this query natively) but sadly it does not apply to the session table.
The way the cache system works for "Show Groups" is that it makes use of a hook directly before the query in question. In short, it intercepts the vBulletin Database object, and when the query is being ran vBOptimise checks for the cache entry and prevents it from executing if a valid cache entry exists, then restores the vBulletin Database object to its previous value (otherwise, all subsequent DB queries would incorrectly be cached or ran through a "slim" wrapper that does not implement all features, like insert_id() or num_rows(), etc).
There are 44 queries to the session table being ran across various files in vBulletin, and short of applying a file edit around each and every one of those, the knowledge I have today as well as lack of results found on Google when searching for existing implementations of this feature, means I can't implement it
Not only is the amount of file edits required immense, but I'm not sure if I'd be able to return accurate values for queries like "fetch online users in the past X minutes" via a cache entry - the cache entry would need to be updated continuously as opposed to once every hour as the "Show Groups" query is cached by default (after all, you don't normally promote/demote staff more than once an hour).
If anyone knows of an existing implementation of this feature somewhere else, please do let me know and I'll take a look at it
Sorry I couldn't bring better news
![Frown :( :(](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f641.png)