This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This Admin Panel script was created by Reimajo and is sold at https://reimajo.booth.pm/
Please don't share or redistribute these asset files in any way.
Only use them within your own VRChat worlds after you paid for them.
#####################################################################################################
## There is a better online version of this documentation which has new and additional information:
## https://docs.google.com/document/d/1gh1osC2njNwgyel48KboBF9rc8KfogPUR0vS_KUE2DI/
#####################################################################################################
Watch this video tutorial first: https://www.youtube.com/watch?v=OqEmOEOdMp8
This will explain how to set everything up.
Script from Reimajo, purchased at https://reimajo.booth.pm/
Join my Discord Server to receive update notifications & support for this asset: https://discord.gg/SWkNA394Mm
If you have any issues, please contact me on my Discord server or on Booth or on Twitter https://twitter.com/ReimajoChan
There is a sample scene included which shows the general setup.
Simply drag the two objects (Sync + AdminTool) from this scene into your own scene as shown in the tutorial video.
The code documentation can be found by hovering with the cursor above a field in the inspector and inside the script itself.
-------------------------------------------------------------------------------------------------------------------
To make users admins (can fly and ban people) or moderators (can only ban people), add them to the list in the inspector.
You need to select a script object to see the inspector, for example by clicking on the object named "PickupSync_SPH_SFB_SAC"
which can be found under the object "Sync" in your hiarchy.
You need to assign at least your own username to either the admin or the moderator lists, else the panel won’t be visible to you in game!
Please also check out all available security options and settings before using this asset in your world.
Most security options are disabled by default & must be enabled by you after acknowledging what they do & if
you want them in your world. Below is a description of all those settings and what they do.
==========================Complicance ====================
VRC GUIDE COMPLICANCE <- if enabled, this tool will be compliant with the udon moderation tool guide https://docs.vrchat.com/docs/udon-moderation-tool-guidelines
which means it will debug-print all actions that are taken against banned users and also disable safety options which might not be fully compliant, while also exposing this tool to be easily bypassed by mod users. Although those features only apply to users who use mods and thus only users who violate the VRChat TOS themselves, they are still eventually against that guide if taken word by word. Given how carefully this has been used and implemented so far, I'm not aware of any issues that users faced who enabled those safety options, but I want you to understand the possible consequences and decide for yourself if you want to enable them. You can disable this at your own risk, while accepting the possible consequence that is described in their guideline:
"If we find your usage of moderation tools in Udon to be inappropriate (at our
discretion), we may remove content until the issues are addressed." (see
https://docs.vrchat.com/docs/udon-moderation-tool-guidelines)
You still need to place a note in your world in both the ban area and the world entrance as described in this guideline to follow it fully.
=================================================================
VRC GUIDE DEBUG <- You may choose to debug print the taken actions WITHOUT disabling the safety features by enabling the following option instead. Enabling this only makes sense if VRC GUIDE COMPLIANCE is DISABLED.
=================================================================
*** *** *** *** *** *** *** ***
I highly recommend turning PASSWORD_AUTHENTICATION on to avoid name spoofing mods which can be a big issue.
I highly recommend to turn ANTI_PICKUP_SUMMON_MOD, ANTI_NO_TELEPORT_MOD & USE_HONEYPOTS on for additional security
*** *** *** *** *** *** *** ***
================================= Safety ===========================
PASSWORD AUTHENTICATION <- enable if you want to avoid name spoofing by enforcing admins to authenticate via passwords
=================================================================
MINIMAL BAN DEBUG <- enable this if you want to make logs for banned users, recommended is disabled
=================================================================
ANTI NAME SPOOF <- prevents people from getting banned when no real admin has the ownership of the panel. Having this enables the caveat that bans are only persistent as long as an admin is the owner of the panel. If the current owner of the panel is not an admin anymore, the ban can be bypassed by reloading the world, although this is unlikely.
=================================================================
MARK BANNED PLAYERS <- this shows a sign above all banned players (perma or soft-banned) who are somehow evading the ban, warning others to block them. This is a "better safe than sorry" approach to reduce damage by modded clients who are somehow able to trick the system. It should never appear in game, but you never know if there is someone who is able to bypass the ban in the future and if that's the case, that person should definitely get blocked. It marks them as "crashers", which might not always be correct. Feel free to edit the sign as you like.
=================================================================
MUTE_BANNED_PLAYERS <- this is on by default and mutes a banned player + their avatar for everyone in the instance while they are banned. If this is on, the following setting toggles if they can still talk with world moderators.
=================================================================
BANNED PLAYERS CAN TALK WITH MODERATORS <- this is on by default and allows banned players to hear moderators and also allows moderators to hear banned players. Other than that, a banned player is unable to hear other players (unless they are
also banned) and all other not banned players are unable to hear the banned player if MUTE_BANNED_PLAYERS is enabled.
=================================================================
*** *** *** *** *** *** *** ***
The following features add some kind of "auto" moderation so they are probably not fully compliant, even though they only "auto-moderate" users with illegal mods who try to mess with the world, so it's debatable if that counts.
*** *** *** *** *** *** *** ***
=================================================================
ANTI PICKUP SUMMON MOD <- enable if you don't want non-admins to summon the admin panel pickup with mods. Costs a tiny bit of performance.
=================================================================
ANTI NO TELEPORT MOD <- enable if you don't want others to bypass the ban via no-teleport mod. Some people have a no-teleport mod to bypass a ban. This will detect those and attempt to remove them from VRChat. At the very least, it should prevent them from messing with this script. It is disabled by default, enable it at your own risk.
=================================================================
USE HONEYPOTS <- This adds some traps for all those script kiddies out there and will disconnect them for "unusual client behaviour" if they indeed behave unusual, because no vanilla client could be able to call the methods and fall into those traps. This somehow works
for 50% of the users, the other ones will at least stop running this udon behavior so they cannot mess with it anymore. This can however introduce lag for those users at that moment and is a drastic measurement. It is disabled by default, enable it at your own risk.
=================================================================
SUPPRESS WHITESPACE CHARS <- Attempt to remove unicode whitespace chars when checking for perma bans. It can cause false positives / collateral damage.
=================================================================
*** *** *** *** *** *** *** ***
The following feature is (most likely) not compliant, so it is only available when you disable compliance first
*** *** *** *** *** *** *** ***
=================================================================
PERMA BAN LIST <- enable this option to permanently ban players before uploading or updating your world.
=================================================================
============================= ADD-ONS ============================
ADMIN ONLY OBJECTS <- exposes the possibility to add gameObjects which are enabled for admins. When used with other scripts, it is recommended to use _optionalSecureSpecialReceiver instead and let their script enable itself
=================================================================
MODERATOR AND ADMIN ONLY OBJECTS <- exposes the possibility to add gameObjects which are enabled for moderators & admins. When used with other scripts, it is recommended to use _optionalSecureSpecialReceiver instead and let their script enable itself
=================================================================
DESTROY FOR OTHER PLAYERS <- will destroy the admin/moderator objects for other players who should not have access to them. If disabled, the objects are only disabled instead of destroying them, which means people with mods might be able to enable them.
=================================================================
USE CUSTOM ALT ACCOUNT DETECTION <- example code to detect alt accounts from some really malicious users. Can cause collateral damage and is performance heavy. Before activating it, you must insert additional code that can be obtained through my discord. This feature was requested by a customer. Don't use those without reading the moderation
guidelines first. Abuse can lead to VRChat asking you to remove those from your world.
(see https://docs.vrchat.com/docs/udon-moderation-tool-guidelines)
=================================================================
=========================== Settings ===============================
ADMIN CAN FLY <- disable this if admins should NOT be able to fly. If you disable this, the “everyone can fly” setting has no effect and nobody will be able to fly.
=================================================================
MODERATOR CAN FLY <- enable this if moderators should also be able to fly. Has no effect when “everyone can fly” is enabled.
=================================================================
EVERYONE CAN FLY <- disable this if everyone in your world should be able to fly, not just admins.
=================================================================
CAN BAN ADMINS <- enable this if admins and moderators should be able to ban themselves and other admins / moderators, e.g. for testing the script functionality
=================================================================
MODERATOR CAN BAN <- disable this if moderators should NOT be able to ban other players like admins can. If disabled, they are like regular players, but you can still give them flying powers regardless.
=================================================================
SUMMON PANEL FUNCTION <- disable this out if you don't want to be able to summon the panel by pressing the configured summon panel button in the inspector. This feature adds frametime costs and is probably a bad idea when you have lots of admins/moderators using this at the same time and press the button for unrelated reasons such as typing in a chat system, so disabling it can make sense. Note that this script has an API to avoid that, but requires all chat system / text input fields to use that API.
=================================================================
ACCURATE CAPSULE POSITIONS <- disable this if the player seeking is costing too much frametime cost for admins while seeking (very unlikely)
=================================================================
-------------------------------------------------------------------------------------------------------------------
Make sure you use the new VRChat Creator Companion to have the new UdonSharp in your project (not available without).
In case you don't use the creator companion, see the instructions below (not recommended)
Please make sure you have the newest SDK3-Worlds (https://vrchat.com/home/download) and UdonSharp
(https://github.com/Merlin-san/UdonSharp/releases/latest) imported into your project if you use UdonSharp.
In case you need to update your SDK or UdonSharp, please follow these steps:
0. Enter Playmode in each scene. If there are compile errors, remove the scripts that have an issue first.
1. Close the scene (e.g. by opening a new empty scene instead) and then close Unity (and Visual Studio if you have it open)
2. Backup your whole Unity Project folder, e.g. by zipping it
3. Delete the following files in "Assets":
```
VRCSDK.meta
VRChat Examples.meta
Udon.meta
UdonSharp.meta
```
4. Delete those folders in "Assets":
```
VRCSDK
VRChat Examples
Udon
UdonSharp
```
5. Open the project in Unity, ignore the console errors, DON'T open your world scene
6. Import newest VRCSDK3 for worlds (https://vrchat.com/home/download)
7. Import newest UdonSharp package (https://github.com/Merlin-san/UdonSharp/releases/latest)
8. Enter playmode in each of your world scenes now (!)