Changelog
What's new in XChat
XChat is in active development. Updates land on Discord first.
Download latest buildNotifications, chats, and money
- Notifications now stack in the bottom right, above the phone, and stay long enough to read. Nothing is ever overwritten: when several arrive at once they queue.
- A notification takes you where it points. A new message opens that conversation, being added to a group opens the group, and money arriving opens your Wallet. Click the x to dismiss without going there.
- A message that arrives while you are elsewhere raises a notification with the sender and a preview. A burst from one person folds into one card with a counter, and nothing is raised for the thread you already have open.
- You are told when the connection drops and when it comes back, so a quiet inbox is never a mystery. Blips that heal within a few seconds stay silent.
- Messages is one list of chats, newest first. A DM is simply a chat with two people, so the DMs and Groups tabs are gone.
- Create a group from the "+": pick one person and you get the DM with them, pick several and you get a group. Groups could not be created at all before this build.
- An unnamed group is titled by the people in it and can be named later. A group's header opens a members screen to rename it, remove someone (owner only), or leave.
- Group messages say who sent them, and a group message now lights the unread badge on the phone.
- Scroll to the top of a conversation to load its older messages, rather than stopping at the newest page.
- Send XDL to another player from the Wallet: search a name, pick them, enter an amount, confirm. The interaction menu's Send Money opens that screen with the person filled in rather than sending on the click.
- Hover an emote tile and the move plays as a short video preview instead of a still frame.
- Dances no longer snap at the end of every loop, and starting or interrupting an emote blends into your movement instead of popping.
- The bottom bar is now two floating groups inset from the edges, and the tool you have open lights up.
- The emote and wearables panels share one look, size themselves to their contents, and hide the search box when everything already fits.
- Floating windows, menus, and the character editor share one rounded look, sized to the surface it sits on.
- The game launches in fullscreen at your desktop resolution. Alt+Enter and F11 still toggle.
- You are asked before leaving a group, removing someone, or deleting a photo, and the question names what you are about to do. Sending, muting, and renaming still just happen.
- Searching for people to start a chat with waits until you stop typing, and tells you when nobody matched.
- The system menu can be driven from the keyboard: Escape opens it, the arrow keys move, Enter picks.
- The Dynamic Vibrance and NIS settings are gone. Dynamic Vibrance drew a watermark across the picture to make it more colorful than the artists intended, and NIS did nothing at all.
- The Intimacy action is hidden until it works, rather than sitting on the bar rejecting you.
- Fix emotes being unreliable for everyone watching you: someone arriving mid-dance now sees the dance in progress, and an emote lost on a bad connection no longer leaves you standing still while others see you move.
- Fix entering first person spinning your avatar around to face the camera.
- Fix scrolling a list, a picker, or the phone to the end zooming the camera with the rest of the flick.
- Fix scrolling or right-dragging over the system menu or Settings moving the camera underneath them.
- Fix room thumbnails showing square photo corners inside a rounded frame. Both room lists also drop the arrow at the end of every row, which competed with the player count.
- Fix the phone header's back arrow, title, and buttons sitting at three slightly different heights on every app.
- Fix a room preview that fails to load retrying sixty times a second for as long as it is on screen.
- Fix a room looking like a different kind of thing depending on whether you reached it from Browse or from My Rooms.
- Fix renaming a chat bouncing it to the top of the list as though somebody had spoken in it.
- Fix the disabled Intimacy action explaining itself with "Intimacy is indev", which read as a typo rather than a sentence.
- Launcher: the launcher reaches 1.0. An interrupted download picks up where it stopped, files you already have are not downloaded twice, and an update that dies halfway repairs itself rather than needing a reinstall.
Under the hood
- Emote playback is now rebuilt from replicated state against a server clock instead of one-off messages, so a dropped message or a late arrival cannot leave two people seeing different things.
- One image cache now serves the whole phone. Room previews, profile photos, and the account avatar were three separate downloaders and decoders, and the photo cache died with the screen that owned it.
- A room server only advertises itself once its room is actually built, so a bad save can never put an empty level in the browser.
- Room servers that are allocated but never successfully joined now clean themselves up instead of staying alive indefinitely.
- The room browser's thumbnail capture no longer stalls the frame it is taken on.
Buy someone a drink
- Buy a drink for another player from the interaction menu, choosing from Coffee, Beer, Martini, Whiskey, and Champagne, priced from 1 to 25 XDL.
- A drink is offered, never forced: the other player accepts or declines, the offer expires after a minute, and you always hear how it ended.
- The Wallet is now a real phone app, with your balance and an activity list of the gifts you have sent and received. A drink someone buys you shows up live.
- New accounts start with 1000 XDL while XChat is in development, so a first round is on the house. It is a welcome grant for the indev economy, not a permanent part of it.
- Escape now declines an open invite or drink offer instead of opening the system menu on top of it.
- Menus show a proper back arrow instead of a broken glyph, and menu icons no longer stretch out of shape or drag their labels out of line.
- The emote picker drops the pose price badges and buy-on-click, which were priced against the wrong poses, and the favorites hotbar, which never filled. Poses still play from the picker as before.
- Fix multi-second rubber-banding for everyone in a furnished room.
- Fix profiles and sign-in stalling for several seconds when Discord is slow to answer.
Under the hood
- Saved rooms are now checked against the asset catalog on save, with a hard per-room cap on items that need live simulation.
- Gifting is safe against two purchases racing each other, and a balance can never go negative.
- Room access is decided in one place and carried into the room as a join grant.
- The public room endpoints are rate limited and uploads are size capped.
- Slimmed the client: unused interface machinery, engine features, and video decoders removed.
- Cut features that were never reachable in game: a lottery, referral rewards, a pose economy, and typed-emoji emotes.
Rooms, homes, and a rebuilt phone
- Upgraded the entire game to Unreal Engine 5.8, with DLSS and frame generation updated to match and Lumen Lite global illumination.
- Build your own rooms in a new in-game editor: drag furniture from a catalog, place it with a move/rotate/scale gizmo and ghost preview, snap to a grid, and use undo/redo, copy/paste, and duplicate.
- Editor tools are laid out in an Unreal-style toolbar with view modes, an FPS overlay, a reference floor grid, adjustable fly speed and field of view, and drop-to-floor placement.
- A right-hand inspector shows and edits the selected object, and the asset palette is a grid of thumbnail cards.
- Save and publish your room; publishing restarts the live room so visitors see your changes, and you can reset any room back to its starting preset.
- Saved rooms carry their authored lighting and a dynamic sky, rebuilt exactly as designed.
- Personal homes: invite a friend and travel to their place, or invite people into yours.
- My Rooms: manage your rooms from the phone as a thumbnail gallery with detail pages, and visit, rename, or edit them.
- Rooms browser rebuilt as an iOS-style storefront with per-room detail pages, thumbnails, and join gating.
- Phone redesigned in iOS dark mode: Music is now a real app instead of a floating window, app icons are custom XChat glyph tiles, and the Social, Messages, and Profile apps have real search fields and proper empty states.
- Message, Review, and Relation actions are now hidden on your own profile.
- Settings moved into a full-screen system menu, with a new Controls section for mouse sensitivity and invert look.
- Renamed the Face camera preset to Head and pivoted it on the head bone for tighter framing.
- Fix Discord login opening two browser windows.
- Fix a crash when pressing the Rooms button while the phone is open.
- Fix hair simulation crashing on some AMD (Polaris) cards, and restored natural hair sway on other hardware.
- Fix the character-preview camera clipping through the floor or the character.
- Fix subtitles not appearing during voice preview in the creator.
- Launcher: installs and self-updates were rebuilt for Windows and Linux, with a branded install splash and a cleaner borderless window.
- Launcher: now creates a desktop shortcut, focuses the existing window instead of opening a second one, and shows game-download progress on the Windows taskbar.
Under the hood
- Upgraded the whole project to Unreal Engine 5.8, spanning rendering, animation, and graphics.
- Rooms now run on dedicated servers that are created on demand and released when empty.
- Rooms are saved to a versioned format and rebuilt exactly on the server, including their props, rigs, and lighting.
- FSR and XeSS, along with Intel's XeFG frame generation, are temporarily out: neither AMD nor Intel has released an Unreal Engine 5.8 build of their plugin. They come back once the official 5.8 plugins ship. NVIDIA cards keep DLSS and frame generation, and TSR upscales well on any GPU in the meantime.
- The phone interface was rebuilt on a shared component system for a consistent look across apps.
- Dedicated servers now skip client-only systems to run leaner.
Identity and voice expression
- Your character now has one globally unique name that is your identity, chosen in the creator, with a fresh suggestion when you switch gender.
- Doubled the spoken-message limit to 128 characters, and speech is now tidied into clean sentence form.
- Vocal gestures expanded to a 24-move grid opened from a smiley button in the speech bar and dismissed by clicking away, including new code-driven gestures like laugh and giggle.
- Emote names in menus are now readable labels instead of raw asset names.
- Fix hardware ray tracing so it softly steps down on GPUs without RT support instead of failing to start.
- Fix the bottom-bar Room and Phone buttons so they navigate correctly while the phone is open.
- Fix voice preview to keep your selected preset voice when opening customization, and show the stop icon the instant you press play.
- Launcher: clearer error messages, including recognizing a wrong system clock, plus retries on transient server errors.
Under the hood
- Refined the internal voice-and-emote delivery system.
- Crash and hitch reporting now flags shader-compilation stalls and filters out false not-responding reports.
Crash diagnostics and stability
- Crash reports now capture GPU memory pressure and full graphics and session context, so out-of-memory and driver crashes can actually be tracked down.
- Smoother character screen: background shader warming was raised to cut render-thread stalls.
- Fix false "app not responding" reports caused by dragging or resizing the window.
- Fix a rare crash when the bottom bar was built during a level change.
- Launcher: smoother download speed and time-remaining readout, a verifying step when resuming a download, and large files now transfer in bounded chunks to survive flaky connections.
Under the hood
- Crash reports now include graphics and session context and are grouped more reliably.
Smooth startup and clean reveals
- Reworked the whole startup and room-transition flow so there are no black frames, bare scenes, or half-built avatars. The loading movie hands off to the character screen only once it is truly ready.
- Characters stay hidden until fully built, then the gallery reveals all at once.
- The startup camera no longer lunges toward the character list, and the character list now shows a single character on a fixed pedestal.
- Reworked the loading screen into a calm breathing logo pulse.
- Fix sign-in folded into the character screen to remove a second loading screen.
- Fix the loading screen appearing choppy or frozen, or dismissing too early, in packaged builds.
- Launcher: download retries are now progress-aware, so a stalled transfer restarts cleanly instead of failing.
Under the hood
- Rebuilt the startup reveal flow to be driven by readiness signals instead of polling.
Look-at during performances
- Head, neck, and eye look-at now plays during emotes, dances, and intimacy, authored per animation so characters hold eye contact through a performance.
- Re-enabled the intimacy invite on the bottom bar.
- Smoother arrivals: the loading screen now waits for shaders to finish compiling so you don't hitch when a room appears.
- Fix false "not responding" reports during the initial map load.
- Launcher: better connection diagnostics, including telling a TLS proxy apart from having no internet.
Eye contact, movement, and intimacy
- Procedural eye contact: characters glance at and track nearby people with natural over-the-shoulder turns, idle glances, and a smooth release when someone leaves their view.
- Procedural blinking with pupil dilation that reacts to light.
- Feet are grounded to the floor so they stop floating, including in heels.
- Overhauled movement: proper diagonal strafing, walking backward now plays a reversed animation instead of spinning the body around, and the body sway on quick A/D taps is gone.
- Intimacy sessions now lock movement, jumping, and the interaction menu so partners stay aligned, first-person no longer desyncs the animation, and the invite popup shows the sender's name.
- Intimacy sessions can automatically undress participants as the animation requires.
- New right-side intimacy panel showing your partner, the current pose, and an end-session button.
- Characters play a check-your-phone animation while idle.
- Branded transition screen with a pulsing logo between rooms.
- Discord Rich Presence shows what you're up to.
- Faster, more reliable joins: a dead server now times out in about 5 seconds instead of hanging on "Connecting…".
- Default room volume lowered to a comfortable level.
- Fix frame-generation (DLSS-G) deadlocks during map transitions.
- Fix hair simulation blowing up on integrated GPUs by disabling it there.
- Launcher: long downloads no longer time out, there is a disk-space check before downloading, transfers resume with retries, and error messages are clearer.
Under the hood
- Reworked how the client travels between the menu and rooms for reliability.
- Added internal playtest tooling to launch a room and several clients at once.
Message voice and pitch
- Text-to-speech playback on direct-message bubbles, with an iOS-style play/stop button and auto-play off by default.
- New voice pitch slider in character edit to fine-tune your chosen voice.
- Emotes now stop the moment you move instead of awkwardly suspending and resuming.
- Fix the Linux startup crash caused by the crash handler lacking execute permission.
- Fix Ultra selection in the graphics quality dropdown, and default the frame-rate cap to 120 FPS.
- Fix the third-person camera so it pivots from the body instead of the spine bone.
- Launcher: on a fresh install, the base build and its first patch are now applied in a single pass.
Linux stability
- Fix render-thread hangs on Linux.
- Smoother waiting state after you sign in through the browser.
- Launcher (Linux): strips leftover AppImage environment variables before launching so the game starts cleanly.
Phone camera and profiles
- New phone camera app: take selfies, flip the camera, view photos full-screen with swipe-through navigation, and delete shots.
- Photo viewer redesigned as an immersive full-screen overlay that opens straight to the photo.
- Selfie camera pulled in closer for better framing.
- Discord login now opens in your system browser instead of an embedded window.
- Glassmorphism phone app icons.
- Relationships reworked: dom/sub split into separate roles with an owner, plus inline custom relationship labels.
- Profile editing improved with a kink chip selector, a longer wrapping bio field, and an inline review score.
- Launcher (Linux): restores execute permissions on the game after download so it launches.
First-day hotfix
- The room list now flags servers running a different build so version mismatches are visible.
First public build
- First versioned, auto-patching build: the launcher downloads only the changed pieces of each update instead of the whole game.
- Character creator with female, male, and trans bodies, face and body sliders, real color pickers, and a layered wardrobe with starter outfits.
- Detailed eye customization, plus eyebrow and eyelash styles with their own colors.
- Character edit reorganized into clustered tool groups with a reframed live preview and proxy body thumbnails.
- Your character speaks aloud to nearby players through text-to-speech (no microphone needed), with selectable, labeled voices, one-click preview, and lip sync timed to the audio.
- A personality you pick shapes how your character moves, idles, and greets others.
- Persistent subtitles that fade by distance and prioritize the closest, loudest speakers.
- Hosted rooms with multiple real players together in the Brickhouse Bar venue, joinable by password or invite code, with owner-set visibility and rules.
- In-world phone with a rooms directory (join or spectate), direct messages delivered in real time, social profiles, group chats, a wallet, and a photo feed.
- In-world music: a curated station catalog with genre filters, custom Icecast and Shoutcast stream URLs, floating playback controls, and a per-world volume slider.
- Movement and camera: point-and-click and WASD, a unified first- and third-person control model, a first-person camera, a rebuilt spectator free-camera, and a small jump.
- Interaction feedback: hand cursor on buttons and interactive world objects, and a clear prompt when a target is out of range.
- Graphics: hardware ray tracing with a software fallback, DLSS and NIS upscaling, quality presets with per-GPU recommendations, and detailed scalability controls.
- Native Windows and Linux builds, Discord login through an embedded browser that closes itself when you are done, and automatic crash reporting.
- Quality of life: pose ownership with a hotbar, and common typos are silently fixed before they are spoken.
- Fix hair so it no longer shimmers on Radeon GPUs.
- Fix music stations so playback survives moving between rooms and the character screen.
- Launcher: brand-new Windows installer that is branded and self-updating with signed updates, automatic GPU detection, and a download screen with live speed and time remaining; the Linux launcher ships as an AppImage that runs on modern Ubuntu after a series of graphics-stack fixes.
Under the hood
- Reworked how the game is packaged so the launcher can deliver small incremental patches.
- Added a realtime system for live messages and presence.
- Reworked the character animation system for performance.
- Moved all interface icons to scalable vector art and unified the theme.
- Hardened configuration handling for shipping builds.
What's next
- An intimacy and sex system, with the paired-interaction and pose groundwork already in place.
- In-world social minigames such as pool, poker, or dice.
- Lovense toy integration during scenes.
- A macOS build after Windows and Linux are solid.
- Larger connected environments beyond single rooms.
- VR support as an optional mode, never the default way to use XChat.