First approach would be having liblua5.1.so/lua51.dll act as the wrapper itself and Lua C modules compiled depends on that DLL/shared object.
In case of CS2D update, only single file needs to be updated.
In Linux, CS2D (dedicated server) must be run with
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. ./CS2D
A second approach would be compiling the C modules and the CS2D Lua wrapper together. It's just single file "cs2dlua.c" that must be added to module compilation.
No need of specialized command to run the CS2D (dedicated server)
In case of CS2D update, all modules must be recompiled
I'm also open to other suggestion that maybe interesting.
Regards,
AuahDark