I found out that KopiLua and LuaInterface (Latest) Has metatables, All you have to return Is your object, You can not return classes or anyhow add them to LuaInterface, but you can return objects or functions that can do the same. from lua, peoples can use object functions. Functions that has an argument (Even empty) Are used with a :, and others with a dot. Here's the example:
// C#:
public List<string> testing()
{
return new List<string>()
{
{"Test"},
{"Another test"}
};
}
// Player object:
public int Health { get { return 1; } }
public int Hp() { return this.Health; }
// lua:
testing:Clear()
print(ply.Health)
print(ply:Hp())
ply.Health = 2
// You can not change a function style value like Hp(), So no way to change health this way except making a set function