Since i was a bit too much bothered by that hack, i delved a bit through the space exploration code and found two functions on how SE keeps track of it:
function RemoteView.is_active (player)
return get_make_playerdata(player).remote_view_active == true
end
---Gets PlayerData table for a given player or creates an empty one if it doesn't exist
---@param player LuaPlayer
---@return PlayerData
function get_make_playerdata(player)
global.playerdata = global.playerdata or {}
global.playerdata[player.index] = global.playerdata[player.index] or {}
return global.playerdata[player.index]
end
But sadly nothing of this seems to be accessible outside of SE. At least all of my three tries ended in an exception. I just leave it here in case you know how to properly use it.