From ca88eb1cad2350ea09398e6a5ccf8ea27de82d85 Mon Sep 17 00:00:00 2001
From: Quaternions <krakow20@gmail.com>
Date: Wed, 23 Apr 2025 17:28:08 -0700
Subject: [PATCH] roblox_emulator: convert numbers to string in
 Instance.__newindex

---
 lib/roblox_emulator/src/runner/instance/instance.rs | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/lib/roblox_emulator/src/runner/instance/instance.rs b/lib/roblox_emulator/src/runner/instance/instance.rs
index e3286f5..1804691 100644
--- a/lib/roblox_emulator/src/runner/instance/instance.rs
+++ b/lib/roblox_emulator/src/runner/instance/instance.rs
@@ -382,8 +382,13 @@ impl mlua::UserData for Instance{
 						rbx_types::Variant::Int32(typed_value)
 					},
 					rbx_reflection::DataType::Value(rbx_types::VariantType::String)=>{
-						let typed_value=value.as_str().ok_or_else(||mlua::Error::runtime("Expected string"))?;
-						rbx_types::Variant::String(typed_value.to_owned())
+						let typed_value=match &value{
+							mlua::Value::Integer(i)=>i.to_string(),
+							mlua::Value::Number(n)=>n.to_string(),
+							mlua::Value::String(s)=>s.to_str()?.to_owned(),
+							_=>return Err(mlua::Error::runtime("Expected string")),
+						};
+						rbx_types::Variant::String(typed_value)
 					},
 					rbx_reflection::DataType::Value(rbx_types::VariantType::UDim2)=>{
 						let typed_value:&crate::runner::udim2::UDim2=&*value.as_userdata().ok_or_else(||mlua::Error::runtime("Expected UDim2"))?.borrow()?;