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()?;