Jump to content
kerkkoh

[MP] RPFramework - Modular roleplaying framework for Arma 3

Recommended Posts

RPFramework by RPFramework team

A modular roleplaying mission, server, and addon framework for Arma 3

Promotional Image

 

Description
So most of you haven't heard of me ever and if you have, it has probably not been here on the forums as I tend not to be so active here. I was introduced to Arma series by DayZ mod and after that around 2013, I moved over to Arma 3 because of all the amazing modded features that were shown in youtube videos for a mod called Arma 3 Life. I joined their development team as a web developer but none of my work was never used by them and then I heard that they were monetizing mods that they shouldn't be monetizing and I left the mod and development team. I am still truly sorry for everybody who got their content abused by them.
I especially felt bad about them using the Altis Life mission in a way that it wasn't meant to be used. It was never meant to be used as a framework, but a mission as it was.
After this, I was thinking that there actually wasn't a free to build on framework that anybody could use for their roleplaying mod without getting into trouble for monetizing and changing it and that is why in December of 2015 I started developing RPFramework.

Features & Info
RPFramework is by no means a mission that you can start playing on with your friends. RPFramework is an actual framework that you can build your own mission or mod on. RPFramework consists of a server sided addon that your server needs to run, a mission and a pack of addons that your players need to have. These addons are a requirement due to RPFramework using Arma 3's own inventory system.

The idea behind RPFramework is to resolve the issue of people constantly using missions that aren't meant to be used the way they are using them and that is why RPFramework is released under MIT License. This allows users to do anything they feel like doing with the framework and it frees users from the worry of having permission to modify it or monetize it.

RPFramework's main feature is its modular structure that makes it easy for people to install and uninstall modules that can add features to their framework. Modules can be released by anyone and then the user of RPFramework can install the module into their framework. RPFramework ships with some default modules that make the mission somewhat playable and most importantly show possible module creators how modules work with RPFramework.

So why should you hop on board with the modular approach to this framework? This modular approach isn't a good approach for a normal mission but for a framework it has been proven effective. Think of Arma 3 as a framework and mods as modules; modules can be easily enabled and disabled by the user and, of course, installed easily without messing with the core files of the game. If you understood the example you might already think it's a good approach for this framework as proven by Arma. In RPFramework installing modules isn't as easy as in Arma 3, but it gets pretty close. I have seen the attempts of modifying other missions that people have tried to use as a framework and it gets really messy, but this way you keep your modules and original files from the core separated and independent.

For a good example, RPFramework ships with a default module that adds in a simple medical and revive system where players that receive enough damage will go unconscious and have to be revived by a medic. This module can be kept enabled for a limited experience of realism or you could disable it and write your own or just modify it to suit your needs. Disabling a module like this can also let you use an external medical system. You can read more about modules on RPFramework's Github and README.md.

Current core features include:

 

  • ExtDB3 saving for player stats
  • Money system
  • Each vehicle has a key that's saved in the database
  • Police actions like restraining, escorting, pulling out of vehicles, searching, going on and out of duty
  • Interaction menu system
  • Misc functions that might be needed for modules
  • A bunch of Arma 3 inventory items
  • Hunger & Thirst
  • HUD
  • Trunk for physical items like fishing nets and furniture (Fully dynamic)

Current modules that ship with RPFramework include:

  • Fishing with a fishing net
  • Medical system: Medics can revive players
  • Example module that demonstrates the structure of modules
  • Farming: Plant and harvest plants
  • Meth lab: Make meth
  • Shop system that has "physical" shops for vehicles and furniture (You go up to a vehicle that is for sale and you can buy it) and virtual shops for items, magazines, weapons and clothes
  • Taser
  • Ticketing for police
  • Jail: Arresting people and a jail system with dynamic cells
  • Delivery system
  • Phone: Texting other players
  • PlayerNames: Setting player's names and seeing them above their heads
  • Police database for setting players wanted and adding prior crimes to their name
  • Dispatch where one player can be the dispatch and make new tasks and dispatch units to those tasks
  • Garage system
  • Mining
  • ATM: Send money to offline players via bank accounts
  • Licenses: Show your ID card to people and grant them the right to carry a weapon, pew, pew!
  • Housing with storage


Download

Latest version 7.0.2
GitHub
Dropbox

Armaholic


Your mirror? Please tell me if you upload it somewhere else so I can link it here!

 

Changelog (It's on gist now due to it being too long to post here)

https://gist.github.com/kerkkoh/c73ad7658cd89acb988501beb62568f7


Please read the README.md document locally or on GitHub.

FAQ

1. Installation
Instructions for installing the framework, modifying the framework, porting the framework for other maps, making modules and installing modules can be found from the package in a file called README.md or on GitHub.

2. License / Can I use this for x / Can I monetize this?
RPFramework is licensed under MIT License and you can find the license in a file called LICENSE.txt shipped with RPFramework. I do not feel like usage of this should be restricted in any ways nor I want any money and fame for doing this. This license allows you to monetize the framework as you wish.

3. Contributing / I see that x in the framework isn't the best way of doing it / I feel like this should be a feature in the core of RPFramework
I know that I might not be the best scripter ever, but I consider myself lucky as I have been taught by the best ones in the business. I love to receive some good feedback, but even more, I am excited about all the improvement ideas and contribution. I would love to get talented or learning scripters to develop RPFramework with me. You can simply fork the project on GitHub and start contributing.

4. I have some other question!
I hang around the RPFramework Discord with a nickname of Kerkkoh. Please feel free to ask me anything or give me feedback.

5. I hate roleplaying, it's the worst thing about Arma!
I'm sorry that you feel this way. I don't, as long as it's done right and nobody gets hurt.

  • Like 8
  • Thanks 1

Share this post


Link to post
Share on other sites

So most of you haven't heard of me ever and if you have, it has probably not been here on the forums as I tend not to be so active here.

 

I had  :lol:

 

On the topic: Not interested in RP but I will definitly look into the taser. I need one for my squad (not for handing them out but for restraining them).

  • Like 1

Share this post


Link to post
Share on other sites

I like where this is going. Cheers to you Kerkkoh

  • Like 1

Share this post


Link to post
Share on other sites

Eh Kerkohh, Not sure if you remember me from A3L. Good fucking job lad! *Que Epic Drop* 

  • Like 1

Share this post


Link to post
Share on other sites

What would you say defines this mission file as "modular", and how would you say it's any more "modular" than a re-structured Altis Life? Pardon my skepticism, I simply fail to see how this is any different than Altis Life's implementation of functions; I say this because both of these examples require cfgFunctions to be edited in the same manner. As previously stated, one could revise the file structure of Altis Life and achieve the same outcome.

 

I ask you do not take this question as "having a go at you", as it is nice to see some people in the life scene still have brains between their ears, but I'm hung on the definition of it being modular.

  • Like 1

Share this post


Link to post
Share on other sites

Thanks for all the positive feedback! (xtreme, I am not sure if I do.)

What would you say defines this mission file as "modular", and how would you say it's any more "modular" than a re-structured Altis Life? Pardon my skepticism, I simply fail to see how this is any different than Altis Life's implementation of functions; I say this because both of these examples require cfgFunctions to be edited in the same manner. As previously stated, one could revise the file structure of Altis Life and achieve the same outcome.

 

I ask you do not take this question as "having a go at you", as it is nice to see some people in the life scene still have brains between their ears, but I'm hung on the definition of it being modular.

Hey Uncle!

I actully started making this framework as a normal kind of mission just like altis life but I completely changed the direction. I wanted to make it modular so that you could have independent modules that would be easily enabled and disabled if the user wants so, just like in Arma 3 you can enable or disable mods and then again download new independent mods to add to your game experience. Because of the many cfg classes that I needed to use on the core that had all the basic functions, I needed to include all the module configs to those cfg classes and it became a bit harder than I thought. Still now, on the framework you can disable a module by taking a line off from 4 files that are in a CONFIG folder. You can probably imagine that those are the same 4 files you need to add a line to when you are installing a module, in addition to just dragging and dropping it in. I don't think you could argue that this is a re-structured Altis Life because I have made this 100% myself from top to bottom and vice versa but I have a gfx developer helping me with graphics and such. What you could argue is that this makes the same thing as Altis Life and I do somewhat agree with you on that, but I just tried to explain how this is modular and that way a bit different from what other missions can offer.

Thank you for the question!

  • Like 2

Share this post


Link to post
Share on other sites

Thanks for all the positive feedback! (xtreme, I am not sure if I do.)

Hey Uncle!

I actully started making this framework as a normal kind of mission just like altis life but I completely changed the direction. I wanted to make it modular so that you could have independent modules that would be easily enabled and disabled if the user wants so, just like in Arma 3 you can enable or disable mods and then again download new independent mods to add to your game experience. Because of the many cfg classes that I needed to use on the core that had all the basic functions, I needed to include all the module configs to those cfg classes and it became a bit harder than I thought. Still now, on the framework you can disable a module by taking a line off from 4 files that are in a CONFIG folder. You can probably imagine that those are the same 4 files you need to add a line to when you are installing a module, in addition to just dragging and dropping it in. I don't think you could argue that this is a re-structured Altis Life because I have made this 100% myself from top to bottom and vice versa but I have a gfx developer helping me with graphics and such. What you could argue is that this makes the same thing as Altis Life and I do somewhat agree with you on that, but I just tried to explain how this is modular and that way a bit different from what other missions can offer.

Thank you for the question!

Hi, 

So basically I have also been working on a framework which can be deemed 'modular'. If you would like to czech out how my take on it is, You can do so here: https://www.youtube.com/watch?v=s86F8BFmq3

Share this post


Link to post
Share on other sites

Hi, 

So basically I have also been working on a framework which can be deemed 'modular'. If you would like to czech out how my take on it is, You can do so here: <snip> . 

Your video link seems to be broken. Also, let's keep it on the topic of RPFramework here, contact me on discord or pm if you want to discuss :P

Share this post


Link to post
Share on other sites

Your video link seems to be broken. Also, let's keep it on the topic of RPFramework here, contact me on discord or pm if you want to discuss :P

That's embarrassing; I meant https://www.youtube.com/watch?v=s86F8BFmq3c sorry for going off topic, simply wanted to see what it was all about as all.

Share this post


Link to post
Share on other sites

That's embarrassing; I meant [] sorry for going off topic, simply wanted to see what it was all about as all.

Truly an interesting way of doing function creation and modules. I chose CfgFunctions simply because they are simple to use and I am familiar with them. It's all good.

Share this post


Link to post
Share on other sites

Going to avoid double posting so will just update this post from now on before we get some posts after this.

 

 

Changelog

3.0.0 Stable Release (MAJOR)

-- Core & Modules

--- Finally switched away from BIS_fnc_MP, sorry that it took so long

--- cursorTarget > cursorObject

--- while > for

 

The update isn't backwards compatible!

 

If you are wondering how the updates are hopping over numbers check out http://semver.org/

 

Download

Latest version 3.0.0

ARMAHOLIC

 

Dropbox

Github

Share this post


Link to post
Share on other sites

Hello, It says that there is a taser in the framework but it dose not work it just  kills the player when they are shot.

Share this post


Link to post
Share on other sites

Hello, It says that there is a taser in the framework but it dose not work it just  kills the player when they are shot.

Sorry for super late response. It is possible that the taser module is broken, but make sure that you are using the correct weapon and ammunition defined in the script. I will take a look at the scripts and see if there is anything wrong.

Share this post


Link to post
Share on other sites

Yes it is, just slow development right now, I've been in contact with the Lead Developer and he's working on a delivery module amongst other things. Here is a link to his Trello board, he's more active on that then on the forums here. https://trello.com/b/eqwxQ4hr

Share this post


Link to post
Share on other sites

This is probably the biggest release so far right after the first releases. In this version, I'm introducing some features that were supposed to be there from the start and weren't.

This project is still very much active, and I will keep working on it when I have spare time.

Please report any and all bugs to GitHub issues.

Changelog

4.0.0 Stable Release (MAJOR)

- Core

-- Way too many bug fixes to list

-- Fixed HUD to correctly show everything

-- New HUD icons by J. Schmidt

-- ATM removed from the core

-- Physical item trunks for vehicles that you can store physical items like fishing nets and meth labs in. The trunk size corresponds to the vehicle's inventory size in the vehicle's config.

-- Garage now saves vehicle damage and keeps cars better in the database

-- Going on duty for police and EMS (Police and EMS need to visit a station to go on duty and then be able to do their unusual actions)

-- Hitting a physical object while it's being carried will not kill you anymore

-- Money system has been updated to keep client and database in sync about money

- Modules

-- ATM Module

--- All changes to money are now synchronized to server and database correctly

--- Bank accounts allow you to send money to people who aren't online on the server

--- Basic ATM functionality still present

-- Meth Lab Module

--- Ability to buy a chemistry table and create meth by inserting the right ingredients into the table.

--- Smoke effects for failing the chemical reaction

--- Two recipes with one failing with 10% chance and the other failing with only 1% chance

-- Taser and medical module

--- Taser killing people should be fixed

-- Spawning Module

--- Player will be now given starting items like clothes and a map

The update isn't backwards compatible!

If you are wondering how the updates are hopping over numbers check out http://semver.org/

Download

Latest version 4.0.0

Armaholic

Github

Please try Armaholic or GitHub before Dropbox

Dropbox

  • Like 1

Share this post


Link to post
Share on other sites

Fixed some reported bugs with the handcuffing of people that crashed games. Taser was disabled due to poor functionality and will be redone in the future.

 

Thanks for all the support and kind words so far!

 

Get it while it's hot:

Github

Dropbox

 

 

Changelog:

 

4.0.2

- External

-- Fixed log spam caused by uiSleep

 

4.0.1

- Core

-- Fixed handcuffing

-- Deleted some shortcut that ended up in the folders

 

- Modules

-- Taser disabled (Will be worked on in the future)

-- Shop System module's creating shops is now more efficient

Share this post


Link to post
Share on other sites

I'm back with an update. Bug fixes were a major part of 4.1.0 and it added a couple of new modules that might make gameplay a bit nicer. I've also changed away from WTFPL due to it not having a "no warranty" statement. The new license is the MIT License, but in terms of what you can do with the framework, nothing should have changed. You can read the full legal text in LICENSE.txt.

Downloads (4.4.1)

GitHub
Dropbox

 

Changelog 4.4.1

- Fixed stuck in loading screen
- Fixed player interactions can only happen with players and not AI
anymore
- Fixed eating and drinking going to negative values

 

Changelog 4.4.0

- Added saving variables for physical items while they are in trunks ( https://github.com/RPFramework/RPFramework/wiki/Trunk )

- Garage to a module

- Client_fnc_vehicleHitGet and vehicleHitLoad now only return and take in damage values not the hitpoint names anymore

- Garage checks for vehicles blocking garage spawn

- methLab smoke now ran on all clients

- Hunger and thirst are now saved and are now global variables assigned to players

- Fixed being able to buy your own house

- Fixed multiple things with Jail module

- Fixed Police+ DB saving " and ' marks correctly

- Vehicle shop now works better and more precisely

- Added distance checks for a lot of interactions in modules
RE-IMPORT YOUR RPFRAMEWORK.SQL AND RPFRAMEWORK.INI

 

 

Changelog 4.3.0
- Police+ module (Dispatch and police database)
- Housing module (Buy and sell houses, could add inventory functionality
at some point)
- Added exceptions for vehicle trunks, check miscVariables!
- Code optimization

 

Changelog 4.2.4

- Redone medical module (Even simpler now, could be improved on in the future)
- Fixed handcuffing (also doesn't let cuffed players drive cars for obvious reasons)
- Fixed going on and off duty

 

Changelog 4.2.3

- Fixed garage (Garage row's id wasn't auto incrementing)

Remember to re-import the rpframework.sql into your database.

 

Changelog 4.2.2

- Added phone number for each player to the database and a new
custom sql query for checking if a phone number exists
- Loading players in now keeps players in the loading screen like
intended
- Fixed an issue with statSaveLoop not saving weapons correctly
- Added an ability for modules to run a function on the server
when a player enters the server for the first time (Check the Example
module and RPF_Server/Functions/modules/CONFIG/fn_firstLogin.sqf)
- Added an example of how to use "first time functions" on the server
side to the example module
- Added a phone module that allows players to text each other, add
contacts, and text the emergency services (This is one of the new
modules that will include SQL statements since it will save information
in the database. In this case, the module saves player's contacts in the
database.)
- Added VERSION.txt for easily checking which version you're using

 

Changelog 4.2.1

- The RscTitles are now in a separate file to make description.ext a bit nicer
- Removed an unnecessary global variable that was only used by fishing module (didn't notice this any earlier)
- playerNames module allows players to set names for other players and then see it above them. When a player is wearing a mask they can not be identified via this system
- The primary medical module now hooks into the interaction init and adds a condition so that if a player is unconscious, they can not use any items

 

Changelog 4.2.0

- Added a working taser module


Changelog 4.1.1

- The license has been changed from WTFPL to MIT License. Regarding your permissions to use the framework, nothing should have changed. MIT License directly just includes a statement of "no warranty," which was required.

- Added delivery system module
- Added arrest and jail system (Arrest players, jailbreak, free prisoners from jail)

- Fixed player respawning and not dropping their money
- Fixed unlimited trunk size bug
- Fixed garage loading damage to saved vehicles
- Fixed holstering secondary weapons
- Fixed loading assigned items like map and GPS
- Fixed saving of weapon attachments and magazines and saves secondary weapons now
- Fixed vehicle shop vehicles taking damage in the shop
- Fixed medical module to not delay the execution so long

- New Discord server for support and discussion

(IMPORTANT! External Files/sql_custom/ rpframework.ini and External Files/rpframework.sql have been updated! Please import the new database and move the .ini file to the ExtDB3 folder it belongs in

 

Share this post


Link to post
Share on other sites

Love the work your putting into this is there any server that are using that people can join and try out?

Share this post


Link to post
Share on other sites
1 hour ago, falcos said:

Love the work your putting into this is there any server that are using that people can join and try out?

As far as I know, as of yet, there are no servers entirely using the latest version of RPFramework, but I'm always looking for one.
 

NoPixel servers are using RPFramework to a certain extent, but they have chosen to live wisely and build upon it with their own features... So I guess that would be one.. technically?

  • Like 1

Share this post


Link to post
Share on other sites

Hello, a short question, I tried to test the Framework local on my PC (Hosted Database and all this) but Actually the Icons for Money, Hunger, Thirst and Stuff doesnt show up. The files on server and on client are in place, but the PBOs witz the Icons doesnt get loaded says the error i got ingame. can you Help me?

 

LG Selvo

 

---thanks to discord support obsolete---

Share this post


Link to post
Share on other sites

So yeah an update, I guess you haven't seen that in a while since I've been really busy. Thanks for the continuous support! Drop by our discord server if you need any help.


Downloads (4.4.2)

GitHub
Dropbox

Armaholic

 

Changelog 4.4.2

- Added mining module
- Addon changes
- Added an array for custom object names

Edited by kerkkoh
Armaholic<3
  • Like 1

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×