HypeMan II brings more Hype.

HypeMan Source code: https://github.com/robscallsign/hypeman/

First announcement of HypeMan: https://aggressors.ca/hypeman/

HypeMan is a DCS lua script and Discord Bot that allows sending data and messages out of DCS and into discord or elsewhere. HypeMan II has been improved to generalize sending lua tables out of DCS to the back-end, and been expanded to support two separate Discord bots and channels. Since coming online in May 2019, HypeMan has called out well over 2000 LSO carrier landing grades, and put on the now World Famous 2019 Carrier Qualification World Championship of the World Competition.

Components:

HypeMan.lua – gets loaded by the DCS mission and sends messages out of DCS via UDP.

hypeman_listener.lua – the backend listener service that runs outside of DCS and receives UDP messages from DCS, and then responds on discord or uploads to google spreadsheets.

Installation

It’s easiest if HypeMan is installed in an easy to access folder, something like C:\HypeMan. All of the scripts to run the Moose AirBOSS LSO script and HypeMan will be dynamically loaded from this location when the mission runs.

DCS Mission
Time More (2) Do Script:

assert(loadfile("C:/HypeMan/mission_script_loader.lua"))()

Note that this loads Mist, Moose, JSON.lua, HypeMan.lua, and AirBossSkipper.lua. The order matters.

The google-spreadsheet loader will insert any given CSV string to a google spreadsheet. Uses OAUTH2 for authentication, and requires a working python install, with a few packages installed from pip. HypeMan does not remember which ones, probably gsheet and oath2 or something.

hypeman_listener at minimum requires the luvit lua repl, and the Discordia lua library. Carrier Grades can be uploaded to google spreadsheets.

Some examples of HypeMan hyping:

Documentation TODO: – examples of sending lua tables – google sheet upload examples

8 thoughts on “HypeMan II: Hype Harder

  1. I have followed all of the instructions you have posted but when I run my mission I’m getting a script error, “2020-06-16 19:00:15.319 ERROR DCS: Mission script error: : [string “C:/HypeMan/HypeMan.lua”]:29: attempt to call global ‘require’ (a nil value)” I can’t seem to resolve this. I have luvit installed properly and have also installed Discordia. Any thoughts?

    1. You need to unsanitize the DCS lua environment and allow lua calls that can read/modify operating system files. This is done by editing the file C:\Program Files\Eagle Dynamics\DCS World\Scripts\MissionScripting.lua and comment out some lines by putting two-dashes — in front of them. The bottom of the file should look like this:

      do
      –sanitizeModule(‘os’)
      –sanitizeModule(‘io’)
      –sanitizeModule(‘lfs’)
      –require = nil
      loadlib = nil
      end

      Note that you’ll need to do this every time DCS updates

      1. Thank you very much for your reply. That resolved the ‘require’ error. I still don’t have it sending to the Discord though. I hate bothering you but I would really like to get this working. In the private_api_keys.lua file, I have inserted my channel ID, and in the Bot client Id, I have inserted the token I received when I created the BOT on my discord server. I’m still not getting any messages though. I think HypeMan sounds amazing but I’m just struggling to get it running, not being a full time programmer :).

        1. Got it working but had to update the deps folder with the current version of Discordia. Thank you so much for your help!!!

  2. is there correct way to do this ?

    local function HypeMankillsHandler(event)

    if HypeManAnnounceKills ~= true then
    return true
    end

    if _event.id == world.event.S_KILL and _event.target then
    if event.weapon then
    local name = Unit.getPlayerName(event.initiator)
    local target = Unit.getName(event.target) — what was hit

    local weaponName = Weapon.getTypeName(event.weapon)

    HypeMan.sendBotMessage (weaponName ..”with “.. target ..” kill “.. name)
    end

Leave a Reply

Your email address will not be published. Required fields are marked *