diff --git a/lib/roblox_emulator/src/runner/instance/instance.rs b/lib/roblox_emulator/src/runner/instance/instance.rs index 14dbd73..7423862 100644 --- a/lib/roblox_emulator/src/runner/instance/instance.rs +++ b/lib/roblox_emulator/src/runner/instance/instance.rs @@ -150,6 +150,15 @@ impl mlua::UserData for Instance{ }); } fn add_methods<M:mlua::UserDataMethods<Self>>(methods:&mut M){ + fn clone(lua:&mlua::Lua,this:&Instance,_:())->mlua::Result<Instance>{ + dom_mut(lua,|dom|{ + let instance_ref=dom.clone_within(this.referent); + dom.transfer_within(instance_ref,Instance::nil().referent); + Ok(Instance::new_unchecked(instance_ref)) + }) + } + methods.add_method("clone",clone); + methods.add_method("Clone",clone); fn get_children(lua:&mlua::Lua,this:&Instance,_:())->mlua::Result<Vec<Instance>>{ dom_mut(lua,|dom|{ let instance=this.get(dom)?;