CombatMaster would have to be modified to recognize the SmartAoE script. I've never used CombatMaster, but from a quick peek at the code it looks like all you would need to do is edit the registerEventHandlers function (starts on line 4547 of the one-click version on github, found here ). This is the original function: registerEventHandlers = function() {
on('chat:message', inputHandler);
on('close:campaign:turnorder', handleTurnorderChange);
on('change:campaign:turnorder', handleTurnorderChange);
on('change:graphic:statusmarkers', handleStatusMarkerChange);
on('change:campaign:initiativepage', handeIniativePageChange);
on('change:graphic:top', handleGraphicMovement);
on('change:graphic:left', handleGraphicMovement);
on('change:graphic:layer', handleGraphicMovement);
on('change:graphic:'+state[combatState].config.concentration.woundBar+'_value', handleConstitutionSave);
if('undefined' !== typeof DeathTracker && DeathTracker.ObserveTokenChange){
DeathTracker.ObserveTokenChange(function(obj,prev) {
handleStatusMarkerChange(obj,prev);
});
}
if('undefined' !== typeof InspirationTracker && InspirationTracker.ObserveTokenChange){
InspirationTracker.ObserveTokenChange(function(obj,prev) {
handleStatusMarkerChange(obj,prev);
});
}
if('undefined' !== typeof TokenMod && TokenMod.ObserveTokenChange) {
TokenMod.ObserveTokenChange(function(obj,prev) {
handleStatusMarkerChange(obj,prev);
});
}
}; Try changing it to this. I've bolded the new code block to add to the end of the function. Since I totally stole Aaron's naming convention for the public-facing SmartAoE function that combat master will use, it looks pretty clean. Pay attention to where the curly braces are when pasting the bolded part in your live copy, as pasting in the wrong place will likely cause errors. registerEventHandlers = function() {
on('chat:message', inputHandler);
on('close:campaign:turnorder', handleTurnorderChange);
on('change:campaign:turnorder', handleTurnorderChange);
on('change:graphic:statusmarkers', handleStatusMarkerChange);
on('change:campaign:initiativepage', handeIniativePageChange);
on('change:graphic:top', handleGraphicMovement);
on('change:graphic:left', handleGraphicMovement);
on('change:graphic:layer', handleGraphicMovement);
on('change:graphic:'+state[combatState].config.concentration.woundBar+'_value', handleConstitutionSave);
if('undefined' !== typeof DeathTracker && DeathTracker.ObserveTokenChange){
DeathTracker.ObserveTokenChange(function(obj,prev) {
handleStatusMarkerChange(obj,prev);
});
}
if('undefined' !== typeof InspirationTracker && InspirationTracker.ObserveTokenChange){
InspirationTracker.ObserveTokenChange(function(obj,prev) {
handleStatusMarkerChange(obj,prev);
});
}
if('undefined' !== typeof TokenMod && TokenMod.ObserveTokenChange) {
TokenMod.ObserveTokenChange(function(obj,prev) {
handleStatusMarkerChange(obj,prev);
});
}
if('undefined' !== typeof SmartAoE && SmartAoE.ObserveTokenChange){
SmartAoE.ObserveTokenChange(function(obj,prev){
handleStatusMarkerChange(obj,prev);
});
};
}; I'm on work travel right now (with terrible wifi btw), so this is untested but it seems pretty straightforward. You would need to disable or uninstall the one-click version of combat master, then create a "new script" by copying and pasting the code from github that I linked above. Then add the bolded lines from the second code block above in the appropriate location and click on "Save script". Hope that helps!