Repository navigation
xStarbound v4.5.5.3: The UI Modding Update™ ... and crash fixes
Before reporting issues with xStarbound, please scroll down (and click Read more if needed) and read any sections appropriate to your setup or issues.
🪟 Windows users: The MSVC build will be available shortly. Just want to get v4.5.5.3 released now because technical issues delayed the release for a day.
-
v4.5.5.2 [Crash Fix::Asset Loading] [@FezzedOne] Fixed a potential out-of-bounds memory access that could occur when loading
.2functionsasset files (like the one used for armour protection) that are malformed due to Y-axis row array with fewer than the two required elements (a Y-axis value, a number, and an array of as many point values, also numbers, as the first array value in the.2functionsarray grid. Also made asset loading errors for.functions,.2functionsand.configfunctionsasset files a lot less cryptic. -
v4.5.5.2 [Bugfix::Mechanics] [@Bottinator22] Fixed a bug where the game wrongly assumed a given elemental type did not exist in the assets if a damage type of that name didn't exist in the assets, even if the elemental type existed (though it still correctly threw an exception for nonexistent elemental types).
-
Docs::v4.5.5.1r1 [Docs::
lua.md] Fixed a typo and some unclear wording aroundxpcallusage. -
v4.5.5.1 [Crash Fix::xClient::Lua/UI] [@FezzedOne] Fixed a crash that happens when a pane script deletes any items in a list widget during the invocation of the Lua callback for that widget, such that the newly selected item ends up out of bounds after the callback is run. With this fix, if that edge case happens, the selection is simply cleared. This crash was first reported by @GrayShip (Sergey on the Steam Workshop) and sometimes occurred when shift-clicking items out of Forgemaster's Inventory via the item icons. See GrayShip's OpenStarbound patch for the equivalent fix for OpenStarbound v0.1.15.1 (plus extra functionality to allow modded script panes to replace or substitute for the retail inventory pane).
-
v4.5.5.1 [Change::xClient]
"allowAnyItemInBags"(under/player.config:inventory) now no longer allows items to automatically be picked up, spawned, etc., into bags not matching their filters, presenting less «available» inventory space for item pickup purposes, while still letting you (or a script usingplayer.setItem) manually put items into any bag. This should avoid item pickup issues with mods (like Forgemaster's Inventory) that use hidden inventory bags internally (and avoid mass item pickups making a mess of your inventory) while keeping the actual intended behaviour of"allowAnyItemInBags"for players (and modders).For modders and hoarders: Enable
"disableBagPreferences"via a patch to disable bag filter checks entirely and have item pickups just go into the first available bags with space in them (in order of configured priority). -
[NEW::xClient::Lua/Pluto::
pane/widget] [@KrashV] Added the followingpaneandwidgetbindings from OpenStarbound v0.1.15:pane.anchorpane.setAnchorpane.anchorOffsetpane.setAnchorOffsetpane.getScreenPositionpane.setScreenPositionwidget.clearListSelectedwidget.getScrollOffsetwidget.setScrollOffsetwidget.getMaxScrollPosition
See
$docs/lua/scriptpane.mdand$docs/lua/widget.mdfor more information. -
[Bugfix::xClient::UI/Building] [@KrashV] Objects without a specified
"placementImagePosition"offset in their parameters or asset config no longer kick the player to the main menu when visually held for placement. Instead, an offset of[0, 0]is now assumed in that case. -
[Bugfix::xClient::Lua/Pluto::
widget] [@FezzedOne] Fixed an inconsistency where a fewwidgetbindings would throw a Lua dereference error when used (via «Lua smuggling») after the associated parent pane is destroyed while most otherwidgetbindings didn't (instead doing nothing instead). Now allwidgetbindings do nothing when their associated parent pane no longer exists.Caution: Don't rely on this behaviour on non-xClient clients! Make sure to gate it behind an
xsb or paneLoadedcheck if your mod is intended to work on OpenStarbound, retail, etc. -
[Performance::xClient] [@Bottinator22] xClient now has an OpenStarbound optimisation where the client no longer internally creates a cloned item every time an item with associated blueprints is picked up, even when the blueprint is already known. The internally cloned item is now only created when a UI notification with its display name is displayed. This should help with any remaining lag from picking up items.
-
[Documentation::
widget.md/directives.md] [@FezzedOne] Added missing documentation for text escape codes to$docs/directives/directives.mdand fixed a formatting issue affecting thewidget.setDataentry inwidgets.md. Curse you, auto-formatter! Also, thefont=<font>anddirectives=<directives>operations are non-retail and only available on xStarbound, oSBM and OpenStarbound, but I forgot to mention that in the new documentation before release. -
xSBCompat::v4.5.5 [Compatibility Bugfixes] [@FezzedOne] Fixed the following issues:
- Persona Roleplay Suite: Fixed an issue that resulted in visually glitchy duplicate wheel interfaces when holding down the FastSelect key while multiple player characters are loaded.
- Improved Inventory Stack Management: Fixed an oversight that prevented the patch from working as advertised when multiple players are loaded.
📂 Info on attached files
Attached files
The attached files contain the following:
-
docs.zip: Contains the full Lua API documentation for xStarbound v4.5.5.3, as well as documentation for xStarbound's build permissions system, JSON patch features and image directives. -
linux.tar.gz: This contains (64-bit) dynamically linked Linux versions of xServer and xClient v4.5.5.3, as well as a requiredlibsteam_api.solibrary, the requiredxsbinit.configfile, asteam_appid.txtfile required for Workshop support, andxclient.shandxserver.shscripts needed to start up xClient and xServer, respectively, without going through a launcher.If you use Fedora or an Arch-based distribution (not SteamOS!) and you have a CPU that supports x86-64-v4, you should download and use this release. NixOS users should use the Nix flake. Ensure you have GLEW installed through your distribution's package manager (
glewon Arch/Fedora-based distros,libglewon Debian/Ubuntu/Mint and the like,media-libs/glewon Gentoo, etc.).On other distros, use the statically linked release below. Extract all files from the
.tar.gzarchive into a new${starbound}/xsb-linuxdirectory — on Steam installs, your Starbound install is usually in~/.local/share/Steam/steamapps/common/Starbound/— and optionally set up your Steam or other launcher to runxclient.shinstead ofstarboundorrun_client.sh. -
linux-static.tar.gz: This contains (64-bit) Linux versions of xServer and xClient v4.5.5.3 that have most of their dependencies statically linked in, as well as the required files mentioned above.Use this version if you use SteamOS or any «non-bleeding-edge» distribution — e.g., Zorin OS, Linux Mint, Ubuntu, Debian, CentOS, etc. — or your CPU is too old to support x86-64-v4, if you're running xServer in a container or on a server instance, or if you get a library versioning error when you try to run the standard dynamically linked version of xClient or xServer.
If you don't use the provided launch script for xClient, check if the device
/dev/dspexists on your system. If not, launch xClient withpadsp— this command goes aftergamemoderun,prime-run, etc. -
linux-utils.tar.gz: This contains Linux versions of xStarbound'sasset_packer,asset_unpacker,make_versioned_jsonanddump_versioned_json, as well as a Linux-nativemod_uploaderand amod_uploader.shscript to start up themod_uploader. Drop these into the folder you putxclientandxserverin. The executables are statically linked, so they should run on any Linux system that isn't archaic.The
mod_uploaderrequires Steam (obviously) with Starbound on your account; to use themod_uploader, have Steam open, make sure you have Starbound'ssteam_appid.txtin the same folder, and then run the startup script (mod_uploader.sh, not the binary!) — there's no option to launch it directly from within Steam on Linux. -
windows.zip,windows-msvc.zipandwindows-msvc-pdbs.zip: This all-in-one ZIP archive contains everything needed to run xClient and xServer v4.5.5.3, including assets and Lua documentation (which will replace your stock docs!). Simply extract this into your Starbound directory to install xStarbound. The executables included inwindows.zipare built with MinGW; note that joining and hosting P2P sessions via Steam and Discord are not supported by this build. For this reason, the MSVC / Visual Studio build, which does have P2P support (and significantly smaller binaries), is provided aswindows-msvc.zip. The PDBs for the MSVC build are included inwindows-msvc-pdbs.zip, which should be extracted into the new xStarbound install'sxsb-win64\after installing xStarbound. Make sure to install these PDBs when reproducing crashes or bugs for reports (so it's a good idea to have them installed anyway).-
On Steam installs, your Starbound install is usually in
C:\Windows\Program Files (x86)\Steam\steamapps\common\Starbound\. If that folder doesn't exist, try removing the(x86)(including the space before it). Normally, you will need to double-clickxclient.exeto play with xStarbound. If you want to use Workshop mods, simply copysteam_appid.txtfromwin64toxsb-win64and make sure Steam is running before you start xClient. -
On Xbox Game Pass installs, your Starbound install is usually in
C:\Program Files\ModifiableWindowsApps\Starbound\. Before installing xStarbound, make sure to click the small menu button next to PLAY GAME in the Xbox launcher and select Enable Mods. Normally, you will need to double-clickxclient.exeto play with xStarbound. If you want to play it through the launcher, renamewin64towin64-vanilla, thenxsb-win64towin64, then renamexclient.exetostarbound.exe; do not rename any other files or folders. To use your existing Starbound saves, open%starbound%\xsb-win64\xsbinit.configin Notepad or another text editor and change the"storageDirectory"to"C:\\Users\\%username%\\%username%\\Documents\\Starbound\\"; replace%username%with your Windows username. -
On GOG installs, your Starbound install is in
C:\GOG Games\Starbound\by default. -
The MinGW version of xClient requires
discord_game_sdk_stub.dllto have that name instead of its usual name, but it's the same DLL otherwise.
-
-
windows-install.exeandwindows-msvc-install.exe: This is an installer for xStarbound v4.5.5.3. New xStarbound users on Windows should use the installer — it will install all required files and (if desired) add a Start menu shortcut for you. The installer supports English, Russian and several other languages. The installer may be used to update an existing xStarbound install as long as your install has the folder structure contained inwindows.zip. The executables installed bywindows-install.exeare built with MinGW; note that joining and hosting P2P sessions via Steam and Discord are not supported by this build. For this reason, an installer for the MSVC / Visual Studio build, which does have P2P support (and significantly smaller binaries), is provided aswindows-msvc-install.exe. Seewindows-msvc-pdbs.zipabove for installing the PDBs after installing the MSVC build of xStarbound.- Xbox Game Pass note: If you own Starbound through Xbox Game Pass, you will need to click the small menu button next to PLAY GAME in the Xbox launcher and select Enable Mods before running the installer. Xbox Live installs are usually found in
C:\Program Files\ModifiableWindowsApps\Starbound\, which may be marked as hidden, so you probably need to paste this path into the path field. To use your existing Starbound saves, open%starbound%\xsb-win64\xsbinit.configin Notepad or another text editor and change the"storageDirectory"to"C:\\Users\\%username%\\Documents\\Starbound\\"; replace%username%with your Windows username.
- Xbox Game Pass note: If you own Starbound through Xbox Game Pass, you will need to click the small menu button next to PLAY GAME in the Xbox launcher and select Enable Mods before running the installer. Xbox Live installs are usually found in
-
xSBassets.pak: This contains assets required by xStarbound. On Linux, drop this into a new$starbound/xsb-assets/directory — i.e., a newxsb-assetsfolder beside theassetsandmodsfolders. If you're updating from xStarbound v4.5.4 or later, you do not need to update the assets. If you're updating from an earlier version of xStarbound, you must update the assets. Windows users, note thatwindows.zipalready comes with the xStarbound assets. -
xSBassets.zip: Same as above, but not in a.pakfile. On Linux, extract this into a new$starbound/xsb-assets/directory — i.e., a newxsb-assetsfolder beside theassetsandmodsfolders. Windows users, note thatwindows.zipalready comes with the xStarbound assets. -
xSBCompat.pakandxSBCompat.zip: This is xSBCompat v4.5.5, a compatibility shim for xStarbound that mostly targets OpenStarbound mods. Install this if you're using any mods on the compatibility list (mostly «[oSB]»-tagged mods) listed as requiring this mod on xStarbound.Drop the
.pakfile or extract the.zipinto your$xStarboundInstall/xsb-assets/folder. The patch should be installed inxsb-assets/, as it currently has a hard xStarbound requirement due to its usage of xStarbound-only features. Please report any issues with xSBCompat in the repo's Issues tab or on Discord. -
xServerHelper.pakandxServerHelper.zip: This is xServer::Helper v4.5.4, a utility mod for xServer that adds user commands for its world protection system and server account registration, as well as admin commands for server configuration. Drop the.pakfile or extract the.zipinto your$xStarboundServerInstall/xsb-assetsdirectory, as xServer::Helper obviously has a hard xServer requirement. The version number (sans any «r1», «r2» suffixes, etc) is also the minimum version of xServer required by xServer::Helper.
Certain users should consider reading the following before installing xClient. Click the links with drop-down arrows to expand the appropriate collapsed section(s).
🐧 For Linux users with mouse scrolling issues
Info for Linux users with mouse scrolling issues
If you're experiencing mouse scrolling issues on xClient: Try adding the statically linked Linux build of xStarbound (or any Windows build) as a non-Steam game to Steam (select the xclient binary or, for Windows builds, xclient.exe, not xclient.sh). If you're using the linux-static build, make sure to enable compatibility tools and select the Steam Legacy Runtime; Windows builds should use the default newest Proton. Run xStarbound from Steam when you want to play. This workaround may also fix other input issues related to SDL2.
📦 For Steam Flatpak users
Info for Flatpak Steam users
xClient will not load your Workshop mods if launched while Steam is running as a Flatpak, unless launched directly through Steam. Additionally, the Steam Flatpak is not supported by Valve or your distro's maintainers anyway. So do yourself a favour by uninstalling that Flatpak and installing Steam through your Linux distro's package manager instead.
Attempting to work around this issue by symlinking the Steam Flatpak's config directory to ~/.steam may cause a Steam-related crash when launching xClient. Any GitHub issues or Discord bug reports about crashes, mod loading failures, P2P networking issues, etc., directly related to the Steam Flatpak will be met with this recommendation and closed, as they are not caused by or relevant to xStarbound itself.
⚙️ For OpenStarbound users
Info for OpenStarbound users
Do NOT install xStarbound into an existing OpenStarbound installation directory, as OpenStarbound dumps its assets in /assets and xStarbound is NOT compatible with OpenStarbound's assets. On xClient, this incompatibility manifests as a client shutdown before anything loads with a Path to 'unifont' is not absolute error in xclient.log. On xServer, this incompatibility will not prevent the server from starting, but may lead to unwanted server-side behaviour. If you have mods that check for OpenStarbound's assets, install xSBCompat to bypass these checks.
If you insist on installing xStarbound into an existing OpenStarbound installation directory anyway, follow these instructions to ensure that xStarbound does not load OpenStarbound's assets.
Any issues or bug reports that show 'opensb_base' as a loaded asset source in xclient.log or xserver.log will be closed or responded to with a pointer to the above notice. «Don't make me tap the sign!»
🪟 For Windows users (NVIDIA users experiencing crashes, check here!)
Info for Windows users
While Windows builds will remain available, xStarbound is now a Linux-first project. Windows users should read the following before submitting pull requests, bug reports or suggestions.
Visual Studio builds
xStarbound's Visual Studio toolchain and build scripts are not currently actively maintained. That said:
- For developers and modders on Windows: Follow the Windows instructions in the readme to set up a working Visual Studio toolchain for xStarbound. We're looking for a Windows maintainer; feel free to volunteer!
- For players on Windows: The Visual Studio build supports Steam and Discord P2P networking, unlike the MinGW build. However, due to ongoing issues with the Visual Studio toolchain, players who use P2P networking are advised to use a tunnelling service or switch to Linux to host their Starbound server. This applies to any Starbound fork, whether it's xStarbound, OpenStarbound or something else.
NVIDIA driver issue on Windows 10/11
Recent NVIDIA drivers for Windows may crash xClient with an «access of address 0x18» error due to a bug in NVIDIA's «threaded optimisation» feature. To prevent this, open the NVIDIA Control Panel, go to Manage 3D settings, then switch to the Program Settings tab. Click Add, browse to:
- Steam:
C:\Program Files (x86)\Steam\steamapps\common\Starbound\xsb-win64\xclient.exe - GOG:
C:\GOG Games\Starbound\xsb-win64\xclient.exe - Xbox Game Pass:
C:\Program Files\ModifiableWindowsApps\Starbound\xsb-win64\xclient.exe
... and add it to the list. If the Starbound installation where you installed xStarbound is located elsewhere, browse to the installation folder's xsb-win64\ directory to find xclient.exe.
Once added, locate Threaded optimization in the settings list and set it to Off, then click Apply. This change will disable the feature specifically for xClient, preventing driver-related crashes.
Any GitHub issues or bug reports on the Discord server for this driver crash will be ignored unless it occurs after you've disabled «threaded optimisation» for xClient. We already know about it, and it's a problem on NVIDIA's end, not xStarbound's. On the other hand, if you're a Windows developer or programmer, feel free to submit a pull request with a better workaround for the bug. If you're wondering, OpenStarbound doesn't run into this driver bug, but the exact reason why is not known even by OpenStarbound's developers.