1. PROJECT RELATED QUESTIONS

1.1 What is KVIrc ? What does the "KVIrc" name stand for ?
1.2 Why is KVIrc not fully integrated in KDE ?


2. COMPILATION

2.1 I can't compile kvirc from svn, what's wrong?
2.2 Internal Compiler Errors ?


3. INSTALLATION

3.1 There is a problem during package installation/creation
     file /usr/share/services/irc.protocol from install
     kvirc-version.package conflicts with file from package xxx


4. IRC

4.1 How do I join a channel ?
4.2 How do I autojoin channels ?
4.3 How do I enable automatic NickServ identification ?
4.4 I can't see my national characters, what's wrong ?
4.5 I can't connect to an IPV6 server, what's wrong ?
4.6 /me doesn't support the '$' character, what's wrong ?
4.7 /me doesn't support the '"' (double quote) character, what's wrong ?
4.8 /me can't contain the ';' character, what's wrong ?
4.9 I try to do a /whois on nick blah\ but i get the reply for blah (without the slash)
4.10 What is AVATAR protocol ? Is there any documentation about it ?
4.11 The log files seem to be saved randomly, when I open a log
     I can see only a part of the text that actually should be there
4.12 The DCC transfers seem to be interrupted after the first few bytes:
     KVIrc says that the remote end has closed the connection.


5. ADVANCED IRC FEATURES

5.1 How do I connect to an SSL-enabled IRC server ?
5.2 How do I use DCC over SSL ?
5.3 Do I need a SSL certificate ?
5.4 How do I create a SSL certificate ?
5.5 I can't get KVIrc to use my SSL certificate in a DCC, what's wrong ?
5.6 KVIrc crashes when a certificate is used under Windows, what's wrong ?
5.7 How do I enable mircryption (encryption in general) for a specific channel ?
5.8 How do I execute a process and send its output to a channel ?
5.9 How do I keep channels and queries open after a disconnect ?
5.10 I have an unreliable ISP connection but KVIrc takes a really long
    time to detect a disconnection and reconnect.
5.11 I'm in a LAN and KVIrc uses a wrong IP address in dcc transfers


6. APPEARANCE

6.1 On Windows KVIrc seems to slow-down sometimes, what's wrong ?
6.2 I don't see the channel popup menus anymore, what's wrong ?
6.3 Does KVIrc support Themes?
6.4 I hate all that colors, what can I do about it ?
6.5 On Windows, how do I use firefox/opera/any_other_browser to open links instead of explorer ?


7. CRASHES

7.1 What the heck is a gdb stack trace and how do I get it ?
7.2 KVIrc hangs up, but doesn't crash. How do i report debug information ?
7.3 KVIrc exits by itself or simply "disappears" without any apparent reason.
7.4 KVIrc dies when using alias(identify){ identify password; }


8. SCRIPTING / ADDONS

8.1 Trying to load a script i get a "can't load the module 'script'" error.


--------------------------------------------------------------------------------
1. PROJECT RELATED QUESTIONS
--------------------------------------------------------------------------------


1.1 What is KVIrc ? What does the "KVIrc" name stand for ?

   KVIrc is a cross-platform Internet Relay Chat client.
   The name stands for K Visual Internet Relay Chat client.
   The K prefix comes from the old times, when KVIrc was bound to the
   KDE project and depended on the KDE libraries to run. Actually this
   is not true anymore since KVIrc depends only on the Qt library from
   Nokia and runs also on platforms where KDE can't run.


1.2 Why is KVIrc not totally integrated in KDE ?

   First of all read the answer for question 1.1.
   We could provide a more complete integration by the means of conditional
   compilation but since it would require additional efforts to synchronize
   the KVIrc sources with the KDE library changes we choose not to do it.
   If you wish to contribute some code that better integrates KVIrc with
   KDE you're welcome to do so: we will happily accept your patches as long
   as you promise to mantain them :)


--------------------------------------------------------------------------------
2. COMPILATION
--------------------------------------------------------------------------------

2.1 I can't compile kvirc from svn, what's wrong?

   Have you checked the requirements ?
   *Carefully* read the INSTALL file that comes with the distribution:
   it contains the information to solve 95% of the problems that
   you may encounter. You may also try digging in our mailing list
   archive: many problems have been solved there.
   If you still can't get it to work please either subscribe to the KVIrc
   mailing list (see www.kvirc.net) and report the problem there or join #kvirc
   on Freenode and ask the channel members for a hint.


2.2 Internal Compiler Errors ?

   Compile errors like this:
       In file [somefile]:[someline] internal error:
   Segmentation fault
   Please submit a full bug report,
   with preprocessed source if appropriate.
   See <URL:http://bugzilla.redhat.com/bugzilla/> for instructions.

   This error can have multiple reasons.
   1) A compiler bug: my GCC 3.2 20020903 (default on RH 8.0) spits
      out 5-6 of them daily. Usually it is solved by simply restarting the "make" command.
      If it doesn't go away or if it gets really frequent and annoying you might try to upgrade the compiler.
   2) A memory corruption: this is really frequent: one of your memory banks is spitting random bytes
      sometimes. Usually the problems come out under heavy system load (kernel, KDE or kvirc compilation for example).
      You can check for memory corruption by trying different RAM modules (or removing them one at a time to discover
      the broken bank). You can also try a program called memtest and a kernel
      patch that can force the broken memory banks to be ignored by the kernel (allocated permanently to a dummy kernel task).
      These tools can be found by digging the web with your favorite search engine.
   3) A deeper hardware problem: if upgrading the compiler and changing memory banks doesn't help then
      it *might* be a deeper hardware problem: bus errors, faulty IDE (or SCSI) controller or even buggy CPU...
      Well....

-------------------------------------------------------------------------------
3. INSTALLATION
-------------------------------------------------------------------------------

3.1 There is a problem during package installation/creation
     file /usr/share/services/irc.protocol from install
     kvirc-version.package conflicts with file from package xxx

  This is a known issue with all types of packages that handle
  file conflicts. KVIrc installs the irc protocol handler for KDE
  and the same is done by ksirc and kopete (and maybe others).
  There is no particular reason for KVIrc to fix it in the core
  distribution (and there is also no simple way to do it).
  Either the package maker must exclude the irc.protocol
  file from installation or mark it as "optional" in some way or the
  users must use some sort of "force" flag during the installation.


-------------------------------------------------------------------------------
4. IRC
-------------------------------------------------------------------------------

4.1 How do i join a channel ?

  Type "/join #channelname"


4.2 How do i autojoin channels?

  There are many ways to do it.
  For example:
  Select "Scripting/Events" from the KVIrc menu.
  Lookup the "OnIrc" entry in the left pane of the window that pops up.
  Right-click on that entry and select "Add handler".
  A "default" handler will be created. In the right pane write:
       join #kvirc
       join #kde-users
       join #somechannel
       ....
  Now click OK and you're done: you have just created a handler for an event.
  Reconnect to a server and KVIrc will autojoin the channels that you have selected.
  Another option (nicer, if you use several servers) is to go to the servers options
  page and click the button labeled 'Advanced' on the entry for the single server.
  There is a server-specific "On connect execute..." event.


4.3 How do I enable automatic NickServ identification ?

  KVIrc supports two kind of NickServ identification rules: per-network and global.
  The per-network rules can be accessed from the server options page.
  You need to select a network in the list view (not a server!) and then click
  "Advanced...". In the dialog that appears there is a NickServ tab
  on that you can add your identification rules. Adding a rule
  should be straightforward (if you stop the mouse over an item you will likely get a small
  tool tip with the explaination). Each rule is composed of:
  - the nickname that is being identified: the rule will be applied only
      when your current nickname corresponds to this one.
  - a nick server user mask that must be matched by the NickServ user
      in order for him to be recognized as the real NickServ asking for
      identification. You will probably use something like NickServ!service@*
  - a message regular expression that must be matched by the message
      that the NickServ sends when requesting the identification.
      You will probably use something like "If this is your nick,
      identify yourself with /ns IDENTIFY password"
  - an identification command that will be executed when all the rules
      above match. You will probably use something like "ns IDENTIFY yourpassword"
  The global rules can be created in the IRC::NickServ page of the options dialog
  (accessible from the Settings/Configure KVIrc... menu). The main difference
  is that each rule has a server mask that must be matched by the current
  server name for the rule to be applied.
  KVIrc first looks in the per-network rules and if none matches it looks
  in the global rules.


4.4 I can't see my national characters, what's wrong ?

  There are several ways to fix your national characters display.
  General encoding:
      Open the options dialog and go to the "Encoding" page.
      You can set explicitly the encoding to be used for the whole application.
      If you choose "Use Language Encoding" KVIrc will try to guess the
      encoding from your system settings. If this doesn't work then the reasons
      may be:
      - Your system settings are wrong
        You need to fix them
      - Your server applies some specific encoding to the data
        See "Server encoding"
      - You're chatting with people that have different system settings
        See "Channel & Query encoding"
  Server encoding
      Besides the general encoding you can set one encoding per server.
      This is done in the server options dialog (Click Advanced...).
      The encoding will be applied to all the text that comes from
      and goes to the server. If you choose "Use system encoding"
      then the server will inherit the "General encoding" value above.
      If this doesn't work then you have either set it incorrectly or
      you are chatting with people that use different encodings.
      In this case see "Channel & Query encoding"
      The server encoding is used also to decode nicknames and
      channel names on servers that support it.
  Channel & Query encoding
      Besides the general and server encoding you can set also per-window
      encoding in channels and queries. This encoding will be applied
      ONLY to the text sent to or received from that channel or query.
      This feature is useful when chatting over a non unicode aware
      IRC server (nearly all at the time of writing) with people
      that have settings different than your general defaults or
      the server default.

  Keep in mind that IRC has a MAJOR problem with character encoding
  and in fact the formal definition of the protocol requires it
  to be only 7bit safe. This means that on some servers you may
  see your national characters eaten by the IRC network and there
  is almost nothing you can do about that...

  UTF-8 is the best encoding we can get on IRC. Try to convince
  other people to use it :)


4.5 I can't connect to an IPV6 server, what's wrong ?

  First of all make sure that your IPV6 stack is setup correctly.
  Can you ping6 other IPV6 other machines ?

        # ping6 ipv6.google.com

  Is the IPV6 support enabled in your kvirc executable ?
  To find it out, try

        /echo $features

  in the KVIrc commandline. You should get a comma separated list of
  features compiled in the executable. If the list contains "IPv6" then
  the support is compiled in, otherwise you must check your compilation
  stage to guess what went wrong.
  To connect to an IPV6 server you can use /server -i <servername>
  If you can ping other IPV6 machines, the IPv6 support is compiled in your
  executable and you still can't connect to an *existing* IPv6 server then
  you may have found a bug :) Report it.


4.6 /me doesn't support the '$' character, what's wrong ?

  This is NOT a bug : this is a feature : kvirc supports (and substitutes!) variables in all the commands.
  You can escape your $ sign by using the backslash character:

        /me has gained \$100

  Otherwise, you can use friendly commandline mode, where special symbols are not interpreted. Just click the green
  arrow next to the input field and then click the KVS icon.


4.7 /me doesn't support the '"' (double quote) character, what's wrong ?

  This is NOT a bug : this is a feature : a string enclosed in double quotes will have its whitespace preserved
  while the other strings will have the whitespace simplified. This is valid for ANY command.
  You can escape your " sign by using the backslash character:

        /me feels a bit \"foo\"

  Otherwise, you can use friendly commandline mode, where special symbols are not interpreted. Just click the green
  arrow next to the input field and then click the KVS icon.


4.8 /me can't contain the ';' character, what's wrong ?

  This is NOT a bug : this is a feature : kvirc supports multiple commands on a single line and uses ';' as a command
  separator. You can escape your ';' sign by using the backslash character:

        /me is hungry \;)

  Otherwise, you can use friendly commandline mode, where special symbols are not interpreted. Just click the green
  arrow next to the input field and then click the KVS icon.


4.9 I try to do a /whois on nick blah\ but i get the reply for blah (without the slash)

  In KVIrc /whois is a scripting command and the nickname is a command parameter.
  In scripting commands the backslash is a special character with several "escape"
  meanings. To include a literal backslash inside a parameter you MUST double it,
  thus the correct command to issue is /whois blah\\

  Otherwise, you can use friendly commandline mode, where special symbols are not interpreted. Just click the green
  arrow next to the input field and then click the KVS icon.


4.10 What is AVATAR protocol? Is there any documentation about it ?

  AVATAR is a simple CTCP based protocol that allows associating images (avatars)
  to IRC users. The protocol definition is simple:

  - CTCP AVATAR QUERY:
       :<source> PRIVMSG <target> :<0x01>AVATAR<0x01>
    Queries the avatar of the <target>.
  - CTCP AVATAR REPLY:
       :<source> NOTICE <target> :<0x01>AVATAR <avatar_url><0x01>
    Asserts that the <source> user's avatar is located at <avatar_url>
    that usually will be something like http://server.domain.top/avatarimage.jpg.

  KVIrc supports also DCC based avatars that are simply "offered" to the
  remote users. In this case the <avatar_url> does not contain the http://
  prefix but is a simple file name. The remote users request the avatars
  by issuing a DCC GET command. This is an useful but secondary extension
  and can be ignored by simple implementations. If you need more information
  about this method please write to pragma at kvirc dot net.


4.11 The log files seem to be saved randomly, when I open a log
     I can see only a part of the text that actually should be there

   KVIrc does not explicitly flush the log files while writing them. The OS
   (or the underlying C library) does the flush operation when necessary.
   This means that blocks of the log file will be added to the file on disk
   only once in a while. If you really need to see the logs in real time
   then you can explicitly flush the log files by scripting.
   Just add a script like this to your OnKVIrcStartup event:

   timer(flushlogfiles,30000)
   {
       foreach(%x,$window.list(all,any))
       {
          if($log.file(%x))
          {
              echo -w=%x "Flushing log file...";
              log.flush -w=%x;
          }
       }
   }

   The script above will flush all the log files every 30 seconds. You may
   remove the echo statement if you're annoyed by the output :)


4.12 The DCC transfers seem to be interrupted after the first few bytes:
     KVIrc says that the remote end has closed the connection.

   Make sure that you don't have activated the "Send ACK for byte 0"
   option in "Options->DCC->File Transfer->Advanced".
   This option should be used ONLY IF you have problems without.




-------------------------------------------------------------------------------
5. ADVANCED IRC FEATURES
-------------------------------------------------------------------------------


5.1 How do I connect to an SSL-enabled IRC server ?

  Use /server -s <servername>
  It should work also over IPV6.
  If it doesn't work then your executable might have no SSL support compiled in.
  To find it out type

       /echo $features

  in the KVIrc commandline. If "SSL" is not in the list then you must go back
  to the compilation phase and see what went wrong.


5.1 How do I use DCC over SSL ?

  /dcc.chat -s <nickname> should work


5.3 Do I need a SSL certificate ?

  No you shouldn't need it, but you can use it if you want.


5.4 How do I create a SSL certificate ?

  A test self-signed certificate can be created by using the CA.pl perl script included
  in the OpenSSL distribution. It will be something like CA.pl -newcert


5.5 I can't get KVIrc to use my SSL certificate in a DCC, what's wrong ?

  The SSL protocol doesn't require the "client" to send the certificate: it is
  sent only if the "server side" requests it (it is not the KVIrc case).
  The server side may have a certificate and you can set it in the SSL options page.
  If your Private Key is stored in the certificate file pass the same filename
  to both Certificate and PrivateKey option.
  Remember to set the password if needed.


5.6 KVIrc crashes when a certificate is used under Windows, what's wrong ?

  This is probably a bug of the SSL dll shipped with the windows version of KVIrc.
  You might try with a different version of this dll.


5.7 Can I encrypt my messages?
(or: How do I enable mircryption (encryption in general) for a specific channel?)

  KVIrc supports encryption for channels, queries and dcc chats by the means
  of text transformation engines. You can access the list of the engines
  by clicking the button with the yellow lock in the upper right corner
  of the window. In the pane that will appear select "use text transformation"
  and then choose one of the available engines.
  The Mircryption engine is an implementation of the mircryption protocol and
  supports both ECB and CBC mode. There is also a wide variety of Rijndael based encryption
  engies as well as some funky other text transform tricks.
  Most of the engines will need a pair of keys to encrypt and decrypt text
  and in most cases you will use the same key for both encrypting and
  decrypting. In the particular case of Mircryption you can enable
  CBC mode by prefixing your key(s) with the "cbc:" string.
  Once you have entered the keys just click on OK and start "talking" in the
  window. Any encrypted text will have a "lock" overlay in his icon.
  If you want to avoid encrypting a particular text line (maybe because
  you want to allow everyone on a channel to read it) you can start
  the line with a CTRL+P character.


5.8 How do I execute a process and send its output to a channel ?

  The straight way to do this is

    /exec("your command here"){ say $1; }

  Since it is not too much "user friendly", you can alias it in
  the following way:

    /alias(runandsay){ exec($0-) { say $1; } }

  Then you would simply run

    /runandsay cat /proc/cpuinfo

  in the channel window you want the output sent to.

  Keep in mind that this is a "brute" approach and I'm sure that after
  reading some documentation (start from /help exec) you will be able to
  find more elaborate and nice ways to send a process output to a channel/query.


5.9 How do I keep channels and queries open after a disconnect ?

  KVIrc can keep your channels and queries open when the connection terminates
  unexpectedly. This will probably make sense only if you plan to
  reconnect to the same server or at least the same network (either manually
  or automatically).

  An "unexpected disconnect" is a connection termination not explicitly caused by
  the KVIrc user. This means that the connection is interrupted, either
  by the networking stack or by the remote server, without the user
  having sent a QUIT message (by the means of the /quit command or by pressing
  the "disconnect" button in the toolbar).

  All this because the normal behaviour of a /QUIT command is, yes, to quit
  your current connection without leaving traces of it.

  To keep the channels and queries open you just need to select the
  relative options in the "Connection" page of the options dialog
  (on unexpected disconnect: "Keep channels open" an/or "Keep queries open").

  Then you might also select "Automatically reconnect", "Rejoin channels
  after reconnect" and "Reopen queries after reconnect" to bring your
  "dead windows" to life again :)

  Finally, you can simulate an "unexpected disconnection" by using the -u switch
  of the /quit command. This might be useful when you want to explicitly
  quit your connection while leaving the channels and queries open... maybe
  because you need to renew the connection to your ISP before reconnecting ;)


5.10 I have an unreliable ISP connection but KVIrc takes a really long
    time to detect a disconnection and reconnect.

  KVIrc doesn't detect itself that the connection has dropped until your
  kernel explicitly times out. KVIrc measures lag, instead, that will
  probably grow up a lot when the connection has dropped.
  You can write a handler for the OnLagCheck event that will detect
  the lag growing over a certain threshold and reconnect.
  This involves opening the event editor, selecting OnLagCheck
  and choosing "Add handler" from the right mouse menu.
  In the handler write:

     if($1 > 30000){ quit -f -u; }

  30000 is just a sample threshold (it means 30000 milliseconds!), replace
  it with a value of your choice.
  quit -f -u will close the current connection immediately (-f = force)
  and will simulate an "unexpected disconnection" condition (-u = unexpected).
  If you then enable automatic reconnection (see answer for question 5.9)
  in the options dialog, KVIrc will automatically reconnect and rejoin channels.


5.11 I'm in a LAN and KVIrc uses a wrong IP address in dcc transfers

  KVIrc supports a couple of methods for guessing the right IP address for
  DCC transfers: you only have to guide it a bit :)

  The first thing to try is "Guess address from IRC when unroutable" (Options->DCC).
  This will perform a lookup on your own IRC mask once you connect
  to an IRC server and use the address as source in DCC transfers.
  (You need to reconnect to the server to make this option work!)
  This trick will fail when your hostmask is cloaked (mode +x on recent IRC servers):
  KVIrc will tell you that it couldn't look up the hostname and give up.

  In this case you might try to set a fixed address to be sent as source
  in the DCC transfers: you just need to fill in the *IP address* of your
  router in the option field. This field doesn't support hostname lookups
  and it won't update automatically when you router's IP changes.
  However, if you router's IP has a dns entry, you can ask KVIrc to fill
  this field with a simple script to be performed at every connection.

  event(OnIRCConnectionEstabilished,updatedccsource)
  {
      ahost(yourrouterhostname.dyndns.org)
      {
         option boolDCCSendFakeAddressByDefault 1
         if($1)option stringDefaultDCCFakeAddress $2
         else echo "Couldn't look up the router's hostname"
      }
  }

  When transferring files to other KVIrc clients you may also try the
  DCC RSEND protocol instead of DCC SEND. It will ask the remote end
  to listen instead.

-------------------------------------------------------------------------------
6. APPEARANCE
-------------------------------------------------------------------------------

6.1 On Windows KVIrc seems to slow-down sometimes, what's wrong ?

  This is usually caused by the heavy graphics: try removing some graphic effects like the
  pseudo-transparency. I have experimented that it happens almost always on 32-bit displays.
  Switching to 16 or 24 bits may also help.


6.2 I don't see the channel popup menus anymore, what's wrong ?

  If something went wrong with KVIrc settings (a crash when the script settings
  were saved ?) or if you have messed with the scripting options and you
  want to get back the original behaviour (default script) you can choose
  "Scripting/Restore default script" from the KVIrc menu.
  (WARNING: It will erase any script modification you have made!)
  KVIrc should be able to detect such situations and automatically suggest the
  re-installation of the default script.

6.3 Does KVIrc support Themes?

  Yes, KVIrc has introduced a Theme Manager. You can find it in the Option dialog.
  From there you can change the way KVIrc looks: fonts, colors, windows behaviour,
  icons, taskbars, and so on.
  Once you have changed the theme, you can export it and share with your friends,
  or send it to the KVIrc staff to see it published on the web site.


6.4  I hate all that colors, what can I do about it ?

  By fiddling with the options you can make KVIrc appear even monochromatic.
  Go to Options/Theme and select the minimalist theme: it will set white text
  on black background and will disable the displaying of a lot of icons.
  This is a good starting point for you console addicted hackerz :D


6.5 On Windows, how do I use firefox/opera/any_other_browser to open links instead of explorer ?

  Go to the "URL Handlers" options page and set

      run "C:\\path\\to\\your\\browser.exe" "$0"

  as url handler for the protocol you're interested in (maybe in all).
  Please note the double backslashes (a single backslash is an escaping character)

  Suepahfly suggests to use

     rundll32 url.dll,FileProtocolHandler "$0"

  as url handler to open the url in the default windows browser.


-------------------------------------------------------------------------------
7. CRASH
-------------------------------------------------------------------------------

7.1 What the heck is a gdb stack trace and how do I get it ?

  A gdb stack trace is a "photography" of the state of the KVIrc internals
  taken when a certain event has occured. The most common event
  is a program crash (Segmentation Fault).
  The stack trace helps (or even allows) the developers to locate the
  crash cause in the program sources.
  To obtain a gdb stack trace you must:

  - Compile KVIrc with 'cmake -DDEBUG=1' option.
    Without this switch the stack trace is USELESS.
  - Have a working installation of gdb (the gnu debugger)
    This is usually available on your distribution cd
    and you may already have it installed.
  - Run KVirc:
    # gdb kvirc
    When the gdb prompt appears write:
    # (gdb) run -f
    Make KVIrc crash: gdb will tell something about
    a signal received by the program. Write then:
    # (gdb) bt
    The text you see is the stack trace you wanted :)
    Copy+Paste and create a new bug ticket in the web bugtracker
    (you can find a link on the kvirc website).


7.2 KVIrc hangs up, but doesn't crash. How do i report debug information ?

  Use gdb to get a stack trace as in answer to question 7.1.
  Since your KVIrc doesn't crash you will have to interrupt the execution
  manually while it is hung up. You can do it by pressing CTRL+C in gdb.


7.3 KVIrc exits by itself or simply "disappears" without any apparent reason.

  Yes. It probably crashed but you haven't noticed that.
  We NEED a gdb stack trace or a working procedure to reproduce the
  behaviour in order to hunt it.


7.4 KVIrc dies when using alias(identify){ identify password; };

  This is infinite recursion: a programming error.
  Take a look at http://en.wikipedia.org/wiki/Infinite_loop, learn
  that once for all and fix your script.



-------------------------------------------------------------------------------
8. SCRIPTING / ADDONS
-------------------------------------------------------------------------------

8.1 Trying to load a script i get a "can't load the module 'script'" error.
  Full version of the error (this is for linux, may vary on windows/other os):
  ---
  [KVS] Runtime Error: Module command call failed: can't load the module 'script':
  QLibrary::load_sys: Cannot load /usr/local/share/kvirc/4.0/modules/libkviscript.so
  (/usr/local/share/kvirc/4.0/modules/libkviscript.so: no such file or directory)
  ---
  The script you are trying to load is calling an old KVIrc interface. Probably the
  script was created for kvirc <= 3.2, and has not been updated to work on newer
  versions. The "script" module interface has been renamed to "addon" between 3.2.0.99
  and 3.2.4; the new "addon" module exports all the old "script" interfaces, so
  converting the script should be quite easy.
