October 30, 2019, 7:13 am

Oh my! More optimizations are always nice, as the community continues to produce fantastic and more technically complex creations. But if you’re hungry for a new feature, we hope you’ll enjoy the new Video Images, which allow you to use videos as textures for assets. Plus, a long requested feature: Spectator Mode! Whatever your taste, we think this patch has a little something for everybody.

Loading Improvements:
  • Overall loading should be much faster and smoother than in the past!
  • New image caching folder “Images RAW” that stores .rawt files to speed up loading by up to 20 times.
  • General optimization to use less memory when loading your games up.
  • Greatly reduced custom image ram usage by ~50%.
  • AssetBundles now load in async and with less stutters.
  • Loading generates much less garbage for the garbage collector to clean up to reduce stutters.
  • Fixed normal maps for Custom Models not working correctly and being slow.
  • Better error handling when trying to load assets with an unsupported file type.
  • Added CMYK JPG detection to avoid game crash.
Video Images:

https://giant.gfycat.com/RightJointAchillestang.webm

  • Enjoy animated textures for you assets or play jigsaw with animated video!
  • Import videos (.mp4 and .webm) into the image slot on any custom asset. Note: Linux does not support .mp4.
Graphics:
  • New sharpen post processing to enhance the overall clarity of the game.
  • Configuration graphic changes are instant now without having to hit apply.
Improvements:
  • Reduced CPU usage when lots of objects are loaded up.
  • Added game load time to system console.
  • Optimized DLC Cosmic by removing all the extra scripting zones from each expansion.
  • Added console commands rewind_interval and unload_interval.
Scripting:

There's now a way to interact with Unity's built in components using this new API. You can control all aspects of your assetbundles for example changing the light settings, all from Lua. You can read more about it on the API page. self.getComponentInChildren("Light").set("intensity", 20)

Object and GameObject:
  • getComponent(name) return Component
  • getComponents(optional name) return Component[
  • getComponentInChildren(name) return Component
  • getComponentsInChildren(optional name) return Component[
  • getChild(name) return GameObject
  • getChildren() return GameObject[
  • name return string

Component:

  • game_object return GameObject
  • get(varName) return value
  • getVars() return Dictionary<string Name, string Type>
  • set(varName, value) return bool
  • name return string
Scripting Fixes:
  • Fixed Component UI menu triggering onObjectDestroy lua events.
  • Fixed XML UI syncing issue for connecting players.
Spectator Mode
  • Spectator mode provides a second fullscreen viewport to be used for streaming / recording. The UI can be shown or hidden on it, and its camera can follow your own or be set to any stored position.
  • Spectator mode requires a second monitor to display on. If you only have one physical monitor then you can use something like spacedesk.net to get around this limitation.
  • Spectator mod is controlled via the following console commands:
spectator_window - turn on to activate the spectator window
spectator_show_ui - whether the UI is displayed on the spectator window
spectator_camera_follow - when enabled spectator camera will follow your view
spectator_camera_load - set spectator camera to a stored position
spectator_camera_load_zero - same as above, but zero-indexed (so 0 = slot 1, 1 = slot 2, etc.)
spectator_camera_smooth_position - factor used to smooth spectator camera movement
spectator_camera_smooth_rotation - factor used to smooth spectator camera rotation
spectator_camera_smooth_on_load - when enabled smoothing will be applied when loading camera positions as well as when following player
spectator_post_processing - whether post-processing effects are applied to the spectator window
vr_spectator_replaces_main_window - in VR, controls whether spectator mode makes its own window or just uses the desktop mirror.

Example autoexec.cfg:

 +spectator_window
 -spectator_show_ui
 +spectator_camera_follow
 spectator_camera_smooth_position 0.1
 spectator_camera_smooth_rotation 0.1

# set right control key to toggle player follow
 bind right_control !spectator_camera_follow

 # set space to make spectator camera follow player while it is held down
 # @ = silence command in console
 bind +space @+spectator_camera_follow
 bind -space @-spectator_camera_follow

 # set keys to jump to specific camera positions
 bind comma spectator_camera_position 1
 bind period spectator_camera_position 2
 bind semicolon spectator_camera_position 3

 # set right shift key to cycle through the first 3 camera positions
 alias next_camera add spectator_camera_position_from_zero 1 3
 bind right_shift next_camera
Fixes:
  • Fixed memory leaks with custom assets when changing urls on an already loaded custom object.
  • Fixed ui search overlapping issues.
  • Fixed with hackers being able to delete objects without being admin.
  • Fixed hand zones not working on colliders that where child objects.
  • Fixed flick tooltip showing garbage.
Custom Model Loading:

Speed up loading of cached models by up to 20 times with new .rawm format and "Models Raw" folder. This uses the same principle as the what we've done to the images to speed up loading of your .obj files.

Spectator Mode:
  • Added spectator_activate_with_resolution command.
  • Fixed spectator window freezing after returning to main menu.
  • Fixed post processing on spectator window.
Fixes:
  • Fixed scroll bar in Configuration > UI > MISC.
  • Fixed normals maps not working with non square images.
  • Fixed issues with XML UI rich text.