Hi! I've made a thing cause I couldn't find it. It gives random physical and personality adjectives to monster tokens. The above is a regular token before the script and below is some examples. I use it with the aura/tint color mod so it's compatible with that. I don't know how to post a script into the roll20 library so I'll just share the code so you can copy-paste it. The top has the personality traits, physical characteristic and percentage for "Average" physical characteristic so not every random monster is too quirky. After copy pasting just remove the ones you don't like and add more if needed. Although I would appreciate it if we made a dope list in this thread cause maybe I've skipped some really cool options. :D var RandomAdjective = RandomAdjective || (function () {
'use strict';
var adjectivesPersonality = [ 'Adaptable', 'Agreeable', 'Ambitious', 'Brave',
'Bright', 'Calm', 'Careful', 'Charismatic', 'Chatty', 'Cheerful',
'Compassionate', 'Creative', 'Decisive', 'Determined', 'Diplomatic',
'Easy-going', 'Emotional', 'Efficient', 'Energetic', 'Enthusiastic',
'Faithful', 'Fearless', 'Friendly', 'Funny', 'Gentle', 'Hardworking',
'Honest', 'Impartial', 'Intuitive', 'Inventive', 'Kind', 'Laid-back',
'Loyal', 'Lucky', 'Observant', 'Patient', 'Persistent', 'Polite',
'Quiet', 'Resourceful', 'Sensitive', 'Shy', 'Talkative', 'Tough',
'Versatile', 'Wild', 'Wise'];
var adjectivesPhysical = ['Young', 'Old', 'Attractive', 'Cute', 'Ugly',
'Chubby', 'Thin', 'Small', 'Large', 'Exotic', 'Tall', 'Short',
'Muscular', 'Long-limbed', 'Greasy', 'Pale'];
var averagePercentage = 50;
giveAdjective = function(obj) {
let isAverage = (randomInteger(100) <= averagePercentage);
obj.set({'name':
(isAverage ? '' : adjectivesPhysical[randomInteger(adjectivesPhysical.length - 1)]) +
' ' +
adjectivesPersonality[randomInteger(adjectivesPersonality.length - 1)] +
' ' +
obj.get('name')});
},
handleToken = function (obj) {
let character = getObj('character', obj.get("_represents"));
if(character === undefined || character.get("controlledby") === "") {
giveAdjective(obj);
}
},
registerEventHandlers = function () {
on('add:token', function (t) {
_.delay(() => {
handleToken(getObj('graphic', t.id));
}, 400);
});
};
return {
RegisterEventHandlers: registerEventHandlers
};
}());
on('ready', function () {
'use strict';
RandomAdjective.RegisterEventHandlers();
}); Currently I see some trouble with it generating the adjectives to named npcs too - you have to assign yourself to their character sheets so it doesn't generate for them. Like this (as long as there's a controller, the name won't be generated):