If you need to create settings that apply to an entire module, rather than on a per-plugin basis, you should define some site settings and prefix them with your module's class name.
You can create plugin settings by creating/merging fields into the plugin settings admin box for your module. You can check Example Module 3: Day of the Week for an example or see Defining Plugin Settings for more details.
If you want to reload a plugin using AJAX, you can do this very easily by using either the refreshPluginSlotAnchor() function or the refreshPluginSlotJS() function to generate the html/JavaScript needed.
You can create a content type by creating a module and defining the content type in the module's description.yaml file.
If your module (the caller) lists the module that you are calling (the callee) as a dependency in its description.yaml file (see Reference of properties in a Module's description.yaml file) then the caller can call the callee's methods in its php code.
You can create an Organizer panel by writing .yaml files and placing them in the tuix/organizer/ subdirectory of your module.
By writing .yaml files and placing them in the tuix/organizer/ subdirectory of your module, you can define elements and merge them into the other module's panel.
You can create an admin box by writing .yaml files and placing them in the tuix/admin_boxes/ subdirectory of your module.
By writing .yaml files and placing them in the tuix/admin_boxes/ subdirectory of your module, you can define elements and merge them into the other module's admin box.
In the js/ directory of your module, create a file called plugin.js.
In TUIX, there is one special property called priv. This removes elements for administrators who don't have the named permission; it's equivalent to doing an unset() in your PHP code.