Update September 18th, 2020 Discord
Dear Stormworkers,
Thank you for all the feedback! Let’s address some of the easy stuff:
Spawning Your Vehicle Spawning Missions
https://steamcommunity.com/sharedfiles/filedetails/?id=2232647097
This workshop example shows how to allow players to spawn your custom mission locations! See the decription for extra info on how it works.
Playing Career Mode With Map Fog, Player Position, Etc.
https://steamcommunity.com/sharedfiles/filedetails/?id=2232647339
This workshop example is a super simple script, it just sets the game options when the script starts. Simply start a custom game but with this playlist selected in “add-ons”. The custom menu will be disabled but with all your own game settings!
Career Progress and the Research Tree
This seems like a very popular request. We can probably just bring this back as a game option, we have already programmed this system after all! There is great discussion going on at the link below, thank you to all giving your feedback! Loads of great player ideas, perhaps there is even more we can do to build progression further.
https://steamcommunity.com/app/573090/discussions/0/2950377478188314264/
Version 1.0 is not the final version, and development continues as usual! We are looking forward to making many more improvements, so please keep letting us know your thoughts and ideas!
Much love <3,
The Stormworks Developers
Dear Stormworkers,
Version 1.0 is here!
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 7×7 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 (4×4)
=================
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”] = { [i] = 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”] = { [i] = 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”,
https://steamcommunity.com/games/573090/announcements/detail/2917726380923151781
Dear Stormworkers, Classic career mode is back in v1.0.6! Simply start a new game with the “Classic Career” preset to get research tree, fog and other settings closer to the classic career rule set. Want to customize your career settings? Or spawn your vehicle missions? See the previous post for simple mod examples. Spawning your vehicle spawner missions is a really popular request so we will probably add some UI for this in the coming days to make it even simpler. Stay tuned and keep your feedback coming! Much love <3, The Stormworks Developers
v1.0.8 Out Now! We have added simple UI to spawn your mission locations without any scripts! There is also loads of fixes and improvements, particularly for the classic career. Here are your change logs: 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