By a truly unbelievable coincidence, I was out for a walk when I saw a small package fall off a truck ahead of me. Inside, I found the 1.4.4 Starbound source code. OpenStarbound is derived from that source code. It fixes many bugs, adds many new features and improves performance. there is only so much you can do to polish a turd, just play Terraria or something
Q: Doesn't 'Open{game}' imply an engine reversed from scratch? (see Open.. TTD, RCT2, MW)
A: yeah too late to change it now though. whoops
You must own Starbound for the game assets. The code is worked on whenever I rarely feel like it. Contributions are welcome!
The latest stable release is recommended, as the nightly build can have bugs.
At the moment, you must copy the game assets (packed.pak) from your normal Starbound install to the OpenStarbound assets directory before playing. Optionally copy the user folder in the same directory as packed.pak to move the vanilla playable instrument songs over.
OpenStarbound is a separate installation/executable than Starbound. You can copy your storage folder from Starbound to transfer your save data and settings. Launching OpenStarbound with Steam open will load your subscribed Steam mods. If you have any locally installed non-Steam mods, you may want to copy the mods folder as well.
An installer is available for Windows. otherwise, extract the client/server zip for your platform and copy the game assets (packed.pak) to the OpenStarbound assets folder.
These link directly to the latest build from the Actions tab, main branch.
Windows Installer, Client, Server
Note: Mods that use StarExtensions features often work with OpenStarbound, StarExtensions is deprecated.
The lightmap generation has been moved off the main thread, and supports higher color range.
View OpenStarbound commands with /help! You can also view them here
/settileprotection
/settileprotection 69 420 false/admin
/admin playerSpecifier (requires OpenSB server)Player functions for saving/loading, modifying the humanoid identity, manipulating the inventory. Documentation
Character swapping (rewrite from StarExtensions, currently command-only: /swap name case-insensitive, only substring required)
Custom user input support with a keybindings menu (rewrite from StarExtensions)
Positional Voice Chat that works on completely vanilla servers, uses Opus for crisp, HD audio (rewrite from StarExtensions)
Multiple font support (switch fonts inline with ^font=name;, .ttf and .woff2 assets are auto-detected)
Experimental changes to the storage of directives in memory to reduce copying - can reduce their impact on frametimes when very long directives are present
Perfectly Generic Items will retain the data for what item they were if a mod is uninstalled, and will attempt to restore themselves if re-installed.
Musical instruments have their own volume slider in the options menu.
Players can use items while lounging
Mods can change which scriptPane the Matter Manipulator/Collections sidebar button opens, in interface.config.patch.
Items can change their rarity border. Documentation
Client-side tile placement prediction (rewrite from StarExtensions)
Support for placing foreground tiles with a custom collision type (rewrite from StarExtensions, requires OpenSB server)
Some minor polish to UI
The Skybox's sun now matches the system type you're currently in.
Discord: reverse the text in the image and you will have the invite code (this is to prevent spam bots)
Note: Some of these texts are just tooltips rather than links.
{
"assetDirectories" : [
"../assets/",
"./mods/"
],
"storageDirectory" : "./",
"logDirectory" : "./logs/"
}
C:\src\vcpkg or C:\dev\vcpkg.vcpkg integrate install!VCPKG_ROOT environment value to your vcpkg dir, so that CMake can find it.PATH, or just use Scoop (scoop install ninja)cmake --preset=windows-release then cmake --build --preset=windows-releasesudo apt-get install pkg-config libxmu-dev libxi-dev libgl-dev libglu1-mesa-dev libsdl2-dev python3-jinja2 ninja-buildVCPKG_ROOT environment value to your new vcpkg directory, so that CMake can find it.
export VCPKG_ROOT=/replace/with/full/path/to/your/vcpkg/directory/cmake --preset=linux-release and cmake --build --preset=linux-release to build.scripts/ci/linux/assemble.sh
Starbound in general is built from the ground up, with its own engine written in C++ on top of some basic libraries.
CMake is a C++ build scenario generator and your first target. You need at least version 3.23. Where Ubuntu uses APT, Fedora uses DNF as package manager.
sudo dnf upgrade --refresh to ensure your OS is up-to-datesudo dnf install cmakecmake --version to verifyYou will need at least the same dependencies ("basic libraries") as for Ubuntu. Some packages have different names or contents between Linux builds. Namely, Fedora uses "-devel" instead of "-dev" for development packages.
sudo dnf install pkg-config libXmu-devel libXi-devel libGL-devel mesa-libGLU-devel SDL2-devel python3-jinja2 ninja-buildNext you will need VCPKG.
VCPKG is another package manager/dependency resolver for C++. CMake will need it to pull the rest of dependencies automatically early in the building process. If you've worked with language-specific package managers before (for example, NPM or YUM for JavaScript), VSPKG is similar. For reference, the list of dependencies VCPKG will try to install later can be found in source/vcpkg.json.
. <(curl https://aka.ms/vcpkg-init.sh -L). This instruction should install VCPKG in your Linux home (user profile) directory in .vcpkg. Note that this dir is usually hidden by default.VCPKG_ROOT environment variable to the correct path. Run . ~/.vcpkg/vcpkg-init to bootstrap VCPKG. You may want to check if the path is now known to the system by running printenv VCPKG_ROOT afterwards.source/vcpkg.json. You can run this step manually via vcpkg install on its own to check if it works, or skip to the next step.If this step throws errors, Fedora probably still lacks some packages not listed explicitly before. Read error messages to identify these packages, find them via Fedora Packages and install with DNF. What you need most of the time is the package itself as well as its -devel and -static subpackages.
cmake --preset=linux-release or skip to the next step.cmake --build --preset=linux-release to build. It includes previous two steps, so if any of them throw errors, you will have problems. If that's the case, run and debug them separately as described earlier, as CMake itself can just throw Error: could not load cache without specifying the exact problem. In case of major changes (example: you've reinstalled VCPKG to a different location and need to regenerate path to it for CMake) purge CMake cache by deleting source/CMakeCache.txt.Building will take some time, be patient ;)
Diagnosed by
ERROR: Value "plain" (of type "string") for combo option "Optimization level" is not one of the choices. Possible choices are (as string): "0", "g", "1", "2", "3", "s".
error in meson building logs when building libsystemd.
Fix for VCPKG is pretty fresh (May 2024) and can be found here.
scripts/ci/linux/assemble.sh. This packs the game assets and copies the built binaries, premade sbinit configs & required libs into client_distribution/ & server_distribution/.Next you need to copy original Starbound assets at assets/packed.pak of the Starbound copy that you own into assets/ of either client or server dir (depending on what you're going to run).
The game now can be run by executing client_distribution/linux/run-client.sh (or the corresponding server bash script) from terminal.
Diagnosed by this error message when launching client:
Couldn't initialize SDL Audio: dsp: No such audio device
The reason is outlined on StackEx:
Most new Linux distributions don't provide the OSS (open sound system) compatibility layer, because access to the OSS sound device /dev/dsp was exclusive to one program at time only.
The same answer has the solution: use padsp to emulate dev/dsp.
dnf install pulseaudio-utils to install padsp utilpadsp bash run-client.sh instead of running sh directly. To avoid doing it every time you can edit run-client.sh, replacing#!/bin/sh cd "dirname "$0"" LD_LIBRARY_PATH="$LD_LIBRARY_PATH:./" ./starbound "$@"
with
#!/bin/sh cd "dirname "$0"" LD_LIBRARY_PATH="$LD_LIBRARY_PATH:./" padsp ./starbound "$@"
First, you will need to have brew installed. Check out how to install Homebrew
Install cmake using brew install cmake
Install ninja using brew install ninja
Install pkg config using brew install pkg-config
Next, install vcpkg by following the commands below.
Run cd ~. This is just so that everything is local to here.
Run git clone https://github.com/microsoft/vcpkg.git
Run cd vcpkg && ./bootstrap-vcpkg.sh
Lastly, run export VCPKG_ROOT=~/vcpkg && export PATH=$VCPKG_ROOT:$PATH
This last command makes vcpkg added to the current terminal path. This lasts only while the terminal is active, and will have to be rerun for new terminal instances.
Download the source code here. This is the current code in main. Unpack the code to your downloads folder.
Unpack the zip, and open it up. Navigate to OpenStarbound-main/source using the terminal -> cd ~/Downloads/OpenStarbound-main. Then navigate to the source folder, using cd source.
cmake --preset macos-arm-release. This will get dependencies.cmake --build --preset macos-arm-release. Wait for this to finish, then go to Finder. Navigate to the OpenStarbound-main folder using Finder.xattr -d com.apple.quarantine starbound, which will get rid of the lock on the file. If that doesn't work, run sudo spctl --master-disable to allow all unverified apps.cmake --preset macos-release. This will get dependencies.cmake --build --preset macos-release. Wait for this to finish, then go to Finder. Navigate to the OpenStarbound-main folder using Finder.xattr -d com.apple.quarantine starbound, which will get rid of the lock on the file. If that doesn't work, run sudo spctl --master-disable to allow all unverified apps.257 followers · starred Oct 2024
404 followers · starred Apr 2025
12 followers · starred Apr 2024
446 followers · starred Dec 2024
By a truly unbelievable coincidence, I was out for a walk when I saw a small package fall off a truck ahead of me. Inside, I found the 1.4.4 Starbound source code. OpenStarbound is derived from that source code. It fixes many bugs, adds many new features and improves performance. there is only so much you can do to polish a turd, just play Terraria or something
Q: Doesn't 'Open{game}' imply an engine reversed from scratch? (see Open.. TTD, RCT2, MW)
A: yeah too late to change it now though. whoops
You must own Starbound for the game assets. The code is worked on whenever I rarely feel like it. Contributions are welcome!
The latest stable release is recommended, as the nightly build can have bugs.
At the moment, you must copy the game assets (packed.pak) from your normal Starbound install to the OpenStarbound assets directory before playing. Optionally copy the user folder in the same directory as packed.pak to move the vanilla playable instrument songs over.
OpenStarbound is a separate installation/executable than Starbound. You can copy your storage folder from Starbound to transfer your save data and settings. Launching OpenStarbound with Steam open will load your subscribed Steam mods. If you have any locally installed non-Steam mods, you may want to copy the mods folder as well.
An installer is available for Windows. otherwise, extract the client/server zip for your platform and copy the game assets (packed.pak) to the OpenStarbound assets folder.
These link directly to the latest build from the Actions tab, main branch.
Windows Installer, Client, Server
Note: Mods that use StarExtensions features often work with OpenStarbound, StarExtensions is deprecated.
The lightmap generation has been moved off the main thread, and supports higher color range.
View OpenStarbound commands with /help! You can also view them here
/settileprotection
/settileprotection 69 420 false/admin
/admin playerSpecifier (requires OpenSB server)Player functions for saving/loading, modifying the humanoid identity, manipulating the inventory. Documentation
Character swapping (rewrite from StarExtensions, currently command-only: /swap name case-insensitive, only substring required)
Custom user input support with a keybindings menu (rewrite from StarExtensions)
Positional Voice Chat that works on completely vanilla servers, uses Opus for crisp, HD audio (rewrite from StarExtensions)
Multiple font support (switch fonts inline with ^font=name;, .ttf and .woff2 assets are auto-detected)
Experimental changes to the storage of directives in memory to reduce copying - can reduce their impact on frametimes when very long directives are present
Perfectly Generic Items will retain the data for what item they were if a mod is uninstalled, and will attempt to restore themselves if re-installed.
Musical instruments have their own volume slider in the options menu.
Players can use items while lounging
Mods can change which scriptPane the Matter Manipulator/Collections sidebar button opens, in interface.config.patch.
Items can change their rarity border. Documentation
Client-side tile placement prediction (rewrite from StarExtensions)
Support for placing foreground tiles with a custom collision type (rewrite from StarExtensions, requires OpenSB server)
Some minor polish to UI
The Skybox's sun now matches the system type you're currently in.
Discord: reverse the text in the image and you will have the invite code (this is to prevent spam bots)
Note: Some of these texts are just tooltips rather than links.
{
"assetDirectories" : [
"../assets/",
"./mods/"
],
"storageDirectory" : "./",
"logDirectory" : "./logs/"
}
C:\src\vcpkg or C:\dev\vcpkg.vcpkg integrate install!VCPKG_ROOT environment value to your vcpkg dir, so that CMake can find it.PATH, or just use Scoop (scoop install ninja)cmake --preset=windows-release then cmake --build --preset=windows-releasesudo apt-get install pkg-config libxmu-dev libxi-dev libgl-dev libglu1-mesa-dev libsdl2-dev python3-jinja2 ninja-buildVCPKG_ROOT environment value to your new vcpkg directory, so that CMake can find it.
export VCPKG_ROOT=/replace/with/full/path/to/your/vcpkg/directory/cmake --preset=linux-release and cmake --build --preset=linux-release to build.scripts/ci/linux/assemble.sh
Starbound in general is built from the ground up, with its own engine written in C++ on top of some basic libraries.
CMake is a C++ build scenario generator and your first target. You need at least version 3.23. Where Ubuntu uses APT, Fedora uses DNF as package manager.
sudo dnf upgrade --refresh to ensure your OS is up-to-datesudo dnf install cmakecmake --version to verifyYou will need at least the same dependencies ("basic libraries") as for Ubuntu. Some packages have different names or contents between Linux builds. Namely, Fedora uses "-devel" instead of "-dev" for development packages.
sudo dnf install pkg-config libXmu-devel libXi-devel libGL-devel mesa-libGLU-devel SDL2-devel python3-jinja2 ninja-buildNext you will need VCPKG.
VCPKG is another package manager/dependency resolver for C++. CMake will need it to pull the rest of dependencies automatically early in the building process. If you've worked with language-specific package managers before (for example, NPM or YUM for JavaScript), VSPKG is similar. For reference, the list of dependencies VCPKG will try to install later can be found in source/vcpkg.json.
. <(curl https://aka.ms/vcpkg-init.sh -L). This instruction should install VCPKG in your Linux home (user profile) directory in .vcpkg. Note that this dir is usually hidden by default.VCPKG_ROOT environment variable to the correct path. Run . ~/.vcpkg/vcpkg-init to bootstrap VCPKG. You may want to check if the path is now known to the system by running printenv VCPKG_ROOT afterwards.source/vcpkg.json. You can run this step manually via vcpkg install on its own to check if it works, or skip to the next step.If this step throws errors, Fedora probably still lacks some packages not listed explicitly before. Read error messages to identify these packages, find them via Fedora Packages and install with DNF. What you need most of the time is the package itself as well as its -devel and -static subpackages.
cmake --preset=linux-release or skip to the next step.cmake --build --preset=linux-release to build. It includes previous two steps, so if any of them throw errors, you will have problems. If that's the case, run and debug them separately as described earlier, as CMake itself can just throw Error: could not load cache without specifying the exact problem. In case of major changes (example: you've reinstalled VCPKG to a different location and need to regenerate path to it for CMake) purge CMake cache by deleting source/CMakeCache.txt.Building will take some time, be patient ;)
Diagnosed by
ERROR: Value "plain" (of type "string") for combo option "Optimization level" is not one of the choices. Possible choices are (as string): "0", "g", "1", "2", "3", "s".
error in meson building logs when building libsystemd.
Fix for VCPKG is pretty fresh (May 2024) and can be found here.
scripts/ci/linux/assemble.sh. This packs the game assets and copies the built binaries, premade sbinit configs & required libs into client_distribution/ & server_distribution/.Next you need to copy original Starbound assets at assets/packed.pak of the Starbound copy that you own into assets/ of either client or server dir (depending on what you're going to run).
The game now can be run by executing client_distribution/linux/run-client.sh (or the corresponding server bash script) from terminal.
Diagnosed by this error message when launching client:
Couldn't initialize SDL Audio: dsp: No such audio device
The reason is outlined on StackEx:
Most new Linux distributions don't provide the OSS (open sound system) compatibility layer, because access to the OSS sound device /dev/dsp was exclusive to one program at time only.
The same answer has the solution: use padsp to emulate dev/dsp.
dnf install pulseaudio-utils to install padsp utilpadsp bash run-client.sh instead of running sh directly. To avoid doing it every time you can edit run-client.sh, replacing#!/bin/sh cd "dirname "$0"" LD_LIBRARY_PATH="$LD_LIBRARY_PATH:./" ./starbound "$@"
with
#!/bin/sh cd "dirname "$0"" LD_LIBRARY_PATH="$LD_LIBRARY_PATH:./" padsp ./starbound "$@"
First, you will need to have brew installed. Check out how to install Homebrew
Install cmake using brew install cmake
Install ninja using brew install ninja
Install pkg config using brew install pkg-config
Next, install vcpkg by following the commands below.
Run cd ~. This is just so that everything is local to here.
Run git clone https://github.com/microsoft/vcpkg.git
Run cd vcpkg && ./bootstrap-vcpkg.sh
Lastly, run export VCPKG_ROOT=~/vcpkg && export PATH=$VCPKG_ROOT:$PATH
This last command makes vcpkg added to the current terminal path. This lasts only while the terminal is active, and will have to be rerun for new terminal instances.
Download the source code here. This is the current code in main. Unpack the code to your downloads folder.
Unpack the zip, and open it up. Navigate to OpenStarbound-main/source using the terminal -> cd ~/Downloads/OpenStarbound-main. Then navigate to the source folder, using cd source.
cmake --preset macos-arm-release. This will get dependencies.cmake --build --preset macos-arm-release. Wait for this to finish, then go to Finder. Navigate to the OpenStarbound-main folder using Finder.xattr -d com.apple.quarantine starbound, which will get rid of the lock on the file. If that doesn't work, run sudo spctl --master-disable to allow all unverified apps.cmake --preset macos-release. This will get dependencies.cmake --build --preset macos-release. Wait for this to finish, then go to Finder. Navigate to the OpenStarbound-main folder using Finder.xattr -d com.apple.quarantine starbound, which will get rid of the lock on the file. If that doesn't work, run sudo spctl --master-disable to allow all unverified apps.257 followers · starred Oct 2024
404 followers · starred Apr 2025
12 followers · starred Apr 2024
446 followers · starred Dec 2024