Plugin API 0.7.5 (2024-08-30):
- [New] New UI element: UIScrollView
- [New] New PostProcessing object to modify post-processing effects, either applied to a volume, or to a player directly
- [New] New PostProcessingVolume game object
- [New] GameObject.attachTo() (to attach a game object to a player or npc)
- [New] Vehicle API is now available (see World.getVehicle(), World.spawnVehicle(), World.getAllVehicles() etc)
- [New] Added Vehicle definitions (see Vehicles.VehicleDefinition() and Definitions.getVehicleDefinition())
- [New] World.createConstructionElements() (accepting a ConstructionPlaceBatch)
- [New] World.createPlants() (accepting a PlantPlaceBatch)
- [New] World.createStorage()
- [New] World.getStorage()
- [New] World.getAllStorages()
- [New] World.getNumStorages()
- [New] World.triggerExplosion()
- [New] World.getAllNpcs() with optional typeID filter
- [New] Area.getDefaultPermission()
- [New] Server.getLogFilePath()
- [New] Npc.getEquippedItem()
- [New] Npc.getSecondaryItem()
- [New] Npc.setBehaviour() and Npc.resetBehaviour()
- [New] Npc.setAttackReaction() and Npc.resetAttackReaction()
- [New] Npc.setInvisible() and Npc.isInvisible()
- [New] Npc.setSoundsEnabled()
- [New] Npc.playIdleSound(), Npc.playAlertSound(), Npc.playDeathSound()
- [New] Npc.setColliderEnabled() and Npc.isColliderEnabled()
- [New] Npc.setInteractable() and Npc.isInteractable()
- [New] Npc.getPlayerInLineOfSight()
- [New] Npc.isOnlyAliveDuringNight()
- [New] Chunk.getAllObjects()
- [New] Chunk.getAllConstructionElements()
- [New] Chunk.getAllPlants()
- [New] Storage.addItem() and Storage.addItemToSlot()
- [New] Storage.addObjectItem() and Storage.addObjectToSlot()
- [New] Storage.addConstructionItem() and Storage.addConstructionItemToSlot()
- [New] Storage.addClothingItem() and Storage.addClothingItemToSlot()
- [New] Storage.getCreationDate()
- [New] Storage.getLastModifyPlayerDbID()
- [New] Inventory.getEquippedItemSlot()
- [New] Inventory.getEquippedItemSlotType()
- [New] Item.destroy()
- [New] Item.ConstructionItem.setConstructionID()
- [New] Item.ConstructionItem.setColor()
- [New] WorldItem.getRelatedMetaObject()
- [New] WorldItem.getProgress() and WorldItem.setProgress
- [New] MetaObject.getItems() and MetaObject.setItems()
- [New] MetaObject.triggerUpdate()
- [New] Internals.setSceneElementActive()
- [New] Internals.setSceneElementParent()
- [New] Internals.setSceneElementLocalPosition()
- [New] Internals.setSceneElementLocalRotation()
- [New] Internals.setSceneElementLocalScale()
- [New] Internals.overwriteInnerUIStyle()
- [New] Player.getPostProcessing()
- [New] Player.getAllGameObjects()
- [New] Player.getAllUIElements()
- [New] Player.getLocalTimeZoneOffset()
- [New] Player.getPreviousPosition()
- [New] Player.getWorldPartPosition() and Player.getSectorPosition()
- [New] Player.getAltitude() (same as Player.getPosition().y)
- [New] Player.showFontDialog()
- [New] Time.getMoonPhase()
- [New] Style.scale property (UIElements)
- [New] Style.copy() method (to copy all properties from another style)
- [New] GameObject.getPluginID() and UIElement.getPluginID()
- [New] ItemDefinition.getIcon(), ObjectDefinition.getIcon() and ConstructionDefinition.getIcon()
- [New] PlayerPlaceConstructionEvent.getGlobalIDs() (if multiple blocks were placed)
- [New] PlayerPlaceConstructionEvent.getMultiPlaceGap() and setMultiPlaceGap()
- [New] PlayerChangeBlockPositionEvent.getNewChunkPosition() and getOldChunkPosition()
- [New] PlayerEnterAreaEvent.getNewPlayerPosition() and getOldPlayerPosition()
- [New] PlayerEnterChunkEvent.getNewPlayerPosition(), getOldPlayerPosition(), getNewBlockPosition() and getOldBlockPosition()
- [New] PlayerEnterSectorEvent.getNewPlayerPosition() and getOldPlayerPosition()
- [New] PlayerEnterWorldPartEvent.getNewPlayerPosition() and getOldPlayerPosition()
- [New] PlayerLeaveAreaEvent.getNewPlayerPosition() and getOldPlayerPosition()
- [New] PlayerHitTerrain.setDamage()
- [New] Added getPlant() to PlayerVegetationEvents, getObject() to PlayerObjectEvents and getConstructionElement() to PlayerConstructionEvents
- [New] GameObjects support custom attributes now
- [New] Quaternion.inverse() (to calculate the inverse of a quaternion)
- [New] Event: ProcessWorldItemEvent (called when a world item is processed, e.g. by a furnace, grinder etc)
- [New] Event: PlayerProcessItemEvent (called when player cuts watermelon, slices bread, fills canteen etc)
- [New] Event: MetaObjectStatusChangeEvent (called when the status of a meta object changes, e.g furnace or oven)
- [New] Event: ProjectileFireEvent and ProjectileHitEvent (whenever a projectile is fired or hit a target)
- [New] Event: PlayerToggleInventoryEvent (when player opens/closes his inventory)
- [New] Event: PlayerUITextFieldChangeEvent (when text field content is changed)
- [New] Event: ReadyEvent (called when the dedicated server is fully started and ready)
- [Change] WorldDatabase ResultSet indices now begin at 1 instead of 0 (to make this consistent with the JDBC implementation)
- [Change] AddAdminEvent.getPlayerUID() and RemoveAdminEvent.getPlayerUID() now return a String (!)
- [Change] Utils.ChunkUtils.getBlockPosition() methods now provide reliable results
- [Bugfix] Fixed various native crashes caused by uncaught exceptions during JNI call
- [Bugfix] Fixed raycasts not properly recognizing the local player
- [Bugfix] Fixed plants or objects created via World.createPlant()/World.createObject() having an invalid global ID
- [Bugfix] Fixed crash when creating saplings via World.createPlant()
- [Bugfix] Fixed Player.getState() not returning the correct state if the player is dead
- [Bugfix] Fixed Player.setInvisible()
- [Bugfix] Fixed Player.shake()
- [Bugfix] Fixed Player.setMaxStamina()
- [Bugfix] Fixed Player.setListenForMouseInput() sometimes not working correctly
- [Bugfix] Fixed Player.showColorPicker() callback not being invoked
- [Bugfix] Fixed Sound.stop() not working
- [Bugfix] Fixed PlayerHitTerrainEvent not being cancellable
Plugin API 0.7.5.1 (2024-09-02):
- [Bugfix] Fixed flickering UI elements on hover
Plugin API 0.7.5.2 (2024-09-02):
- [Bugfix] Npc.getNearestPlayer() no longer returns null if invoked from NpcSpawnEvent
- [Bugfix] Npc methods (getPosition() etc) now work properly if invoked from NpcSpawnEvent
- [Bugfix] Fixed Npc.setAlerted(false) not working
- [Bugfix] Fixed item icon sometimes being invisible after cancelling PlayerDropItemEvent
This version uses Unity 2023.1.20. This is relevant if you want to build asset bundles containing custom shaders or VFX effects