Module-Handles

property Module.UpdateUrl:String;

Description

Url from which to update the plugin. Begins with a prefix specifing the protocoll.
Currently the only valid protocol is bwl.
Example "bwl:http://www.example.com/chaos/samplepluginupdate"

Specification:

Plugin-Handles

property Plugin.Name:String;

Name of the plugin
  • May be read in mainthread
  • May be written during plugin creation

    property Plugin.Author:String;

    Name of the plugin author Defaults to VersionInfo.Company
  • May be read in mainthread
  • May be written during plugin creation

    property Plugin.Description:String;

    Description of the plugin
  • Defaults to VersionInfo.Description
  • May be read in mainthread
  • May be written during plugin creation

    property BanRisk:integer;

    Estimated banrisk of the plugin
  • Defaults to brUnknown
  • May be read in mainthread
  • May be written during plugin creation Valid values:
  • brUnknown = 0;//No Information available
  • brNone = 1;//No interaction with the game
  • brLow = 2;//No injection, no codechanges
  • brMedium = 3;//Injection, but no codechanges to game code
  • brHigh = 4;//Changes to game code

    property IndependentModule:boolean;

    Does the plugin continues working after launcher terminates?
    This is the case for some plugins which are injected and don't require the launcher process anymore.
  • Defaults to false
  • May be read in mainthread
  • May be written during plugin creation

    property NeedsInjection:boolean;

    Should the launcher inject the plugin into the game process?
    Be careful to adjust the BanRisk property.
  • Defaults to false
  • May be read in mainthread
  • May be written during plugin creation

    property AllowLateActivation:boolean;

    Allow late execution when the game already runs/is no longer suspenden.
    Is required if the launcher attaches itself to an already running game
  • Defaults to true
  • May be read in mainthread
  • May be written during plugin creation

    property NonHooking:boolean;

    Hooks no the game functions
    Be careful in conjunction with RegisterCallback, as that can add hooks too
    Be careful to adjust the BanRisk property.
  • Defaults to true
  • May be read in mainthread
  • May be written during plugin creation

    property GivesAdvantage:boolean;

    For plugins like BWCoach
    Makes the plugin incompatible with most ladders
  • Defaults to false
  • May be read in mainthread
  • May be written during plugin creation

    property OnConfig:Event;

    Called when the user presses the Config button
    The config button is disabled if OnConfig=nil procedure Config(UserData:pointer);stdcall; stdcall void Config(void* UserData);
  • Executed in mainthread
  • Defaults to nil
  • May be read in mainthread
  • May be written during plugin creation

    property OnIsCompatible:Event;

    function which checks if the plugin is compatible with a certain gameversion procedure IsCompatible(UserData:pointer;var Compatibility:TCompatibility);stdcall; stdcall void IsCompatible(void* UserData;TCompatibility* Compatibility);
  • Executed in mainthread
  • Required for all plugins
  • May be read in mainthread
  • May be written during plugin creation

    property OnStart:Event;

    Called after the game process is created
    Called in the launcher process
    Check Game.Resumed to check if the game is still suspended or already resumed
    Call OpenSysHandle(GameHandle,'ProcessHandle',hProcess) to get a process handle to the game
    It is your responsability to close it again with CloseHandle(hProcess) procedure Start(UserData:pointer);stdcall; stdcall void Start(void* UserData);
  • Executed in mainthread
  • Defaults to nil
  • May be read in mainthread
  • May be written during plugin creation

    property OnStop:Event;

    Called after the game process terminates
    Called in the launcher process procedure Stop(UserData:pointer);stdcall; stdcall void Stop(void* UserData);
  • Executed in mainthread
  • Defaults to nil
  • May be read in mainthread
  • May be written during plugin creation