User Tools

Site Tools



sense

About

Sense is a raid-warnings and general triggers handler.

Sense handles several forms of detection including, chat, actions (id or name), and custom lua functions.
Sense can alert by sound with custom .mp3/.wav or text-to-speech output.
Sense can alert visually with a customizable HUD.
Sense can additionally react with custom lua, which allows access to any code the bot can execute, the possibilities are endless.

Addon Layout

The Sense addon contains the following folders:

  • bin
    • Holds executable files that MUST BE DOWNLOADED AND INSTALLED BY THE USER.
    • Both files are now in one zip file, working around dropbox limitations.
    • imagecreator.exe - this app turns text into images for use in the addon.
    • soundengine.exe - this app handles the playing of mp3/wav/text-to-speech.
  • images
    • Holds automatic and user-created images for use in the addon.
  • sounds
    • Holds custom user-created sound files.
  • profiles
    • Holds per-instance/limited-set timelines/triggers.
  • triggers
    • Holds universal/general triggers.

Timeline Sample & API

local profile = {
	name = "A5S", -- Friendly name, used only internally, for now.
	reset = "Advanced Clevering is no longer sealed", -- Reset accepts a string or table full of strings.  If detected, it will reset the encounter.
	start = "Advanced Clevering will be sealed off in 15", -- Start accepts a string or table full of strings.  If detected, it will start the encounter. Triggers in the profile become active once the profile is started.
	timeline = { -- Timeline is a table full of all events that the profile walk through.
		{ post = 5, sound = "Goes Big", main_image = "GOES BIG", helper_image = "", setvar = { name = "SENSE_TEST", value = 44, duration = 20, reset = 0} },
                -- "post" - Time in seconds after the profile has started.
                -- "sound" - Accepts a file name (file must be inside the "sounds" folder and be mp3/wav format), or text that will be played via text-to-speech. 
                -- "main_image" - Top level image. Can be a file name (file must be in the images folder), or text that will be auto-converted into an image.
                -- "helper_image" - Second level image. Can be a file name (file must be in the images folder), or text that will be auto-converted into an image.
                -- "jump" - Accepts a number.  Once this
                -- "setvar" - Accepts a lua table.  setvar is used to expose/alter a variable in the global lua scope, so that other addons/code sections not local to Sense can read/react to it, such as setting a var that a skill profile may react to.
                --       { name = Name of the variable to be altered/set. , value = Value to set the variable to, duration = Length in time (seconds) that this variable will remain in that state, reset = Value that the var will be reset back to upon duration limit }
		{ post = 8, sound = "Gob jab", main_image = "GOBJAB", helper_image = "1ST HEADACHE STACK", runcode = "SendTextCommand('/echo GOBJAB')" },
                -- "runcode" - Accepts a string or lua function.  Will run the code block upon reaching this time point.
		{ post = 12, sound = "Gob jab", main_image = "GOBJAB", helper_image = "2ND HEADACHE STACK" },
		{ post = 16, sound = "Gob jab", main_image = "GOBJAB", helper_image = "3RD HEADACHE STACK" },
		{ post = 20, sound = "Gob jab", main_image = "GOBJAB", helper_image = "4TH HEADACHE STACK, SWITCH TANKS" },
		{ post = 25, sound = "Buster", main_image = "TANK BUSTER", helper_image = "GOBCUT (STACK) OR GOBSTRAIGHT (TANK)" },
		{ post = 34, sound = "Prey", main_image = "PREY", helper_image = "ONE PLAYER WILL GET MARKED BY PREY" },
		{ post = 41, sound = "Charge", main_image = "CHARGE", helper_image = "" },
 
		{ post = 50, sound = "Goes Small", sync = "loses the effect of Bigbulge Biggerbrain",jump = 51, windowopen = 0, windowclose = 50, main_image = "GOES SMALL", helper_image = "" },
                -- "sync" - Turns this timepoint into a 'watcher'.  Watchers will be executed when the "sync" field is found in the chat log.
                -- "windowopen" - Allows the watcher to find logs x amount of seconds backwards in time.
                -- "windowclose" - Allows the watcher to continue checking logs for x amount of seconds forward in time.
                -- "jump" - If the watcher is found, the profile will jump itself to this value since the profile was started, by default the timeline will set itself back to the value in the "post".  Can be useful if a timeline needs to be 'rewinded' or 'fast-forwarded'.
		{ post = 50, sound = "Glupgloop Mark 1", main_image = "GLUPGLOOP MARK", helper_image = "AOE LANDING IN 7 SECONDS" },
		{ post = 60, sound = "Glupgloop Mark 2", main_image = "GLUPGLOOP MARK", helper_image = "AOE LANDING IN 7 SECONDS" },
 
		{ post = 68, sound = "2 Snakes", main_image = "ADDS => 2 SNAKES", helper_image = "" },
		{ post = 77, sound = "Steel Scales", main_image = "STEEL SCALES", helper_image = "" },
		{ post = 84, sound = "Shock Therapy", main_image = "SHOCK THERAPY", helper_image = "RAID-WIDE AOE" },
		{ post = 93, sound = "Cleanse Poison", main_image = "CLEANSE POISON", helper_image = "GET 1 GORILLA" },
		{ post = 98, sound = "Get Away From Spikey", main_image = "GET AWAY FROM SPIKEY", helper_image = "1 SPIKEY, 2 SMARTBOMB" },
 
		{ post = 119, sound = "Goes Big", sync = "uses Guzzle", windowopen = 50, windowclose = 0, main_image = "GOES BIG", helper_image = "USED GUZZLE, BIG MODE" },
		{ post = 125, sound = "Bird Time", main_image = "BIRD TIME", helper_image = "" },
 
		{ post = 126, sound = "Diagonal Bombs", main_image = "DIAGONAL BOMBS", helper_image = "" },
		{ post = 141, sound = "Prey", main_image = "PREY", helper_image = "ONE PLAYER WILL GET MARKED BY PREY" },
		{ post = 148, sound = "Charge", main_image = "CHARGE", helper_image = "" },
		{ post = 154, sound = "Gobhook", main_image = "GOBHOOK", helper_image = "NEAREST HEALER TARGETED, GET BEHIND BOSS" },
	}, 
        triggers = {
                { detect_chat = "readies Petrification", 
			sound = "Petrification", main_image = "PETRIFICATION", helper_image = "TURN AWAY" 
		},
        },
}
return profile

Trigger Sample & API

local profile = {
	name = "Ace Triggers",
	triggers = {
		{ detect_chat = "readies Petrification", 
			sound = "Petrification", main_image = "PETRIFICATION", helper_image = "TURN AWAY" 
		},
		{ detect_chat = "readies Cure", 
			sound = "CURE", main_image = "CURE", helper_image = "BE HEALED NOOB", 
			runcode = "SendTextCommand('/echo LET THAIR BE LIGHT')", 
		},
		{ detect_action = "Cure", detect_action_user = "3660;3661";
			sound = "CURE", main_image = "CURE", helper_image = "BE HEALED NOOB", 
			runcode = "SendTextCommand('/echo LET THAIR BE LIGHT2')", 
		},
		{ detect_action = "Cure", detect_action_user = "", detect_action_self = true, detect_delay = 1, 
			sound = "CURE", main_image = "CURE", helper_image = "BE HEALED NOOB", 
			runcode = "ActionList:StopCasting()", 
		},
		{ detect_function = "ScanForCaster(3660,50,120)", 
			sound = "CURE", main_image = "CURE", helper_image = "BE HEALED NOOB", 
			runcode = "SendTextCommand('/echo LET THAIR BE LIGHT2')", 
		},
	}
}
return profile

Tags:

  • detect_chat (string SearchText)
    • Detects a partial chat-line from the chat log.
  • detect_action (string Action Name), (string, semi-colon separated list of IDs, “145;154”) or (number Action ID)
    • Detects an action being cast by self or other entities, via the minion API.
  • detect_action_user (string semi-colon separated list of entity content IDs, “3660;3661”)
    • Modifies a detect_action statement to activate only if the caster is one of the listed content IDs.
  • detect_action_self (boolean true/false)
    • Modifies a detect_action statement to also activate if the caster is the Player.
  • detect_function (string or function or table)
    • Detects based on the return value of a single function string or a normal lua function statement, or a lua table filled with multiple function strings or statements. Value must be true to activate the trigger. For a table, only one value must be true to activate.

User Made Profiles

All existing profile can be found on http://www.mmominion.com/forum-182.html
These profiles are to be installed into C:\MINIONAPP\Bots\FFXIVMinion64\LuaMods\Sense\profiles\

sense.txt · Last modified: 2020/05/22 17:29 by ace