Untitled

                Never    
var ui = SpreadsheetApp.getUi();

function onEdit(e) {
  
  // Exit if e is null
  if (!e || !e.source) {
   return; 
  }
  
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  
  // Exit if wrong spreadsheet
  if (spreadsheet.getName() != "Classic Faction Voting") {
   return; 
  }
  
  var changedSheet = e.range.getSheet();
  
  // Exit if wrong sheet
  if (changedSheet.getName() != "Votes") {
    return;
  }
  
  var activationColumn = changedSheet.getRange("PreferredClass").getColumn();
  var modificationColumn = changedSheet.getRange("PreferredRole").getColumn();
  
  // Alert if I fucked up
  if (!activationColumn || !modificationColumn) {
   ui.alert("Tell Zack that he fucked up"); 
  }
  
  // Get changed properties
  var changedRange = e.range;
  
  // Exit if range is outside of activation column
  if (changedRange.getColumn() > activationColumn || changedRange.getLastColumn() < activationColumn) {
    return;
  }
  
  // Loop changed rows
  for (var i = 0; i < changedRange.getNumRows(); i++) {
    var actualRow = changedRange.getRow() + i;
    var changedCell = changedSheet.getRange(actualRow, activationColumn);
    var changedValue = changedCell.getValue();
    var validatorType = changedValue + "Roles";
    var validatorValueListRange = spreadsheet.getRangeByName(validatorType);
    var validator = SpreadsheetApp.newDataValidation().requireValueInList(validatorValueListRange.getValues()).build();
    var targetCell = changedSheet.getRange(actualRow, modificationColumn);
    targetCell.setDataValidation(validator);
    targetCell.setValue("");
  }
  
  SpreadsheetApp.flush();
}

Raw Text