Author: mre
Author Website:

Requirements: No addons required

Version: 0.6.0

Short description: This is a multiplayer framework for Arma 3.

Date: 2016-09-02 13:24

Comments: (0)


Supremacy Framework - Multiplayer framework


This is a multiplayer framework for Arma 3.

World loot spawns
World vehicle spawns
World stationery spawn.
Player spawn/respawn (cities, random, world)
Timed, random placement, airdrops
Equipment Shops
Vehicle Shops
Clothes Shops
Simple HUD (fps, health, fatigue and money)
Persistent player data (MySQL)
Skill & Experience system
Revival, heal, repair and other skills
Loot spawn in buildings
(NEW) Tanoa map now added.

Installation / Usage:
It uses strictly "vanilla" (including expansions) content. No client-side mods required.
Upload the content of the "Dist" folder to your ARMA 3 dedicated server root (where the arma3server.exe file is).
Edit the "LaunchServer.bat" files launch parameters to suit your needs.
Edit the "@extDB2\extdb-conf.ini" file, adding your database connection details.
Import the "@extDB2\spmc_server.sql" to your database.
Import any "spmc_server - x.x.x to x.x.X update.sql" files in the correct order (by version).
Run the "LaunchServer.bat" file.
You can modify the "\Source\supremacy_server\compile\core\config.sqf" to make changes to a lot of the elements in the framework.
There is no wiki yet, but I hope to get working on that soon™.

I wanted to learn more about how ARMA 3 modding worked, and there is really no better way than "code to learn". Everything is coded from the ground up, except for the below mentioned 3rd part scripts.
I don't know much about "best practises" in this language yet, or how I should or shouldn't code things, so feedback is absolutely more than welcome!

License / Disclaimer:
Code released under CC BY-NC 3.0 License.
To read the human-readable summary of the CC BY-NC 3.0 License, click here.

The license does NOT apply to or included any of the 3rd party material (sounds, code, icons etc). All 3rd party material can be found in the "\3rdparty" directory in the client and server source code.

I did not create or own any of the 3rd party material. Please see their credits below and in their files were applicable.

Arma Server Monetization
You have permission to use this framework on a monetised arma server(s).
IMPORTANT NOTE: This does NOT apply to any of the 3rd party material (sounds, code, icons etc). All 3rd party material can be found in the "\3rdparty" directory in the client and server source code.

Credits & Thanks:
3rd Party Credits
A big thanks to the following people for their scripts, icons, sounds and extensions which are required to make the SPMC framework tick.
A special thanks to Kilzone_Kid and Tonic for inspiration and code/resources which I have learn a lot from by reading.

[Killzone_Kid](http://killzonekid.c...ic-armour-drop/) for the Original Airdrop script.
[Shuko](http://forums.bistud...ead.php?t=89376) for SHK_pos.
[Bryan "Tonic" Boardwine]( for the async extDB2 script.
Karel Moricky for the "numberToText" function.
[HallyG](https://forums.bistu...r-and-handling/) for the original progress bar script.

Torndeco for extDB2 (Arma3 Extension DB2).

pierrecartoons1979 for the "purchase" sound.
escortmarius for the "purchase_click" sound.
qubodup for the original "error" sound.
GameAudio for the original "sold_item" sound.
[Gitietor](https://www.freesoun.../sounds/275335/) for the original "skill_learned" sound.
Paomedia for the "money" icon.
Aha-Soft Team for the "stamina" icon.
Linh Pham Thi Dieu for the "fps" icon.
Visual Pharmfor the "health" icon.

License / Disclaimer:
Code released under CC BY-NC 3.0 License.
To read the human-readable summary of the CC BY-NC 3.0 License, click here.

The license does NOT apply to or included any of the 3rd party material (sounds, code, icons etc). All 3rd party material can be found in the "\3rdparty" directory in the client and server source code.

I did not create or own any of the 3rd party material. Please see their credits below and in their files were applicable.

Updated configs to include all (hopefully) new vehicle, items and weapons from APEX.
Updated price list, now include all (hopefully) items and vehicles from APEX.
Updated clothing shops, so they only sell items for the faction of the player (Config updated).
Updated the unconscious system, removing animations and relying more on ARMA 3 official methods.
Updated the (long overdue) mission briefing.
Updated the github url in all files.
Updated all loot scripts.
Updated vehicle sell distance from 10 to 25m.
Added location saving and spawning. You can now choose players to spawn where the logged out (Config, DB and ExtDB ini - updated).
Added magazine repacking (see player menu).
Added "<player> was injured by <player>" when becoming unconscious.
Added option to enable/disable the abillity to get executed while unconscious.
Added blur effect to players who are unconcious.
Added black out when killed.
Added timed EXP rewards (EXP granting scipt updated, Config updated).
Added "reward" sound, used for timed rewards.
Added a Zeus menu detection (client side), with server logging.
Added a few extra items from APEX to the configs.
Changed the air drop smoke duration from 10 to 5 minutes.
Changed the UI update interval from 0.25 sec to 1 second.
Removed obsolete code from several files.
Fixed various debug logging in files so they only log when debug mode is on.
Fixed desk and nato crate not getting removed from unavailable shops.
Fixed cloths menu prices being cut off.
Fixed bug in playerUnconscious script, potentially breaking the script.
Fixed an issue in dbCalls returning data without needing to.
Fixed some event handlers not getting removed from corpses.
Fixed setting placeables, loot crates, vehicles etc to 0 in the config, will now properly skip it during server initialisation.
Fixed "LineMarker" errors.
Fixed relogging while unconsious would save your gear.
Fixed issue where you would never die form grenades.
Fixed bug where player would not eject from vehicle when unconsious.
Fixed goggles not saving with gear.
Fixed secondary weapon adding a rangefinder on certain occations.
Fixed rangefinder not equipping on character load.

* Added Water vehicle shops (new configuration options).
* Updated drop zone layout on Tanoa (config updated).
* Updated ExtDB2 to extDB3-1010 (new ExtDB ini files).
* Fixed map not completing the load when building loot is set to 0.
* Fixed vehicles shop dialog not showing.
* Fixed shops not removing the cash desk and NATO box.
* Fixed attachements not spawning in world loot.

Changed building spawn to include weapons, helmets and attachments.
Fixed Altis map. Should now work exactly like Tanoa (shops etc.).
Fixed issue in initShops.sqf (altis), preventing server from loading.

Tanoa map compatibility added.
Added the BIS group system ( Can be accessed by pressin U or via the player menu.
Shops updated (map file)
Only X number of each shop type will spawn (config setting). Which once are determined by random on server init.
Added starter gear setting for GUER, WEST, EAST and default.
Added the ability to add both sidearm, launcher and primary starter weapons.
Removed stamina indicator since the game now have its own way of showing it.
Added option to place puchased equipment and items in a box next to shops.
Fixed issue with player body is removed when logging out after being killed.
Fixed starter gear not being added properly on spawn.
Fixed issue with saving gear not including ammo and inventory items.

Added the ability to update the currency symbol used throughout the framework, via the config.
Fixed the issue with sell prices now showing the currect amount.
Fixed experience output data from displaying without debug enabled.
Fixed issue with vehicles sales not confirming.

Added item spawn in buildings (careful, can take a long time to init server if you increase % too much).
Added comments to each value in the config.
Added more configurable options, like sell percentage, to the config.
Added skill and experience system.
Added names to the loot markers which are visible in debug mode.
Added progress bars.
Added revival and healing system.
Added vehicle repair
Added many other passive abilities and functions as part of the skill/experience system.
Added ammo to price list.
Added ability to synchronise animations.
Network optimisations when selling items and vehicles.
Network optimisations to saving player data.
Updated ExtDB2 to the latest (66) version.
Selling vehicles now confirmes server side like equipment (so money saves).
Fixed some minor issues where final compiled scripts where defined twice, server side.
Fixed an issue where the handgun items would not load from the databse.
Fixed an issue where the hangun would not equip if you didn't have a primary weapon.
Fixed a bug while loading the players money from the database.
Fixed an issue where pricing where not checked client side (protentially saving a large number of requests).
Fixed an issue in the extdb-conf.ini file not loading the correct database details.
Fixed an issue where you would not respawn propperly if deconnecting and rejoining the server.
Fixed sell prices for vehicles and items being calculated wrong.
Fixed the purchase price not being calculated correctly.
Fixed the issue with vehicle sales not being done properly and validated.
Fixed an issue where vehicle loot and supply crate loot tables where switched.

Removed the MRES functions, turns out they are not needed.
Every "Update" query to the database will now update the "last active" field for the player.
Moved the money sync query to the "svrSyncPlayerData" function.
Fixed an issue with extDB2 not picking up the .ini file.
Fixed an issue which would prevent saving of player data.
Fixed an issue were ammunition bought for a gun before the gun itself, would remove the ammunition from the player.

Added clothing shop (added to all arms shops on the map).
Added default sell prices to all items in the config.
Reduced server setup time by A LOT as each setup process now runs in its own thread.
All shops now populate faster, as each list loop now runs in its own thread.
The arms shop will now show a preview and more details about a selected item from any of the lists.
Made all scripts compileFinal with preprocessfilelinenumbers.
Added health, stamina, money and fps HUD elements.
Added "economy". Money is now stored and purchases and sales are comfirmed by the server.
Initial persistent data support (health, fatigue, equipment and money).
Fixed an issue where vehicles would not spawn if ANYTHING was too close to the spawn point.
Fixed a bug where selling would not pull in the price properly and break the script.
Fixed a bug where selling an item with attachments would leave the attachments on the list.
Updated the "license" in each file to the correct license.

Forum topic:
- BI forums

Enable javascript to be able to download from Armaholic please!

Tags: No tags