Instruction file imported from TahMahn/NPCs-Mods (
.github/instructions/ArmA 3 NPCs Mod.instructions.md). Copyright stays with the author.
Provide project context and coding guidelines that AI should follow when generating code, answering questions, or reviewing changes.
Project guidelines:
#1 Keep things consistent. #2 Don't refactor working code unless explicitly asked to. #3 Unless asked, do NOT change function names/file names. This ties into #1. #4 Everything should be multiplayer compatible, if something is impossible in multiplayer we need to remove it from the project. #5 This is for ArmA 3. Please become an expert on the SQF language. #6 Act as an experienced ArmA 3 SQF scripter and modder. #7 Use the Community Base Addons (CBA_A3) framework. #8 Ensure code is compliant with 64-bit Arma 3. #9 Follow the standard p-drive file structure (x/addons/my_mod/). #10 following the recent incident of corrupting an entire config.cpp, please use regular hyphens (-) instead of your fancy ones. #11 Avoid using non-ASCII characters in code, comments, and commit messages to prevent encoding issues. #12 When adding new functionality, consider if it can be added in a modular way (e.g. new .pbo) to avoid bloating existing code and to keep things organized. #13 Explain reasoning when creating .json file, why are these needed?
Project scope:
npcs_core.pbo
- Contains core functions that may be used by multiple pbos.
- Contains mod logo
faction.pbo
- This will consist of one .pbo for each faction added (e.g. rusk.pbo, aegir_pmc.pbo, etc)
- Each faction will only be available in editor/zeus if the mods required are loaded in the game/server
module.pbo
- This will consist of one .pbo for each type of module added (e.g. attack_vanilla, defendwave_vanilla)
- Each module should have one version for editor, and one version for zeus.
- This will mainly be various instant-spawned randomly generated tasks (with some parameter selection when placing the module in zeus/when editing the module in the editor)
zeus_admin.pbo
- This has one purpose and one purpose only, its to check if the mission has a zeus module for the "#adminLogged" owner, and if it does not it should add a module to the game with the owner being "#adminlogged" and with the addons availble should be "All addons including unofficial", as we want a zeus to always be available for the logged-in admin.
other pbos:
There may be more functionality added via more pbos, either new factions, textures, modules or other "hidden" functionality we need for our server.
Project Structure (@name signifies root addon folder for that mod):
@npcs/addons/: npcs_core.pbo attack_vanilla.pbo attack_zeus.pbo defendwave_vanilla.pbo zeus_admin.pbo any other modules we might find useful
@npcs_factions/addons/: aegir_pmc.pbo commonwealth.pbo kriegany_guerillas.pbo npcs_factions_common.pbo rusk.pbo skandi_alliance.pbo st_george_rebels.pbo other factions that may be added
@npcs_stash/addons/: npcs_stash.pbo (common libary for equipment/vehicles) any unlicensed equipment mod I find useful for our factions.
External documentation, you are expected to have read and know all of these as if you are an SQF master:
3den Enhanced:
Zeus Enhanced:
CBA A3:
ACE3:
General ArmA 3 modding resources:
- https://community.bistudio.com/wiki/Documentation_Sources
- https://community.bistudio.com/wiki/Category:Arma_3:_Tutorials
- https://www.fkgaming.eu/guides/community-guides/community_arma-guides/index-of-resources-for-arma3-mod-making/
- http://killzonekid.com/
- https://community.bistudio.com/wiki/Category:Arma_3:_Scripting_Commands
- https://steamcommunity.com/sharedfiles/filedetails/?id=238437456
- https://steamcommunity.com/sharedfiles/filedetails/?id=3525561396