Skip to content
spencershepard edited this page Feb 4, 2023 · 15 revisions

Perks is a standalone script that enables a points and rewards system. You can use this script on its own or together with CTLD and/or RotorOps. There is no configuration necessary, and it works with single player or multiplayer.

Why a points system? This was developed to incentivize teamwork in multiplayer support roles, and to enhance single player experiences with more control over the battlefield.

Where do I get the script? The script will be maintained with RotorOps in the main repo: https://github.com/spencershepard/RotorOps/tree/main/scripts

Installation

Load RotorOpsPerks.lua in do script file trigger after the mission begins. Requires MIST (currently requires my version of MIST, mist_4_5_107_grimm.lua), but CTLD is optional. Load scripts in this order: 1) MIST 2) CTLD 3) RotorOpsPerks All scripts are available in the scripts directory of RotorOps: https://github.com/spencershepard/RotorOps/tree/main/scripts

How to earn points

You can earn points from actions you take directly, like kills, or indirectly like kills from troops you drop. These are broken down into the points categories below. See the script for the actual number of points per action.

Direct

  • Kill infantry
  • Kill vehicles
  • Kill helicopters
  • Kill planes
  • Kill tanks
  • Kill ships
  • CTLD rearm vehicles
  • CTLD unpack crates

Indirect

  • CTLD dropped troops kill infantry
  • CTLD dropped troops kill vehicles
  • CTLD dropped troops kill tanks

CAS Bonus

When you kill enemy troops or vehicles near your friendly ground units, you earn a hefty CAS bonus for supporting the war on the ground.

Multicrew

Perks works with multicrew! In fact, Perks encourages multicrew with multiplied point earnings and shared costs.

  • Everyone in the same group/aircraft will receive points for the group's actions. ie. If the gunner gets a kill, the pilot recieves the same number of points.
  • Perk costs are divided among crew.

How to use Perks

Spend points on Perks by using the 'ROTOROPS PERKS' F10 menu. Perks can either be activated at your current position, or at a position that you mark on the map.

Fatcow FARP

Request an AI CH-47 Chinook that will land at your designated position and deploy a working FARP for refuel or rearm!

  • Available at your current position
  • Available at your mark on the map. Name the mark 'fatcow'

This perk requires a few objects on the map in order to work. This is because these objects need to be 'teleported' to the location in order to work properly. If you are using the RotorOps mission generator, it will be done automatically. If not, you will need to:

  • Place one CH-47 helicopter on the map where you would like it to take off from, set as late-activated, with a group name of 'FAT COW'.
  • At least one static Invisible FARP, named 'FAT COW FARP 1'
  • At lease one static FARP Ammo Depot, named 'FAT COW AMMO 1'
  • AT least one static FARP Fuel Depot, named 'FAT COW FUEL 1'
  • At least one static FARP Tent, named 'FAT COW TENT 1' The static objects can be placed anywhere on the map. You probably want them placed outside the area of your mission so players don't see them until they are used to build the Fat Cow FARP. Each time the perk is used, it will look for the next set of statics, ie. 'FAT COW FARP 2' etc, so you will need add more sets of these objects if you want to be able to use the perk multiple times in the same mission. You only need to do this for the static FARP objects, not the CH-47.

For easy reference, this mission file contains the minimum basic setup for the Fatcow FARP: Minimum viable FATCOW miz

Instant Strike

Request a cruise missle strike at a designated location. Right now this is essentially a demo for the perks system, and will likely be removed or modified in the future to be more realistic.

  • Available at your mark on the map. Name the mark 'strike'

Perk Options

The script is desinged to be easy to create your own perks for your use or to easily modify their attributes, such as:

  • Cooldown time
  • Max uses per player
  • Max uses per mission
  • Points cost

You can easily change perk options from a do script, if you don't want to edit the script file. For example, you could do this any time after the script loads:

    RotorOpsPerks.perks.fatcow.cost=100
    RotorOpsPerks.perks.fatcow.cooldown=60
    RotorOpsPerks.perks.fatcow.max_per_player=1
    RotorOpsPerks.perks.fatcow.max_per_mission=4

Creating Perks

You can create your own perks by modifying the script, or from another script after the perks script has loaded (preferred method). The radio menu and all other aspects are handled automatically. First define a function that will fire when the perk is activated by a player. Then add the perk table to RotorOpsPerks.perks, like below:

---- INSTANT STRIKE PERK ----

function requestStrikePerk(args)
    --explosion at target point after 10 seconds
    timer.scheduleFunction(function()
        trigger.action.explosion(args.target_point, 1000)
    end, nil, timer.getTime() + 10)
end

RotorOpsPerks.perks["strike"] = {
    perk_name='strike',  --name used for target marks on F10 map
    display_name='Instant Strike',
    cost=100,
    cooldown=60,  --minimum seconds between uses in mission
    max_per_player=1,
    max_per_mission=3,
    at_mark=true,   --if players can request a map mark as the target
    at_position=false,  --if players can request their own position as the target
    enabled=true,
    last_used=0, --don't change
    used=0, --don't change
    action_function=requestStrikePerk   --the name of your predefined function to call when the perk is used
}

See the latest version of the script for perk code samples, as this wiki may not be up to date.

Demo Mission

Check out the PERKS system together with our atmospheric Black Hawk Down mission! Demo Mission: Black Hawk Down