Gif and WebP recording mod for The Powder Toy (v3.1415926535+v97.0)
This mod replaces the vanilla tpt.record() lua function with a customizable recording GUI. The menu can be accessed by clicking the R button below the console button, or by using the R shortcut key.
Screenshot (default settings):
Supported Formats:
Gif
WebP
Old (same as original .ppm spam recordings)
Other Features:
Selectable recording area
Adjustable FPS
Pixel scaling + zoom window imitation (see 8+spacing option)
Buffering to ram or disk to improve game performance
Multithreaded writing
Pausing
Built-in help menu
Lua API for controlling all settings (see below)
Alaskan bull worm
Downloads:
Windows: (x64)
MacOS: (x64)
NOTE: MacOS version is untested
Linux: (x64)
Source: (Github) | (Direct Latest)
Windows 32-bit?:
No. The library used for WebP writing (*cough* Google) does not support win32... Ok, an old version does and I did get it to compile, but I consider it unsupported and you should only use it if you somehow do not have a 64 bit cpu. here :(
MacOS arm?:
No. Not supported by tpt/starcatcher.
Lua API (record.* or rec.*):
All methods correspond to a setting in the GUI and can be used with no arguments to get the value
rec.record(boolean recording)
rec.pause(boolean paused)
rec.area(number x1, number y1, number x2, number y2) -- NOT inclusive
rec.fps(number fps)
rec.scale(number scale) -- Allowed values: 1, 2, 4, 8, -8 (8+spacing)
rec.includeUI(boolean enabled)
rec.format(number format) -- 0 = Gif, 1 = WebP, 2 = Old
rec.buffer(number mode) -- 0 = Off, 1 = Ram, 2 = Disk
rec.bufferLimit(number limit) -- Megabytes, 0 to disable
rec.writeThread(boolean enabled)
rec.compression(number value) -- WebP Only, 0-10, 10 enables additional size reduction
rec.uwu(boowean enabwed)
More Samples:
Cow:
Banana for scale (uses 8+spacing scale option):
Report any problems here or see my profile for other places to find me.
jacob1 told me about that earlier, just had time to remove the link now. I guess the untested warning was a good idea after all (surprised it wasn't my fault lol).