Difference between revisions of "Plugins"

From Desolation REDUX Wiki
Jump to navigation Jump to search
Line 35: Line 35:
 
== Plugin Headers ==
 
== Plugin Headers ==
  
 +
=== [[CfgPatches|CfgPatches]] ===
  
 
=== [[CfgPluginActions|CfgPluginActions]] ===
 
=== [[CfgPluginActions|CfgPluginActions]] ===
Line 57: Line 58:
  
 
=== CfgPluginReplacements ===
 
=== CfgPluginReplacements ===
 
  
 
== See Also ==
 
== See Also ==

Revision as of 16:31, 20 March 2020

What are plugins

Plugins are nothing more that PBOs structured in a specific fashion for APMS to read and use. They consist of a PBO and a Configuration file. They contain all the code and settings for a specific subsystem for the server. A great example of a subsystem for a server is the Jump plugin included in redux. This plugin overwrites the vault actions with a custom jumping animation. Since the jump plugin is independent of any other systems in Redux, it can and should be built as a standalone plugin.

Why use plugins

Plugins provide a simplicity to modding anything. Just like addons, plugins are a form of plug and play. Plugins however act as a higher level system, directly interacting with a standardized code base built within APMS. Addons could be used in this fashion, however there would be no standardized code base between them. Without standardization conflicts are more likely to occur.

Server-networked Functions

Server-Network functions are key to simplifying plugin development. Most mods and servers work with client-side code and missions. APMS changes this. Instead of storing client code in mods and in the mission file, APMS stores the client code on the server. This has two effects: firstly, it shrinks the mission size, making it faster to download and easier to store on clients machines, and secondly, it protects client side code from being analyzed by cheaters and other users with malicious intent.


Server-Network functions are stored on the server and passed down to clients over the network. When a client joins the server it takes a couple of seconds to receive all the necessary functions and data from the server before beginning the client startup routines. For additional security, these functions are, by default, stored using compileFinal in order to prevent malicious users from overwriting them.


Getting Started

Plugin Configuration files

Implementing Your Plugin

Plugin Developer Pack

My First Plugin

Plugin config.cpp

Plugin Headers

CfgPatches

CfgPluginActions

CfgPluginEvents

CfgPluginKeybinds

CfgFunctions

CfgPluginLocations

CfgPluginMapEdits

CfgPluginMapEditsConfig

CfgPluginReplacements

See Also

APMS Specific Files

APMS Specific Functions