- Breaking: Reordered parameters of
remodel.writeModelFile
andremodel.writePlaceFile
to accept path first, then content (#81). - Added
Instance:ClearAllChildren()
. (#84) - Added
remodel.removeFile(path)
andremodel.removeDir(path)
. (#80) - Fixed behavior of reading files in
.remodel
directory. (#83) - Changed to
rbx_cookie
for authentication. (#87)
- Switched from
rlua
tomlua
, which should improve Lua performance slightly. (#73) - Updated all dependencies to improve Roblox compatibility.
- Updated to latest rbx-dom libraries.
- Increased Roblox API request timeout from 30 seconds to 3 minutes. (#63)
- Updated to rbx-dom 2.0 ecosystem.
- Added Instance:GetFullName() (#49)
- Added
Instance:FindFirstChildOfClass()
(#50) - Added support for CFrame (#48)
- Added support for Vector3, and improved Vector3int16 (#46)
- Added Color3.fromRGB(red, blue, green) (#44)
- Added
json.toStringPretty
(#55)
- Updated to latest rbx_xml, which should fix
OptionalCoordinateFrame
-related issues.
- Ported to rbx-dom v2, which includes full support for binary and XML model files.
- Changed all upload commands to upload as binary instead of XML.
- Added support for CSRF negotiation to fix asset uploading. (#25)
- Added support for Vector3int16.
- Added support for BinaryString values.
- Added Instance:GetDescendants().
- Fixed first argument to
remodel run
script being eaten by Remodel. (#19)
- Breaking: Moved script execution to
remodel run
to make room for new subcommands.- If you previously used
remodel foo.lua
, useremodel run foo.lua
now.
- If you previously used
- Added
--verbose
and-v
flags for setting verbosity. - Added
json.fromString
andjson.toString
for encoding/decoding JSON - Added
remodel.isFile
andremodel.isDir
. - Added support for reading the auth cookie through the
REMODEL_AUTH
environment variable. - Added support for Remodel looking for scripts in the
.remodel
folder of a projectremodel run foo
will now run.remodel/foo.lua
if it exists.
- Added (experimental) support for building Rojo projects through
rojo.buildProject
.- This is behind the
unstable_rojo_api
Cargo feature and is not enabled by default.
- This is behind the
- Improved logging and error reporting across the board.
- Upgraded reflection database and dependencies.
- Error messages should now be improved, thanks to an rlua upgrade
- XML models with CRLF line endings should no longer error spuriously, thanks to an rbx_xml upgrade
- Breaking:
Instance.new
now only works for instances that actually exist. - Added
Instance:Clone()
for copying instances all over the place, as is Roblox tradition. (#12) - Added
DataModel:GetService()
for finding services and creating them if they don't exist, like Roblox does. (#10) - Added
remodel.getRawProperty(instance, name)
, a clunky but powerful API for reading properties with no validation. - Added
remodel.setRawProperty(instance, name, type, value)
for writing properties with no validation. - Fixed Remodel dropping unknown properties when reading/writing XML models. This should make Remodel's behavior line up with Rojo.
- Improved error messages in preparation for #7 to be fixed upstream.
- Remodel Windows binaries now statically link the MSVC CRT, which should improve portability.
- Added
Instance.new
for creating instances. - Added
Instance:Destroy()
for destroying instances instead of just parenting them to nil.- Unlike Roblox, no properties can be accessed on a destroyed instance or else Remodel will throw an error. Be careful!
- Added APIs for interacting with models and places on Roblox.com:
remodel.readModelAsset
remodel.readPlaceAsset
remodel.writeExistingModelAsset
remodel.writeExistingPlaceAsset
- These APIs will pull your
.ROBLOSECURITY
cookie from Roblox Studio if you're on Windows, or you can pass a cookie explicitly using--auth [cookie]
- Added
remodel.readDir
for enumerating directories. - Added early support for
rbxm
models inremodel.readModelFile
andremodel.writeModelFile
.- When an
rbxm
model is written or read, a warning will be printed to the console.
- When an
- Added
remodel.writeFile
andremodel.readFile
for handling regular files. - Added support for
==
on instances. - Added support for reading and writing
Parent
on instances. - Added script file name in error stack traces.
- Improved CLI documentation. Try
remodel --help
! - Added support for extra arguments. They're passed into the script as
...
. - Added support for reading from stdin. Use
-
as the input file!echo "print('Hi')" | remodel -
- Breaking: split
remodel.load
intoremodel.readPlaceFile
andremodel.readModelFile
.readPlaceFile
can only readrbxlx
files, and returns aDataModel
instance.readModelFile
can only readrbxmx
files, and returns a list of instances.
- Breaking:: split
remodel.save
intoremodel.writePlaceFile
andremodel.writeModelFile
.writePlaceFile
can only writerbxlx
files.writeModelFile
can only writerbxmx
files.- This split helps Remodel avoid funny tricks to detect what encoding scheme to use.
Initial release!
- Basic API for loading and saving places, as well as creating directories
- Single-command CLI that runs a Lua 5.3 script with Remodel APIs