- All modules require a <code>**$VERSION='0.000'**</code> variable, beginning at <code>**1\.000**</code>.
-- The <code>**initPlugin**</code> handler checks all dependencies and returns TRUE if the initialization is OK or FALSE if something went wrong.
+- The <code>**initPlugin**</code> handler should check all dependencies and return TRUE if the initialization is OK or FALSE if something went wrong.
- The Plugin initialization code does not register a Plugin that returns FALSE (or that has no <code>**initPlugin**</code> handler).
- <code>**$VERSION='1.000'**</code> is the current setting in <code>**TWiki::Plugins.pm**</code> and in the preinstalled system Plugins ([[DefaultPlugin]], [[EmptyPlugin]], [[InterwikiPlugin]]).
- a Perl module, ex: <code>**YourPlugin.pm**</code>
- a documentation topic, ex: <code>**YourPlugin.txt**</code>
-The Perl module can be a block of code that connects with TWiki alone, or it can include other elements, like other Perl modules (including other Plugins), graphics, TWiki templates, external applications (ex: a Java applet), or just about anything else it can call.
+The Perl module can be a block of code that connects with TWiki alone, or it can include other elements, like other Perl modules (including other Plugins), graphics, TWiki templates, external applications (ex: a Java applet), or just about anything else it can call. In particular, files that should be web-accessible (graphics, Java applets ...) are best placed as attachments of the <code>**YourPlugin**</code> topic. Other needed Perl code is best placed in a <code>**lib/TWiki/Plugins/YourPlugin/**</code> directory.
The Plugin API handles the details of connecting your Perl module with main TWiki code. When you're familiar with the [[Plugin API|Main/WebHome#PluginAPI]], you're ready to develop Plugins.