207 Initial release of Win64 version 208 This snapshot contains no changes, it only has changes for macOS 208 Update README with info on all the external libraries we use 209 Fix issue where Linux version couldn't be launched from some file managers 210 Fix air being able to go through walls for a frame after undoing 210 Show NONE in {ctype} signs instead of 0 when an element has no ctype 210 Fix some legacy lua api functions allowing you to set properties on element 0 211 New element: LITH. Reactive element that explodes on contact with water. 212 Make custom can_move settings persistent (fixes #764) 212 Redo and add type parameter to sim.neighbours 213 Fix elementCount inaccuracies when undoing (fixes GoL not working for a short time after undo) 213 Fix ctype drawing for LDTC 213 Show proper GoL name in HUD for LDTC / DTEC 213 Write powder.pref immediately every time a setting is changed 214 Make username case-insensitive when logging in 215 Fix "NONE" showing in HUD in many cases 215 Improve stack pasting behavior 215 Remove "Auto Draw Rate" option, there is no reason to turn this off 215 Fix issue allowing drawing unlimited LIGH with 1x1 cursor 215 Don't show GoL .tmp in HUD, check if create_part was successful while simulating GoL 216 Update Me4502's name in readme & intro text 216 Prop tool - only check GoL rulestings / names for ctype 216 Move IRC channel from irc.freenode.net to irc.libera.chat 216 Makes GLOW element glow under pressure 216 Fix dangling pointer smuggling in PreviewModelException 216 Remove LuaSocket, add new socket API backed by libcurl (this breaks tptmp, there is no workaround right now) 216 Rewrite tpt.set_wallmap, it can now set WL_FAN velocity 216 Take snapshot when using ctrl+x 216 Make debug mode show .tmp2 for VSNS too. 217 Fix issue in socket API where an error isn't raised after writing to a closed socket 217 Save ambient air temperature and add it to options 217 Restrict saves with ambient air temp set to v96.0 217 Remove pastel glow on "inactive" GLOW 218 Add button in options menu to migrate to shared data directory 218 Make ROCK harder to get, greatly increase ACID resistance 218 Adjust LITH color slightly so that it isn't the same as CNCT 218 Change PTNM reactions to take pressure from reacting particle's coordinates (#784) 218 When air temp textbox is defocused, correct out of range temperatures 218 Fix crash when doing sim.ambientAirTemp(0/0) 218 restrict ambientAirTemp to valid limits when set from Lua 218 Return version (aka history index) from sim.getSaveID 218 sim.clearSim now clears active save information too 218 Return a reason for failure from sim.loadStamp 218 Ensure tpt.set_wallmap is called with 3, 5, or 7 arguments 218 Add bounds checking to sim. tool APIs (crash fix) 219 Bump version to 96.0.348 219 Make ROCK more resistant to DEST (like CNCT is) 219 Fix local saves and migration process on Windows 219 Adjust color of LITH 219 Show .LITH tmp2 in HUD 219 Update SLCN description 219 Form ROCK under pressure from both normal LAVA and LAVA(STNE), as these are basically the same thing 219 Prevent ROCK from repeatedly breaking into STNE and reforming under pressure 219 Burn timer / explosiveness enhancement for LITH 220 Fix GOL showing up where it shouldn't 220 Fix custom brush loading 220 Default drawfrequency to 0, because of frame drop issues 221 Linux: support Ubuntu 18.04 and other distros with glibc 2.27 222 Fix "B12345678/S012345678/17" appearing in HUD for ctype 78 222 HUD: Show GLOW and LITH ctype as number, don't show ctype for elements which use it as data storage (such as PHOT or PRTI) 222 Don't let GLOW ctype go negative 222 Disallow CGOL with duplicate rulestrings or names > 7 chars 222 Make LITH->GLAS reaction easier 222 LITH explodes when overcharged, update charge graphics 222 Preserve GoL deco in older saves; deco on builtin GoL no longer renders when decorations are off 222 Fix elem.allocate corrupting LuaScriptInterface and causing crashes when running out of IDs 222 Fix element identifiers for newly allocated elements not being immediately valid 222 Fix find mode not always succeeding in darkening particles 222 Disallow GOL rulesets with no B states 222 Make Lua prints fade out better 223 Bump version to 96.1.349 224 Prevent property tool from being used with bad values 224 All HSV sliders in color picker 224 Add AMBP and AMBM tools 224 Optimise undo history memory usage 225 Patch libcurl to fix random disconnect issue in tptmp 226 Update version number: 96.2 (build 350) 226 Add a few more Lua functions: sim.replaceModeFlags, sim.listCustomGol, sim.addCustomGol, sim.removeCustomGol, sim.floodDeco, tpt.perfectCircleBrush 226 LIGH now lasts longer and expands frame-by-frame 226 Fix issue where stamping LIGH at the right moment caused every LIGH to strike at once 227 Fix memory leaks in interface api 227 Fix TPT Window breaking sometimes when toggling "resizable window" while in fullscreen 227 Fix near-RTEMP temperatures being loaded incorrectly in some cases 227 Fix crash when closing game, while not on the main screen, with Lua components active 227 Disable text input on startup 228 Fix custom elements disappearing after rotating a stamp 228 Fix cursor placement in textboxes with just a single character 228 Fix extremely rare crash when using water equalization with loop edge mode and other high velocity liquids nearby 229 Fix potential crash when adding a custom GOL type 229 Fix ambient air temperature being loaded from saves as int, not float 229 Convert float pavg[2] to int tmp3, tmp4 229 Save higher halves of tmp3 and tmp4 if needed (fixes saving photons in PIPE) 230 Fix mingw-on-linux builds 230 Fix pressure-sensitive particles breaking on load, again 230 Fix incorrect RNG call in WARP, code cleanup 230 Fix crash on network activity (#824) 230 Fix ToArray duplicating the last byte of its input 230 Fix crash on exit if any modern particle callback is registered 230 Fix pipe mirroring (fixes #750 again) 232 Fix crash on exit if a Lua component is added to a Lua window 232 Add safeguard to try_move to ensure we don't write to out of bounds pmap 232 Redo code that makes SOAP float on OIL 232 Update TPT's user agent and intro text with new IDENT portion that better identifies platform and architecture 232 Prevent SaveRenderer from calling into Lua 232 Fix crash when trying to render an empty stamp 232 Fix TRON being unable to pathfind to the top and left edges of the screen 232 Handle SDL_CreateWindow failure slightly better 233 Fix cryptic Lua error built-in elements could sometimes produce 233 Added chemically strengthening GLAS (expose GLAS to molten SALT) 233 Element scroll bars no longer show in menus that don't scroll 233 Fix find mode not highlighting WARP particles 234 Fix starcatcher-publish step so it actually uploads apks now 235 New WTRV + BCOL -> OIL reaction in presence of PTNM 235 Remove inaccuracy in OIL's description 235 Make PHOT change its wavelength upon colliding with charged LITH 235 Use date in screenshot filenames to ensure each screenshot's filename is unique 235 Let NEUT pass through BGLA 235 Fix LITH conducting through INSL 236 Deprecate tpt.element_func / tpt.graphics_func and replace with compatibility script 236 Mark saves with GLAS/QRTZ/TUNG as 97.0-only 236 Fix handling of malformed scale: and proxy: arguments 236 Add sim.partExists and elem.exists 236 Add real v parameter to sim.partCreate 236 Fix PIPE graphics hack giving Lua graphics functions bad particle IDs 236 Fix exception when passing nil to some functions in interface api 237 Add custom gravity mode (catsoften - #820) 237 Expose SDL keycodes and scancodes to Lua 237 Expose SDL button codes to Lua 237 Add PowderCoin icon to font 237 Alias dcolor, pavg0, pavg1 to dcolour, tmp3, tmp4 237 Make QRTZ slightly change color while growing (Rebmiami - #852) 237 Performance improvements to simulation code (up to 8%) (savask - #854) 238 Return HTTP response headers to Lua 238 Enable By date button when viewing Favorites 238 Crop stamp thumbnails that don't fit even when resized 238 Code cleanup: Fix 8-bit-uncleanliness of most of the Lua API 238 Code cleanup: DirectionSelector and surrounding code 238 Code cleanup: Use std::vector consistently for file operations 238 Code cleanup: Client::DoInstallation 238 Code cleanup: Update tpt-libs and GitHub Actions workflows 239 Fix snapshots sometimes being debug builds 239 If your game is slow, bigger than usual, or if it opens a console window, this is why 240 Fix crash when trying to load a stamp that doesn't exist 240 This also fixes syncs in TPTMP crashing the game 241 Make stickman movement strength independent of gravity 242 Fix a very elusive PHOT reflection crash 242 Fix rare crash upon clearing the ambient temperature input box in settings 242 Add http.getAuthToken 242 Add clip rect feature to Graphics and gfx.setClipRect 243 Add support for HTTP/2, reduce per-host connection count to 1 243 Fix string handling in text drawing and width functions 243 Allows passing in null bytes, which allows 0s to be used with \x0F color codes 243 Use PNG avatars and thumbnails 243 Fix empty string being discarded at beginning of lua log/return lists 244 Fix text in some buttons being cut off prematurely 244 Add verb parameter to http.get/post 246 Fix opening saves on Windows 11 248 Clean up saving code somewhat 248 Fix PHOT reflecting off thin walls of particles incorrectly 248 Add sim.MAX_PRESSURE and sim.MIN_PRESSURE constants 248 Make file browser respond to search query changes while loading files 248 Add inverted element filtering to CONV with tmp2 set to 1 248 Expose BZ2 to Lua 249 Fix local browser handling large amounts saves badly 250 Fix frequent crash in snapshot 249 when browsing or viewing online saves 251 Fix the zoom window producing out of bounds coordinates 251 Fix lag when scrolling local save browser (it now caches thumbnails again) 251 Fix local browser offering to open broken saves 251 Unify icons - the new icon looks similar to the old, but is now the same across Windows/Mac/Linux 251 Fix possible crash when flood filling with particle limit filled 251 Fix glitchy behavior when flood filling solid particles around detect wall 251 Add evt.beforesim and evt.aftersim for running code only when simulation advances 251 Add sim.updateUpTo and sim.lastUpdatedID, for handling partial sim updates in Lua 251 Add sim.historyRestore and sim.historyForward 251 Add discord link to intro text 251 Make GLAS strengthening reaction more controllable 251 Add underline escape sequence to text renderer (\bU) 252 Clean up image resource data, and convert hmap data to gradients 252 Have the intro text hide the HUD completely 252 Fix loading of "version 1" PSv saves 252 Add temperature scales option 252 Vote editing 252 Send SessionKey in a few more places in Client.cpp 252 Make CRMC immune to ACID 252 Update readme date and version numbers 252 Tweak "Small 3" character (\uE032) in the font 252 Fix white LIFE being created in some cases, such as from EXOT+NEUT 252 Add --disable-bluescreen command line argument 252 Redo command line parsing and Platform::ExecutableName 252 Fix input method support on Linux 252 Fix pmap not being updated when setting x / y from Lua 252 Fix background color not showing up in vote buttons on your own saves 252 Update version numbers to 97.0.352 253 Preprocessor-purge: Significant refactors to the way build options and the build environment are handled while compiling 253 Read stamps from stamps.json instead of stamps.def. stamps.def will be migrated to the new format on upgrade 253 "Rescan Stamps" is now performed automatically on launch, and no longer reorders by date. Instead, new stamps will be added to the front of the list 253 Improved file writing - ensure failed writes won't corrupt files 253 Include "1" in the list of "true-strings" on the command line 253 Fix os.exit() 254 Fix stamps being impossible to delete 254 Fix custom elements disappearing on load 254 Fix custom element types being mangled in secondary properties 254 Improve determinism, useful for debugging 254 Fix a particularly obscure water equalization crash 254 Fix RIME's description (it is formed through deposition, not sublimation) 254 Fix delete key not functioning correctly in textboxes when text is selected 254 Add fs.isLink 255 Fix many-headed stickmen 255 Approximate save previews with thumbnails if they are available 255 Fix vote bars in previews touching the enclosing rectangles 255 Request UTF-8 code page at startup 255 Fix paste previews being positioned incorrectly 255 Fix more reflection issues 255 Fix some air simulation asymmetries 256 Fix more particles being copied than asked for 257 Add hflip and rotation parameters to sim.loadStamp 257 Enable out of bounds pasting 257 Fix random particles disappearing when pasting 257 Fix pastes not being centred on the cursor 257 Fix crash on exit when multiple windows are open 257 Prevent almost all HTTP requests from blocking 258 Avoid Year 2038 problem with save creation dates 258 Make Grave (the key under Esc) exiting the console optional 258 Rearrange settings view slightly 258 Fix crash if an avatar is missing from the server 258 Fix votes not making it to the server in some cases (don't worry, very obvious when it happens) 258 Fix very early crash in on certain platforms if an element menu is scrolled too far right 258 Fix logouts not actually destroying sessions 259 Fix crash when overwriting a local save 259 Fix sim.neighbours yielding the center particle 259 Fix crash if a save thumbnail is missing from the server 260 Lua dialogues do not block execution anymore, breaking a few existing scripts 260 This will be fixed by the next stable version, no bug reports about this are necessary 260 Fix crash when exiting the game completely while a Lua dialogue is on screen 260 Fix crash when changing tpt.brushID from Lua 260 Fix crash when failing to change the favourite status of a save 260 Fix crash when attempting to change pages in an empty stamp browser 260 Fix crash when specifying too big an interval for math.random 260 Fix FUSE not burning as fiercely as meant to 260 Fix local save browser sometimes failing to load saves 260 Fix black screen while changing renderer options 260 Fix EMBR and other similar elements producing black spots 260 Fix rendering of fire effects when their intensity is too high 260 Make PROP tool less annoying to use by preventing exit until all settings is valid 260 Make find mode work with the PROP tool 260 Add tpt.version.vcstag to make it easier to identify builds when reporting bugs 260 Add support for running TPT in a browser, see our Discord server for details 260 Kill stickmen immediately if their health goes below zero 260 Update streamline description so that it's more helpful 260 Enter stamp placement mode when drag-and-dropping a stamp 260 Work around more input method bug on Windows, may fix Hangul input for some people 261 Fix custom can_move settings being reset after using tpt.el 261 Sample "into" the PROP tool when it is active 261 Add version info to bluescreen 261 Change some details of how HTTP is done 261 Make Lua hook timeout configurable 262 Make save history icon more visible 262 Fix crash when passing bad coordinates to sim.clearRect 262 Fix the Maximized property of windows shortcuts not being respected 262 Fix input method candidates being aligned wrong in some cases 262 Fix occasional crashes upon opening settings 262 Fix sim.partNeighbors table being 0-indexed 262 Center some category icons 262 Change sim.walls to use real wall identifiers, and also have reverse lookup 262 Add blurry scaling option 262 Add Ctrl+E shortcut to cycle through edge modes 262 Add F11 shortcut to toggle fullscreen; the setting is not saved across runs though 353 Snapshot and build numbers have been merged, Snapshot 262 is followed by Snapshot 353 353 Fix prop tool not remembering settings in some cases 353 Fix spurious timeout errors from some callbacks 353 Fix guess best scale prompt showing up even when it guesses the default 353 Add surface normal debug tool 353 Expose debug constants to lua 353 Auto-focus the input field in the tag list 353 Complain about missing custom elements when opening online saves 354 Fix the casing of the new upstream tpt.version keys 354 Use a proper ProgressBar in UpdateActivity 354 List element IDs that don't have an identifier associated in a save 354 Enable basic rendering of custom elements in secondary Renderers 355 Fix some elements, mostly energy particles, not being able to go through some others 355 Fix line debug tool showing up when placing stamps 355 Fix extremely rare crashes caused by complicated energy particle bombs 355 Some native clipboard support for some platforms; you can now copy and paste between windows 356 Fix some pasted particles not getting cut off at the edges of the simulation 356 Fix pasting sometimes getting interrupted by the particle limit 356 Mark saves as being from the next version in dev builds 356 Complain when pasting save data with missing elements 356 Add includePressure parameter to sim.loadStamp 356 Add sim.listStamps 356 Fix Textbox width limiting content length 356 Add link to the registration form to LoginView 356 Retire tpt.beginGetScript in favour of tpt.installScriptManager 356 Most weird mirrors now work as they did prior to the many PHOT refraction fixes 357 Add beforesimdraw and aftersimdraw events 357 Sample properties when shift is held 357 Implement stamp renaming 357 Clear stamp browser selection when page contents change 357 Fix some http API problems 357 Add stack trace to bluescreen on some systems 357 Add platform clipboard option to settings 357 Happy New Year! 358 Fix signs loading in the wrong place in really old saves 358 Restore old SOAP foam behaviour and make it work with nonstandard gravity 358 Add more characters to the font 358 Add liquid resist RSST and solid resist RSSS 358 Make TESC create LIGH with same deco color 358 Allow setting ETRD min and max distance with tmp and tmp2 359 Make LDTC copy BIZR, BIZG, and BIZS's wavelength too 359 Sanitize the Lua API 359 This has the potential to break scripts; please be on the lookout for such breakage and report it 360 Make element search scrollable 360 draw air before "beforesimdraw" event is fired, so that graphics work in velocity / pressure display modes 360 Add some sign api constants 360 compat.lua: Fix tpt.brushx, tpt.brushy, and tpt.watertest 360 Fix crash if tpt.installScriptManager fails 360 Fix sliders accepting clicks from anywhere 360 Fix tooltips in element search 360 Fix element buttons missing from element search 360 Fix sliders accepting clicks from anywhere 360 Fix tooltips in element search 360 Fix element buttons missing from element search 361 Fix sliders accepting clicks from anywhere 361 Fix tooltips in element search 361 Fix element buttons missing from element search 361 Fix save history button not working except on your own saves 361 Add DECOSPACE_ Lua constants