Duplicatable V2.1 has two weak point.
1. it is necessary to append a number into dirname
2. it is hard to update the module
I know a site installing TinyD more than 10.
In the site, the site's admin have to update EVERY TinyD at once.
I also know some module based on V2.1 rewrite templates/* and sql/*.
Though the problem of 1 can be solved in such modules, it will be much harder to update the module
They are the spec of Duplicatable V3 (D3).
(1) use XOOPS_TRUST_PATH out of DocumentRoot
(2) it puts just wrappers under XOOPS_ROOT_PATH/modules/(dirname)
(3) D3 creates templates and tables in the function for onInstall.
(4) D3 updates templates in function for onUpdate.
(5) D3 drops tables in function for onUninstall.
(6) adopt front controller system. (eg index.php?mode=admin)
(dirname) will be free completely.
And you have to update just once about XOOPS_TRUST_PATH/modules/(trustdirname) even if you install 10 or 100 instances of the module.
I've just made a sample module of D3 as wraps.
Try it if you are interested with it.
I declare I'll modify all of my works D3 and XOOPS_TRUST_PATH