Support for switching between the older (IMGUI) and newer (uGUI) HUD implementations has been added. This is intended for players experiencing visual artifacts and flickering with uGUI until an engine fix is available, or if you really prefer the old one. Note that some menus like crafting and the inventory behave slightly differently between the two. If you would like to use the old HUD:
1. Right-click Unturned in your Steam library 2. Click "Properties..." 3. Click "Select Launch Options..." 4. Add "-Glazier=IMGUI" without quotes
Command-line option (-Glazier=IMGUI) to use IMGUI rather than uGUI.
Button on server info screen to view workshop item details.
Kick messages for the different lost position in queue reasons.
Negative color option for UIs which used red.
Noto Sans Thai font for Thai players.
Changed:
Improved scaling of in-game map menu at higher resolutions.
Moved first-person light source (e.g. headlamp) to camera position.
Fixed:
Scroll wheel handling while mouse is over inventory grid.
Crawling prone underwater into a slanted surface entering swimming stance.
Exception when chat message was received while loading.
Unable to reload assets after exiting level editor.
Async image downloads dirtying pooled images.
Async item icon capture dirtying pooled images.
Exception when alt-tabbing while re-joining singleplayer.
Delay when rapidly selecting items in inventory.
Edit: a bug with cooldowns when changing stances was introduced in the update. Previously there was a 0.75 second cooldown on standing up, i.e. you could go prone, stand up and then go prone again before hitting the cooldown. After the update this cooldown was accidentally applied when going prone/crouching as well. In the patch this has been fixed, the cooldown has been decreased to 0.5 seconds, and the server-side handling of crouch/prone inputs was improved to feel more responsive.
This update aims to address the feedback following the patches to the HUD update last week.
One of the major points was text legibility. In large part because the softer shadows could make it appear blurry. The shadowing has been revised, and much of the UI has been adjusted to only use them where necessary, for example on colored text and against colorful backdrops where the contrast is needed. Otherwise menus have been reworked to contrast with the text without shadows, and colored text usage has been reduced in favor of other indicators like disabling buttons.
Performance was another big concern, so there have been a lot of optimizations to the UIs that were causing hitches. As an example opening a storage locker with hundreds of items in IMGUI could spawn all of the UIs in a single frame because there was no overhead, whereas with uGUI there is a lot of setup required - to mitigate this there are a certain number of item UIs created per frame now, and all of the components needed (e.g. images, text, buttons) are recycled between usage (pooled) to reduce the setup time - this extends to all the UIs in the game.
Throughout the winter holidays each level is sporting some seasonal decorations. In particular PEI is temporarily covered in snow. Gifts containing high-tier weaponry can be found under christmas trees on official maps, and the NPCs have donned their santa hats.
Changelog:
Added:
Per-storage horizontal inventory scrollbar.
Light theme only color preference for rarity backdrops.
Option for custom text shadow color.
Accepted a few new skins from the curated workshop.
Changed:
Revised text coloring and contrast throughout UI.
Improved scaling of inventory grid sprites.
Optimized creating and destroying basic UI elements by pooling them.
Optimized initialization of UI components before reparenting them.
Improved performance opening large storage by time-slicing the item UI creation.
Improved nearby inventory performance by time-slicing the refresh.
Text chat entry field uses color preference rather than admin/gold colors.
Loading screen bar uses foreground color preference rather than difficulty color.
Fixed:
Hide menus off-screen for a single frame when they are enabled to hide uGUI activation artifacts.
Second line of Chinese text in chat being truncated.
Right-clicking outside item popup box now closes the popup.
Several straggling hotkeys triggering while typing in text fields.
Plugin UIs visible while finishing loading.
Pooled UI list using cached viewport height causing a hitch after big data change.
Exception in UI when picking up destroyed items.
Hitch after death caused by skills menu refresh.
Exception updating item icon after item was destroyed.
Potential negative explosion damage multiplier.
Right-click highlight for buttons.
Removing entries from spawn tables editor.
Vertical offset of drowning status icon.
Buildable attachment to train carriages.
Pressing escape to cancel pending chat message.
Swapping items of different slot types within grid.
If you have been playing Unturned for a long time then you know that the menus and HUD have rarely changed. And at first glance that is still the case. Nevertheless there has been a major rewrite of the UI systems which has released with this update. I always find it annoying when software changes the UI for seemingly no reason, so preserving the existing (albeit questionable) appearance, design, and functionality was a top priority.
Across the board the menus and HUD should look and feel "better". Some players will notice a performance boost: in particular the compass, hotbar, and map overlay were optimized. Rich text in the chat fades out properly. Crosshair animations finish properly. Tons of Mac and Linux bugs have been fixed (e.g. the wonky gamma on Mac). Lots (but not all) of the UI spaghetti code has been untangled.
On the technical side: prior to this update the game was still using IMGUI from Unity 4. Unity replaced IMGUI with uGUI in 2014-2015, and are now even planning to replace uGUI with "UIElements". With this in mind I decided to abstract the underlying Unity UI implementation, so it will be easy to integrate UIElements once it is stable. I had been wanting to upgrade from IMGUI for years, but with the amount of work required it kept getting pushed down the road. In the end if took one month of refactoring, and then one month of intermittent development on the beta branch.
Update Changelog:
Added:
Events for vehicle locking/unlocking and local driver.
Valid_Speed_Horizontal for modded vehicles with speed the server cannot predict e.g. force applying components.
Changed:
Whitespace and newlines are trimmed from start and end of sign text.
Swimming while snowing with Snow_Affects_Temperature disabled no longer causes freezing damage.
Clamp item drop multipliers for enemies to prevent huge values (100+) from stalling the game.
Fixed:
AI problems with unbaked navmeshes in the level.
Dialogue with message-response pairings out of bounds.
Display of custom item action text and tooltips.
Warning for rocket launcher firing sound.
Spinning while leaning to glitch nearby inventory through wall.
Workzone highlight camera defaulting to enabled.
Default value of Allow_Horde_Beacon should have been enabled.
Box-selecting objects without gameobjects in devkit.
Moving devkit objects in and out of regular level bounds.
Potential cleanup bug causing gun effects to be claimed by two guns at once.
Placing items in object windows after the transform hierarchy optimizations.
Selecting the sky in workzone mode after the transform hierarchy optimizations.
Improper handling of BOM/preamble in dat files.
Gap in cliff near PEI lighthouse.
Several gaps in Germany caves.
Patch #1 Changelog:
This patch prioritized all the game-breaking bugs that had been reported so far, as well as some color preference issues that made the HUD look really bad. Rest assured that there will be a 2nd patch relatively soon addressing the minor issues like alignment differences and inconsistencies. I know there has been some negative feedback like "I hate this update!", but chances are that the issue was unintentional or will be adjusted based on your feedback, so if you dislike something please describe what it is.
Fixed:
Unable to interact after re-joining a server after hovering player hint.
Background was visible for empty tooltips.
Hotkeys triggering while typing in inventory and sign text fields.
Cursor sorting behind some plugin UIs.
Gun HUD breaking when using a rangefinder.
Loading screen tip box not using background color preference.
Empty Steam inventory slots not using color preferences.
Inventory, crafting and skills backgrounds not using color preferences.
Non-item inventory headers not using color preferences.
Patch #2 Changelog:
Remember in 2018 when the crafting buttons were split into two smaller buttons? (unpopular change) That was to workaround an issue with the nested checkbox. Thanks to the rewrite the smaller buttons can be merged back into the main button again.
Thank you to everyone who has shared constructive feedback about the HUD issues so far. I will continue reading it, and there will be further refinements and improvements in the next patch/update.
Added:
"Enable_Fade_Out" text chat option to preferences. Defaults to true.
Changed:
Small crafting buttons merged back into main button like good old times.
Inventory headers scale to match scroll view width.
Darkened oxygen bar to make text more legible.
Server name and listing use preferred color.
Interaction hint uses preferred color except for items and vehicles.
Fixed:
Updating crafting list after inventory/state changes.
Dragging items onto eachother to swap them.
Minimum handle size for large scroll boxes.
Vertical alignment of '+' buttons on server screen.
Horizontal alignment of in-game groups menu.
Padding inconsistency in crafting list.
Chat field is cleared after send.
Alignment of columns when server list scrollbar is hidden.
Variety of elements using white rather than preferred color.
Debug camera asccending/descending while typing in chat.
Potential fix for flashing / random sprites in UI.
Dragging item into scroll region of inventory should drop it.
Debug FPS / ping text spacing.
Performance of editor objects list.
Right-clicking enumeration buttons to cycle backward.
Appearance and group menus not updating on character load.
Vehicles, items, zombies, etc. were all nested in an unnecessarily deep transform hierarchy. Almost everything has been reworked to exist at the root level now which enables some multithreaded Unity optimizations, granting a +10-20% performance increase to CPU-bound multicore systems.
All of the game APIs which returned organizational transforms for plugins have been deprecated, but will create placeholders when called to prevent exceptions. Functions for finding the root transforms of entities have been updated accordingly.
Server Config:
Previously the server advertised every config value and the client would find the differences to display in the config screen. This was problematic if the data was mismatched between client and server. Now the server only advertises the differences (compared to default), and the client looks up the property by path. The config screen also categorizes them to clarify variables with the same name.
Changelog:
Flattened transform hierarchy to leverage parallel transform processing.
Improved server config diffing and display for server lobby menu.
Included Russia boulders in example assets package.
Fixed unable to cook using campfires and ovens on vehicles.
This update serves primarily to upgrade the game engine from Unity 2018 LTS to 2019 LTS. It should be a seamless transition and does not require changes from modders. The main benefit will be the upcoming user interface rework, which is available on a beta branch if you are interested in trying it out:
Autumn leaves coat the ground, the smell of pumpkin spice lingers in the air, and the turned are roaming the streets... it must be Halloween!
Until November 1st the event is active:
Spyjack is updating Tales of Terror with new quests, items, and monsters each Thursday leading up to Halloween!
Decorations festoon the towns of official maps, as well as Elver in an update soon.
NPCs are wearing their Halloween costumes.
Happy Halloween!
Edit: All bundles on the Stockpile are now discounted for the Steam Halloween Sale!
Miscellaneous Changes:
Accepted several new skins from the curated workshop.
Hosting dedicated servers using the client files has been deprecated since June 2019 and is no longer supported. Please use the standalone dedicated server app instead.
Added Min_Stealth_Radius setting to level asset.
Added helper methods for getting remote address if available.
Added Horizontal_Attack_Range, Horizontal_Vehicle_Attack_Range, and Vertical_Attack_Range animal settings.
Added Spread_Sprint, Spread_Crouch, and Spread_Prone gun settings.
Added Recoil_Sprint, Recoil_Crouch, and Recoil_Prone gun settings.
Converted berry bushes to use spawn tables.
Exclude bots from server list player count.
Menu remote images are hidden until download is finished.
Menu was loading in the wrong order rarely.
Fixed character list on menu not properly populating.
Fixed unable to deselect item by clicking character.
Fixed missing text for server config without display names.
Fixed potential exception when enabling/disabling skins in-game.
Fixed potential exception when player dies partway through shooting.
This update makes the new Steam Networking transport layer mentioned in the previous two posts the default. For most players it should offer superior performance and stability.
If you host your own server and experience bugs with this change please report the issues, and for the meantime you can revert to the old Steam Networking by including "-NetTransport=SteamNetworking" in your server command-line arguments.
Update Notes:
Miscellaneous:
Steam Networking Sockets are now default.
All colliders on destroyed structures are moved to the debris layer.
Added LODGroupAdditionalData component which can be used to disable LOD bias per-LODGroup.
Fixes:
Fixed decimal scope zoom values defaulting to zero.
Fixed per-gun shell casing effects for sentry guns.
Fixed placing rotated item from ground into equipment slot.
Fixed attachment of pooled audio sources.
Fixed vehicle exit not account for teleport vertical offset.
Fixed building items on terrain inside hole.
Fixed holiday restricted objects with conditions.
Fixed taillights not turning back on after exiting water.
Fixed prevent entering build mode while in first person view.
Fixed completing multi-item condition in singleplayer.
This update is mostly behind-the-scenes preparation for making Steam Networking V2 the default. There is a fix on the Steam client beta for the dedicated server certificate expiry for any hosts using the beta.
Update Notes:
Added:
Craftable Steam inventory tools for removing kill counters and ragdoll modifiers.
Per-player audio source pool combined into a global pool. Most one-off audio like zombie growls use this now as well, and it saves some performance by skipping sounds that would not be heard.
Command-line flag to allow Steam Networking Sockets connection without authentication. [-SNS_AllowWithoutAuth]
Changed:
Character mythical toggle disables ragdoll effects for stealth.
Client SteamNetworkingSockets waits for authentication availability before connecting.
Teleporting to named locations uses a nearby location rather than the highest point.
Log when server connection to Steam fails, e.g. when logon token is expired.
Catch exceptions during command execution to protect against startup command issues in the future.
Fixed:
Owner command in startup commands list.
Updating amount when switching vendors with different currency types.
Components using IMGUI disable layout pass.
Destroyed vehicles not appearing burnt after re-joining server.
Rocket no longer consumes a bot player slot.
Unity 2019 LTS Beta:
The game has been updated from Unity 2018 LTS to 2019 LTS on the "unity-2019" Steam beta branch. There are still a few bugs to sort out, but it takes advantage of several new performance optimizations if you are curious to test it.
The "network transport layer" is responsible for carrying data between your client and the server. Ever since 3.0 began development it was hardcoded to use Steam Networking V1, but is now being rewritten to support alternatives like the New Steam Networking V2, and generic sockets for offline LANs.
In order to narrow down bugs with the rewrite this update still defaults to the old Steam network, but contains a huge number of changes to the game-level netcode to support the transport refactor. If there are big issues with the update it will be rolled back, but it has been stable in beta so far.
Where possible, backwards compatibility with plugins has been maintained, but plugins doing unsupported things like modifying the network buffers will need to be fixed. This is an unfortunate side effect, however this rewrite is important for future netcode improvements.
If you host your own server and are feeling adventurous, you can try out the new Steam Networking V2 by including "-NetTransport=SteamNetworkingSockets" in your server command-line arguments.
Support for rebinding the equipment hotbar keys. This may be helpful for players with a broken number key.
Destroyed_Vehicle_Default [962] spawn table separated from metal boulders, allowing them to be overridden separately.
Button to reset server list filters when results are empty. Useful if the filters are too specific.
Support for external link buttons on songs and rich text in titles.
Different gun hitmarkers for zombies with high bullet resistance.
Per-water-quality values for canteens and non-water stats.
Support for passenger seats in train cars.
Quantity field in salvage/delete stacked item menu.
"-HostPlayerLimit" command-line parameter for hosting providers.
Windows shortcut links for the Unity appdata folder.
Changed:
Explosion damage falloff calculation uses closest point rather than center.
Actual tree colliders are used for respawn overlap test rather than a simple radius overlap.
Slightly reduced scale of Moai Head mask.
Reduced scale of kill counter items, and updated them to TMP.
Increased rain and snow fog density.
Included physics settings (collision layer matrix) in example package.
Non-admins can carjack and repair tires of their own vehicles in safezones.
Friendly sentry guns target players holding socket wrenches, and no longer target walkie talkie users.
Players get half a second of damage immunity after respawn.
Warn if parsing misc JSON config files fails.
Show both version numbers in version mismatch messages.
Imported UMarine skin updates by CD.
Cannot build while seated because head can pass through walls in some vehicles.
Skycrane ignores collision between itself and attached vehicles.
Fixed:
Raw beef had cooked material, and cooked beef had raw material.
Updating map details on server info screen when map is not installed.
Client incorrectly sending stance changes.
Repair vehicle passenger check not working properly on server.
Using explosives to destroy holiday trees out of season.
Starting climbing ladder while handcuffed.
Opening menus while fishing rod charge overlay is visible.
Catching fish on land with the right timing.
Infinite loop when selling more than 255 items.
Power bug with custom oil drills missing an animation.
Server getting stuck if mod contains an infinitely looping crafting recipe.
Nearby items list not finding items that rolled between grid cells.
Note quest objects had non-trigger colliders.
Placing makeshift vehicle upward into ceiling.
Rocket logging duplicate console output.
Potential fix for sudden angle change the frame after closing inventory on Mac.
Stepped sun blending as fog changes.
Backend time offset not getting set properly.
Objects getting stuck in editor when move between regions was interrupted by flying/copy/paste/delete/etc.
Loading infinite/NaN UI scale value.
Inconsistencies with newly placed electric items at grid cell borders.
Ammo count in description of equipped gun.
Default formatting of singleplayer config without a display name.
Slightly misaligned markings on road props.
Achievements from NPCs were not unlocking properly in multiplayer.
(Beta) Transport Layer Netcode Rewrite:
The "network transport layer" is responsible for carrying data between your client and the server. Ever since 3.0 began development it was hardcoded to use Steam Networking V1, but is now being rewritten to support alternatives like the New Steam Networking V2, and generic sockets for offline LANs. If you are a plugin developer or interested in trying out the beta, read more here: GitHub Issue