is your Star too small? Make your Star longer with StarExtensions!
Go to the latest release. Download either the win64 or win32 build, depending on which version of Starbound you use - and extract it to the folder of the same name in the Starbound directory.
StarExtensions does not work on Windows 7, which Microsoft ended support & security updates for over three years ago.
The replacement SDL2.dll (mostly) fixes audio being permanently lost when the output device is disconnected, and loads StarExtensions. You can create a file called libraries.txt in the win64/win32 folder and list other DLLs to load on each line.
By a truly unbelievable coincidence, I was recently out for a walk when I saw a small package fall off a truck ahead of me. As I got closer, the typeface slowly came into focus: Starbound. Inside, I found a pack of jammie dodgers, a furry poster (tells you something about their audience I guess!) and the latest version of the Starbound source code!!
disclaimer: this is a joke Tiyuri - please don't call Saul (this gag has been here since August 2022 and has now aged like milk)
Type /guide in-game with one of the following options: chat
, character
, humanoid
, misc
.
Proximity Voice Chat
StarExtensions adds proximity voice chat.
Type /voice to open the menu, but don't forget to set the push-to-talk bind in /binds.
Input Binds
StarExtensions adds support for mods to add custom bindings. Type /binds to open the bindings menu.
Modders: to add your own binds, add a .binds file anywhere in your mod. Be careful not to overwrite someone elses .binds file. Here is an example .binds file, which adds a bind with two defaults.
{
"examplemod": {
"name": "Example Mod",
"bannerName" : "Example Mod!!",
"binds": {
"awesomebind": {
"default": [{
"type": "key",
"value": "C",
"mods": ["LShift"]
},
{
"type": "key",
"value": "V",
"mods": ["LShift"]
}],
"name": "Awesome Bind"
}
}
}
}
You can then use the input.bind* functions.
Character Swapper
Swap with your other selves. The ship of the character you joined as stays & saves to the original character's ship file.
Swapping immediately saves the previous character. Ship upgrades for a visiting character will not be applied until you join as that character.
Character Editor
Repurposes Starbound's character creation pane as an in-game editor, so you can edit your appearance live.
Identity Editor
For more advanced character editing, you can use the new identity commands to directly modify your character's identity.
Player Inspection
Originally present in Starbound's beta, player inspection is back! The /description command lets you change your character's description.
Text to Speech
Players and NPCs now use Software Automatic Mouth. You can enable & customize it with /speech!
Glitch get a voice by default. You may want to set a /speech rule after so it doesn't speak all of your text.
You can give other species a default voice with a patch. Here's the patch used for Glitch as an example:
/species/glitch.species.patch
[
{
"op": "add",
"path": "/samVoiceProfiles",
"value": {
"male": {
"pitch": 50,
"mouth": 142,
"throat": 142
},
"female": {
"pitch": 32,
"mouth": 180,
"throat": 165
}
}
}
]
These are the default variables:
{
"sing" : false,
"pitch" : 64,
"speed" : 72,
"mouth" : 128,
"throat" : 128,
"audioSpeed" : 1.0
}
Many thanks to thedjinn for porting SAM to Rust!
Humanoid Breathing, Head Rotation, Dynamics & Vapor Trail
Humanoids now breathe, and player heads rotate when sitting, dancing or holding an item. Both are togglable.
Chucklefish gave humanoids a vapor trail. It's meant to appear when you fall but it seems they had forgotten to actually hook it up, so I did. It also now rotates with your velocity, and fades in.
Humanoid Guide
To disable breathing or dynamics on NPCs, these can be put in their status properties:
{
"disableBreathing" : true,
"disableDynamics" : true
}
In your .species config file, you can specify the following in "humanoidOverrides" : {}
:
.species:humanoidOverrides example
"humanoidOverrides" : {
"headSliceY" : 25,
// THIS IS DEPRECATED! cleaves the body in two, using the upper slice as part of the head for rotation.
// if your body spritesheet has pixels that must appear attached to the head,
// then these two are available for head rotation compatibility.
"useBodyMask" : true,
// adds a ?blendmult=/humanoid/<species>/mask/<gender>body.png to the body drawable's directives
"useBodyHeadMask" : true,
// 1. copies the body drawable
// 2. prefixes ?blendmult=/humanoid/<species>/headmask/<gender>body.png to the directives
// 3. moves it as if part of the head, overrides headSliceY
"headUsesBodyFrame" : true,
// makes the head copy the body's frame when drawn
"hairUsesBodyFrame" : true,
// makes the hair copy the body's frame when drawn
"facialHairUsesBodyFrame" : true,
// makes the facial hair copy the body's frame when drawn
}
If you are using the xUsesBodyFrame
options, you will need to add .frames files to your /humanoid/<species>/
folder that match the body frames.
template [female/male]head.frames OR hair/default.frames
{
"frameGrid" : {
"size" : [43, 43],
"dimensions" : [9, 6],
"names" : [
[ null, "idle.1", "idle.2", "idle.3", "idle.4", "idle.5", "sit.1", null, "duck.1" ],
[ null, "walk.1", "walk.2", "walk.3", "walk.4", "walk.5", "walk.6", "walk.7", "walk.8" ],
[ null, "run.1", "run.2", "run.3", "run.4", "run.5", "run.6", "run.7", "run.8" ],
[ null, "jump.1", "jump.2", "jump.3", "jump.4", "fall.1", "fall.2", "fall.3", "fall.4" ],
[ null, "climb.1", "climb.2", "climb.3", "climb.4", "climb.5", "climb.6", "climb.7", "climb.8" ],
[ null, "swimIdle.1", null, null, "swim.1", "swim.2", "swim.3", "swim.4" ]
]
},
"aliases" : {
"swimIdle.2" : "swimIdle.1",
"swim.5" : "swimIdle.1",
"swim.6" : "swimIdle.1",
"swim.7" : "swimIdle.1",
"lay.1" : "run.8",
//aliases for vanilla compatibility
"normal" : "idle.1",
"climb" : "climb.1"
}
}
To add support for a modded species, add these files with a mod:
/humanoid/<species>/dynamic/base/<gender>body.png
- Base layer/humanoid/<species>/dynamic/<gender>body.png
- Moving layer- Used instead if the player has generated body directives (very very rare, you can just make 'em blank)
/humanoid/<species>/dynamic/mask/<gender>body.png
- Moving mask/humanoid/<species>/dynamic/basemask/<gender>body.png
- Base mask
To add support for an armor item, add these files to the armor item's directory with a mod, <image> being the same name of the original spritesheet such as 'chestf'.
dynamic/base/<image>
- Base layerdynamic/<image>
- Moving layerdynamic/mask/<image>
- Mask to cut pixels out of the humanoid moving layer if necessary.
You must add "dynamic" : true
to the parameters of an item instance to enable dynamics.
For vanilla-compatible generated clothing:
- Add a table called
dynamicData
{} to the parameters. In it, you can insert the following generated directives from the outfit generator of your choice with these names:base
- Base layermoving
- Moving layermask
- Mask to cut pixels out of the humanoid moving layer if necessary.overlay
- Non-moving overlay layer.- You can also insert a
multiplier
number value to multiply the dynamics intensity.
Please remember to include a standard directives
parameter for players without this mod or dynamics enabled!
Chat Opacity & Directives
You can now set the opacity of chat text, which was originally a hardcoded 50%.
You can now apply processing directives to the chat font, the default is ?border=1;000;0000
.
Better Scaling
Beautifies tech and status scaling by changing how it's rendered to scale the drawables instead of the sprites. Works with parent directives set from tech and status effect scripts, and primary directives from status primary scripts!
This also fixes various offset issues with scaling, such as your head detaching when you crouch.
Chat Emotes
You can now type emotes! Only StarExtensions users can see emotes.
Emote List
Does not list personal emotes.ralsei
ralseiweed
asexual
transgender
aroace
genderfluid
bigender
nonbinary
aromantic
bisexual
pansexual
LGBT / pride
lesbian
gay
looky
fnich
why
trollface
stare
ruin
sadde
sad
letsgo
laughedat
flubshed
desolate
bruhe
coolwoah
alcoholism
booba
yes
BibleThump
4Head
ResidentSleeper
NotLikeThis
WutFace
THEROCK
sussybaka
peepoSad
peepoBlanket
WeirdChamp
peepoLove
weSmart
REEeee
monkaGun
FeelsGoodMan
peepoHappy
FeelsOkayMan
HYPERS
YEP
FeelsBadMan
Sadge
widepeepoSad
PepeLaugh
monkaS
monkaW
POGGERS
KEKW
LULW
Pepega
widepeepoHappy
PepeHands
Pog
OMEGALUL
clown_mfs
parrot_wot
deranged_cowboy
morbius
NOOOO
PepeSus
SadCat
TrollDespair
ayy_lmao
clueless
eyes
monkaEyes
gigachad
moyai
wasted
Generated Clothes Baker
Internally bakes the extremely long directives of generated clothes to a spritesheet, so they no longer destroy performance.
Tile Prediction
Placing tiles on servers is now predicted to make building smoother.
Item & Portrait Protection
When another player tries to use a Lua script to copy your item, they get a dollar store version with most important parameters removed.
When another player tries to use world.entityPortrait to copy your clothing and you've put the parameter "portraitProtected" : true
on it, they don't get the directives.
Image & Armor Rendering
Use the /render command to render an image with directives to your clipboard. This is useful for recovering sprites. You can also render your worn armor to the clipboard - type /render on its own for more information.
Misc Notes for Modders
I'm just putting these here until I have a better place for them.
You can override the Pane Layer of Script Panes now. In a script pane's config, specify "paneLayer" with a string value of either:
"tooltip", "modalWindow", "stickyWindow", "hud"
Specifying "hud" prevents the pane from displaying the player's menu icon. You can make a ScriptPane non-dismissable by setting these two:
"paneLayer" : "hud",
"dismissable" : false
You can specify immediateSoundPool alongside the vanilla immediateSound in an animation state's properties to play a random immediateSound.
immediateSoundPool must be an array, with each entry being a possible immediateSound value (string or array of strings for each frame)
• Fixed being unable to hear another player's song if you load them after they begin playing.
• Fixed the game crashing when you're disconnected from the server with the inventory open.
• Fixed the connection error screen sometimes vanishing, leaving only the game title and forcing you to restart.
• Fixed chat color state being lost from text wrapping to the next line.
• Fixed players & NPCs talking shit about beans on toast. Beans on toast is a delicacy.