Added base functionality to devkit selection/transform tool.
Added devkit undo/redo transactions window.
Added per-server instance maps/bundles folders for limited server hosts.
Updated to Unity 5.5.0f3.
Tweaked BattlEye ban alerts to show in chat.
Tweaked transparent object sorting to change based on water and camera position.
Tweaked scoped recoil reduction lower.
Fixed potential issue when checking for Gold ownership with Steam.
Fixed exiting editor window while dragging or resizing.
Fixed not to render motion vectors for intersect highlight materials.
Added terminal argument and key/value parsers to cover all C# built-in types.
Cleaned up field/property delta undo/redo code and performance.
Cleaned up translation metadata reading.
Cleaned up key/value file reading/writing code.
This week we're up to ~8,600 bans, (~1,200 more than last week) so it looks like the cheaters are starting to give up!
If you've been getting an "Unsupported Modules" BattlEye kick you'll need to remove any folders other than "Framework" and "Unturned" from your Unturned/Modules directory. In the future as modules become more stable I'll likely open up to signing popular ones so that they are compatible with BattlEye.
Everything is slowly coming together! Probably the biggest inheritance chain "ItemGunAsset" is now converted to use these new systems, so you can modify/create guns in the inspector without going through the files - however it's unpolished, messy looking and not very easy yet. The plan is also to make specific tools for some types for example a dialogue tree editor (wish I had that when working on the Liberator!)
The Ace is the only item currently using the new format, so any bugs with it are probably down to a conversion issue. I'd suggest checking the tool out, but don't rely on it yet. Unturned will load the new .asset files over the .dat files, but your existing .dat files are preserved so if conversion goes wrong you can delete the generated .asset file.
I'm very pleased to see the improvements between the old and new selection/transform tool so far, I feel like it shows I've learned a lot along the way. The old one uses a bunch of hacks to apply the transformations, whereas the new one properly does the math. You can also snap when dragging on a plane with the new one, while the old one would lock it to the 3D grid. When rotating it's now based on your mouse movement along the circle tangent, even when the circle plane is perpendicular to your viewpoint. There's also a visualization of your snapping intervals and console commands to adjust the handle sensitivity and size on your screen.
The most visible change in this upgrade should be that those cases on huge maps where the shadows could flicker should hopefully be toned down or gone thanks to their new higher-precision shadow depth buffer.
Previously you could see glass in windows underwater from quite aways away - now that shouldn't happen. By default in Unity transparent objects are sorted by distance to your viewpoint, so with water being so big usually the transparent meshes underwater were considered closer and drawn first. Now Unturned keeps track of most transparent materials and splits them based on which side of the water they are on.
Added ability to pop out editor windows and keep in fullscreen.
Added new upgraded translation system.
Added basic visuals for selection and terrain brush tools.
Added new undo/redo system to the devkit.
Accepted 9 new curated workshop items.
Improved editor to save default window layout and menu for saving/loading.
Improved debug lines intersecting objects to darken and checkerboard.
Tweaked command line to forward terminal commands.
Tweaked Steam messages to print in Steam terminal category.
Tweaked terminal messages to be included in .log files.
Fixed to render editor handles after image effects.
Fixed binding terminal to mouse buttons.
Fixed valid caliber range.
Fixed ambiguous Gold error message.
Fixed resetting rain after joining arena server.
Fixed viewport rendertexture scaling.
Another week and we're up to ~7,400 confirmed cheaters banned!
Right now the Walkie Talkie broadcasts on all frequencies, but in the future selecting a specific frequency and listening for radio through car stereo or placeable radio are on the roadmap.
I made quite a bit more progress on the editor revamp this week in a lot of different areas, the most visibly different being that you can load up a level with the new editor now and check out the terrain/selection tool visuals (press R to resize brush for now - much nicer than UI slider) and the movement is better suited for big maps (scroll wheel to change speed) as well as features like panning.
My goals for next week are to work on cleaning up these features, adding the new input system (mainly for controller support) and starting to make the editor functional with the asset editor, saving/loading and some basic level editing.
There were a lot of frustrated comments last week concerning this new focus on improvements, and while some of these improvements aren't as much fun to work on as for example new content I really do believe it's the right thing to do to make the game so much better for the future. As you saw with the Hawaii teaser on Tuesday, even with me focused on features (which will benefit the Hawaii map too in this case) there's still awesome content on the way!
I've written a replacement for the localization system which is now in place for the new editor, and will be phased in over time. It solves the main issues with the old system:
Can be changed at runtime i.e. menu option to swap languages. (Right now "language" terminal command)
Defaults to Steam language, falls back to English, saves the most recently used non-English setting to Steam cloud.
Assets will no longer have individual translation files, rather one main file per-language per-project. For example in the future all gun names could be easily translated.
File format is structured and much nicer, should be straightforward to add a translation editor in the future.
Tokens are versioned so that translators can be alerted when a string has been updated.
Server knows the language of all players so that serverside messages can be translated for each client.
Client loads English and selected language, server loads all languages.
Today I was checking my inbox when I came across this postcard from the community modding team who helped work on the Russia map!
We're trying something a bit different this time - everything in Hawaii so far has been made by Rain, Spyjack, Mooki2much and Gamez2Much. I'll be involved for the last stretch making sure everything fits the artstyle, but other than that the project is being led by G2M! The plan is for the map to come out once they feel it's ready for community playtesting, and they'll be able to release updates/refinements based on feedback.
Their team has put together some screenshots and teasers of what they're working on, so if you're okay with a few slight spoilers you can read them here:
One week in and BattlEye has permanently banned approximately ~3,700 confirmed cheaters! BattlEye's been hard at work on improved custom detection features for Unturned and there's been a lot of progress on flat out blocking most current cheats. You can check if a cheater you suspected is BattlEye banned by the "Game Ban" visible on their Steam profile. Also note that if you skipped the BattlEye install step you can still run Install_BattlEye.bat in your Unturned/BattlEye folder to set it up!
You might have noticed the last couple updates have been more focused on improvements than new content, and that's the direction I'd like to really go in for the next bit: upgrading/rewriting existing features, better graphics, expanding gameplay depth and as an indirect result improving performance.
The first thing I think needs an overhaul is the editor: if you've played 3.0 for a while you know it's essentially the same as 2 years ago when it first launched. The goal is to make it extensible, streamline mod creation, give creators more control and add new tools to open up to higher quality future content - for example the next official map I create.
I do realize the editor changes aren't going to be particularly interesting for anyone who doesn't use it, so going forward I'll add some fun new content with each editor update as well. Not to mention that the next community update map is coming along well, more info on that very soon.
From the editor upgrade I'd then like to start on revamping gameplay features e.g. repairing individual parts of vehicles like shot out tires, making item color a property of the item so that you can dye clothes or paint your bases, adding electrical wiring and power consumption, etc. There's a huge variety of updates to-do here, for the full list check out the Trello page:
Admittedly this is a boring update, as mentioned above in the future I'm going to try and better balance fun/new content with important improvements. If you press the terminal key you can see some of the editor features I started like window docking, partitioning, tabs, context menus, etc although a lot of what I worked on this week isn't visible yet. The inspector might already be slightly useful - you can double-click an asset file in the asset browser to view all of its properties/fields.
Added basics of new editor internals and windows.
Improved resolving circular module dependencies.
Tweaked assets to generate GUID when loaded.
Fixed sending icon/news web requests in offline client.
Fixed [hopefully] loading BattlEye libraries on Linux.
Fixed scope draw distance and arena border depth.
Fixed backwards BattlEye IP/port information.
Fixed clientside BattlEye restart messages.
Fixed a few reflection issues when loading modules.
Fixed loading some server filter settings.
Fixed missing bullet/damage ray aggressor distance label.
Right now with many mods installed you've probably run into ID conflicts. This instead will automatically assign a unique ID when your asset is loaded to prevent that, but it requires re-uploading your mods to the workshop so that there is a centralized agreed-upon ID. Multiplayer is setup to build a GUID <-> UInt16 table after connecting, however it will be a while before each system uses GUIDs instead of the current IDs.
Bastian [the founder of BattlEye] and I have been back and forth about integrating it for absolutely ages, and today I'm very happy to say BattlEye starts a trial run in Unturned! Because of how Unturned cheats work it should be able to completely block them, meaning all servers running BattlEye should become almost cheater free!
The trial run will last a month where we'll be making sure it's effective, fixing any issues related to it and getting an idea of the average traffic to BattlEye's backend servers. Note that pricing is dependant on player population, so fair warning: it might become a Gold Server only feature.
Most of my time this week went into debugging Unturned BattlEye [First Unity/C# game using it!] so there's not much new content, but as a result I'm relatively confident it's stable.
Serverside modules/plugins [e.g. RocketMod] should be compatible, but if you want you can disable BattlEye on your server by setting BattlEye_Secure to false in Config.json. Clientside modules, however, require that you select the alternative launch option in Steam "Play without BattlEye" because clientside modules can be used as cheats.
Note: You might need to restart Steam to get the new launch options!
If you accidentally cancel the BattlEye installation or want to uninstall/reinstall it you can run Install_BattlEye.bat or Uninstall_BattlEye.bat in the Unturned/BattlEye folder.
Added BattlEye Anti-Cheat.
Added new input/output/command window. [Default Tilde]
Added option for player to displace grass, useful when sniping prone.
Added toggle to Modules menu to initialize/shutdown code and disable loading.
Tweaked +secure/+insecure startup to instead use +internetserver, moved VAC toggle to Config.json server section beside BattlEye toggle.
Tweaked Log command to take 4th argument to display BattlEye info.
Fixed Nightvision Scope to have separate skybox reflections.
Fixed parking lot lines visible through apartment floor in Moscow.
Fixed fog on forward rendering heightblend terrain add pass.
Fixed selection outlines not showing up in forward mode.
Fixed Masterkey skins applying to Hawkhound in-game.
Fixed inspecting Blowtorch/Chainsaw while using.
Fixed respawning on obstructed bedrolls.
Fixed sun/moon/stars intersecting terrain.
Fixed unnecessary windy foliage keyword.
Fixed Mad Scientist Top missing front of gloves.
To start experimenting with the Unity 5 UI system [which I want to use for the editor upgrade] I added a terminal window which can be opened by pressing Tilde [~]. Let me know what you think of this graphics style! Right now the only thing it's really useful for is requesting serverside BattlEye logs with sv.request_battleye_logs, but in the future I want to move all commands/input/output into it. For example, "give eagle" would do this nice popup filtering item names that start with "eagle".
Fixed Hawkhound_8, Sportshot_10 and Viper_25 to be skinable.
Fixed bayonet working clientside while reloading.
Fixed mk2 scope off quality.
This week I've started taking the first steps toward a modding API for Unturned! It's going to take a while to refactor, clean up and document everything, but when it's done there'll be the potential for all kinds of awesome mods that would've been impossible before.
In the meantime the biggest change is in relation to RocketMod. Sven, the creator of RocketMod, has been doing an amazing job opening Unturned's serverside up to plugins the past couple years with a wrapper that takes care of all the nitty-gritty, and this week we converted Rocket to use this Modules feature - although this week is a transition period so the main version will still use a patched assembly. This is great if you're a server owner using Rocket because installing is as simple as copying Rocket to the Modules folder, you can still play the game normally with Rocket installed and if nothing breaks you won't necessarily need to download the new version of Rocket after each update.
There are quite a few new graphics options in this update, so I thought it might be helpful to write out exactly what they do so you can make an informed decision on whether to turn them on/off:
Chromatic Aberration: Slightly separates the RGB color channels near the edges of your screen, it doesn't have much of a performance impact and is more of a personal preference.
Film Grain: Can help with color banding (for example when you see rings around a light), barely noticeable and doesn't have a big performance impact.
Blast Marks: In deferred render mode a black spherical decal will be left after an explosion which has a small performance impact.
Rain Puddles: Spawns splashes of water particles at rain impact points and fades in reflective puddles with ripples. This has a medium performance impact.
Anisotropic Filtering: Reduces texture blur at oblique angles, probably fine to leave on, it's moreso an option for the sake of extra control.
Reflection Quality: Increases the number and accuracy of screenspace reflection steps, but only works in deferred render mode and has a high performance impact.
Skybox Reflection: Captures skybox cubemap so that reflections aren't black, has a medium performance impact.
If you've created custom models for the game you might have noticed reflective materials showed up black, now at the very least the skybox is captured when the lighting is updated. If reflection quality isn't off then screenspace reflections will be visible as well. I've experimented with a variety of reflection settings for the official models but haven't decided yet (Should cars be polished shiny, how does that line up with the apocalyptic environment?), but you can now properly use it too!
In celebration of Halloween until the next update you will now get dropped Halloween Gift Presents filled with free costumes, and can visit the Liberator to find the crew all dressed up! The biggest wave yet of mostly spooky curated workshop items was also accepted and now available on the Stockpile if you'd like to take a look:
To help the lower spec computers I've brought back the option to use forward rendering, but it's not recommended. Decal objects will be converted to a flat plane when swapping between modes.
Added traitor uncovering questline.
Added lightningstrike boss zombie quest for Ensign Cliff.
Added groundpounder boss zombie quest for Peter.
Added flamethrower boss zombie quest for Norbert.
Added config options to include boss zombies in spawns.
Added ability to track a quest in the HUD.
Added Industrial Gas Can. [ID 1440]
Added NPC/dialogue/quest/vendor documentation to workshop documentation.
Added deferred decal support and converted many decal-like objects to use it.
Improved aggressive actions to mark entire group.
Tweaked player buttons to link to Steam profile.
Tweaked armory to sell rangefinder instead of detonator.
Fixed a variety of bugs with the bayonet.
Fixed to allow scaling NPCs.
Fixed using mannequin while using item.
Fixed nightvision glow after toggling cosmetics.
Fixed missing ceiling collision in one of Mooki's houses.
It was a bit of a nightmare to get everything working with them, but as far as I can tell the only issue now is a slight lighting difference with Use_Skybox_Ambience. Now that we have SMAA I think keeping forward rendering around alongside deferred isn't worth it considering the benefits of deferred, for example these decals or screen-space reflections (which I'll be swapping out for the planar reflections soon since I want to support arbitrary water placement).
Decals are great because there's no gap between the old flat geometry and the surface, and they can "wrap" around curved faces. For modders to allow decals to show on your models you will need to set the least significant bit in the stencil buffer to 1, or use the StandardDecalable shader found in Unturned/Bundles/Sources/Examples. I decided on making the decalable feature opt-in rather than opt-out because objects that shouldn't get decals receiving them look far stranger than not.
Added Lieutenant Oswald in charge of scouting the area.
Added Doc Ernie blueprint unlocks/dialogue.
Added Mechanic's engine repair quest.
Added Medic's research recovery quest.
Added Ensign Franklin to buy replacement uniforms from.
Added Nautical Nuisance quest for Rusty.
Added assorted filler NPCs with dialogue.
Added Quadbarrel. [ID 1436]
Added Bayonet. [ID 1438]
Improved missing a shot/swing that travelled within 4 meters of a player to mark you as an aggressor if not under attack.
Improved using lockpick/detonator/grenade to mark you as an aggressor if not under attack.
Improved vendor menu to show how many of a buyable item you already have.
Tweaked to show warning message when building in safezone.
Tweaked quest menu to better expand vertically and added return button.
Tweaked gunshot audio rolloff to make more sense.
Tweaked quest interactables to play effect when used.
Tweaked scaled buildables in editor to reset when deselected to avoid confusion.
Fixed using carjack/lockpick in safezone.
Fixed to allow suicide in non-arena safezones.
Fixed cleaning up last chat icon.
Fixed vendor item description applying rich text in wrong order.
Fixed fertilizer applying before animation.
Fixed using ladders to cancel animations.
Fixed Russia map pizza/doughnut stores using wrong spawn tables.
Fixed nearby item obstruction to ignore triggers.
In the next NPC update I'll be working on a quest tracking feature so you can view quest goals outside of the info screen, the traitor uncovering/rescue questline, looking into "bossbattle" zombies e.g. go to a specific area to defeat electric megazombie and putting up documentation on all the NPC features.
For mod creators I forgot to mention in the last post: You can press the End key in the appearance menu to copy your character details to the clipboard for creating NPCs, and the same in-game to view all active flags and values. There's also a "Flag" command to set a key/value for testing.
Bit of a heads up: for the first time in I can't even remember how long there won't be any sort of update next week - I'll be away at the "Steam Dev Days" conference!
This week I improved and expanded a lot of the NPC features, added the ability to have objects tied to quests e.g. fixing the map's radio towers, added the Liberator/new objects to Russia and got started filling it with characters/quests. If you do visit the Liberator there are several interesting quests, but be warned it feels very empty without all the dialogue complete/missing characters.
Going forward I'll be adding the rest of the core quests/dialogue, of which I have some ideas I'm pretty excited about like uncovering a traitor and solving a murder mystery. Then the side characters will come in to fill things out (for example the guards will instruct to visit the Captain when you come aboard, address you by your rank and keep a close eye on low rep players). I also want to give the Scientist character some unique rewards to research as you help out to reward trying different quests, so you'll come to him after doing a few quests and get a blueprint for maybe a bayonet or 4 barrel shotgun.
If you want to get started with NPCs in your own map you can check through the official content for examples, although there are 3 currently unused condition types: Skillset, Kills_Zombie and Kills_Horde and 1 unused reward type: Item_Random (takes a spawn table ID). All of the character, dialogue, vendor and quest files are in the Unturned/Bundles/NPCs folder, and don't require Unity to modify or create new ones.
Added Liberator aircraft carrier with a few NPCs to Russia.
Added NPCs, dialogue and vendor systems.
Added quests system and menu next to in-game playerlist.
Added reputation system and paragon/villain achievements.
Improved explosives to store/display killer.
Improved in-game playerlist to show links between groups.
Tweaked military wall texture to more closely match old one.
Tweaked Washington military base entrances.
Fixed unable to select buildables in editor in some cases.
Fixed problems with server loading vehicles inside bases.