October 30, 2019, 7:13 am

Hey everyone, this is one of our largest updates yet! We've updated the game engine massively to the latest version of Unity 2019.1 which will give us overall better performance and features. There has also been an optimization pass to reduce stutter causing situations, so everything can be as silky smooth as possible. That's just the tip of the iceberg: reduced game size 4gb, AssetBundle materials, spectator camera improvements, and ton more covered below!

Unity Engine Upgrade:
  • Upgrade Unity version from 5.6.6 to 2019.1.
  • Dx11 on Windows, OpenGLCore on Mac and Linux.
  • FPS should be overall faster. Can be twice as fast in really specific scenes.
  • Physics performance improved.
  • Video textures much faster with more formats support (.m4v and .mov)
  • Incremental garbage collector greatly reduces the game's stutters.
Changes:
  • Dx9 support has been dropped (only 0.01% of players have a gpu that is only Dx9). Dx10 is minimum requirement now.
  • Windows Xp support dropped and with Steam not supporting it anymore either this isn't a surprise.
  • All custom images are now resized to a power of 2 internal, so avoid using non power of 2 images if you can. This is due to Dx11 bug this might be changed back in the future if Unity fixes this.
  • RAW cache from Images and Models had to deleted to due incompatibilities with the engine upgrade.
Known Issues:
  • AssetBundles using crunched textures will not load correctly and need to be re-exported from Unity 2019.1 with the updated Modding Project.
  • AssetBundle mesh colliders might behave differently due to physx upgrade.
New System Requirements:
  • OS: Windows 7 SP1+, macOS 10.12+, Ubuntu 16.04+
  • Graphics card with DX10 (shader model 4.0) capabilities.
  • CPU: SSE2 instruction set support.
Performance Optimizations:
  • Saving mod asset to disk is now async and will not sutter the game.
  • Greatly reduced the time it takes to destroy objects reducing the lag when changing mods.
  • Made the Games & Saved Objects menu async to fix stutters when opening them.
DLC Improvments:
  • DLC are no longer included in the game install and will be downloaded when played the first time.
  • This has reduce the install size of the game by 4 gigs.
  • We can also now update and add new DLCs without having to update the game.
  • Can now have multiple DLCs loaded up at once.
AssetBundle Materials:
  • Added support for loading AssetBundle materials into any Custom Object Image slot.
  • Create holographic playing cards or add normal maps to your custom dice!
  • Works by assigning your material to an AssetBundle and then exporting like normal.
General Improvements:
  • Custom Card added so you can create cards one at a time.
  • Added /rules to global chat which opens a link to the rules on our knowledge base.
  • Update DLC Three Cheers for master with scripted components.
  • Disabled being able to load local files with the Tablet due to javascript exploits.
  • Opening urls now only open steam links in the overlay and all others open in your default browser.
  • Secured many networking related functions from hackers.
  • Added .json to Steam Cloud upload file types.
  • Steam Cloud now supports uploading files greater than 100mb.
Lua:
  • Added filterObjectEnter(object) event: Place it on an object, and it will prevent any objects from being able to enter it. For example, placing it on a deck will not allow cards to enter it. If you return true in the function, the item will be allowed in.
XML UI:
  • Updated plugin to the latest version.
  • Can now get the click button for events like onClick with the value param passed.
  • Xml UI image assets are now no longer compressed to make them look nicer.
  • Xml UI errors now print to chat, to make it easier to debug Xml UI.
Caching Improvement:
  • Added support for adding {verifycache} in front of your urls to have the game check the last-modified header of a url to update the local cache if it is stale. Only does this check once per game session.
  • This is an advanced feature for people that want to host content on there own servers and make sure people get updates without having to change the URLs.
  • https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified
VR
  • Added a warning message when you do not have any control bindings (typically because you are using unsupported hardware), instructing you on how to set the bindings up in SteamVR.
  • Fixed objects not clumping when you shake the controller.
  • Fixed stack/deck grab not working with laser pointer.
Spectator Mode
  • Spectator mode now works when you use a different resolution than your main display. It has had an overhaul, and now works using these commands:
displays - Lists all available displays. ID 0 will always be your main game screen.
spectator_window - Turn on to activate the spectator window.
spectator_activate_with_resolution - Use instead of above to specify display, resolution, etc.
vr_spectator_replaces_main_window - In VR, controls whether spectator mode makes its own window or just uses the desktop mirror.
spectator_camera_follow_player - When ON the camera will follow your point-of-view.
spectator_camera_attachment - Lets you specify a component or pointer to attach camera to.
spectator_camera_follow_attachment - When ON the camera will follow the above object.
spectator_camera_dolly - When camera is following an object, it will be offset this far in the direction it is facing.
spectator_camera_offset_position - When camera is following an object it will be offset by this X Y Z.
spectator_camera_offset_rotation - When camera is following an object its facing will be offset by thus X Y Z.
spectator_camera_load - Set the camera to a saved camera position.
spectator_camera_load_zero - As above, but the position is zero-indexed (useful when coupled with certain commands like Add).
spectator_camera_smooth_on_load - Whether smoothing is applied during above.
spectator_camera_target - Lets you specify a component or pointer for the camera to track.
spectator_camera_tracking - When ON the camera will track the above object.
spectator_camera_look_at - Make spectator camera look a component or pointer.
spectator_camera_override_player_with_look - When ON the look at and track commands will work when camera is following player.
spectator_show_ui - Whether the UI is displayed on the spectator window.
spectator_post_processing - Whether post-processing effects are applied to spectator window.
spectator_camera_smooth_position - Positional smoothing factor.
spectator_camera_smooth_rotation - Rotational smoothing factor.
spectator_camera_stay_upright - When ON the camera will not go upside-down.
Example autoexec.cfg:
+spectator_window
-spectator_show_ui

# Make easier to type versions of spectator_camera_ commands.
# i.e. cam_load instead of spectator_camera_load
alias cam_* spectator_camera_*

+cam_stay_upright

# make right control have camera follow player while held
# @ makes it not output to console
bind +right_control @+cam_follow_player
bind -right_control @-cam_follow_player

# make semicolon look at object under pointer
# need to start line with > to stop <hovered> being evaluated,
# and exec to make it evaluate when activated
>bind semicolon exec cam_look_at <hovered>

# make period toggle object tracking, and comma set tracked object
bind period !cam_tracking
>bind comma exec cam_target <hovered>

# make right shift cycle through first 3 camera positions
alias next_camera add cam_load_zero 1 3
bind right_shift next_camera

# make some buttons to load specific camera positions
ui_button 1 600   0 cam_load 1
ui_button 2 600 -30 cam_load 2
ui_button 3 600 -60 cam_load 3
System Console
  • '/' commands now worked when typed into console tab
  • Fixed color command ignoring permissions
New commands:
  • chat_font_size - The size of the font in the chat windows.
  • say_global, say_game, say_team - Transmits text to specified chat channel.
  • subtract - Like add, but allows you to subtract current value from another (good for ping-ponging between two numbers).
  • vr_steamvr_bindings - Lists all current steamVR bindings.
  • ui_button - Lets you make a button on your screen which will perform a command.
  • highlight - Highlights specified component.
  • mod_caching, mod_caching_raw, mod_threading, and mod_thread_count. Last three variables are typically used as parameters in other commands, buy enclosing them with << and >>.
  • find - Call with parameters to find a component. Will then be set to that component.
  • grabbed - Equals the component you are currently holding.
  • hovered - Equals the component you are hovering over.
For example:
  • find -name "Blue Player Token"
  • highlight <>

If you want to set up a binding/alias/button in a script then you need to start the line with a >, surround the variable with < and > instead, and use exec.

>bind right_control exec spectator_camera_attachment <hovered>
Fixes:
  • Fixed blury comfirmation UI for tablet.
  • Fixed saving .rawm to disk when regular caching.
  • Fixed random sort for Games and Saved Objects is now actually working correctly.
  • Fixed custom objects not probably being positioned on the UI correctly.
  • Fixed the black background fade stuttering on when open exist to main menu window.
  • Fixed some format stuff for file browser or tooltips. Added back .jpeg.
  • Fixed line tool, including flick and joint.