Stormworks: Build and Rescue - Deltars


Dear Stormworkers,

This week we are releasing some new mission content we are working on - transport missions! Transport workers, inspectors, components, boxes and more in specific one-off missions where your help is required. These missions are similiar to many of the old missions but with one crucial difference - they are procedural!

While this is just one minor update to the missions system, we have more planned. We are really enjoying extending and using the LUA API to create this content, and there is a lot of really cool stuff still to be added.

These new LUA missions will appear in any new game, in the same way as normal missions. They are reasonably rare at the moment but we plan to continue to develop this and other new mission systems as we continue to improve career mode.



Last week we announced the poll on the Official Discord Server... and you broke Discord from voting so much! We have never had so much interest in the new features poll, and Discord simply could not handle the sheer number of emotes / votes. However, we were screenshotting the results periodically and have data from just before Discord started to struggle. The results are EXTREMELY interesting and we will be discussing the results in next weeks announcement!

Thank you to the thousands of you who gave your feedback on the poll. We really appreciate your input and it is very important to us that all Stormworks players get an equal say to influence us on where to next take the game. We really enjoy collaborating with you and are looking forward to continuing on this next chapter of Stormworks.



As always, this weeks update comes with many other fixes and improvements. Please see the full change list below for details.

Much love <3,

The Stormworks Developers

v1.0.18

Fix - removed some character controller changes to fix issue falling through floor on death

v1.0.19

Feature - New transport missions

Rework - Absorbed server.whisper into server.announce
server.announce new optional peer_id parameter
Rework - UI improvements

Fix - Players falling through the floor on respawn
Fix - Winch audio position
Fix - Currency not synced after auto refuel
Fix - Lua help documentation code blocks getting cut off
Fix - Script callbacks returning host player peer_id instead of -1 when executed by a script
Fix - Seat helmet rendering not smoothed
Fix - Hat override not ending when teleporting from seats
Fix - Cargo playlist issues after saving and loading
Fix - Mission "Find" objective now follows the main vehicle instead of staying at the spawn position
Fix - Mission component tags box should be multi-line
Fix - Mission map UI desync on player join
Fix - Map custom lines now render under other icons
Stormworks: Build and Rescue - Deltars


Dear Stormworkers,

We need to know, what do you want next in Stormworks?

Head over to the Official Stormworks Discord Server #announcements channel, and let us know what features you would like to next in Stormworks! Simply click on the associated emotes to vote for that feature.

It's really important to us that we keep in touch with players. Stormworks is a unique game with a very unique, creative community. Many of you have hundreds or even thousands of hours within the game, and know a lot of what Stormworks is about. We want to shape the next steps for the game with you, and understand the direction that you think we should go in.



We are currently working on the next major update - modular engines! This update is in progress and shared with everyone in the experimental branch of the game.

This week, we are also releasing a bug fixing update with many fixes and improvements to the quality of the game. Please see below for a full list of changes.



Much love <3,

The Stormworks Developers

v1.0.16-17

Fix - Chat CTD
Fix - Toggle button not holding its state when power is cut
Fix - Multiple fluid spawners refunding costs for a shared volume
Fix - CTD on linking helm audio node
Fix - Muffle effect persisting when teleporting from a seat
Fix - Character physics unable to swim through small holes underwater
Fix - Camera transition not smoothed when exiting water
Fix - Active but expired mission vehicles despawning on save/load
Fix - Electric relay being interactable
Fix - Character capsule collision not disabling in seats
Fix - Rain/Snow hitting clouds
Fix - Water Cannons / Hoses consuming fuel
Fix - Character not crouching after jumping while crouch is held
Fix - Invisible ropes for multiplayer clients
Fix - Character ragdolls getting stuck in physics when exiting seats
Fix - Removed internal explosion ignition point parameter from lua createFire and mission editor
Fix - Winch ropes not having the correct number of physics nodes on spawn
Fix - Playlist Lua updates and documentation fixes
-- server.whisper() can now use peer id -1 for all peers
-- api now pushes integers instead of numbers where appropriate
Stormworks: Build and Rescue - Deltars


Dear Stormworkers,

This week we are adding new options for many of the seat components in Stormworks - audio nodes!

Some chairs now have the option to add a pilot helmet or headset. When using the head gear, the seat then has a built in speaker and microphone linked directly to the player in that seat! This is really useful for creating intercom systems and communicating with other players within a vehicle over multiplayer.

But this isn't just a multiplayer feature - using a seat with headgear also reduces and muffles environmental sound, making it much more comfortable to operate powerful vehicles with big engines!

When players use seats with head gear, the helmet or headset appears on the player character while in the seat.



This update has already been tested on experimental branch for a few days, as we change our release procedures to best ensure higher quality releases and more robust updates. We are really excited to be working with the entire community (rather than previously where there was a closed testing group) and be more open with development.

We have also been hard at work continuing to address many issues within the game, all of which have been introduced to the experimental branch as well. See the change notes below for a full list of changes.

Much love <3,

The Stormworks Developers

Patch Notes

v1.0.15

Feature - Seat audio nodes and toggleable headset property

Rework - Removed cargo zone merging
Rework - Scripts are now only ticked when the game is simulating
Rework - Allow dead/incapacitated characters to be placed in beds/stretchers
Rework - Survivors no longer exit seats when vehicles unload
Rework - Water particle extinguish rate now based on distance to fire

Fix - Chatbox covering sound setting sliders
Fix - Laser distance sensor values persisting when toggled off
Fix - Gimbal camera mirrored editor arrows
Fix - Gimbal camera laser rendering flipping in y-axis
Fix - Player charged for auto-refuel when loading a save
Fix - Carried/Seated characters not updating submerged state when NPC damage is enabled
Fix - Player rendering when zoomed in with binoculars
Fix - MP clients falling through floor when teleporting
Fix - MP clients falling through floor when connecting
Fix - MP clients falling through floor when disconnecting
Fix - Buying/selling fuel when auto-refuel is disabled
Fix - Rail junctions not saving their state
Fix - Seat back voxels not being raycastable (Hard to get in seats)
Fix - Button state inverting when cutting power whilst overriding the node
Fix - CTD extinguishing forest fires on DS
Fix - Forest fires not extinguishing correctly by fire extinguisher on DS
Fix - Camera inputs not clearing when toggling photo/noclip mode
Fix - PTT being disabled when scrolling over hotbar radio equipment
Fix - Winch ropes added in vehicle editor snapping to 10m when winch extended/retracted
Fix - Prevent mission fires re-igniting on unload/load
Fix - Active tool staying active when collecting equipment
Fix - Classic career now applies research filters to the vehicle editor hotbar
Fix - Added missing mission location names
Fix - onVehicleDamaged lua callback

onVehicleDamaged(vehicle_id, damage_amount, voxel_x, voxel_y, voxel_z) -- damage amount returns negative if component is repaired
Stormworks: Build and Rescue - Deltars


Dear Stormworkers,

We launched Version 1.0!!! What an incredible week.

Thank you to all the players who gave us feedback and helped shape many of the improvements we have made this week.

Lets look at what we have been up to this week:

Sept 17th: Launched Version 1.0! With the new LUA modding, spreadable fires, first person equipment, missions, tutorial, audio effects, and more.

Sept 20th: Added "Classic Career" mode with research trees, map fog, player icons, and many other settings familiar to the old career mode.

Sept 21st: Added "Test Location" button to the mission editor so that players can easily and quickly spawn their vehicle spawning missions without any scripting.

Using the new mission location spawning is really easy: from in game, press Esc, click Mission Editor. Load up your mission and find the location you wish to spawn and click "Test Location".

Sept 22nd: Normal mode is now emulated by selecting "infinite electric", "infinite fuel", and deselecting "engine overheating". As previously discussed, our intention was never to remove normal mode, but rather integrate it as real time settings into the new Custom Menu.

Sept 23rd: Reworked the new ropes, hoses and cables! These are now twice as long, easier to handle, and generally work better.

These are just the headlines, we have also implemented many many small changes and fixes. Full change notes below!



Version 1.0 is not the final version and development continues as normal. We will soon resume work on the new modular engines and develop them with the community, on the new experimental branch.

In response to much helpful feedback, we also plan to change our release procedures, so that minor fixes and new features are tested more, then released to experimental, before finally being released to the release branch of the game. Only the most critical hot-fixes will be promoted directly to the release branch.



We look forward to hearing all your feedback on the new changes! We have big plans yet for Stormworks and really look forward to working with you on the experimental branch as we begin the next phase of development for Stormworks!

Much love <3,

The Stormworks Developers

Patch Notes

v1.0.1
Feature - Enabled Experimental Branch

v1.0.1a
Feature - Enabled Modular Engine Components

v1.0.2

Feature - New playlist Lua to simplify vehicle spawning scripts
playlist_index = server.getPlaylistIndexByName(name)
playlist_index = server.getPlaylistIndexCurrent()
location_index = server.getLocationIndexByName(playlist_index, name)
server.spawnThisPlaylistMissionLocation(name)

Rework - Made tutorial end more clear
Rework - Balanced mission rewards
Rework - Balanced fluid/fuel costs

Fix - Updated video tutorial playlist link
Fix - Disabled mission debug text in chat
Fix - Updated playlist Lua help tab meta section
Fix - Deprecated simple mode turbine
Fix - Deprecated static block
Fix - Equipment drop dupe bug
Fix - Headless player in wardrobe editor
Fix - New playlist now clears old Lua
Fix - Old (unsupported) saves loading in current game version
Fix - Tutorial active not resetting on new saves
Fix - Charge player for starter boat
Fix - Can no longer sell starter tractor and trailer

v1.0.3

Fix - Broken crouch anim in character editor
Fix - Door jitter in multiplayer
Fix - Detatch survivor from seats/ropes/carried if updated to NPC

v1.0.4

Rework - Updated benchmark scenes
Rework - Updated fluid gantries

Fix - Mission editor workshop upload tags
Fix - server.setGameSetting

v1.0.5

Feature - Classic Career preset
Feature - Re-added research and component unlocking

Rework - Updated playlist Lua
server.setCurrency(money, research)
points = server.getResearchPoints()
server.setGameSetting("unlock_all_components", true)

Fix - Tutorial blocking missions if loaded after tutorial ended
Fix - Missions ending with wrong message when expiring
Fix - Cargo script error when editing an iterated table
Fix - Missions without fire support not spawning fire objective

v1.0.6

Rework - Tutorial now only starts if components are unlocked (Disabled for old career))

v1.0.7

Feature - Added test location button to locations in playlists
Feature - Infinite Electric no longer requires batteries or logic links
Feature - ?reload_scripts now autosaves and fully reloads playlist data including locations
Feature - added isTilePurchased(matrix) lua function

Rework - onCreate playlist callback now passes is_world_create parameter, this makes setting up events at world start easier (eg. set starting cash)

Fix - Lack of warning and component stripping when inf money is on and unlocked components is off
Fix - Multibody child components appearing in the inventory
Fix - Active item failing to disable when picking up items from the ground
Fix - Electric/Fluid connections not severing when disconnecting Cables/Hoses
Fix - Infinite fuel not applying to air/exhaust/coolant
Fix - Career main menu description
Fix - Microprocessor spawning when components not unlocked
Fix - Tutorial always activating
Fix - Component visibility when components locked
Fix - CTD when radar raycasts physics with no user data
Fix - Cargo script error when vehicle ID returns as nil
Fix - Blueprints are now required for microprocessors even when inf money is off
Fix - Tutorial now supports players other than host (Dedicated server fix)
Fix - CTD picking up fire extinguisher on dedicated server
Fix - Tutorial activating when tile is not purchased
Fix - Added fix for tutorial getting stuck in a loop

added ?tutorial command to the script to check if the tutorial is active

v1.0.8

Fix - fixed research reward for missions

v1.0.9

Fix - Multiplayer equipment crashes

v1.0.10

Feature - Added test location button for Env Mods by treating them the same as normal locations

Fix - Mission vehicles not spawning due to how they were saved
Fix - Non-admins being unable to trigger custom commands
Fix - Outdated code in playlist Lua help
Fix - Game settings are now synced after using setGameSetting
Fix - Tutorial script failing to update objectives if saving halfway through
Fix - Set classic career start cash to 15000
Fix - Infinite fuel no longer requires any inputs for engines to work
Fix - Characters not updating follower chains when being set to NPC
Fix - NPC names not saving
Fix - Tooltips appearing in vehicle third person
Fix - Cost labels not showing in custom mode (when toggling infinite money)
Fix - Network event for unlocking all islands on dedicated server
Fix - NPC ladder breadcrumbs not working
Fix - Extended space for names in chat and capped names at 12 chars

v1.0.11

Rework - Increased rope spool speed

Fix - Dedicated server CTD on ?save
Fix - Allow selecting/dropping disabled equipment and added UI icons to show disabled equipment
Fix - Remove defunct UI for detatch rope
Fix - Rotating jet exhaust, laser distance sensor, transponder, and transponder locator no longer use power unless active
Fix - Rope state multiplayer sync
Fix - Do not set tutorial starter boat to despawn
Fix - Turned off chat name clipping, extended chat box
Fix - Gearboxes not working after repairing them
Fix - Equipment boxes mass and values
Fix - Prevent drowning while swimming on the surface in first person
Fix - Lua documentation fixes
Fix - Fluid exhaust voxels and removed buoyancy surfaces
Fix - Jet engines not working when infinite fuel enabled
Fix - Purchase interactables no longer block raycasts

v1.0.12

Fix - CTD caused by fluid exhaust change

v1.0.13

Fix - Ropes causing issues when returning to workbench

v1.0.14

Fix - Mission system sometimes not saving correctly
Fix - Reduced career starting cash to 20000 to match reduced cost of tutorial boat
Fix - Hat not rendering sometimes when in a seat
Stormworks: Build and Rescue - Deltars


Dear Stormworkers,

Version 1.0 is here!

Check out the new trailer.

Remember, Version 1.0 is just the beginning. We have big plans for many minor and major updates as development continues as normal, as well as loads of time put aside for fixing and improving the game.

Experimental branch is live! To access experimental branch and the new modular engines, go to your Steam library, right click on Stormworks, then go to the Betas tab. Here you should be able to select the "experimental" beta.

There is a huge amount in this update. Please see below for the full change log, but lets briefly recap the biggest new features in todays update!



New LUA Game Modding

We have added a whole new type of content creation in Stormworks - game scripting! We have added scripts to the mission editor, and a whole new API for controlling the game from here. We used this to make the new missions, tutorial, and cargo system, but is can also be used for servers, or creating new games within the Stormworks world.

First Person Body, Tools, Equipment

You now have a body when in first person mode, and can use handheld tools and equipment. There is repair tools, medical equipment, tracking and illumination equipment and more!

Spreadable Vehicle Fire

Fire on vehicle now spreads! Fire creeps along surfaces, damages components, and hurts players. Fire can quickly get out of control and is a huge new design consideration when creating Stormworks vehicles. Fire respects doors and is compartmentalised.

New Career and Missions, Tutorial, Logistics

There are new procedural missions, the new tutorial, and a container cargo handling system. There is now a huge amount more to do in the world of Stormworks, and much more to come, with an open API for creating gameplay content.

New Customisation Menu

You now have full control of game settings, real time from within the game. Infinite fuel and electric, teleporting, damage, first person, map visibility and more!

Weather Simulation & Seasons

Weather is now locally simulated, and more extreme. Expect stronger winds, bigger waves, and predictable weather systems and storms.



Thank you to all players who bought, played, discussed, shared on the workshop, suggested features, and reported bugs, for helping us reach this huge milestone! It is a huge privilege that so many of you have chosen to spend so much time playing our game, and it means a lot.

There is so much more to come in the world of Stormworks, and we look forward sharing this journey with you all as we continue to make Stormworks as good as it can be!

Much love <3,

The Stormworks Developers

Patch Notes

v1.0.0


Major Feature - First Person Tools and Features
Major Feature - Playlist Lua Scripts with extensive custom mission and gamemode support
Major Feature - Weather Simulation and Map Overlays with Seasons
Major Feature - Vehicle Fire Spread
Major Feature - Creative Menu is now Custom Menu and has many new customisation options and tools
Major Feature - New Tutorial and Procedural Mission Playlists
Major Feature - New First person experience and animations
Major Feature - Multiplayer Improvements and Optimisation

Major Feature - Experimental Steam Branch
Experimental Feature - Modular Engine Parts

Feature - Manual doors can now have custom names
Feature - Wind no longer affects 'indoor' areas
Feature - Damaging Engine / Electrical components now causes spreadable fires
Feature - Added small visual marker at the center of the location editor
Feature - Mission editor location naming
Feature - Player nameplates light up when speaking
Feature - Audio system overhaul
Feature - Added Video Tutorials button to the menu
Feature - Populated some areas with NPCs

Rework - Removed Basic Mode
Rework - Removed Tech-Tree and Stock
Rework - Career mode now uses a predefined ruleset and is treated as a standalone hardcore mode
(Players looking for a more personalised career experience can now customise Stormworks in 'Custom' mode)
Rework - Creative mode is now part of Custom mode
Rework - Carrying heavy equipment / bodies now slows the player
Rework - Weather can now be more violent at its peak
Rework - Winches now have linear speed
Rework - Removed all old preset mission playlists
Rework - Less important map icons now take up less space
Rework - $30k Starting cash
Rework - Automatic charging and refunding for fuel spawned
Rework - New island generation pattern
Rework - Removed "Loading Vehicles" notification
Rework - Dead bodies can now be picked up
Rework - Updated rope hook mesh
Rework - Doors on islands can now be opened without purchasing the island
Rework - Engine temperature scaling/cooling

Fix - Chat message crash
Fix - Greatly increased speed of inventory in the vehicle editor
Fix - Pivots selling for more than their cost
Fix - Game Date not syncing in mp
Fix - Rain splashes on water surface
Fix - Disabled Mission Editor for mp clients
Fix - Disabled Loading other saves during mp
Fix - Animation when holding Sprint and Walk
Fix - Rain falling through glass
Fix - NPCs not benefiting from outfits
Fix - Infinite jumps when colliding with carried NPCs
Fix - Taking damage on teleport
Fix - Wheel shadows desyncing at speed
Fix - Several situations where controls are sticky
Fix - CTD on despawning subgrid with new wheels
Fix - Characters always try to look North
Fix - Rendering issues with max FOV in compartments that are underwater
Fix - Diving hitbox mismatching the animation
Fix - CTD on game close
Fix - Flame damage boxes on rotating jet nozzles
Fix - Train wheel data tooltips
Fix - Rail nodes remember the track signal state
Fix - NPC detach from ladder stopping following
Fix - Radar now only triggers Radar Detectors when it is the most relevant detected contact
Fix - Glass material on laser detector
Fix - Water cannon fluid connection
Fix - Killing carried NPCs upon fast travel
Fix - Diagonal railing surface issue
Fix - Additive paint selection
Fix - Editor opens load vehicle screen after attempting to spawn an out of budget vehicle
Fix - CTD for players in seats
Fix - Increase "indoor" box on starter island cottage
Fix - Tooltips for seats, rope-hooks, winches, connection gripper, and paintable indicators
Fix - Water cannon actuation
Fix - SR Latch description to match behaviour
Fix - Increased mass of premade fluid tanks
Fix - Gearbox uses default gear ratio when spawned but unpowered
Fix - Recentered 7x7 high grip tyre mesh
Fix - Circuit breaker uses forced color when rendering
Fix - Electric heater breaking completely after 1 damage
Fix - Moved beginner island edit grid down
Fix - Spotlight volumes weak rendering
Fix - Component damage is now capped at 50
Fix - Survivors looping 'play once' animations when carried
Fix - Disappearing ragdolls
Fix - Updated distance sensor descriptions to show correct range
Fix - Variable and on/off fluid valves now require Electric
Fix - Laser beacon rendering when mirrored
Fix - Rotors no longer make sound when folded
Fix - Unpowered lights no longer attempt to render
Fix - CTD if a follower was suddenly unloaded
Fix - Animals are now buoyant inside compartments
Fix - Radar and Sonar now only detect targets above and below sea-level respectfully
Fix - Survivor temperature and oxygen network sync
Fix - Chatbox storing infinite messages (now 128 cap)
Fix - Microprocessor memory register
Fix - Breath bar not recovering while wearing diving equipment
Fix - Rain rendering underwater
Fix - Hide chat in photo mode
Fix - Updated diesel engine descriptions
Fix - Static vehicle draining power by default
Fix - Fixed electric relay default state
Fix - Carried survivors dying when teleporting
Fix - Physics and render issues with props at speed
Fix - Engines now fully cut out when EMP'd
Fix - Camera IR laser
Fix - Accumulating lag when looking at a tooltip
Fix - Adjusted mega-island, arctic-base and mp-island 'indoor' hitboxes

F2 developer debug modes have now been removed

Old mission spawning system support has now been removed
Unchecking all playlists will no longer spawn default missions


First Person Items
============
Binoculars
Cable
Compass
Defibrillator
Fire Extinguisher
First Aid Kit
Flare
Flaregun
Flaregun Ammo
Flashlight
Hose
Night Vision Binoculars
Oxygen Mask
Radio
Radio Signal Locator
Remote Control Unit
Rope
Strobe Light
Strobe Light Infrared
Transponder
Welding Torch
Underwater Welding Torch


New Playlist Lua Script exclusive callbacks and functions
============

g_savedata = {}
The g_savedata table is saved to xml between sessions, you can place variables and tables inside if you want them to persist across sessions.
when loading from file the g_savedata table will overwrite any identical variables declared within the script

peer_id can be passed as -1 to send for all peers


Matrix Functions (4x4)
=================
matrix = matrix.multiply(matrix1, matrix2)
matrix = matrix.invert(matrix)
matrix = matrix.transpose(matrix)
matrix = matrix.identity()
matrix = matrix.rotationX(radians)
matrix = matrix.rotationY(radians)
matrix = matrix.rotationZ(radians)
matrix = matrix.translation(x,y,z)
x,y,z = matrix.position(matrix)
dist = matrix.distance(matrix1, matrix2)

Server Functions
================

server util
===========
server.announce(name, message)
server.whisper(peer_id, message)
server.notify(peer_id, title, message, NOTIFICATION_TYPE)

ui_id = ui.getMapID()
server.removeMapID(peer_id, ui_id)
server.addMapObject(peer_id, ui_id, POSITION_TYPE, MARKER_TYPE, x, y, z, parent_local_x, parent_local_y, parent_local_z, vehicle_id, object_id, label, vehicle_parent_id, redius, hover_label)
server.removeMapObject(peer_id, ui_id)
server.addMapLabel(peer_id, ui_id, LABEL_TYPE, name, x, y, z)
server.removeMapLabel(peer_id, ui_id)
server.addMapLine(peer_id, ui_id, start_matrix, end_matrix, width)
server.removeMapLine(peer_id, ui_id)

server.setPopup(peer_id, ui_id, name, is_show, text, x, y, z, is_worldspace, render_distance)
server.removePopup(peer_id, ui_id)
server.createPopup(peer_id, ui_id)

player
===========
name = server.getPlayerName(peer_id)
PLAYER_LIST = server.getPlayers()
matrix = server.getPlayerPos(peer_id)
server.teleportPlayer(peer_id, matrix)
server.killPlayer(peer_id)
server.setSeated(peer_id, vehicle_id, seat_name)
x,y,z = server.getPlayerLookDirection(peer_id)

vehicle
===========
vehicle_id = server.spawnVehicle(matrix, playlist_index, component_id)
vehicle_id = server.spawnVehicleSavefile(matrix, save_name)
server.despawnVehicle(vehicle_id, is_instant)
matrix = server.getVehiclePos(vehicle_id, voxel_x = 0, voxel_y = 0, voxel_z = 0)
name = server.getVehicleName(vehicle_id)
server.teleportVehicle(matrix, vehicle_id)
server.cleanVehicles()
server.pressVehicleButton(vehicle_id, button_name)
server.getVehicleFireCount(vehicle_id)
server.setVehicleTooltip(vehicle_id, text)
is_simulating = server.getVehicleSimulating(vehicle_id)
server.setVehicleTransponder(vehicle_id, is_active)
server.setVehicleEditable(vehicle_id, is_editable)

mission
===========
path = server.getPlaylistPath(playlist_name, is_rom)
server.spawnObject(matrix, OBJECT_TYPE)
is_found, matrix = server.getObjecPos(object_id)
object_id = server.spawnFire(matrix, size, magnitude, is_lit, is_initialzied, is_explosive, parent_vehicle_id, explosion_point, explosion_magnitude)
server.despawnObject(object_id, is_instant)
object_id = server.spawnCharacter(matrix, (outfit_id))
object_id = server.spawnAnimal(matrix, animal_type, scale)
server.despawnCharacter(object_id, is_instant)
hp, matrix = server.getCharacterData(object_id)
server.setCharacterData(object_id, hp, is_interactable)
server.setCharacterItem(object_id, slot, EQUIPMENT_ID, is_active)
tutorial_completed = server.getTutorial()
ZONE_LIST = server.getZones(tag(s))
is_in_zone = server.isInZone(matrix, zone_name)
matrix = server.spawnMissionLocation(matrix, playlist_index, location_index)
server.spawnMissionObject(matrix, playlist_index, location_index, object_index)
server.despawnMissionObject(object_id, is_instant)
count = server.getPlaylistCount()
PLAYLIST_DATA = server.getPlaylistData(playlist_index)
LOCATION_DATA = server.getLocationData(playlist_index, location_index)
OBJECT_DATA = server.getLocationObjectData(playlist_index, location_index, object_index)
server.setFireData(object_id, is_lit, is_explosive)
is_lit = server.getFireData(object_id)
matrix = server.getOceanTransform(matrix, min_search_range, max_search_range)
is_in_area = server.isInTransformArea(matrix_object, matrix_zone, zone_x, zone_y, zone_z)

game
===========
server.setGameSetting(setting_name, bool)
GAME_SETTINGS = server.getGameSettings()
server.setCurrency(amount)
amount = server.getCurrency()
days_survived = server.getDateValue()
system_time = getTimeMillisec()

http
===========
server.httpGet(port, request)

admin
===========
server.banPlayer(peer_id)
server.kickPlayer(peer_id)
server.addAdmin(peer_id)
server.removeAdmin(peer_id)
server.addAuth(peer_id)
server.removeAuth(peer_id)

Callback Functions
==================
onTick(world_ticks)
onCreate()
onDestroy()
onCustomCommand(full_message, user_peer_id, is_admin, is_auth, command, args ...)
onChatMessage(sender_name, message)
onPlayerJoin(steam_id, name, peer_id, is_admin, is_auth)
onPlayerSit(peer_id, vehicle_id, seat_name)
onPlayerRespawn(peer_id)
onPlayerLeave(steam_id, name, peer_id, is_admin, is_auth)
onToggleMap(peeer_id, is_open)
onPlayerDie(steam_id, name, peer_id, is_admin, is_auth)
onVehicleSpawn(vehicle_id, peer_id, x, y, z)
onVehicleLoad(vehicle_id)
onVehicleTeleport(vehicle_id, peer_id, x, y, z)
onVehicleDespawn(vehicle_id, peer_id)
onSpawnMissionObject(object_id, name, OBJECT_TYPE, playlist_name)
onVehicleDamaged(vehicle_id, damage)
httpReply(port, request, reply)
onFireExtinguished(x,y,z)

Types and info
==================

POSITION_TYPE |
0 = fixed,
1 = vehicle,
2 = object

MARKER_TYPE |
0 = delivery_target,
1 = survivor,
2 = object,
3 = waypoint,
4 = tutorial,
5 = fire,
6 = shark,
7 = ice,
8 = search_radius

LABEL_TYPE |
0 = none,
1 = cross,
2 = wreckage,
3 = terminal,
4 = military,
5 = heritage,
6 = rig,
7 = industrial,
8 = hospital,
9 = science,
10 = airport,
11 = coastguard,
12 = lighthouse,
13 = fuel,
14 = fuel_sell,

NOTIFICATION_TYPE |
0 = new_mission,
1 = new_mission_critical,
2 = failed_mission,
3 = failed_mission_critical,
4 = complete_mission,
5 = network_connect,
6 = network_disconnect,
7 = network_info,
8 = chat_message,
9 = network_info_critical,

PLAYER_LIST |
{ [peer_index] = {["id"] = peer_id, ["name"] = name, ["admin"] = is_admin, ["auth"] = is_auth}}

ZONE_LIST |
{ [zone_index] = { ["name"] = name, ["transform"] = matrix, ["size"] = {x, y, z}, ["radius"] = radius, ["type"] = ZONE_TYPE , ["tags"] = { = tag } }}

ZONE_TYPE |
0 = box,
1 = sphere,
2 = radius,

EQUIPMENT_ID |
0 = none,
1 = diving,
2 = firefighter,
3 = scuba,
4 = parachute,
5 = arctic,

6 = binoculars,
7 = cable,
8 = compass,
9 = defibrillator,
10 = fire_extinguisher,
11 = first_aid,
12 = flare,
13 = flaregun,
14 = flaregun_ammo,
15 = flashlight,
16 = hose,
17 = night_vision_binoculars,
18 = oxygen_mask,
19 = radio,
20 = radio_signal_locator,
21 = remote_control,
22 = rope,
23 = strobe_light,
24 = strobe_light_infrared,
25 = transponder,
26 = underwater_welding_torch,
27 = welding_torch,


PLAYLIST_DATA |
{ ["name"] = name, ["path_id"] = folder_path, ["file_store"] = is_app_data, ["location_count"] = location_count }

LOCATION_DATA |
{ ["name"] = name, ["tile"] = tile_filename, ["env_spawn_count"] = spawn_count, ["env_mod"] = is_env_mod, ["object_count"] = object_count }

OBJECT_DATA |
{ ["name"] = name, ["display_name"] = display_name, ["type"] = TYPE_STRING, ["id"] = component_id, ["dynamic_object_type"] = OBJECT_TYPE, ["tags"] = { = tag }, ["transform"] = matrix, ["character_outfit_type"] = OUTFIT_TYPE }

TYPE_STRING |
"zone",
"object",
"character",
"vehicle",
"flare",
"fire",
"loot",
"button",
"animal"
"ice",
"cargo_zone",

OBJECT_TYPE |
0 = none,
1 = character,
2 = crate_small,
3 = collectable,
4 = basketball,
5 = television,
6 = barrel,
7 = schematic,
8 = debris,
9 = chair,
10 = trolley_food,
11 = trolley_med,
12 = clothing,
13 = office_chair,
14 = book,
15 = bottle,
16 = fryingpan,
17 = mug,
18 = saucepan,
19 = stool,
20 = telescope,
21 = log,
22 = bin,
23 = book_2,
24 = loot,
25 = blue_barrel,
26 = buoyancy_ring,
27 = container,
28 = gas_canister,
29 = pallet,
30 = storage_bin,
31 = fire_extinguisher,
32 = trolley_tool,
33 = cafetiere,
34 = drawers_tools,
35 = glass,
36 = microwave,
37 = plate,
38 = box_closed,
39 = box_open,
40 = desk_lamp,
41 = eraser_board,
42 = folder,
43 = funnel,
44 = lamp,
45 = microscope,
46 = notebook,
47 = pen_marker,
48 = pencil,
49 = scales,
50 = science_beaker,
51 = science_cylinder,
52 = science_flask,
53 = tub_1,
54 = tub_2,
55 = filestack,
56 = barrel_toxic,
57 = flare,
58 = fire,
59 = animal,
60 = map_label,
61 = iceberg,
62 = small_flare,
63 = big_flare,

OUTFIT_TYPE |
0 = none,
1 = worker,
2 = fishing,
3 = waiter,
4 = swimsuit,
5 = military,
6 = office,
7 = police,
8 = science,
9 = medical,
10 = wetsuit,
11 = civilian,

GAME_SETTINGS |
"third_person",
"third_person_vehicle",
"vehicle_damage",
"player_damage",
"npc_damage",
"sharks",
"starting_currency",
"fast_travel",
"teleport_vehicle",
"rogue_mode",
"auto_refuel",
"megalodon",
"map_show_players",
"map_show_vehicles",
"show_3d_waypoints",
"show_name_plates",
"day_night_length",
"infinite_money",
"settings_menu",
"unlock_all_islands",
"infinite_batteries",
"infinite_fuel",
"engine_overheating",
"no_clip",
"map_teleport",
"cleanup_veicle",
"clear_fow",
"vehicle_spawning",
"photo_mode",
"respawning",
"settings_menu_lock",
"despawn_on_leave",
Stormworks: Build and Rescue - Deltars


Dear Stormworkers,

There is less than a week left to go before the big Version 1.0 update, as Stormworks leaves early access on September 17th 2020.

Version 1.0 Countdown

On launch the price will increase by 25%, so buy now to avoid paying the higher price. If you already own Stormworks, then Version 1.0 is a free update like all major updates have been before.

With just a few days left to go, lets go over the exiting new major updates included in this release:

Experimental Branch

We are launching the new experimental branch at the same time as Version 1.0. The new experimental branch will be available to all players and have the most up to date, in development features, ready for your feedback. On launch, this will include the new modular engines, where you can build your own custom engines from component blocks.

New LUA Game Modding

The new lua game scripts allow you to write missions, events, actions, game mods, server scripts, and much more using the new scripts and API provided. This is a huge new part of the game and gives players so much control and influence in Stormworks. We can not wait to see the mods players start to create. New API will be developed with the help of experimental branch.



First Person Character

In first person, you will have a body, and view the world through the eyes of your character.

First Person Tools & Equipment

You will pick up inventory items, and use tools and equipment in first person. This includes repair tools, firefighting equipment, rescue equipment, ropes, hoses and cables.

Spreadable Vehicle Fire

Fire will spread across the surfaces of vehicle blocks, slowly spreading and progressing across a vehicle. This can quickly get out of control, so you will be aggressively tackling fires, relying on fire fighting vehicles, hand held hoses, fire extinguishers, and whatever other means of fire fighting you have equipped yourself with.



New Career and Missions

The new career (built with the new LUA API) introduces procedural missions which can occur anywhere across the map. These missions may be at a known location, you may have to search an area, or track an emergency transponder signal, They may involve fire fighting, casualty rescue or other emergencies. Career mode is a fixed set of hardcore rules with a survival focus, but if you prefer different settings, the new "Custom" mode allows you to set your options any way you wish.

New Logistics

The new cargo handling system (also built with the new LUA API) introduces container terminals. These terminals produce cargo, which are individually addressed to other terminals. Delivering cargo pays well but can be expensive with fuel and vehicle costs. Build your own cargo handling business, or just make a little cash on the side to help grow your coastguard fleet.

New Tutorial

The new tutorial introduces the world of Stormworks, and the new missions. Expect a brief and basic, non-intrusive instruction as you complete your first mission. There is also several new video tutorials to help new players get started in the vehicle editor created by MrNJersey. These videos go over the basics of the vehicle editor, as well as take you through the stages of building your first boat.



New Customisation Menu

The new Custom menu replaces the creative menu. This menu includes all the old options and plenty of new ones, with all settings being modifiable in real time, in game, without going back to the main menu or starting a new game. Change damage settings, reveal the map, hide map icons, allow teleporting and noclip, infinite fuel and electric, and despawn vehicles.

Weather Simulation & Seasons

The new weather system means that weather in one location will be different in a different location. From the map, you can view information on temperature, precipitation, visibility, and wind. The weather system will simulate and change over time, and to some limited degree, you can predict weather changes due to a prevailing easterly wind. Weather is now stronger and more extreme. You do not want to get caught in the cold, the rain, or at worst, a violent storm with high winds, powerful enough to blow your ship off course and make it very difficult to land.

Just a few days left! We can't wait to share this new update with you. Join us on the Official Stormworks Discord on Thursday for the big launch.

Much love <3,

The Stormworks Developers
Stormworks: Build and Rescue - Deltars


Dear Stormworkers,

On Thursday 17th September 16:00 UTC, Stormworks Version 1.0 will release. This week we are announcing previously unannounced features and details.

Version 1.0 Countdown

Spreadable fire is being added in Version 1.0. This new fire system has been frequently requested, and many players even predicted this feature would be added based on hints in previous upcoming announcements (well done!).



In the new spreadable fire system, fire spreads across surfaces, slowly creeping across the surface of a vehicle. This means that fire can spread into a significant and overwhelming problem if not tackled quickly, in a similar way to how the wild fires can quickly overwhelm the player and grow beyond a fightable size. This also means that fire is a much greater threat to players, and greater attention must be given to fire suppression systems, and fire fighting equipment.

The fire damages components that it touches. This means that as fire spreads across a vehicle, the function of the blocks it reaches is destroyed. Vehicles will slowly lose function as they are eaten by fire.



The fire also damages players that it touches. Players may now want to consider fire escape routes on larger vehicles and consider potential risks, escape distances, alternative routes, emergency escape lighting, signage, refuge points, and more.

Submergence in water extinguishes fire. Fire will not creep below the water line on the outside of a ship, and waves will wash fire away. Internal water also extinguishes fire, so flooding a compartment to put out the fire is a viable strategy.



Fire extinguishers and water hoses extinguish fire. Fire can be fought with vehicle component based water cannons, hand held extinguishers, and hoses.

The fire is compartmentalised and won't jump through walls or closed doors. The fire creeps along the surface and will only cross through a seal-able door if it is open.



We are very excited about the new fire system and cannot wait to share it with you in less than 2 weeks.

Let us know what you think, and let us know your thoughts on how we can use this system in the new missions!

Much love <3,

The Stormworks Developers
Stormworks: Build and Rescue - Deltars


Dear Stormworkers,

This week we have fully reworked the gimbal camera with a host of upgrades, all focused around search and rescue gameplay!

The new stabilized gimbal camera now has a laser, stabilization, and target tracking modes. The laser works in a similar way to the existing laser distance sensor - when activated, the laser points along the direction that the camera is facing, giving the range to contact of the laser. The GPS coordinates of the laser target are also output to the composite output of the camera.

The new stabilization option means that as the vehicle rotates and tilts, the camera will counter this motion in order to continue to face in the same direction. This gives a much smoother experience for camera operation, making it much easier and more comfortable for a camera operator to use the camera.



The new tracking option locks the camera to look at the current laser target. As the vehicle moves around, the camera continues to track the same position, making it easier for a camera operator to keep track of what they are looking at.

The gimbal camera continues to have an infrared mode to display night vision, while the camera properties allow the option of an IR laser beam rather than a visible one.

This new update focuses on search and rescue gameplay, which is a big focus of v1.0, releasing on Sept 17th 2020. Some of the new missions do not have exact coordinates, and players must begin search operations in order to find craft in distress or persons overboard. These new camera options and functions focus on this new gameplay and the simulation game experience of Stormworks.



We look forward to hearing what you think! Please let us know how you find the new gimbal camera, and any other ideas you have about improving the search and rescue gameplay.

With just 3 weeks left until version 1.0, we are hard at work focusing on improving the new features and improving the quality of the game as much as possible.

Much love <3,

The Stormworks Developers

Patch Notes

v0.10.36

Feature - Laser Gimbal Camera

Fix - Fixed surface shape of electric diode bottom faces
Fix - Added laser tag to laser distance sensor
Stormworks: Build and Rescue - Deltars


Dear Stormworkers,

Version 1.0 is fast approaching with just 4 weeks to go before the big release (17th September 2020)!

This week we discuss what you will be able to do outside of the vehicle editor, in the world of Stormworks. As previously discussed, Version 1.0 is focused on game-play, vehicle operation, and creating a challenging and dangerous world to test your vehicles and your abilities.

When working on Version 1.0, the first element we added was server side LUA scripting. Within LUA, we can manage many different elements of the game (and are adding new functionality all the time), and we can modify and reload these scripts in game as we are testing. The effect is that it's much easier and quicker to build an idea with a much more powerful set of tools. This is what we have been building with it:

Rescue Missions



The new missions are a complete re-imagining of what missions are and how they work in Stormworks. Missions are now generated procedurally, and can appear in thousands of locations across the Stormworks world.

Land missions may begin with a notification that an aircraft is in distress with engine failure, and have activated their emergency transponder. Checking the map, you might see a huge area outlined in red, with a tooltip explaining that this is the search area for the aircraft.

Before heading out, you may want to check you have the necessary equipment. A search operation can take some time, so if the mission will run into the night you may wish to equip illumination flares, night vision goggles. Are casualties expected? Check you have a defibrillator and med kits. With this mission, a transponder locator is a very good idea and will greatly assist locating the downed aircraft.

Once locating the aircraft, you will know more about the situation at the landing site. How damaged is the aircraft? How many casualties are there? Are there fires? As you get close, the mission will update with extra information on your objectives - perhaps you need to put out fires, recover the flight recorder, or simply rescue survivors to any hospital facility (not just the specific hospital island like the old missions).

Casualties may have minor injuries requiring simple med-kit treatment, or otherwise have been incapacitated. You cannot use a defibrillator in the water, so you may need to move incapacitated survivors to safety first before attempting to revive them. This is all against the clock, as incapacitated casualties will eventually die. If you damage your own vehicle or a survivor is incapacitated during the rescue, the new first person equipment also means you have the chance to recover the situation, repair your vehicle, and revive the survivor.

This is just one possible type of mission and story that the player could encounter. Others could include towing a vessel with engine failure, fighting a fire on an oil tanker, delivering inspectors to investigate regulation violations, recovering a person overboard, or any other scenario the script can generate. Meanwhile, this is all within a world with a day-night cycle, the all new weather simulation with stronger winds. Situations may change, where fire or structural collapse could cause a vessel to start sinking.

Please let us know your thoughts on other mission types - there is still time before the big release, and plenty of time after as we continue to develop the game!

Logistical Operations



If you fancy making some money on the side, various cargo terminals are present around the map. At these locations, you will find cargo addressed to various other terminals, as well as information on rewards for delivery.

Delivering the cargo to the correct destination will result in a cash reward, and can be a great way of generating money. You can reinvest this cash in building bigger container ships, cargo handling equipment, or even logistical networks with unmanned barges. In limited fuel mode, fuel is a resource that costs money, so you will need to balance the rewards against the costs of business.

We are currently developing this as a series of container terminals, where the player can move containers around the world to develop revenue. However, this system has huge potential for expansion - simply by tagging cargo terminals with info on what type of cargo may spawn there, and what type of cargo it will accept, you can create logging logistics, working mines, and other industries.

The Workshop



The most important part of the new LUA game modding, is that it can be shared on the Steam workshop. This means all players will have access to the same tools that we do to create these new in game stories and systems, and we are very excited to see what players come up with.

The new experimental branch also allows us to get feedback from players on new LUA functionality and develop it further, while giving players information on what new functions they can start to use in upcoming releases. We expect a new phase of collaboration with players as build our own stuff, but also support you with your creations.

LUA scripts can also access vehicles, locations, and other rigging data from all mission scripts that are active, meaning players can build simple packages that interact with the existing official LUA scripts with little or no code - you could create a crashed mission location, medical ship, container terminal or other content, and simply by following the correct naming convention and tagging objects with the right names, they will be used by our script and other scripts as content. This type of extensibility makes it really easy to mix and merge workshop locations into the game in a seamless and simple way.



As I am sure you can tell, we are super excited about the upcoming release. We are working hard to get all the extra features, fixes, and finishing items into this release and are doing everything we can to make Version 1.0 as good as it can be.

We also have some great minor updates planned - check back next week for a really cool new minor update!

And remember - if you or your friends do not yet own Stormworks - the price is increasing on 17th September 2020, so be sure to get it at the current, lower price.

Much love <3,

The Stormworks Developers
Stormworks: Build and Rescue - Deltars


Dear Stormworkers,

This week we add a new electric charger component as a minor update! This new component behaves a bit like a step-up charger or diode, in order to control the flow of electrical energy in one direction, and to regulate energy.

In Stormworks, electrical energy flows from high charge to low charge components. Often the battery is the component with the highest charge, and so energy flows from the battery storage to other components that are using electrical energy.

This component takes energy from the input side, and transforms it across to the output side to full charge. This means you can charge batteries and power components with full power, even when the input circuit has low charge, for example where batteries are running out of energy. With a small size of only 2 blocks, this component has a limited rate and it takes some time to charge.



The main expected uses for this component is to regulate charge output of your batteries, so lights or other electronics do not dim when battery charge is dropping, or to charge a battery to full from another battery that is almost empty.

Electrical systems will be all the more useful in the upcoming v1.0 release on Sept 17th 2020, where players will be able to connect systems easily using the new hand held cables to link electrical points.

Let us know your thoughts on the new electric charger component, and any other ideas you have on the electrical systems, and how we could develop them further.



This single component is just a small minor update as we invest most of our energy in all the full release.
We continue to work hard on improving the new features and quality of the Version 1.0 Update, and with less than 5 weeks to go, we are all super excited to share what we have been working on with you.

As always, we will be back with more details and information on upcoming development next week.

Much love <3,

The Stormworks Developers

v0.10.34

Fix - Environment mod 0 limit not spawning multiple instances

v0.10.35

Feature - Electric Charger
...