====== Plug-ins and the SDK ====== A **plug-in** adds a feature to ProBoard without changing ProBoard itself: a game, a chat client, a custom logon screen, a connection to a door network. v4 ships with several (see [[v4:reference:plugins|Plug-ins]]) and you can write your own. ===== What a plug-in is ===== A plug-in is an ordinary Windows DLL with the extension ''.P3X''. ''ProBoard.exe'' loads it when a menu command asks for it, calls one entry point and gives it a table of functions to talk to the board: screen and keyboard, raw caller input and output, the current user, message areas, file transfers and so on. When the plug-in returns, the caller is back at the menu. This replaces the old 16-bit **PEX** programs. Old ''.PEX'' files do not run on v4. The plug-ins that shipped with ProBoard have been rebuilt as ''.P3X'' and are installed for you. ===== Running a plug-in ===== - Put the ''.P3X'' file in the ''PEX'' folder. - In the **Menu Editor**, add a command with function **60** (**Load a ProBoard SDK file**). - Start the menu data with ''/I'', then the plug-in's name and any arguments, for example ''/I SAMPLEPLUGIN hello world'' or ''/I BBSLINK ''. Some plug-ins are not on a menu. The login screens (**AntiBot** and **PBMatrix**) run during logon. See [[v4:menus:matrix|The Matrix logon]]. ===== The rule about bitness and versions ===== * **Win32 and x64 do not mix.** A Win32 ProBoard loads only Win32 plug-ins, and an x64 ProBoard only x64 plug-ins. Keep one kind in a ''PEX'' folder. * **A plug-in is checked against the host's version.** The plug-in interface has a version number (it is currently **5**). When it changes, plug-ins built against an older version refuse to run, with no crash, until they are rebuilt. After an update that changes it, rebuild every plug-in you built yourself. ===== For developers ===== See [[v4:sdk:developing|Writing a plug-in]].