Releases: Chovei/Nyxalls-VRCX
Release list
VRCX 2026.09.09
2026.09.09 — Profile tags, a clearer moderation timeline, and steadier request pacing
Added
- Personal profile tags. You can now stick your own labels on anyone — as
many as you like, each in a colour you pick — straight from their profile
(the + next to the Trusted User / 18+ badges). They show as coloured
badges in the profile header, and they are private to your account:
nothing is sent to VRChat, and the tags you put on people from one account
never show up on another. - VIP marker. Anyone on your favorites now gets a gold VIP badge on
their profile automatically — no setup. - Open a profile from the User Locator. Click a person's name in the User
Locator — in the search results, the result card, or your watch-list — to
open their full profile. - Request-pacing readout. Settings → Advanced now shows how VRCX is pacing
its VRChat API calls this session: whether the pipeline is active, and how
many requests are queued and sent.
Changed
- VRChat requests are now paced per account, in two lanes. Ordinary
browsing — profiles, friends, worlds — stays fast, while high-impact bursts
such as group invites are sent on a slower, conservative lane to stay well
clear of VRChat's rate limits and soft-bans. Marking notifications as read
now flows through the same pacing, so a backlog can't hammer the API.
Fixed
- The moderation timeline no longer says "unknown". Group events that
aren't moderation actions — someone joining the group, a role being assigned,
an invite being sent — now read as Joined group, Role assigned,
Group invite and so on, instead of a bare "unknown" in front of the
description. A brand-new event type VRChat might start sending is shown in
readable words rather than dropped. - Avatar Cache Manager scrolling. Rows no longer flash or come up blank
while you scroll the cache list.
Removed
- The "Hard action engine" box in the Group Inviter. It showed internal
counters — including one that was always zero — under a name that meant
nothing to anyone using the app. The invite sender itself is unchanged.
An access key is required to sign in. Full history: CHANGELOG.md
VRCX 2026.08.28i
2026.08.28i — Undo the account-switch change from 28h
Fixed
-
Reverted 28h. Its account-switch fix broke logging in: correct passwords
were rejected as wrong, and because VRCX deletes a saved account when it sees
that particular error, each failed attempt removed one — so it got worse the
more you tried.The cause was mine. Clearing the browser's cookies is asynchronous: it
schedules the deletion and returns before it has happened. 28h cleared them
and then immediately wrote the account's saved session, so the deletion
landed afterwards and wiped what had just been written, including the cookie
that remembers this device passed two-factor.Everything from 28h is undone. Logging in and switching accounts behave
exactly as they did in 28g.
Known issue, back for now
The bug 28h tried to fix is present again: if you switch to an account that
cannot sign in, clicking a different saved account afterwards can report the
first account's error. Signing in from the login form works. This will be fixed
properly — the previous attempt was shipped without being run in a real
install, and this is the correction for that.
An access key is required to sign in. Full history: CHANGELOG.md
VRCX 2026.08.28h
2026.08.28h — Switching accounts switches accounts
Fixed
-
Picking a saved account could sign you in as the previous one. Reported
after a banned account: switching to it failed, as it should — but clicking a
different saved account then showed the banned account's message again.VRCX was not repeating a stale error. It was genuinely asking VRChat "who am
I?" while the previous account's session was still active, and reporting the
honest answer. Applying a saved account's cookies added them alongside the
old ones instead of replacing them, and VRChat honours an existing session
over the login VRCX was attempting.The wrong message was the visible half. The real consequence was that a
switch could leave VRCX making requests as an account you had not picked — a
banned account made that obvious, but switching between two working accounts
would have done it silently.Switching now clears the previous session first, so each account is asked
about on its own. -
Logging out could finish before the session was actually gone. The step
that clears your session was started but never waited for, so a login
beginning in that window could still act as the account that just logged out.
This is why the problem above survived a failed switch and not only an
ordinary one.
Note
An account banned by VRChat still cannot be signed in to, and that is correct —
the ban is enforced by VRChat, not by VRCX. What changed is that the refusal is
now reported against the account it actually belongs to.
An access key is required to sign in. Full history: CHANGELOG.md
VRCX 2026.08.28g
2026.08.28g — History, and a database that stops growing forever
Added
-
A History tab on every person. VRCX already knew three things about
someone and showed them in three different places: when you have shared an
instance, what avatars they have worn, and what moderation has happened to
them. They are now one timeline, newest first, with filters for each. Open
anyone and it is beside the Activity tab. -
Avatar history is now remembered. Until now, watching someone change
avatar went into the live feed and was gone the moment VRCX restarted.
It is now kept, so "what were they wearing" has an answer. -
Game log retention, off by default. If your database has grown large,
Settings → Advanced can now archive join/leave, video and event history
older than 90 days, 180 days or a year, and remove it. It shows you the
exact number of rows first and changes nothing until you agree to it.The archive is an ordinary database file you keep — openable with any SQLite
tool, and nothing is ever deleted unless the copy is verified first. Your
instance history, moderation records, notes and group audit log are never
touched by it, whatever the setting says.On the machine this was tested against, a one-year horizon archived 411,834
rows and took the file from 427 MB to 175 MB. -
A warning when the instance itself is struggling. The Instance Monitor
now shows a badge when VRChat's own log says the texture cache is failing or
the download queue is backing up — the reason everyone turns into an error
avatar and the world goes blurry. It appears only when something is actually
wrong.
Fixed
- The instance-quality warning used to be wrong in a way that made it
useless. It measured how long you had been playing rather than how badly
the instance was behaving, so it flagged every session, including perfectly
healthy ones — and a session that had already ended stayed flagged forever.
It now measures what has gone wrong since the last check, and stays quiet
during ordinary play.
An access key is required to sign in. Full history: CHANGELOG.md
VRCX 2026.08.28f
2026.08.28f — Recently Moderated says who it was
Fixed
- "Recently Moderated" listed user IDs instead of names. The panel shows
people moderated by anyone in the group, but VRCX only knew the names of
people it had moderated and of the moderators doing the acting — never the
person an action was about. So most rows had nothing to show but a raw
usr_ID. It now recognises anyone who has shared an instance with you, and
falls back to the name in VRChat's own audit entry for someone you have never
met — including a person banned before they ever joined. On the machine this
was reported from, two of the six most recent entries had names before; all
six do now. - Names are the ones people are using now. Where several are on record, the
most recent wins, so a rename does not leave you looking up a name nobody
answers to. - Clicking a row in "Recently Moderated" looked like it did nothing.
Selecting someone only works while they are still in the instance, and being
kicked or banned is what tends to put someone in that list — so the click
selected a person who was not there, blanking the detail panel and greying
out every moderation button. A row now opens whichever view can actually show
them: still here, they are selected so you can act on them; gone, their
profile opens. Hovering a row says which it will do.
Changed
- A build that cannot confirm your access no longer assumes you have it.
If VRCX has no way to ask Nyxall whether your account is entitled, it now
treats that as a no rather than a yes. Nothing changes for a normal install
on Windows, Linux or macOS — this closes a gap where a build on an
unrecognised update channel would have stayed unlocked forever without a
single check, revoked accounts included. - macOS is now recognised as macOS. It was being identified as Linux. Your
access check was unaffected, because it is tied to your account rather than
your operating system, and macOS has never had an in-app updater to send to
the wrong place.
An access key is required to sign in. Full history: CHANGELOG.md
VRCX 2026.08.28e
2026.08.28e — The moderation counters actually move now
2026.08.28d pointed those counters at the right place. This makes the right
place stay up to date.
Fixed
- Kicks, Warns and Bans stayed at zero even after you moderated someone.
VRCX asks VRChat for the group's moderation log once, when you open the
Instance Monitor, and then never asked again — so anything that happened
while you sat watching was invisible to it. On the machine this was reported
from, that log was nineteen hours out of date with the monitor open the whole
time. VRCX now checks once a minute while the monitor is open, so your own
actions and other moderators' show up as they happen.
Changed
- Each counter now explains itself. Hover any of them to see what it counts
and where the number comes from — Joins and Leaves are read from the game log
and update instantly, while Kicks, Warns and Bans wait on VRChat's own
moderation log. - The Mutes counter says what it cannot see. VRChat's group moderation log
has no entry for a mute at all, so a force mute done from the in-game menu is
invisible to VRCX — and to any other tool. That counter can only ever count
mutes issued from VRCX itself, and it now says so instead of showing a zero
that looks broken.
An access key is required to sign in. Full history: CHANGELOG.md
VRCX 2026.08.28d
2026.08.28d — The Instance Monitor tells the truth
Reported by a moderator using it on the door of an 18+ group. Four things were
wrong or missing; all four are fixed.
Fixed
- Every Visitor was labelled "Known". The rank was worked out by looking
for the word "trusted" inside an internal class name — and a Visitor's
class is untrusted, which contains it. So the lowest rank displayed as the
second-highest, in the colour to match. Ranks now read exactly as VRChat
names them. - Nuisance was never shown. VRChat flags a troublemaker while leaving their
ordinary rank in place, so someone flagged as a Nuisance appeared as a normal
"User" in green. Nuisance and Almost Nuisance are now shown in their own
right, and sort to the bottom of the list. - The Kicks, Bans, Warns and Mutes counters stayed at zero even while the
panel underneath them listed the actions that had just happened. They only
ever counted buttons pressed inside VRCX, so anything done in-game or by
another moderator was invisible to them. They now count what actually
happened, without counting your own actions twice.
Added
- Age verification, shown next to every player.
18+when VRChat confirms
it,not 18+when VRChat says otherwise, and?when it has not been checked
yet — three answers, not two, because "we have not looked" and "we looked and
they are not verified" mean very different things on the door. - Sort by last joined, now the default, so the person who just walked in is
at the top of the list instead of somewhere in the middle of the alphabet.
Sorting by name or rank is still there. - A "Not 18+" filter, showing only the people you would still have to ask.
Changed
- Instance quality is now visible: a badge appears beside the player count when
the instance is struggling — textures thrashing, or a download queue that
will not clear — with the numbers behind it in the tooltip. It stays out of
the way when everything is fine. - Fewer requests to VRChat. Looking up a world's name was re-downloading the
whole world every two minutes; it was the single busiest thing the app did.
An access key is required to sign in. Full history: CHANGELOG.md
VRCX 2026.08.28c
2026.08.28c — The restart fix, actually working this time
2026.08.28b claimed to fix a bug it did not fix. This one is verified against a
real restart rather than reasoning.
Fixed
-
Restarting VRCX while VRChat is running no longer records a false departure
for everyone in the room. 2026.08.28b named the wrong one of the three ways
VRCX re-reads the log when it starts, and fixed a path that was not the one
running. Measured on a machine with that build installed: twelve seconds after
startup it recorded 43 people as having left, each with a visit length that
ran backwards by up to ten minutes.All three paths are now handled, and there is a second, independent check
behind them: an exit that would give every person present a negative visit
length is not an exit, it is a stale timestamp, and nothing is recorded at all
in that case.Verified: same VRChat session, same stale entry in the log that triggered it
before, VRCX restarted — 0 false departures where the previous build wrote 43.
An access key is required to sign in. Full history: CHANGELOG.md
VRCX 2026.08.28b
2026.08.28b — Restarting VRCX no longer records impossible visit lengths
A follow-up to 2026.08.28a, fixing one bug that release was built too early to
contain.
Fixed
-
Restarting VRCX while VRChat was running recorded a false departure for
everyone in the room. When VRCX restarts it asks where each account
currently is, and it was mistaking that answer for news that you had just
changed instance — timed from when you originally entered, which by then
could be hours earlier. Everyone present was recorded as having left, with a
visit length that ran backwards. Measured live: 49 people at once, the worst
off by 88 minutes, and it happened again on the next restart with the error
grown to 96 minutes.This is what had been quietly corrupting the "time spent" figure on profiles.
2026.08.28a stopped the impossible values being stored or counted; this stops
them being produced.
An access key is required to sign in. Full history: CHANGELOG.md
VRCX 2026.08.28a
2026.08.28a — Group roles, and a lot of quiet repair
You can now manage a group's roles from VRCX: create them, rename them,
reorder them, edit what they can do, and delete them. Behind that, a run
through the engineering backlog fixed several things that had been wrong for a
long time without anyone being able to see them.
Added
- Roles tab in Group Manager. Create a role, rename it, change its
description, reorder it, edit its permissions, and delete it. Permissions VRCX
does not recognise are shown and preserved rather than quietly dropped — the
editor never rebuilds a role's permission list, it only adds to or removes
from the one VRChat sent. - Permissions are ticked, then saved. Every checkbox used to send its own
request, so changing four permissions was four writes and VRChat would rate
limit you. Ticks are now local until you press Save, and the whole change goes
out as one request no matter how many boxes you touched. Revert throws the
ticks away, and an "Unsaved" badge shows on a collapsed role so nothing is
lost track of. - Deleting a role asks properly. The confirmation says what will actually
happen — that it cannot be undone, and how many permissions everyone holding
the role is about to lose — rather than just "are you sure".
Fixed
- Time spent with a player was wrong. Some visits had been recorded with a
negative length, and those were being added into the total shown on a
profile — 3.49% of all recorded departures, affecting 5,382 people, the worst
single one at minus 57 hours. Durations can no longer be negative, and the
bad historical values are excluded from the figure instead of being summed
into it. - Time spent was also double-counted when two copies of VRChat were running
at once, because each one recorded the same departure separately. The overlap
is now counted once. - Group Manager could show "No manageable groups found" with groups right
there. Reloading meant the panel sometimes looked before your groups had
finished loading, and then never looked again. It now updates as they arrive,
and says "Loading your groups…" while it waits rather than claiming there are
none. - Your selected group is no longer forgotten when the group list happens to
be empty at the moment VRCX starts. - Two log readers had silently stopped working. Video-player events from
USharpVideo stopped being recorded when VRChat changed how it writes them, and
the SteamVR startup event could never be recorded at all for anyone in VR
because of a mistake in the check. Both work again. - Group role reordering works. It had never worked once.
Changed
- "Kick" in group moderation is now "Remove from Group". It removes
someone's membership; it cannot eject a person from an instance they are
currently in, and VRChat has no way to do that. The old wording promised
something the button could not deliver. - Event history is now searchable by kind. Vote kicks, video errors, failed
joins and the rest used to be stored as plain text with nothing marking what
they were. - The database reclaims a large amount of disk space on first start. An
earlier upgrade kept a full backup copy of the game-log tables, which was
never removed. Those copies were verified to contain nothing the live tables
do not already hold before being dropped. - VRCX now notices when one of its log readers goes quiet, which is how the
two broken ones above went unnoticed for years.
An access key is required to sign in. Full history: CHANGELOG.md