About¶
This is the unofficial documentation consisting of the official documentation on a readthedocs page, because it’s easier to view and search.
What is starbound¶
Starbound is a space exploration game on a 2D side scrolling plane. It can be played single player or multiplayer and can be modified in many ways.
Documentation¶
Contents:
- actor mcontroller
RectFmcontroller.boundBox()PolyFmcontroller.collisionPoly()PolyFmcontroller.collisionBody()Vec2Fmcontroller.position()floatmcontroller.xPosition()floatmcontroller.yPosition()Vec2Fmcontroller.velocity()floatmcontroller.xVelocity()floatmcontroller.yVelocity()floatmcontroller.rotation()boolmcontroller.isColliding()boolmcontroller.isNullColliding()boolmcontroller.isCollisionStuck()floatmcontroller.stickingDirection()floatmcontroller.liquidPercentage()LiquidIdmcontroller.liquidId()boolmcontroller.onGround()voidmcontroller.setPosition(Vec2Fposition)voidmcontroller.setXPosition(floatx)voidmcontroller.setYPosition(floaty)voidmcontroller.translate(Vec2Fdirection)voidmcontroller.setVelocity(Vec2Fvelocity)voidmcontroller.setXVelocity(Vec2FxVelocity)voidmcontroller.setYVelocity(Vec2FyVelocity)voidmcontroller.addMomentum(Vec2Fmomentum)voidmcontroller.setRotation(floatangle)ActorMovementParametersmcontroller.baseParameters()boolmcontroller.walking()boolmcontroller.running()intmcontroller.movingDirection()intmcontroller.facingDirection()boolmcontroller.crouching()boolmcontroller.flying()boolmcontroller.falling()boolmcontroller.canJump()boolmcontroller.groundMovement()boolmcontroller.liquidMovement()voidmcontroller.controlRotation(floatrotation)voidmcontroller.controlAcceleration(Vec2Facceleration)voidmcontroller.controlForce()voidmcontroller.controlApproachVelocity(Vec2FtargetVelocity,floatmaxControlForce)
voidmcontroller.controlApproachVelocityAlongAngle(floatangle,floattargetVelocity,floatmaxControlForce,boolpositiveOnly = false)voidmcontroller.controlApproachXVelocity(floattargetVelocity,floatmaxControlForce)voidmcontroller.controlApproachYVelocity(floattargetVelocity,floatmaxControlForce)voidmcontroller.controlParameters(ActorMovementParametersparameters)voidmcontroller.controlModifiers(ActorMovementModifiersmodifiers)voidmcontroller.controlMove(floatdirection,boolrun)voidmcontroller.controlFace(floatdirection)voidmcontroller.controlDown()voidmcontroller.controlCrouch()voidmcontroller.controlJump()voidmcontroller.controlHoldJump()voidmcontroller.controlFly(Vec2Fvelocity)boolmcontroller.autoClearControls()voidmcontroller.setAutoClearControls(boolenabled)voidmcontroller.clearControls()
- animator
boolanimator.setAnimationState(StringstateType,StringState,boolstartNew = false)Stringanimator.animationState(StringstateType)Jsonanimator.animationStateProperty(StringstateType,StringpropertyName)voidanimator.setGlobalTag(StringtagName,StringtagValue)voidanimator.setPartTag(StringpartType,StringtagName,StringtagValue)voidanimator.setAnimationRate(floatrate)voidanimator.rotateGroup(StringrotationGroup,floattargetAngle,boolimmediate)floatanimator.currentRotationAngle(StringrotationGroup)boolanimator.hasTransformationGroup(StringtransformationGroup)voidanimator.translateTransformationGroup(StringtransformationGroup,Vec2Ftranslate)voidanimator.rotateTransformationGroup(StringtransformationGroup,floatrotation)voidanimator.scaleTransformationGroup(StringtransformationGroup,floatscale, [Vec2F scaleCenter])voidanimator.transformTransformationGroup(StringtransformationGroup,floata,floatb,floatc,floatd,floattx,floatty)voidanimator.resetTransformationGroup(StringtransformationGroup)voidanimator.setParticleEmitterActive(StringemitterName,boolactive)voidanimator.setParticleEmitterEmissionRate(StringemitterName,floatemissionRate)voidanimator.setParticleEmitterBurstCount(StringemitterName,unsignedburstCount)voidanimator.setParticleEmitterOffsetRegion(StringemitterName,RectFoffsetRegion)voidanimator.burstParticleEmitter(StringemitterName)voidanimator.setLightActive(StringlightName, bool active)voidanimator.setLightPosition(StringlightName, Vec2F position)voidanimator.setLightColor(StringlightName, Color color)voidanimator.setLightPointAngle(StringlightName, float angle)boolanimator.hasSound(StringsoundName)voidanimator.setSoundPool(StringsoundName,List<String>soundPool)voidanimator.setSoundPosition(StringsoundName,Vec2Fposition)voidanimator.playSound(StringsoundName, [intloops = 0])voidanimator.setSoundVolume(StringsoundName,floatvolume, [floatrampTime = 0.0])voidanimator.setSoundPitch(StringsoundName,floatpitch, [floatrampTime = 0.0])voidanimator.stopAllSounds(StringsoundName)voidanimator.setEffectActive(Stringeffect,boolenabled)Vec2Fanimator.partPoly(StringpartName,StringpropertyName)PolyFanimator.partPoly(StringpartName,StringpropertyName)
- config
- entity
- item
Stringitem.name()size_titem.count()size_titem.setCount(size_tcount)size_titem.maxStack()boolitem.is(ItemDescriptordesc)boolitem.matches(ItemDescriptordesc)Jsonitem.matchingDescriptors()boolitem.consume(size_tcount)boolitem.empty()ItemDescriptoritem.descriptor()Stringitem.description()Stringitem.friendlyName()intitem.rarity()Stringitem.rarityString()size_titem.price()unsigneditem.fuelAmount()Jsonitem.iconDrawables()Jsonitem.dropDrawables()Stringitem.largeImage()Stringitem.tooltipKind()Stringitem.category()Stringitem.pickupSound()boolitem.twoHanded()floatitem.timeToLive()Jsonitem.learnBlueprintsOnPickup()boolitem.hasItemTag(StringitemTag)Jsonitem.pickupQuestTemplates()
- mcontroller
MovementParametersmcontroller.parameters()voidmcontroller.applyParameters(Jsonparameters)voidmcontroller.resetParameters()Vec2Fmcontroller.position()floatmcontroller.xPosition()floatmcontroller.yPosition()Vec2Fmcontroller.velocity()floatmcontroller.xVelocity()floatmcontroller.yVelocity()floatmcontroller.rotation()PolyFmcontroller.collisionBody()RectFmcontroller.collisionBoundBox()RectFmcontroller.localBoundBox()boolmcontroller.isColliding()boolmcontroller.isNullColliding()boolmcontroller.isCollisionStuck()floatmcontroller.stickingDirection()floatmcontroller.liquidPercentage()LiquidIdmcontroller.liquidId()boolmcontroller.onGround()voidmcontroller.setPosition(Vec2Fposition)voidmcontroller.setXPosition(floatx)voidmcontroller.setYPosition(floaty)voidmcontroller.translate(Vec2Fdirection)voidmcontroller.setVelocity(Vec2Fvelocity)voidmcontroller.setXVelocity(Vec2FxVelocity)voidmcontroller.setYVelocity(Vec2FyVelocity)voidmcontroller.addMomentum(Vec2Fmomentum)voidmcontroller.setRotation(floatangle)voidmcontroller.rotate(floatangle)voidmcontroller.accelerate(Vec2Facceleration)voidmcontroller.force(Vec2Fforce)voidmcontroller.approachVelocity(Vec2FtargetVelocity,floatmaxControlForce)voidmcontroller.approachVelocityAlongAngle(floatangle,floattargetVelocity,floatmaxControlForce,boolpositiveOnly = false)voidmcontroller.approachXVelocity(floattargetVelocity,floatmaxControlForce)voidmcontroller.approachYVelocity(floattargetVelocity,floatmaxControlForce)
Jsonroot.assetJson(StringassetPath)Jsonroot.makeCurrentVersionedJson(StringversioningIdentifier,Jsoncontent)Jsonroot.loadVersionedJson(JsonversionedContent,StringversioningIdentifier)doubleroot.evalFunction(StringfunctionName,doubleinput)doubleroot.evalFunction2(StringfunctionName,doubleinput1,doubleinput2)Vec2Uroot.imageSize(StringimagePath)List<Vec2I>root.imageSpaces(StringimagePath,Vec2FworldPosition,floatspaceScan,boolflip)RectUroot.nonEmptyRegion(StringimagePath)Jsonroot.npcConfig(StringnpcType)floatroot.projectileGravityMultiplier(StringprojectileName)Jsonroot.projectileConfig(StringprojectileName)JsonArrayroot.recipesForItem(StringitemName)Stringroot.itemType(StringitemName)JsonArrayroot.itemTags(StringitemName)boolroot.itemHasTag(StringitemName,StringtagName)Jsonroot.itemConfig(ItemDescriptordescriptor, [floatlevel], [unsignedseed])ItemDescriptorroot.createItem(ItemDescriptordescriptor, [floatlevel], [unsignedseed])Jsonroot.tenantConfig(StringtenantName)JsonArrayroot.getMatchingTenants(map<String, unsigned>colonyTags)JsonArrayroot.liquidStatusEffects(LiquidIdliquid)tableroot.behaviorModule(StringmoduleName)Stringroot.generateName(StringassetPath, [unsignedseed])Jsonroot.questConfig(StringquestTemplateId)JsonArrayroot.npcPortrait(StringportraitMode,Stringspecies,StringnpcType,floatlevel, [unsignedseed], [Jsonparameters])JsonArrayroot.monsterPortrait(StringtypeName, [Jsonparameters])boolroot.isTreasurePool(StringpoolName)JsonArrayroot.createTreasure(StringpoolName,floatlevel, [unsignedseed])Stringroot.materialMiningSound(StringmaterialName, [StringmodName])Stringroot.materialFootstepSound(StringmaterialName, [StringmodName])- status
Jsonstatus.statusProperty(Stringname,Jsondefault)voidstatus.setStatusProperty(Stringname,Jsonvalue)floatstatus.stat(StringstatName)boolstatus.statPositive(StringstatName)List<String>status.resourceNames()boolstatus.isResource(StringresourceName)floatstatus.resource(StringresourceName)boolstatus.resourcePositive(StringresourceName)voidstatus.setResource(StringresourceName,floatvalue)voidstatus.modifyResource(StringresourceName,floatvalue)floatstatus.giveResource(StringresourceName,floatvalue)boolstatus.consumeResource(StringresourceName,floatamount)boolstatus.overConsumeResource(StringresourceName,floatamount)boolstatus.resourceLocked(StringresourceName)voidstatus.setResourceLocked(StringresourceName,boollocked)voidstatus.resetResource(StringresourceName)voidstatus.resetAllResources()floatstatus.resourceMax(StringresourceName)floatstatus.resourcePercentage(StringresourceName)voidstatus.setResourcePercentage(StringresourceName,floatvalue)voidstatus.modifyResourcePercentage(StringresourceName,floatvalue)JsonArraystatus.getPersistentEffects(StringeffectCategory)voidstatus.addPersistentEffect(StringeffectCategory,Jsoneffect)voidstatus.addPersistentEffects(StringeffectCategory,JsonArrayeffects)voidstatus.setPersistentEffects(StringeffectCategory,JsonArrayeffects)voidstatus.clearPersistentEffects(StringeffectCategory)voidstatus.clearAllPersistentEffects()voidstatus.addEphemeralEffect(StringeffectName, [floatduration], [EntityIdsourceEntity])voidstatus.addEphemeralEffects(JsonArrayeffects, [EntityIdsourceEntity])voidstatus.removeEphemeralEffect(StringeffectName)voidstatus.clearEphemeralEffects()List<pair<DamageNotification>>,uint64_tstatus.damageTakenSince([uint64_tsince = 0]])List<pair<EntityId,DamageRequest>>,uint64_tstatus.inflictedHitsSince([uint64_tsince = 0]])List<DamageNotification>,uint65_tstatus.functionName([uint64_tsince = 0])
floatworld.magnitude(Vec2Fposition1,Vec2Fposition2)Vec2Fworld.distance(Vec2Fposition1,Vec2Fposition2)boolworld.polyContains(PolyFpoly,Vec2Fposition)Vec2Fworld.xwrap(Vec2Fposition)floatworld.xwrap(floatxPosition)Variant<Vec2F, float>world.nearestTo(Variant<Vec2F, float>sourcePosition,Variant<Vec2F, float>targetPosition)boolworld.pointCollision(Vec2Fpoint, [CollisionSetcollisionKinds])boolworld.pointTileCollision(Vec2Fpoint, [CollisionSetcollisionKinds])boolworld.lineCollision(Vec2FstartPoint,Vec2FendPoint, [CollisionSetcollisionKinds])boolworld.lineTileCollision(Vec2FstartPoint,Vec2FendPoint, [CollisionSetcollisionKinds])boolworld.rectCollision(RectFrect, [CollisionSetcollisionKinds])boolworld.rectTileCollision(RectFrect, [CollisionSetcollisionKinds])boolworld.polyCollision(PolyFpoly, [Vec2Fposition], [CollisionSetcollisionKinds])List<Vec2I>world.collisionBlocksAlongLine(Vec2FstartPoint,Vec2FendPoint, [CollisionSetcollisionKinds], [intmaxReturnCount])List<pair<Vec2I, LiquidLevel>>world.liquidAlongLine(Vec2FstartPoint,Vec2FendPoint)Vec2Fworld.resolvePolyCollision(PolyFpoly,Vec2Fposition,floatmaximumCorrection, [CollisionSetcollisionKinds])boolworld.tileIsOccupied(Vec2ItilePosition, [boolforegroundLayer], [boolincludeEphemeral])boolworld.placeObject(StringobjectName,Vec2ItilePosition, [intdirection], [Jsonparameters])EntityIdworld.spawnItem(ItemDescriptoritem,Vec2Fposition, [unsignedcount], [Jsonparameters])List<EntityId>world.spawnTreasure(Vec2Fposition,StringpoolName,floatlevel, [unsignedseed])EntityIdworld.spawnMonster(StringmonsterType,Vec2Fposition, [Jsonparameters])EntityIdworld.spawnNpc(Vec2Fposition,StringnpcType,Stringspecies,floatlevel, [unsignedseed], [Jsonparameters])EntityIdworld.spawnStagehand(Vec2Fposition,Stringtype, [Jsonoverrides])EntityIdworld.spawnProjectile(StringprojectileName,Vec2Fposition, [EntityIdsourceEntityId], [Vec2Fdirection], [booltrackSourceEntity], [Jsonparameters])EntityIdworld.spawnVehicle(StringvehicleName,Vec2Fposition, [Jsonoverrides])doubleworld.time()unsignedworld.day()doubleworld.timeOfDay()floatworld.dayLength()Jsonworld.getProperty(StringpropertyName, [JsondefaultValue])voidworld.setProperty(StringpropertyName,Jsonvalue)LiquidLevelworld.liquidAt(Vec2Iposition)LiquidLevelworld.liquidAt(RectFregion)floatworld.gravity(Vec2Fposition)boolworld.spawnLiquid(Vec2Fposition,LiquidIdliquid,floatquantity)LiquidLevelworld.destroyLiquid(Vec2Fposition)boolworld.isTileProtected(Vec2Fposition)PlatformerAStar::Pathworld.findPlatformerPath(Vec2FstartPosition,Vec2FendPosition,ActorMovementParametersmovementParameters,PlatformerAStar::ParameterssearchParameters)PlatformerAStar::PathFinderworld.platformerPathStart(Vec2FstartPosition,Vec2FendPosition,ActorMovementParametersmovementParameters,PlatformerAStar::ParameterssearchParameters)floatworld.lightLevel(Vec2Fposition)floatworld.windLevel(Vec2Fposition)boolworld.breathable(Vec2Fposition)boolworld.underground(Vec2Fposition)Variant<String, bool>world.material(Vec2Fposition,StringlayerName)Stringworld.mod(Vec2Fposition,StringlayerName)boolworld.damageTiles(List<Vec2I>positions,StringlayerName,Vec2FsourcePosition,StringdamageType,floatdamageAmount, [unsignedharvestLevel])boolworld.damageTileArea(Vec2Fcenter,floatradius,StringlayerName,Vec2FsourcePosition,StringdamageType,floatdamageAmount, [unsignedharvestLevel)boolworld.placeMaterial(Vec2Iposition,StringlayerName,StringmaterialName, [inthueShift], [boolallowOverlap])boolworld.placeMod(Vec2Iposition,StringlayerName,StringmodName, [inthueShift], [boolallowOverlap])List<EntityId>world.entityQuery(Vec2Fposition,Variant<Vec2F, floatpositionOrRadius, [Jsonoptions])List<EntityId>world.monsterQuery(Vec2Fposition,Variant<Vec2F, floatpositionOrRadius, [Jsonoptions])List<EntityId>world.npcQuery(Vec2Fposition,Variant<Vec2F, floatpositionOrRadius, [Jsonoptions])List<EntityId>world.objectQuery(Vec2Fposition,Variant<Vec2F, floatpositionOrRadius, [Jsonoptions])List<EntityId>world.itemDropQuery(Vec2Fposition,Variant<Vec2F, floatpositionOrRadius, [Jsonoptions])List<EntityId>world.playerQuery(Vec2Fposition,Variant<Vec2F, floatpositionOrRadius, [Jsonoptions])List<EntityId>world.loungeableQuery(Vec2Fposition,Variant<Vec2F, floatpositionOrRadius, [Jsonoptions])List<EntityId>world.entityLineQuery(Vec2FstartPosition,Vec2FendPosition, [Jsonoptions])List<EntityId>world.objectLineQuery(Vec2FstartPosition,Vec2FendPosition, [Jsonoptions])List<EntityId>world.npcLineQuery(Vec2FstartPosition,Vec2FendPosition, [Jsonoptions])boolworld.entityExists(EntityIdentityId)DamageTeamworld.entityDamageTeam(EntityIdentityId)boolworld.entityCanDamage(EntityIdsourceId,EntityIdtargetId)boolworld.entityAggressive(EntityIdentity)Stringworld.entityType(EntityIdentityId)Vec2Fworld.entityPosition(EntityIdentityId)Vec2Fworld.entityVelocity(EntityIdentityId)unsignedworld.entityMoney(EntityIdentityId)unsignedworld.entityHasCountOfItem(EntityIdentityId,StringitemName)Vec2Fworld.entityHealth(EntityIdentityId)Stringworld.entitySpecies(EntityIdentityId)Stringworld.entityGender(EntityIdentityId)Stringworld.entityName(EntityIdentityId)Stringworld.entityDescription(EntityIdentityId, [Stringspecies])JsonArrayworld.entityPortrait(EntityIdentityId,StringportraitMode)Stringworld.entityHandItem(EntityIdentityId,StringhandName)ItemDescriptorworld.entityHandItemDescriptor(EntityIdentityId,StringhandName)Stringworld.entityUniqueId(EntityIdentityId)Jsonworld.getObjectParameter(EntityIdentityId,StringparameterName, [JsondefaultValue])List<Vec2I>world.objectSpaces(EntityIdentityId)intworld.farmableStage(EntityIdentityId)intworld.containerSize(EntityIdentityId)boolworld.containerClose(EntityIdentityId)boolworld.containerOpen(EntityIdentityId)JsonArrayworld.containerItems(EntityIdentityId)ItemDescriptorworld.containerItemAt(EntityIdentityId,unsignedoffset)boolworld.containerConsume(EntityIdentityId,ItemDescriptoritem)boolworld.containerConsumeAt(EntityIdentityId,unsignedoffset,unsignedcount)unsignedworld.containerAvailable(EntityIdentityId,ItemDescriptoritem)JsonArrayworld.containerTakeAll(EntityIdentityId)ItemDescriptorworld.containerTakeAt(EntityIdentityId,unsignedoffset)ItemDescriptorworld.containerTakeNumItemsAt(EntityIdentityId,unsignedoffset,unsignedcount)unsignedworld.containerItemsCanFit(EntityIdentityId,ItemDescriptoritem)Jsonworld.containerItemsFitWhere(EntityIdentityId,ItemDescriptoritems)ItemDescriptorworld.containerAddItems(EntityIdentityId,ItemDescriptoritems)ItemDescriptorworld.containerStackItems(EntityIdentityId,ItemDescriptoritems)ItemDescriptorworld.containerPutItemsAt(EntityIdentityId,ItemDescriptoritems,unsignedoffset)ItemDescriptorworld.containerItemApply(EntityIdentityId,ItemDescriptoritems,unsignedoffset)ItemDescriptorworld.containerSwapItemsNoCombine(EntityIdentityId,ItemDescriptoritems,unsignedoffset)ItemDescriptorworld.containerSwapItems(EntityIdentityId,ItemDescriptoritems,unsignedoffset)LuaValueworld.callScriptedEntity(EntityIdentityId,StringfunctionName, [LuaValueargs ...])RpcPromise<Json>world.sendEntityMessage(Variant<EntityId, String>entityId,StringmessageType, [LuaValueargs ...])RpcPromise<Vec2F> world.findUniqueEntity(String` uniqueId)boolworld.loungeableOccupied(EntityIdentityId)boolworld.isMonster(EntityIdentityId, [boolaggressive])Stringworld.monsterType(EntityIdentityId)boolworld.isNpc(EntityIdentityId, [intdamageTeam])Stringworld.npcType(EntityIdentityId)Stringworld.stagehandType(EntityIdentityId)voidworld.debugPoint(Vec2Fposition,Colorcolor)voidworld.debugLine(Vec2FstartPosition,Vec2FendPosition,Colorcolor)voidworld.debugPoly(PolyFpoly,Colorcolor)voidworld.debugText(StringformatString, [LuaValueformatValues ...],Vec2Fposition,Colorcolor)boolworld.breakObject(EntityIdentityId,boolsmash)boolworld.isVisibleToPlayer(RectFregion)boolworld.loadRegion(RectFregion)boolworld.regionActive(RectFregion)voidworld.setTileProtection(DungeonIddungeonId,boolprotected)DungeonIdworld.dungeonId(Vec2Fposition)boolworld.isPlayerModified(RectIregion)LiquidLevelworld.forceDestroyLiquid(Vec2Fposition)EntityIdworld.loadUniqueEntity(StringuniqueId)voidworld.setUniqueId(EntityIdentityId, [StringuniqueId])ItemDescriptorworld.takeItemDrop(EntityIdtargetEntityId, [EntityIdsourceEntityId])voidworld.setPlayerStart(Vec2Fposition, [boolrespawnInWorld])List<EntityId>world.players()