This wiki is archived and useful information is being migrated to the main bzflag.org website
Difference between revisions of "Plug-ins"
m |
(→Standard plug-ins: update the list) |
||
Line 22: | Line 22: | ||
These plug-ins are located in the ''/plugins'' directory. | These plug-ins are located in the ''/plugins'' directory. | ||
− | As of | + | As of August 2009, [[BZFlag SVN|SVN]] TRUNK( version [[BZFlag 3.0|2.99]]) contains the following plug-ins: |
*[[airspawn]] | *[[airspawn]] | ||
*[[bzfscron]] | *[[bzfscron]] | ||
*[[chathistory]] | *[[chathistory]] | ||
+ | *[[chatlog]] | ||
+ | *[[customflagsample]] | ||
+ | *[[fastmap]] | ||
*[[flagStay]] | *[[flagStay]] | ||
*[[hiddenAdmin]] | *[[hiddenAdmin]] | ||
*[[HoldTheFlag]] | *[[HoldTheFlag]] | ||
+ | *[[HTTPServer]] | ||
+ | *[[httpTest]] | ||
*[[keepaway]] | *[[keepaway]] | ||
*[[killall]] | *[[killall]] | ||
*[[koth]] | *[[koth]] | ||
*[[logDetail]] | *[[logDetail]] | ||
+ | *[[mapchange]] | ||
*[[nagware]] | *[[nagware]] | ||
− | |||
*[[Phoenix]] | *[[Phoenix]] | ||
+ | *[[playHistoryTracker]] | ||
*[[python(plug-in)|python]] | *[[python(plug-in)|python]] | ||
+ | *[[rabidRabbit]] | ||
*[[recordmatch]] | *[[recordmatch]] | ||
+ | *[[regFlag]] | ||
*[[RogueGenocide]] | *[[RogueGenocide]] | ||
*[[SAMPLE_PLUGIN]] | *[[SAMPLE_PLUGIN]] | ||
+ | *[[serverControl]] | ||
*[[serverSideBotSample]] | *[[serverSideBotSample]] | ||
*[[shockwaveDeath]] | *[[shockwaveDeath]] | ||
Line 48: | Line 57: | ||
*[[timedctf]] | *[[timedctf]] | ||
*[[torBlock]] | *[[torBlock]] | ||
+ | *[[unrealCTF]] | ||
*[[weaponArena]] | *[[weaponArena]] | ||
+ | *[[webadmin]] | ||
+ | *[[webReport]] | ||
+ | *[[webstats]] | ||
*[[wwzones]] | *[[wwzones]] | ||
Revision as of 22:11, 5 September 2009
BZFS can be built to support the loading of external libraries as plug-ins. These plug-ins can alter or replace the logic applied by the server, as well as automate many common tasks.
Plug-ins are a simpler way to apply modifications to the game, as they do not require the server owner to modify or recompile his/her BZFS application. By using the BZFS API plug-ins are also able to be mixed and matched in an easy way.
Contents
Overview
Plug-ins are compile dynamic link libraries, that are built for the same OS/RuntimeEnvironment as the BZFS server that hosts them. On Microsoft Windows they are built as DLL files. On Linux and other Unix-like systems they are built as .so files.
Use
Plug-ins are loaded at startup by the -loadplugin option, or at run time with the /loadplugin command. If the full path to the plug-in is not specified, then BZFS will search a number of known sub directories for the plug-in as it attempts to load it. Using a valid path to the plug-in on load is highly recommended. While playing, all plug-ins loaded onto the server are visible with the /listplugins command.
Parameters
Some plug-ins take parameters that are passed to the plug-in on load. This is often a numeric value, or a path to a file. To pass a parameter to a plug-in, simply add a ',' after the plug-in name or path, and then add the parameter. Parameters can not have spaces, due to the way BZFS parses command line options and / commands.
On load, plug-ins install a number of callbacks and event handlers with the hosting BZFS that are called when specific events happen. This allows the plug-in to perform additional actions on these events, or if need be, alter the results of the default logic of the server.
Search Paths
BZFS searches for plug-ins in two standard locations: the config directory and the global plug-ins directory. The config directory is where the BZFlag config.cfg file is located, and the global plug-ins directory is $(prefix)/lib/bzflag/.
BZFS API
All plug-ins are linked to the BZFS API. This programing layer provides the interface to the BZFS application. All events and functions that a plug-in can call are in the BZFS API.
Standard plug-ins
The BZFlag Source distribution contains a number of plug-ins that are maintained by the project developers. These plug-ins are located in the /plugins directory.
As of August 2009, SVN TRUNK( version 2.99) contains the following plug-ins:
- airspawn
- bzfscron
- chathistory
- chatlog
- customflagsample
- fastmap
- flagStay
- hiddenAdmin
- HoldTheFlag
- HTTPServer
- httpTest
- keepaway
- killall
- koth
- logDetail
- mapchange
- nagware
- Phoenix
- playHistoryTracker
- python
- rabidRabbit
- recordmatch
- regFlag
- RogueGenocide
- SAMPLE_PLUGIN
- serverControl
- serverSideBotSample
- shockwaveDeath
- soundTest
- teamflagreset
- thiefControl
- timedctf
- torBlock
- unrealCTF
- weaponArena
- webadmin
- webReport
- webstats
- wwzones
Third Party Plug-ins
A number of non-developers have created plug-ins for BZFS, and usually release them on the BZFlag Forums.
Plug-in Development
There is still documentation to be done here!! If you feel up to the task, please have a go at it. Specifically what needs to be added is: Describe the basics of plug-in development. |