1. Tabletop Simulator
  2. News

Tabletop Simulator News

New DLC - Blood Rage & Boss Monster

We've got two new DLC additions in store for you today - Blood Rage and Boss Monster

In Blood Rage, each player controls their own Viking clan’s warriors, leader, and ship. Ragnarök has come, and it’s the end of the world! It’s the Vikings’ last chance to go down in a blaze of glory and secure their place in Valhalla at Odin’s side! For a Viking there are many pathways to glory. You can invade and pillage the land for its rewards, crush your opponents in epic battles, fulfill quests, increase your clan's stats, or even die gloriously either in battle or from Ragnarök, the ultimate inescapable doom.

https://store.steampowered.com/app/610700/Tabletop_Simulator__Blood_Rage/

Inspired by a love of classic video games, Boss Monster: The Dungeon Building Card Game pits 2-4 players in a competition to build the ultimate side-scrolling dungeon. Players compete to lure and destroy hapless adventurers, racing to outbid one another to see who can build the most enticing, treasure-filled dungeon. The goal of Boss Monster is to be the first Boss to amass ten Souls, which are gained when a Hero is lured and defeated — but a player can lose if his Boss takes five Wounds from Heroes who survive his dungeon.

https://store.steampowered.com/app/610701/Tabletop_Simulator__Boss_Monster/

Only the host needs to own the DLC for everyone at the table to play

Update v12.1 Music Player, PDF support, and tons of other great improvements!

Hey everyone, we got another great update for you today! We have added 2 very long requested features a Music Player and PDF support! There are also a ton of great additions and improvements listed below in the patch notes.



Music Player
  • The music player let's you play audio files (.mp3, .wav, .ogg, ogv) which are synced for all players.
  • Great for room music or so your DnD campaign has the right mood!
  • Supports playlists with ordering, shuffling, and looping.


Custom PDF
  • New object Custom PDF, that allows you import a PDF onto a tile.
  • This converts the PDF into a series of images, to make it easy to import your rule books!
  • Supports multiple pages: swap between them with the contextual menu, next/previous state hotkeys, or the buttons on the left and right side.
  • Can popout the PDF to the screen by hitting the hidden UI button on the top left of the PDF object.
  • You can joint this to any objects to add any visual flair you would like to match the game.


Cloud Manager Folders
  • Cloud manager now supports folders just like Saved Games/Objects.
  • When you import all loaded assets into cloud it puts them in a folder defaulting to the Game name.
  • Can now name files that are uploaded to the Cloud instead of just using the file name on disk.


Sound Improvements
  • Custom Objects that are set to dice or coin will now get that correct sounds for their selected material type.
  • Improved sounds for objects interacting with locked objects.
  • Added glass material type for Custom AssetBundle and Custom Model.


Alpha Transparency Support
  • Added alpha support to the color picker.
  • Can now draw with semi tranparency.
  • Can color tint objects to have alpha transparency, which goes nicely with the new glass material type.
  • Objects with alpha transparency will not cast shadows.


Magnify Revamp
  • Magnify (hotkey m) overhauled to be round.
  • Scroll up or down to control the zoom level of the magnify.
  • Fixed visual issues with previous magnify.


General Improvements
  • Added loading percent next to the player names on the top right.
  • For the top bar in-game the Scripting, Workshop Upload, and Cloud Manager menus have been moved under "Modding".
  • Improved auto-raise to work better with overhangs.
  • Added a workshop indicator next to the chat window that you can hover over and get info about how far along the workshop subscription check is at.
  • Moved physics mode (semi-lock, locked, etc) from Configuration to Server Options.
  • Greatly improved compatibility with old AssetBundles shaders. This will fix a lot of broken DLCs.
  • Improved Fog of War performance.
  • File Browser now remembers the last opened path.
  • Updated Voice Chat plugin.
  • Voice chat is now using a higher quality setting.
  • Added hidden zone opacity sliders to Misc settings.


Scripting Improvements
  • New global class Vector:

Constructors:

Vector(num, num, num) --> return a vector with specified (x, y, z) components

Vector(table) --> return a vector with x/y/z or 1/2/3 conponents from source table (x/y/z first)

Vector.new(...) --> same as Vector(...)



Vector.max(vec1, vec2) --> return a vector with max components between vec1 and vec2

Vector.min(vec1, vec2) --> return a vector with min components between vec1 and vec2

Vector.between(vec1, vec2) --> return a vector pointing from vec1 to vec2

vec:copy() --> copy self into a new vector and retur it



Component access:

vec.x, vec.y, vec.z --> read/write component

v[1], v[2], v[3] --> read/write component

vec:get() => num, num, num --> returns x, y, z components of self





Methods modifying self and returning self:

vec:setAt(key, num) --> same as "vec[key] = num"

vec:set(num, num, num) --> set x, y, z components to passed values

vec:add(otherVec) --> adds components of otherVec to self

vec:sub(otherVec) --> subtracts components of otherVec from self

vec:scale(otherVec) --> multiplies self components by corresponding compnents from otherVec

vec:scale(num) --> multiplies self components by a numeric factor

vec:clamp(num) --> if self magnitude is higher than provided limit, scale self down to match it

vec:normalize() --> scale self to magnitude of 1

vec:project(otherVec) --> make self into projection on another vector

vec:reflect(otherVec) --> reflect self over a plane defined through a normal vector arg

vec:inverse() --> multiply self components by -1

vec:moveTowards(otherVec, num) --> move self towards another vector, but only up to a provided distance limit

vec:rotateTowards(otherVec, num) --> rotate self towards another vector, but only up to a provided angle limit

vec:projectOnPlane(otherVec) --> project self on a plane defined through a normal vector arg



Methods not modifying self:

vec:dot(otherVec) --> return a dot product of self with otherVec

vec:magnitude() --> return self magnitude (length)

vec:sqrMagnitude() --> return self magnitude (length) squared

vec:distance(otherVec) --> returns distance between self and otherVec

vec:sqrDistance(otherVec) --> returns squared distance between self and otherVec

vec:equals(otherVec, num) --> returns true if otherVec same as self (optional numeric tolerance param), false otherwise

vec:string(str) --> return string describing self, optional string prefix

vec:angle(otherVec) --> return an angle between self and otherVec, in degrees [0, 180]

vec:cross(otherVec) --> return a cross-product vector of self and otherVec

vec:lerp(otherVec, num) --> return a vector some part of the way between self and otherVec, numeric arg [0, 1] is the fraction

vec:normalized() --> return a new vector that is normalized (length 1) version of self

vec:orthoNormalize() --> return three normalized vectors perpendicular to each other, first one being in the same dir as self

vec:orthoNormalize(otherVec) --> same as vec:orthoNormalize(), but second vector is guranteed to be on a self-otherVec plane



Operators:

vecOne + vecTwo --> return a new vector with added components of vecOne and vecTwo

vecOne - vecTwo --> return a new vector with subtracted components of vecTwo from vecOne

vecOne * vecTwo --> return a new vector with multiplied components of vecOne and vecTwo, NOT a dot product (!)

vec * number --> return a new vector with all components from vec scaled by a numeric factor

number * vec --> same as "vec * number"

vecOne == vecTwo --> return true if both vectors identical or within a small margin of each other, false otherwise

tostring(vec) --> return a string description of a vector
  • New global class Color:




Constructors:

Color(num, num, num) --> return a color with specified (r, g, b) components

Color(num, num, num, num) --> return a color with specified (r, g, b, a) components

Color(table) --> return a color with r/g/b/a or 1/2/3/4 components from source table (letter keys prioritized)

Color.new(...) --> same as Color(...)



Color.fromString(colorStr) --> return a color from a color string ('Red', 'Green' etc), capitalization ignored

Color.fromHex(hexStr) --> return a color from a hex representation string (e.g. '#ff112233'), hash sign and alpha are optional

col:copy() --> copy self into a new color and return it



Color.Purple [etc] --> shorthand for Color.fromString('Purple'), works for all player and added colors, capitalization ignored



Component access:

col.r, col.g, col.b, col.a --> read/write component

col[1], col[2], col[3], col[4] --> read/write component

col:get() => num, num, num, num --> returns r, g, b, a components of self



col:toHex(includeAlpha) --> returns a hex string for self, boolean parameter

col:toString(num) --> returns a color string if matching this instance, nil otherwise, optional numeric tolerance param



Methods modifying self and returning self:

col:setAt(key, num) --> same as "col[key] = num"

col:set(num, num, num, num) --> set r, g, b, a components to passed values



Methods not modifying self:

col:equals(otherCol, num) --> returns true if otherCol same as self, false otherwise, optional numeric tolerance param

col:lerp(otherCol, num) --> return a color some part of the way between self and otherCol, numeric arg [0, 1] is the fraction



Operators:

colOne == colTwo --> return true if both colors identical or within a small margin of each other, false otherwise

tostring(col) --> return a string description of a color



Other:

Color.list --> table of all color strings

Color.Add(name, yourColor) --> add your own color definition to the class (string name, Color instance yourColor)
  • Added an overload to UI.setXml() and UI.setXmlTable() to take a CustomAssets as the last param.
  • Music Player exposed to Lua.
  • Added logString function, which returns a string representation of a lua object (the same representation the log function uses)
  • Fixed cleanup issue with Xml custom assets UI from lua for clients.
  • Fixed turns not network syncing for Lua.


VR
  • Improved movement - added movement inertia. Can be calibrated or disabled in VR settings.
  • Grid overlay now renders in VR.
  • Fog of War now renders in VR.
  • Added VR documentation to api website: https://api.tabletopsimulator.com/vr/


Spectator Mode
  • Spectator window may now display the view grey players have (for example, cards in your hand will be hidden). Enable with +spectator_restrict_view
  • Spectator window now renders the grid. May be turned off with -spectator_show_grid


System Console


  • Added documentation for system console to tabletop api website: https://api.tabletopsimulator.com/systemconsole/
  • Inline variable evaluation changed to use { and } (instead of < and >). See above page for details.
  • You may now use alias to run commands when a toggle variable's value is changed.
  • skip now allows for various comparisons, and fuzzy equality check.
  • Added ui_anchor, ui_label and ui_toggle commands (to accompany ui_button), allowing you more options for easily running commands / changing setting during play.


New commands: (for more info see above page, or use help )

  • append - Adds text, or the last entered command, to a text variable.
  • camera_reset_on_load - Whether the camera resets its position when you do a Save & Play in Atom.
  • chat_input - Activates chat input box.
  • component_examine - Sets game component currently being examined.
  • component_move, component_rotate, component_position, component_rotation - Apply movements to components.
  • eval - Evaluates an expression and stores it in a variable.
  • examine_position, examine_rotation - Return information on the currently examined component.
  • hidden_zone_showing_opacity, hidden_zone_hiding_opacity - Set visual opacity of hidden zones.
  • lua - Execute a lua statement.
  • music_add, music_mute, music_next, music_pause, music_play, music_prev, music_repeat, music_shuffle, music_timecode - Commands to control new music player.
  • spectator_restrict_view - Whether the spectator window shows your view, or that of a grey player.
  • spectator_show_grid - Whether the grid is rendered in the spectator window.
  • team - Stores / sets team you are currently on.
  • ui_anchor - Sets position UI elements are made relative to (default is 0,0 - the center of the screen)
  • ui_label - Add static text UI element.
  • ui_toggle - Add checkbox UI element.
  • vector_x, vector_y, vector_z - Return an individual axis from a vector variable.
  • vr_move_with_inertia - Whether you have inertia in VR.
  • vr_move_friction - When you have inertia, how quickly you slow down.
  • vr_scale_rotate_rate - How much smoothing is applied during scaling/rotating.


Fixes
  • Fixed scroll wheel being inverted for Linux.
  • Fixed Components menu chess Wood White King being missing.
  • Fixed search and expand for Games menu.
  • Fixed misc issues with spectator camera.

Grand Prix Steam Sale - Tabletop Simulator and DLC up to 50% off!



Tabletop Simulator is on sale now for 50% off!
You can buy the individual game, or the 4-pack at the discounted price.

https://store.steampowered.com/app/286160/Tabletop_Simulator/

Additionally, almost all DLC are on sale for up to 50% off.

Visit the DLC Steam Sale Page

Sale ends 7/09/19 at 1pm EST.

Update v12.0 Engine Upgrade, Dx11, Performance Increases, Reduced Game Size 4GB, and a ton more!

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 being evaluated,
# and exec to make it evaluate when activated
>bind semicolon exec cam_look_at

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

# 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
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.

Update v12.0 Public Beta, Engine Upgrade, Dx11, Performance Increases, DLC Improvements, and a ton more!

Hey there everyone! This is one of biggest updates yet, we have a lot of great stuff coming for you guys in this update, but we want to make sure it's stable before pushing it live. So, we are doing a public beta first and we want to hear from you about any issues!

To opt into the beta:

* Right click on Tabletop Simulator in your Steam library.
* Choose Properties -> Beta.
* Then in the drop down for "Select the beta you would like to opt into:" choose "public_beta".

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:

* Due the massive engine upgrade AssetBundle are the most effected due to Unity changes you might have to re-export your AssetBundle from 2019.1 with the updated Modding Project.
* Old AssetBundles using crunched textures will not load correctly and need to be re-exported.
* AssetBundle mesh colliders might behave differently due to physx upgrade.

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.

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.

System Console:

* Added `mod_caching`, `mod_caching_raw`, `mod_threading`, and `mod_thread_count`.
* Added `say_global`, `say_game`, `say_team` commands.
* `/` commands now work when typed into system console.
* Added subtract command.
* Renamed vr_bindings command to vr_steamvr_bindings
* Added say_global, say_game, say_team commands.

Spectator Mode:

* Spectator mode should be working correctly with differing monitor resolutions.
* Added `displays` command, reworked `spectator_activate_with_resolution` command (can now specify display)
* `spectator_camera_attachment` - sets component or pointer for camera to attach to.
* `spectator_camera_follow_attachment` - when this is on the camera will move as if attached to above entity.
* `spectator_camera_follow_player` - renamed, was `spectator_camera_follow`.
* `spectator_camera_dolly` - distance camera is offset along the direction it is looking.
* `spectator_camera_offset_position` - vector3 positional offset from attachment.
* `spectator_camera_offset_rotation` - vector3 rotational offset from attachment.
* `spectator_camera_look_at` - make camera look at specified component or pointer.
* `spectator_camera_target` - sets component or pointer for camera to track.
* `spectator_camera_tracking` - when ON the camera will constantly track the above entity.
* `spectator_camera_override_player_with_look` - when ON look and track commands will override follow_player.
* `spectator_camera_stay_upright` - when ON the camera will avoid being upside-down.

Lua:

* Added onObjectTryEnter(object) callback: if present on an object then it will be called when another object would be inserted into it (like a card into a deck or a token into a bag). If it returns false then the item will not be able to enter.

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.
* Fixed line tool, including flick and joint.

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

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.