From 985a703811d49450b0e18a3be87288826d41d92d Mon Sep 17 00:00:00 2001
From: Quaternions <krakow20@gmail.com>
Date: Wed, 23 Apr 2025 15:43:59 -0700
Subject: [PATCH] roblox_emulator: add CFrame.new(nil) constructor

---
 lib/roblox_emulator/src/runner/cframe.rs | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/lib/roblox_emulator/src/runner/cframe.rs b/lib/roblox_emulator/src/runner/cframe.rs
index 4b17fe9..9777343 100644
--- a/lib/roblox_emulator/src/runner/cframe.rs
+++ b/lib/roblox_emulator/src/runner/cframe.rs
@@ -73,6 +73,15 @@ pub fn set_globals(lua:&mlua::Lua,globals:&mlua::Table)->Result<(),mlua::Error>{
 			Option<Number>,Option<Number>,Option<Number>,
 			Option<Number>,Option<Number>,Option<Number>,
 		)|match tuple{
+			//CFrame.new()
+			(
+				mlua::Value::Nil,mlua::Value::Nil,None,
+				None,None,None,
+				None,None,None,
+				None,None,None,
+			)=>{
+				Ok(CFrame(glam::Affine3A::IDENTITY))
+			},
 			//CFrame.new(pos)
 			(
 				mlua::Value::UserData(pos),mlua::Value::Nil,None,
@@ -80,8 +89,8 @@ pub fn set_globals(lua:&mlua::Lua,globals:&mlua::Table)->Result<(),mlua::Error>{
 				None,None,None,
 				None,None,None,
 			)=>{
-				let pos:&Vector3=&*pos.borrow()?;
-				Ok(CFrame::point(pos.0.x,pos.0.y,pos.0.z))
+				let Vector3(pos):&Vector3=&*pos.borrow()?;
+				Ok(CFrame::point(pos.x,pos.y,pos.z))
 			},
 			//TODO: CFrame.new(pos,look)
 			(