[img]https://clan.cloudflare.steamstatic.com/images//28842908/47035f15e745b5cfc1d09867c69d90842ec28a81.jpg[/img] Dear Stormworkers, This week, we bring you AI ships! There will now be hundreds of AI ships passively sailing in the ocean. These ships are persistent, and will continue to move around the world even when you are not around. These ships are on journeys and path-find across the ocean to reach their destination. This feature has been on experimental, but is now in the main version of the game. If you want to add your own ships to the AI system, follow the guide here: [url=https://youtu.be/DyXhPy1oegc]https://youtu.be/DyXhPy1oegc[/url] Remember, vehicles with big or complex physics will slow the game down, so please Stormworks responsibly. To achieve this new feature, we have added a new property to seats: "AI Type". You can now set the type of AI to be used by NPCs on that particular seat. Right now, there is only one type of seat AI (ship piloting), and only NPCs that have had their AI activated via scripts are able to use these seats - but many of you will see the direction this may be headed! [img]https://clan.cloudflare.steamstatic.com/images//28842908/ccf3b454c4bedd53bab106157ef210bfdc2a61f8.png[/img] We have also added new Lua functions to modify the AI state of an NPC - including being able to enable and disable AI capability, and set an AI action such as pilot to a destination. Could this feature be extended to allow players to hire NPCs with AI capability, place them in seats, and give them orders? Are there other ways we could extend this feature? Let us know in the discussion comments! This new feature has been actively developed over the last couple of weeks on experimental branch so many thanks to all the players who have been trying it out and giving feedback. [img]https://clan.cloudflare.steamstatic.com/images//28842908/75eb7dcb9c14ca1804e8c56747907a877d25dbd2.png[/img] In response to your poll results, we are prioritizing new features that the community have decided most important. AI Ships, Planes & Helicopters ranked no. 5 in your most recent poll. We also hope to add AI helicopters and planes in the future. Meanwhile, we have also begun working on other highly voted new features, all while continuing to fix bugs and issues. We hope you enjoy this new feature, and find it gives more life and interest to the world of Stormworks! As always, we look forward to hearing all your thoughts and feedback. Much love <3, The Stormworks Developers [b]Patch Notes[/b] v1.0.22 Feature - New AI Ships Playlist and character/seat AI behaviour type Rework - Manual saving now uses a background thread like autosaves (It is not reccomended to exit the game during saving) Fix - Added onVehicleDespawn callback for explosions Fix - Large Rotors editor selection hitbox updates Fix - Door editor selection hitbox updates Fix - NPC characters taking damage Fix - River boats should no longer be treated as land vehicles for towing missions Playlist Api Changes: [b]server.setVehicleKeypad(vehicle_id, keypad_name)[/b] [b]value, is_success = server.getVehicleDial(vehicle_id, keypad_name)[/b] [b]POSITION_LIST = server.pathfindOcean(start_matrix, end_matrix)[/b] [b]POSITION_LIST | { i = {x = world_x, y = world_y, z = world_z}}[/b] is_on, [b]is_success[/b] = server.getVehicleButton(vehicle_id, button_name) count, [b]is_success[/b] = server.getVehicleFireCount(vehicle_id) [b]is_success[/b] = server.getVehicleTooltip(vehicle_id, text) is_simulating, [b]is_success[/b] = server.getVehicleSimulating(vehicle_id) [b]is_success[/b] = server.setVehicleTransponder(vehicle_id, is_active) [b]is_success[/b] = server.setVehicleEditable(vehicle_id, is_editable) [b]server.setVehicleTank(vehicle_id, tank_name, amount, FLUID_TYPE)[/b] FLUID_TYPE | 0 = water, 1 = diesel, 2 = jet_fuel, 3 = air, 4 = exhaust, 5 = oil, [b]value, is_success = server.getVehicleTank(vehicle_id, tank_name) server.setVehicleBattery(vehicle_id, battery_name, amount) value, is_success = server.getVehicleBattery(vehicle_id, battery_name)[/b] server.setAIState(object_id, AI_STATE) AI_STATE | 0 = none, 1 = path to destination, server.setAITarget(object_id, matrix_destination) hp, is_incapacitated, is_dead, is_interactable, [b]is_ai[/b] = server.getCharacterData(object_id) server.setCharacterData(object_id, hp, is_interactable, [b]is_ai[/b])