Aller au contenu

FOS Tablet System — Pro

Ce contenu n’est pas encore disponible dans votre langue.

Version 1.0.0 · requires FOS Essentials Core 1.1.0 or later · also requires FOS Tablet System — Standard 2.1.0

Turns the four fixed roles of the Standard edition into as many as your world needs, each with its own permissions.

Requires FOS Tablet System Standard 2.1.0 and FOS Essentials Core 1.1.0.

Upgrading? Read CHANGELOG.md first.


Pro adds components beside the Standard ones. It never replaces a component on your prefab, so upgrading costs you none of the wiring you already did.

Drop the Pro package in next to Standard, and everything you had keeps working exactly as before until you open the role matrix and change something.


FOS Essentials > FOS Tablet System Pro > Create Example

Builds a working example in your open scene: five roles, two role gates with the objects they filter, and an arrival point per role. One Ctrl+Z removes all of it.

It needs the Standard tablet in the scene first — it wires itself to your staff manager.

Every Pro component points at the staff manager, which lives in the tablet instance in your scene. A prefab cannot hold a reference to a scene object: Unity clears it when the prefab is saved.

An example shipped as a prefab would therefore arrive with every field empty, and the first thing you would do with this pack is debug a broken example. A generator produces one wired to your tablet instead, and stays useful afterwards for starting over.

That is also why Prefabs/ is empty here: there is nothing in this edition that a prefab could carry.

The Greeter role. It teleports to newcomers and reads the log, but cannot punish anyone. A ladder of ranks has no way to express that role — it is the whole reason the matrix exists.


FOS Essentials > FOS Tablet System Pro > Role Matrix

One row per role, one column per permission. Select the GameObject carrying your Staff Manager, or drop it in the field at the top.

Column Meaning
# The role’s level. Higher outranks lower.
Name What players read, when no translation key is set.
Translation key Read from FOS Localization, so role names follow the player’s language.
Grants up to The highest role this one may hand out.
Frz Iso Mut TP Freeze, isolate, mute, teleport to a player.
Rol May change roles at all.
Eq May act on someone of the same rank.
Com Pan Log Community settings, open the staff panel, view the log.

That is the whole point of the matrix. A rank answers who outranks whom; it cannot say this one mutes but never isolates, which is the first thing a team of more than two people asks for.

You can now build a greeter who only teleports, a chat moderator who mutes and nothing else, or a recruiter who hands out roles without being able to moderate anyone.

Levels are not decoration: Grants up to, act on an equal rank and the founder protection all compare levels. Order your roles from least to most trusted.

Reset puts back the four original roles with the permissions the Standard edition applies. It is the sane starting point, and the way back if you get lost.

Back to rank-based empties the matrix entirely. Permissions are then derived from rank again, exactly as Standard does it — Pro’s other features keep working.


Some settings are ticked in good faith and only show their consequence in a live instance, when it is too late.

A role that grants above itself. It can create someone more powerful than itself, and rank stops meaning anything. Flagged in red.

A role that grants its own rank. Its holders recruit peers without limit — normal for your top role, which is how an admin delegates, questionable for a middle one. Flagged as a warning, and only on roles that are not the highest.

Nobody can open the staff panel. No moderation is possible at all.

Nobody can edit the community settings. The rules and adult content switches stay locked for everyone, forever.

A role with no name. Players see a number.


Only the last one can be removed.

A role is an index, and every player’s role, every visibility rule and every “grants up to” refers to it by number. Removing one from the middle would renumber all the ones above it and silently shift everything that pointed at them.

To retire a role in the middle, empty its permissions and stop assigning it.


FOS Essentials > FOS Tablet System Pro > Account Roles

A list of display names and the role each one holds. Someone on that list arrives with their role already applied, in every instance, without anyone having to name them.

The role an account carries is the lowest it can hold:

  • They arrive with it, every time, and get it back after a crash or a rejoin.
  • They can be promoted above it for the duration of an instance.
  • They can be brought back down to it — that is how a temporary promotion is revoked.
  • They can never be pushed below it, by anyone, including an admin.

That single rule covers permanent staff and one-evening helpers without a special case for either.

Two limits you have to know before using it

Section titled “Two limits you have to know before using it”

The list is baked into your world. Adding or removing someone takes effect only after you upload again. There is no way around this: a role granted from inside the game would have to be stored somewhere trustworthy, and VRChat offers a world no such place. Player persistence is written by the player’s own client — perfect for a language preference, catastrophic for a permission.

A rename loses the entry. Udon exposes no account identifier, only the display name. A player who renames their VRChat account falls back to the arrival role until you update the list.

The window states both, so nobody discovers them in production.

Export writes name, role index and role name. The role name is redundant on purpose: without it, a file reopened six months later is a column of numbers.

Import replaces the whole list. It does not merge, unlike the translation table, and the window asks before doing it. An access list is read as a whole — merging would silently keep someone you had removed from the file, which is exactly the mistake you cannot afford on permissions.

A role can be written as its index or as its name; both are accepted on import.


Setting What it does
Founder role What the first player of the instance, and the instance creator, receive.
Role on arrival What everyone else gets. Visitor by default; a private world may want VIP.

The founder still cannot be demoted, whatever role you give them.


Add Component > FOS Essentials > Tablet System Pro > Role Gate

Put it on the object you want to filter, tick the roles that may see it, done. The inspector lists the roles by name, not as a bit mask, and tells you in one sentence what the setting produces.

Shown to the ticked roles, or hidden from them — one checkbox flips the meaning.

This is the one thing to understand about where to put it.

A behaviour on a disabled GameObject stops running. If the gate switched off its own object, it would never receive the role change meant to switch it back on: the object would stay dark until the world restarts, with no error and nothing to explain it.

So the gate switches its direct children by default. Put it on an empty parent and drop what you want filtered underneath. You can also fill the targets list to drive objects anywhere else in the scene.

The inspector flags them, because neither looks wrong in a column of checkboxes:

  • Nothing ticked, in shown to mode — the objects are hidden from everyone.
  • Everything ticked, in shown to mode — visible to everyone, so the gate is inert.

This arranges an interface, it does not protect anything. Hiding an object does not stop a determined player from reaching it another way.


Add Component > FOS Essentials > Tablet System Pro > Role Spawn

One arrival point per role: staff backstage, visitors at the entrance. The inspector draws one line per role, named, and follows the role matrix — add a role and its line appears here.

An empty slot means that role is not moved at all, which is a legitimate choice, not an oversight.

VRChat spawns a player before the synchronised list reaches them: on arrival, their own role is still unknown. The component waits until it is known rather than sending everyone to the arrival point and correcting itself a moment later — which would show up as a visible round trip every time a staff member connects.

Setting Default Why
Spawn on arrival on The point of the component.
Spawn on role change off Being promoted should not yank someone across the map mid-conversation.
Keep velocity off Arriving at full speed makes players slide or fall.

FOSRespawn() sends the local player back to their current role’s point, for a “return to spawn” button of your own.


The matrix is not synchronised. It is baked into your prefab, identical on every client, so it costs nothing on the network and no client can forge it. What travels stays one integer of role per player — going from four roles to twenty costs nothing more.

The permissions are read by the Standard edition’s authority, at the same single decision point as before. Pro provides the data and the editor; it does not duplicate the security model, which is the last thing that should ever exist in two copies.


  • Roles are edited through the window only. The arrays are bit masks: unreadable by hand, and a one-bit mistake gives a role that isolates instead of freezing with nothing to show for it.
  • Translation keys are optional. Without them, the names in the matrix are used as-is.
  • Quest and PC behave identically: there is no platform-specific code.