Neos-Metaverse / NeosPublic

A public issue/wiki only repository for the NeosVR project
197 stars 9 forks source link

User Blocking Functionality #557

Open Frooxius opened 4 years ago

Frooxius commented 4 years ago

Hello everyone!

After long discussions with the team, it is the (unfortunate) time to make this topic. We've been getting stady influx of new users and with the community growing, there are unfortunately personal conflicts. We've been getting an increasing amount of user reports and requests for this kind of functionality, as well as reports of people avoiding Neos due to lack of this functionality (which didn't seem too necessary until now).

It is our philosophy to use global banning only as the absolute last resort (e.g. in cases of illegal activity or severe attacks) to avoid cutting people from their socialization platform or workspace and instead providing you with the functionality to help you manage your own experience better.

Because of that, I'll be prioritizing the user blocking functionality soon (within a week or so), but first I wanted to gather your thoughts and feedback on how it should be approached.

The proposal is as follows:

This should be the gist of it. It's not too of a nice feature to talk about, but I'd love to hear your thoughts, concerns and ideas!

And also importantly, please let us know any problems you might be experiencing with other users or any concerns you have. You can always talk to Veer, our chief of moderation, about any issues, or reach out to other members with the moderation badge.

We take your problems seriously, even if we avoid taking immediate action against the member. Like I mentioned, as an official team we only want to step in when it's really necessary (and when we have evidence to do so) and instead opt in to give you better tools to help manage your own experience and for that, any kind of feedback and report is valuable and lets us prioritize those!

Thank you all for understanding.

Reiko9 commented 4 years ago

"Users won't be able to join a session hosted by an user they're blocking or that's blocking them. This will avoid situations where the host can't tell what the user is doing in their world" .... ... Considering how small the community is at the Moment this could completely mess things up... We often have 10 users in 1 session and its likely none of those other players may know about a personal Grudge between blocked players. .......Just Lock them to "Spectator-mode" if they join a session hosted by someone that blocked them... So they cannot modify the world... this would prevent issues with the Host not knowing what you are doing in the world, since you Cannot modify it...

Who ends up being the Host of a Popular Session is Almost Random in Neos and it pretty much often starts once 2 players visit a session and another player sees "2 Players in session" so they join leading to 3 and so forth...

If this is a "Private-World" then of Course block them out of your bedroom/house... The public-square should be as Open as realistically possible, otherwise Neos will become a Lottery of who hosted the session...

TehTurk commented 4 years ago

Would the blocking be more of a soft block at first? Or repeated blocks are required in terms of severity, like 3 blocks to hard block or something(while the initial ones could be configurable). While I understand configurable there are people who will just block without no remorse or social repercussion,and while they are within reason to do that, and free to do that, I think letting them do that at the get go will also have it's negative repercussions too(Avatars, Items, Toys, Tools, Music, Videos, misunderstandings). My main issue is dealing with reactionary blocking or annoyed blocking in some form as other platforms have experienced and had for a multitude of reasons. Because people being annoyed is fine, but blocking for annoyances shouldn't be the case. (Because if you really wana block someone you should be able to, but people will also be careless with their blocking to some degree too)

Frooxius commented 4 years ago

@Reiko9 Hmm that's a good point with the community size. We discussed on the team the potential problem of people not being able to hang out with their friends, because they're in a world of someone who blocked them.

There are a few things in the future that should help with that, one is having more neutral public servers (officially hosted headless) and ability to have virtual "hologram" sessions across worlds.

For the time being the spectator mode could be a potential compromise. Although allowing the user to join is a bit tricky still, since the host can't tell if they're harassing other people or doing something they would need to moderate. Then again other people could tell them and in most cases people can block them too, so it can still be a good compromise. Thanks!

@TehTurk Yeah, that's definitely a good point too and something we're worried about. We'd prefer if people resolved those issues through other means, ideally through discussion and de-escalation. We try to push them towards that if possible, but it's becoming impossible in some cases.

Having the block softer by default could work. One idea would be that by default, the block is temporary (say 1 day) to deal with annoyances and you have to go into menu to select different period (including permanent). That could nudge people to blocking people and forgetting about them over an annoyance, as it will require a bit more effort to make it permanent. What do you think?

The repeated blocks might be interesting too. So you can't permanent-block the first time for example, making it expire after a while. Only if you repeatedly block, the option will be made available. Although I can see that also being annoying in cases you really do want to do it permanently.

It's hard situation to deal with, so I feel whatever we do, there will still be some abuse of it and that'll be unavoidable, but we can definitely look for ways to minimize the negatives.

TehTurk commented 4 years ago

Yeah that's all I can see realistically happening at this point is to reduce the negatives. I would say having the option either be annoying as possible, or have it auto unlock after repeats to something where the option is available, or if it's serious you can speak to a Moderator/Admin to request the proper functionality, which also alerts Moderation of more troublesome users if things escalate even further, or even request it to the NeosBot itself or something.

Frooxius commented 4 years ago

Hmm yeah that might be an interesting possibility. Tie the perma-block to a report, that could make people think a bit more if they really want to block that person permanently or if a temporary one is sufficient.

So either just use a temporary block or make a proper report to moderation team to allow permanent block. Question is, how would this deal with some other situations though, when the block is due to personal reasons, e.g. not something you would really ever report to moderation team.

DanteTucker commented 4 years ago

Tieing it to a report could be very uncomfortable and could be more psychologically harmful for people trying to quietly escape serious situations.

Frooxius commented 4 years ago

Is permanent block needed in those situations? Report would potentially be required only in those cases, so you could still use a temporary block to quietly escape. But I'm not sure if I'm understanding what kind of situations you mean, so it might not be a good idea.

DanteTucker commented 4 years ago

Well not every reason to block someone is related to briefing. A user may want to permanently block someone they were in an abusive relationship with for example. There there may not be anything to report. But it should still be permanent.

TehTurk commented 4 years ago

Hmmm, that's a good point Dante thank you for bringing that up I didn't consider the psychological aspects possibly due because I do know we have a variety of users and situations on here. But wouldn't the uncomfortable aspects also show the seriousness of the block and have the social repercussions that it should entail? It just sounds like we need something between Soft -> Hard Blocks? Not denying a block shouldn't be permanent, because they should, but the final straw should be handled properly.

Frooxius commented 4 years ago

Ah yeah that's one of the cases I was considering as not something you'd really report. It might be that the best balance would be to just make the perma-block be the non-default option, but don't make it harder than that. Just when you click the big "Block" button, it's a temporary one, but you have to go to an option to configure length to make it permanent.

Just annoying enough so people don't perma-block over annoyance and forget, but not annoying enough that it would cause more harm than good.

at-bat commented 4 years ago

+1 for the soft-block to lock people to spectator mode at first. I think this is a good compromise.

I also think defaulting it to temp blocks (1 day or just for that session) is the best way to go about this, because I've certainly had many times where I'd block someone in an online game for some annoyance and then forgot about it until many months later or I ran into them a few days later and couldn't remember why I added them.

Perhaps if you add someone to your block list, you could also optionally add a tag or a small 180 character note of sorts to remember why you blocked them? In games with this sort of feature, I'd typically add something like "Blocked on because they were spamming messages/disrupting chat" so I could remember and then go through and clean out my block lists for trivial reasons vs major ones like people spamming slurs/hate speech, etc.

This could also tie in to the report to moderation team aspect. Perhaps when you go to perma-block, it's a checkbox of something like "Also send a report to the Neos moderation team", which could then send over your reasons for blocking the user permanently. I would suggest this would be optional as sometimes people don't want to share their reasons or it's very personal and they are not comfortable explaining this (even to say "I don't want to talk about this subject").

I think some people might be a bit overzealous with their permanent blocks as well, so you probably wouldn't want like 50 reports coming in to the mod team from someone who is blocking people for very trivial things, which is an issue I've run into before when managing some games and communities, but I don't think this would warrant any moderation actions. If that particular user wants to perma-block most of the people they encounter, then that's their personal choice I reckon.

TehTurk commented 4 years ago

Would it be possible to have it be reset as a non default option every time on launch :o? Or oh I know! Your amount of permanent blocks is limited to like a couple of so many a month or something. It adds an artificial cap to how often you can perma block, but still allows the option but also prevents people from Trigger Blocking, and treats it like a resource that people SHOULD manage properly.

H3BO3 commented 4 years ago

I agree with Dotbat's idea about a memo about blocking reasons being available and optionally functioning as a report - Seems like an intuitive way to go about it. Sending the memo as a report should only be available on permablock IMO. But the memos would be retained even after a temp block expired, so if you tried to block them again you would see all reasons you had done so in the past.

I also agree with people joining sessions hosted by a blocked user being set to spectator rather than outright denied access (That's what banning is for, from what I understand, and the two should function independently).

Also, how do you plan to cover assets that were loaded in by a blocked user directly into the world, whether locally or from the cloud? This could potentially be a harassment vector but I'm still trying to think of the best way to go about it without compromising functionality or causing strange visual behavior or desyncs

BlueCyro commented 4 years ago

@TehTurk I do not think that adding an artificial block limit will be beneficial. What if there's a group of people who you don't like or who don't like you and you don't want them to bother you? The user should have full rights on who and how many people they personally want and don't want to interact with, just like real life.

DanteTucker commented 4 years ago

Yes the comment that we have a small community is correct. We are a small group of people who are all very similar in most ways. We need to be aware of our bias and lack of diversity. And not base important safety features like this on just how we happen to like socializing on neos at the moment.

RueShejn commented 4 years ago

I feel like the blocking limit would be hit very quickly as well if your someone that regularly hosts an open session lots of users passing by, or are someone that frequently goes to others open sessions. as the player base increases theres going to be a lot more community interaction. setting a limit would also hurt streamers if they are having multiple users harass them they might not be able to block them all or even want to in fear of losing the set amount of block tokens for the month

H3BO3 commented 4 years ago

There seems to be more cases against rate-limiting permablocking than for it, hence I'm leaning towards no limits myself. Users should be free to control their own experience.

H3BO3 commented 4 years ago

Also - As a side thing, I believe it is imperative that a separate "Avatar Block" feature gets implemented at the same time as the blocking system - Many people are aware that certain avatars can cause lag, however, my problem is that there is no way to differentiate between blocking a user completely versus just blocking their avatar for performance reasons, and as such the block system could get misused for this purpose when an alternative should be available.

It would be a similar vein as the block, but you would still be able to chat with the person, they would see no change on their end, and nothing about their permissions or access levels (logix included) would be modified - it's just that you wouldn't be able to see their avatar, and it would be replaced with a performant default one. It might be a good idea to open a separate thread for this feature if you think it's feasible, since it carries some of its own unique issues

Anomalous commented 4 years ago

I think this sounds good in general, especially for social worlds. It has the potential to break game worlds or others where the functionality depends on putting users in certain avatars though.

For example, in the prop hunt game it would be possible to block users on the props team to force them into the standard avatar, thus revealing their locations.

For this reason it might be use useful to have an option to mark a world as a 'block-free zone', with an appropriate warning to users before joining one of these. In the case of game worlds where functionality is tied to the avatar, users may commonly be restricted to a set of pre-defined avatars and have their permissions limited in other ways, so the potential for abuse is lower than in open social worlds anyway.

Edit: expanding on this a little based on Discord conversation: It has the potential to break games if people are supposed to be in certain avatars. In prop hunt you could block everyone on the prop team and tell your team mates all their locations. In many games the functionality depends on logix built into the avatar, so if you force them out of the game avatar into the default one you lose all the logix and break the game. A 'block-free' world is something that would have to be used very carefully and for rare situations, but Neos is meant to be a general purpose platform for building apps on top of. These are some situations where blocking could interfere with these custom world-apps.

RueShejn commented 4 years ago

i believe if one user blocks the other its mutual which means the person blocking wouldn't get any advantage because they too would not be able to affect the other user

BlueCyro commented 4 years ago

@Anomalous I believe that instead of a 'block-free' zone, it should be more of a thing where instead what is blocked are avatars that are equipped from that specific user's inventory. Only for the person who blocked them of course.

RueShejn commented 4 years ago

things discussed in the devlog channel,

adding some kind of metrics for tracking a users block,bans,kicks,reports..ect would be a good way of pinpointing reoccurring troublesome users

and the option for "blocking exclusion" worlds (ie. game worlds) where blocking the persons avatar would break some of the in world mechanics, so the blocked user would then not be allowed to swap avatars but can be seen in the worlds predefined avatar and interact with other users while being muted at the least while blocked

TehTurk commented 4 years ago

@RileyGuy @DanteTucker Very true, and be careful with how you say in real life for blocking, because realistically you would get yourself out of that situation instead of standing there clicking a button to block someone, or your friends would back you up, while it might sound like I'm basing it on what we have currently as social standards for Neos, I'm focused on going for a super neutral/forward/understanding thinking approach to cover everyone's basis, but also PREVENT the negatives that come with it. Yeah there really shouldn't be a limit to it, but this is also an idea to kinda deal with the dilemma of personal/public blocking. It should be difficult in some form. So if there is something up to be suggested feel free. Couple other ideas I had were besides reports/limiting would be doing it through the website possibly in some form? If you really want to block someone, you should and be completely allowed to, but I think I at least slowing down the access to that would be beneficial. As Emergency situations would be handled with the soft blocking regardless.

The Streamer aspect would be something else entirely I think as there'd be a "streamer" mode that would let you configure Avatar Visibility vs Blockability, as these wouldn't be "real" blocks" But at the same time this also goes into the realm of Trusted Users/NonTrusted Users too as a concept too.

+1 for InventoryBlockedAvatars, because the user in question would still be muted, but could still participate in worlds or games etc. In terms of World Interaction tho this would be a possible concern.

BlueCyro commented 4 years ago

I don't think hard-blocking people through the website would be good either. I want to be able to choose right then and there who I want and don't want to interact with. Making it cumbersome is just gonna make people upset, and I'd personally have some rather strong objection to that idea. We need convenient personal preferences for this sort of thing. And by real life, I mean every other social platform has a block option, and you can also choose to not be around someone whenever you wish. I don't think imposing that limit because you technically can't just block someone you don't wanna be around IRL is a good technicality to spin that on.

TehTurk commented 4 years ago

But this also in lies the problem, that in of itself is a trigger/quick block with no thought to it if made too easy, this can ruin avatars, worlds, atmospheres, items, toys etc. I bring up the real life aspect as a comparison not a technicality. If you don't want to interact with people there are a multitude of ways even before blocking, but it sounds like you'd just block before attempting those other formats, plus we'd st least wana encourage the former before the latter. Using older Social Platforms can be beneficial for examples, but won't always hit the nail on the head for things like SocialVR. Do you not see where I'm coming from this issue of reactionary/trigger blocking at least? I'd like to hear your suggestions to at least curtail it at least.

BlueCyro commented 4 years ago

I understand not wanting to have people resort to reactionary blocking, but I think it's just something that's going to have to be in place so that people can have control over who they do and don't wanna see. That should be an automatic right. Blocking someone shouldn't affect blocked user(s) experiences in any way aside from not being able to interact with the blocker or for the blocker to see their avatars that they spawned from their inventory.

TehTurk commented 4 years ago

I don't think I've ever been in the camp of ever restricting the control ever, but that it'd be retarded(slowed down use of the word), because if someone is being a righteous asshole to me of course even I'd block them after exhausting all other options. But people can get mad fast and don't think straight for social repercussions(especially online), we are all guilty I'm sure of that at some point or another. Currently Froox is just going to make it an opt in the settings make it slightly annoying, but I just wanted maybe like 1 extra level more of like making it annoying to facilitate that it's final. How? That's up for debate.

aecii commented 4 years ago

I'd really like the option to just lock a problematic/abusive user to spectator mode, strip them of power in my creations, and have that apply automatically from that moment onward into any session or world I create/host regardless if i'm not there.

  • The system will render simple local replacement avatar, so you can see that the user is present, but you won't see or hear them and they won't see or hear you

A cactus with X-Y-Z locked. ;3

Medravr commented 4 years ago

As someone that has hosted 375+ users over a year's time in a weekly collaborative setting (with everyone having builder's permissions), I have seen no intentionally malicious behavior. Out of that there has been 2 different users on separate occasions that accidentally broke the world. A conversation helped them understand their unintentional actions.

I don't have much to add other than a personal opinion on blocking: Blocking is an extreme measure. It should be avoided as much as possible. Unless someone is intentionally malicious, other etiquette is paramount.

The permissions system tweaked can handle many of the problems people have. Other issues require more of a cultural shift. That comes with time and intelligent world design.

As far as the avatar and performance issues this can be handled by adding a feature: Allow for a editable terms and conditions pop up when the world when a user selects the world. Upon acceptance the world loads.

+1 for the tags with reasons for blocking

Earthmark commented 4 years ago

I think with the performance thing a big part of the problem is people don't realize the avatar is a problem. Some way to measure the impact a slot and children have on the world would help people understand what the costs of an avatar really are so they can be optimized against that kind of a metric. It would also help me not chase a dozen different ways to optimize things that it turns out aren't problems. If I had a way to know what costs what directly I wouldn't need to guess, and I would have a way to say "this avatar needs to cost less than 200kbps and 20k instructions per second" without saying "it feels bad when you join bro, fix it!"

Canadian-Git commented 4 years ago

Follow up to discussions over in Devlog.

It may be useful to have option to have blocked users either not render at all, or have other assets render through them. This could be added as an option you can apply to currently blocked users, so you wont run into the issue of not knowing what blocked users are doing in your world, unless you specifically elect to do this. This is intended to limit users from continuing to interfere with people in a world while blocked by jumping in front of their viewpoint or otherwise positioning themselves in a manner to annoy people.

Edited to split topics.

Frooxius commented 4 years ago

Thanks everyone for the feedback so far! A lot of good points here.

In terms of the perma-block, I wouldn't definitely put any arbitrary limit there. It's hard to say what it should be. If it's low, you might not be able to deal with a situation where you need to block multiple people and that can be distressing and if it's too high it looses point and might be unlimited anyway.

But I definitely like the idea of keeping a note for why you blocked. Have a few canned ones and custom note. What if the perma-block requires to select one or keep a private note for yourself? That way you don't need to report the user, but you need to think a bit about why you're permablocking them, making it more convenient to use a temp one if you're not too bothered.

That way it's only slightly annoying as you have to type a short personal note (even if you type "fgfjlkadjld"), which might be a good compromise to discourage from always using that option in reactionary manner, but not enough to prevent people from using it to deal with genuinely distressing situations. What do you think about this approach?


Having ability to also report is good, but yeah, I would keep that completely separate from the personal note.


Breaking game worlds is also definitely a concern here. The best solution is to have "no block world" option, so you can prevent this, or at least have it block only the voice. User would be warned before joining.


The "inventory avatar" blocking is unfortunately not possible though, there's not really any way to tell that the avatar is from inventory. Anything like that would be exploitable to bypass the blocking functionality. As world creator you can however configure permissions to prevent users equipping custom avatars in "no block worlds".


Also having a "spin-off" function of being able to only block the avatar is good option there too. It'd be as simple as simply letting the voice go through the local replacement avatar, so that could help cover certain scenarios.

@Earthmark We definitely want to add more tools for measuring performance impact, but it's typically way more complex than just measuring few statistics. You need to profile the behavior of the avatar in different settings. We've got an issue for that here: https://github.com/Frooxius/NeosPublic/issues/150


@aecii I like the idea of spectator lock too, that would be another functionality we'd add. It wouldn't quite deal with the same situations though, it's something that's more for the host, while blocking helps regardless of who hosts. This could be another GitHub issue for this functionality.

It would essentially let you mark certain person to be always spectator in your sessions, instead of banning them out-right, which is good to give more fine-grained control. If they're causing problems and spawning stuff that could prevent that, but don't cut them off completely.


Good points on customizing the look of the blocked avatar. Maybe we could even have ability to pick the default blocked avatar look if you want. I'd probably make the default one semi-transparent, so they can't block stuff as easily, but you can still tell there's someone there to give a bit context. Sort of like a ghost.


Also to give more context, this is definitely last resort option. Ideally we want users to use permissions and other abilities to resolve the situations. If you have ideas what other functionality could help there, please make a GitHub issue for it too! In general if you're dealing with any kind of user problem, let us know and we can see what could we add to Neos to help deal with it better and with minimal impact.

The reason why we're prioritizing this now isn't because of heavy avatars and annoyances, but because we've gotten more and more reports of some personal conflicts between members and people growing more uncomfortable with behaviors of others and asking us to ban those people completely from Neos. We've tried to deescalate those issues instead, but since they're growing out of control, we're now prioritizing this.

Fortunately it doesn't quite yet affect all portions of the community yet though, which is good!

aecii commented 4 years ago

@Earthmark

I think with the performance thing a big part of the problem is people don't realize the avatar is a problem. It would also help me not chase a dozen different ways to optimize things .... without saying "it feels bad when you join bro, fix it!"....

That is quite true... It would be nice to have a way to tell what is causing a problem. Avatar Performance Chart would come in handy. I have seen some user avatars have 8 sets of the same body mesh under it.

The user was not aware the avatar was running heavy and could be optimised 7x lighter. (which reminds me to follow up with them)

screen

inzanesonikku commented 4 years ago

one concern that i've got having this feature is this:

if one user blocks another user, are they able to be respawned if something got shot at them via raycast or other means

Frooxius commented 4 years ago

@inzanesonikku If the user is blocked, the colliders are disabled, so they can't be show with the raycast. There could be protection for other means of respawning as well (in general any modification of the hiearchy).

Casuallynoted commented 4 years ago

The features about not being able to have blocked users join your hosted instances is something I've wanted from a social VR platform for a long time now, as it's one of the sources of drama in VRChat. Also I am in love with the auto blocking with streaming feature! Fantastic job on this Froox :)

Frooxius commented 4 years ago

@Casuallynoted That's actually already supported through the banning functionality. If you ban somebody, they won't be able to join any of your hosted sessions.

The question here is how coupled it should be with the blocking. If they're independent functionalities, then the blocking perhaps shouldn't prevent from joining, but it gets weird if someone blocks the host.

shiftyscales commented 4 years ago

I feel if someone blocks the host, perhaps they should get auto-kicked from the session?

That makes that interaction very clear, and clean. You can't ever be in a world with a host you've blocked, and therefore, the host will never have blocked players in their world either (whether they instigated the block, or whether the player blocked the host.)

From a hosting perspective, if you've blocked a user, you've made a statement of intent that you don't want to interact with that user- as such they shouldn't have access to your session- effectively banning them from sessions you host.

Blocking could effectively be treated as a 'permanent ban' (unless said block is later removed). And session banning could be more for temporary periods (remove them from the session/don't let them rejoin for an adjustable period of a time.)

FuzzyFoxe commented 4 years ago

I'm gonna lay down some negative experiences I've had or seen in VRChat with methods of blocking:


It's heartbreaking to see random people suddenly disappear in a room because, say, you were too loud or just simply for no apparent reason.

I've also noted that once VRChat implemented an "avatar performance" system, and tied avatar blocking to it, pretty much almost every other person you encountered would be blocking most avatars because they were falsely reported as non-performant because of having just one too many of some element. (Please don't do the same as them if you put in a performance rating system. Give actual performance ratings)

People would also, as mentioned in some of the posts here, block for minor annoyances. You said a bad word, blocked. You looked at them funny, blocked. You so much as JOIN THE WORLD, blocked. I don't want people to be block-happy here on neos, I want them to actually work the details out. (Or provide alternatives that are way easier to access. I'm supportive of making it somewhat annoying or time-wasting to permablock someone)


And as for avatar blocking replacing the avatar, I'd make sure that the replacement avatar would match the size/scale of the actual avatar. Can't tell you how many times people have been confused because they were looking too high or too low for the actual avatar. I'd probably suggest an avatar to replace it, that would have limbs that don't lock up and simply follow where the avatar setup nodes are. Such as disembodied hands, feet, hips, head, etc.


Oh, and an addition to block lists being available to moderators, I'd also suggest having the option to see "recently in same world with" to be available through either the friends list (probably would have to rename it to social menu) or through the website so that you can see who you need to block, or report, etc. Remember that people are able to turn off name tags completely, or use false names while using their avatar, and you need to be able to see the actual name of someone.


Hope that's not too much info @-@ I feel like I'm taking up a lot of space with this.

EDIT: Forgot to mention that it's important to know when someone has blocked your avatar. Put an icon or something above them. EDITEDIT: We also need to use VRChat as an example as much as possible, so we don't make the same mistakes, but also because a LOT of our userbase is coming from there. (because of said mistakes)

BlueCyro commented 4 years ago

I disagree with not being able to join a blocked person's world. You should still have a choice to interact with people on that session regardless of the host being blocked. I also disagree with making permablock annoying, if I want to block someone forever then I should be able to do it readily.

TehTurk commented 4 years ago

I think in terms of join, permablock would prevent joining, but partial block would be the more open/joinable option? And Agreed @FuzzyFoxe most of my sentiments actually came from my time on there and I'd be heartbroken if similar things happened to Neos.

BlazeVR commented 4 years ago

I think that you should not be able to enter a session from a host who has blocked you. Hosts shouldn't be reminded by other players that someone joined their session they have blocked because of a conflict, ruining their mood etc. So if there are users you wish to interact in that session you would message and invite them to your own sessions as a result.

TehTurk commented 4 years ago

Agreed, but the softblock acts more as a mute then a real block, thats the point of the permablock I'd feel. But then this also Somewhat ties into the issue of annoyance/quick to click block situation. There's no easy way out in some situations, or at least having block tools in some form.

BlazeVR commented 4 years ago

Yeah, also reminds me it should be differentiated if it's an user or headless sessions (as of right now the busy sessions are user sessions, but could change when later big communities host their own server)

There should be of course the option to mute them, but you have to sorta "confirm" to reveal the block button to encourage calming the situation down and trying to solve issues like said before. But if nothing helps then the scenarios I'm imaging with reading the above ideas would be:

Frooxius commented 4 years ago

@shiftyscales That's what I proposed in my original post, but @Reiko9 raised a concern that right now with the community being small this would isolate the person from their friends, since there's only a few people who regularly host. We could do that long term, but for now the proposed solution is to just lock the person to Spectator only. @H3BO3 has also pointed out that banning and blocking should be separate actions (you could still apply both - e.g. if someone blocks you, you ban them)

Alternatively if you're the host and someone has blocked you, we can make it so you can still hear that person if you're hosting, so you can keep tabs on what they're saying. If you want them to go away, you can ban them. Although this would create weird asymmetry too, so yeah it gets kinda ugly and convoluted and the cleaner solution might be better after all. I'm not quite decided what's better yet. We could tweak it too based on what behavior patterns we see.


@FuzzyFoxe Thanks for the feedback and experiences! It's definitely good to learn from other platforms on this. And no worries, it's not too much info, it's good to discuss all these things!


We definitely want to prevent people from being overzelaous with the blocking. Do you think the proposed solutions above would help with this? The default would be temp block that auto-expires (say after a day) and if you want to perma-block, you have to write a small personal note on why (the note is just for yourself, not shared anywhere, so even if you typed nonsense it would still work, but it's just extra step over a quick temp-block).


I don't plan on making the blocking tied to performance and such. That would be up to each user if they want to block the avatars. Before we'd do anything in this regard, I want to do a lot of optimizations and focus more on intelligent variable rate updates, so the system better constrains resources given to particular avatars (also based on distance from them.


For the avatar replacement you don't have to worry. The way the common avatar system in Neos works, that's not going to be a problem, unless the user makes some really atypical avatar. The user's head and hand positions are always the "authority" and the avatars are matched up to them. E.g. if the person is small and their avatar's head is low, it's because the actual head proxy is low.


And yeah there will definitely be interfaces on the recent people and way to bring up their actual profile, ignoring any custom nametags and such.


@RileyGuy You'd still be able to permablock the users, it would just take a few extra steps than regular block. That way if you're not too bothered to permablock the person, it will nudge you to use the temp block instead.

We definitely want to prevent people permablocking others over trivial problems. Would there be any alternative solutions for that?

@BlazeVR Yeah, doing a perma-mute would be actually a good option. In some cases that could be used instead of completely blocking them. Should we maybe make a separate topic for this?

@TehTurk What exactly here is "softblock" and "permablock"? Are we talking about softblock as in temporary one? Or softblock as just blocking their avatar?


The issue with the block on the host is definitely tricky one. One thing we could do is add UI to couple them, sort of "Block & Ban From My Sessions" if people want to do both. We could also make it asymmetric. If you block someone, but not ban, they can stay in your sessions. If someone blocks you, they can't join your sessions, to avoid people from blocking hosts.

But it definitely gets weird on headless. What if someone blocks all the moderators/admins in that session? Should they get kicked? Should this be prevented, so the admins of that headless can still moderate them? How would we define the list of users that are the admins of that world and can't be blocked?

FuzzyFoxe commented 4 years ago

Yeah, I think the current proposal is good.

Another thing I thought of for the recent users thing, would it be possible to have pictures of the user in all the avatars they used during the session when you were there? (for visual identification in case they were in multiple avatars for that session) It would of course delete said images after a time to save on server storage.

Frooxius commented 4 years ago

Hmm I'm not sure about the images. It could potentially be somehow added, but it gets a bit trickier. The system would need to periodically render their current avatar, maybe a cutout of it. But it would also need to do that for all the users, which could be a lot for that many people. Maybe if it's infrequent, but if they change the avatars rapidly then it'll miss some.

BlazeVR commented 4 years ago

@BlazeVR Yeah, doing a perma-mute would be actually a good option. In some cases that could be used instead of completely blocking them. Should we maybe make a separate topic for this?

Sounds good, something as a name like "Moderating Options for Headless and User-hosted Sessions" and referencing the current issue here to it, having them central somewhere as "User Blocking Functionality" is a subset of it. Like I have more ideas as "Warning an user" option to make them aware of their action etc.

The issue with the block on the host is definitely tricky one. One thing we could do is add UI to couple them, sort of "Block & Ban From My Sessions" if people want to do both. We could also make it asymmetric. If you block someone, but not ban, they can stay in your sessions. If someone blocks you, they can't join your sessions, to avoid people from blocking hosts.

I would say a "Block & Ban From My Sessions" option is a good idea for someone new hosting their own user session, making them very clear of the action they are about to do. But with preset timers e.g. "1 hour, 24 hours, 1 week and forever" at the end. Additionally there should be text below indicating how to unblock them again etc. However, it gets different when they join a headless server which I listed further below.

The majority of people in my experience are not that trigger-happy to block. But there will be always people blocking you for whatever reason. Like I got blocked in VRChat by some people which you can see through their API. Was confused as I never interacted with most of them. (Maybe they had my shaders/animations disabled and something getting in their vision? Experienced the same with users I had disabled too because of the ranking system which I had new users disabled to avoid crashers, then some of them had very bright shining avatars or their avatar mesh deformed as a result...)

But it definitely gets weird on headless. What if someone blocks all the moderators/admins in that session? Should they get kicked? Should this be prevented, so the admins of that headless can still moderate them? How would we define the list of users that are the admins of that world and can't be blocked?

I would propose like this for headless:

Maybe an option to hide their own Admin/Moderator status would be an idea too for toxic people, thinking that the server is not moderated for them and action can be taken directly.

Frooxius commented 4 years ago

Hmm. The warning seems like another interesting thing. What about some kind of feature, that would briefly fade the world for the user and show the warning message in front of them, so they would be forced to take notice? That could help in cases where they are not paying attention and could force them to stop whatever they're doing now briefly and realize they're being asked to stop.

But that would be a very different feature, I'm not sure how much it would help or how common it is, but it would let the moderators in the world to discretely draw the attention of the user for a brief moment.


I'm not quite sure about letting the user stay in a world where they block admins/mods, as it severely impacts their ability to moderate. Other users could send reports, but those are hard to deal with when it's something going on realtime in your world that you can't even see. I think if the user blocks the entire moderation force of the world because they're toxic, it's better if they go into different world instead.

FuzzyFoxe commented 4 years ago

Perhaps the image could be pulled from the inventory preview instead?