From Desolation REDUX Wiki
Jump to navigation Jump to search

What Is APMS[edit]

Plugin Management[edit]

ArmA Plugin Management System, APMS for short, is a framework built to ease the development of unique and creative servers. APMS provides a framework to weave a wide variety of 3rd party systems into a single, seamless, code base for an ArmA 3 server. APMS uses a plugin system to easily connect and disconnect systems to and from the server. These plugins are design to be plug and play; easy to add and remove.

The APMS allows for content creators to make their own plugins for ArmA that they can -Plugin- to their server in a few quick and easy steps. Plugins have a specific format, created by Kegan, to assist in the consistent creation of WORKING addons. The idea is to have a simple structure that everyone follows, working in conjunction with the plugin management system, allowing for a much easier modification process for server owners.By simplifying the installation, and standard-izing the creation process, we can cut back on mods now playing well together, servers running poorly, and the players suffering from this. No more need for splicing lines of code into your server, simply download the plugin,place it on your server, add the plugin name to the pluginlist.cfg, and start your server up(baring plugin setup/config).Plugins can easily be added and removed,allowing for quick changes to the game

Inspiration for APMS came from a wide variety of sources, most notably, the Rust Oxide development framework. With Oxide, plugins to modify a rust server can be added and removed on the fly. APMS takes this idea and brings it into ArmA 3.

Why APMS[edit]

Server Simplification[edit]

APMS simplifies the development of your own server. With zero experience in ArmA modding you can create a unique experience for your players by hot swapping in 3rd party plugins. This drastically lowers the barrier of entry for creating a unique experience on your server. Prior to APMS, servers needed to have one or more devs working to create new and improved systems to bring life to the server. These devs would need to squeeze their code somewhere, and in many cases, this would impact server performance. With APMS these devs can develop there plugin without changing the base code for the server. These plugins are automatically started and managed through the plugin manager.

If a plugin starts throwing errors or impacts performance, instead of sifting through thousands of lines of code, the server owner can just pop out the plugin and boot the server without it until it is fixed. The ability to take code out of production when it breaks keeps servers online longer and with fewer errors that may be overlooked because they sort of work.

Code Security[edit]

APMS uses a server-networked functions system. This means all client code is distributed from the server, and not stored on the players PC. Currently, many large and popular servers suffer from others stealing their custom code and reusing it. This has been a major problem for quite some time now. With server-networked functions, the code running on clients is only ever stored in the clients game, not on the clients hard disk. This would force a malicious player to break BattlEye’s protection in order to steal the code.

In no way does this completely protect your code, however, it does make it much more difficult for a 3rd party to take it and start their own clone of your server.

APMS and Server Development[edit]

Ease of Use[edit]

As covered in Server Simplification, APMS makes server development much easier. Server developers do not need a complex understanding of the base code in order to develop an APMS plugin. With this, the barrier of entry has been lowered. Complex systems like adding key bindings and adding events at the correct time in game has been automated. Other systems like adding actions has been automated in a way that will improve long-term player performance.

Developers do not need to learn how to manage keybinds, events, and actions in a performant way. This is all done for them. Developers now only need to know when they want a piece of code to run, and what they want that piece of code to do.

Fast Changes[edit]

Again, as covered in Server Simplification, APMS makes changing the server’s code easy. Server owners do not need to have any experience in development nor do they need a dedicated developer working on their server. The minimum requirements to add and remove plugins is the ability to add/delete files and the ability to edit a text file. Plugins will be available through the Desolation Redux/APMS dedicated Plugin Repository, as well as on the Desolation Redux forums.

APMS and Desolation Redux[edit]

Why Does Redux Use APMS[edit]

Desolation Redux is an open source and completely free mod for Arma. Redux needs a system that allows for modifications, be them large or small, to be added and removed to it with ease. APMS gives that and more to Redux. Anything can be done, and that is what Desolation Redux was founded on. The idea that anyone can do anything they want with zero interference and with ease.

What Does APMS Do To Enhance Redux[edit]

APMS does a lot. All major systems in Redux are broken down into APMS plugins that intercommunicate in order to bring the base game. Many of the plugins included in Redux, however, can also be used standalone (Ex: AntiSideChat). APMS also forms a development community in and around Redux. By having a standard base framework that everything is built on, a development community separate from the Arma 3 dev community is formed. Desolation Redux will not only be curated by the original devs, but continued and improved upon by the community as a whole.

APMS and LibRedex[edit]

What is LibRedex[edit]

LibRedex is a plugin required by APMS. This provides not only database connections for servers, but also a vital connection between plugins and their configuration files. Developed by Legodev, LibRedex is secure and will continue to be the foundation from which APMS works. More in-depth LibRedex documentation can be found in the Handbook.

Why do i need LibRedex[edit]

As explained above, LibRedex provides a connection between plugins and their configuration files. Without it your server will not be able to load configurations for plugins. It would be possible to load configurations without LibRedex, however that was never introduced do to linux compatibility issues that LibRedex solves.

Do I have to use LibRedex for DB management[edit]

Short answer: No.

Long Answer: LibRedex does provide a secure connection between the database and your server, pre-fabricated queries are used vs. script-based queries that can open your database up to SQL injection. If you prefer working with a 3rd party’s DB solution, LibRedex will still be required for APMS, but its database solution can be completely ignored.