Skip to content

Releases: Chovei/Nyxalls-VRCX

VRCX 2026.09.09

Choose a tag to compare

@Chovei Chovei released this 09 Sep 12:03

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

Choose a tag to compare

@Chovei Chovei released this 03 Sep 09:35

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

Choose a tag to compare

@Chovei Chovei released this 03 Sep 07:41

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

Choose a tag to compare

@Chovei Chovei released this 30 Aug 08:28

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

Choose a tag to compare

@Chovei Chovei released this 30 Aug 02:39

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

Choose a tag to compare

@Chovei Chovei released this 30 Aug 01:28

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

Choose a tag to compare

@Chovei Chovei released this 29 Aug 23:58

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

Choose a tag to compare

@Chovei Chovei released this 28 Aug 23:08

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

Choose a tag to compare

@Chovei Chovei released this 28 Aug 21:36

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

Choose a tag to compare

@Chovei Chovei released this 28 Aug 20:54

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