PawnPlus extends the possibilities of the Pawn scripting language with new constructs, data types, and programming techniques.
With this plugin, you can use techniques like asynchronous task-based programming, reflection, hooking, and dynamic structures to make programming in Pawn easier, simpler, and more efficient.
PawnPlus introduces dynamically sized strings, lists, linked lists, and maps. Collections can contain any number of elements of any type (cells or arrays) and any tag. They can be iterated using versatile iterator objects. Tasks can be used to execute code based on a specific event, without creating additional callbacks and without blocking the program.
Several new object types use the garbage collector present in the plugin, removing the need to explicitly delete memory in most cases.
See the wiki for documentation and tutorials on how to use this plugin.
Download the latest release for your platform to the "plugins" directory and add "PawnPlus" (or "PawnPlus.so" on Linux) to the plugins
line in server.cfg.
Include PawnPlus.inc in your Pawn program and you are done.
This plugin can optionally add a number of syntax features to Pawn like additional statements or operators. These are not available by default due to conflicts with other libraries, but you can use them all if you define PP_SYNTAX
, or selectively via other definitions. If you are writing a library, it is recommended not to use any configuration definitions.
Use Visual Studio to build the project on Windows, or make
or make static
on Linux. Requires GCC >= 4.9.
- Zeex for creating subhook without which this wouldn't be possible.
- Y_Less for help with macros for generic functions.
- TommyB for thorough testing and bug-finding.
- Southclaws and AGraber for minor contributions.
Thanks to all PawnPlus users for your support!