A script posted by Aaron to the Roll20 forums, to swap the contents of one token bar with another.
List the bars you want to swap, like so:
!swap-bars 1 3
Code language: JavaScript (javascript)
This will swap the values, max values, and the link to an attribute, if they exist.
Here’s the code:
on('ready',()=>{
on('chat:message',msg=>{
if('api'===msg.type && /^!swap-bars(\b\s|$)/i.test(msg.content) && playerIsGM(msg.playerid)){
let who = (getObj('player',msg.playerid)||{get:()=>'API'}).get('_displayname');
let [first,second] = msg.content.split(/\s+/).slice(1,3).map(n=>parseInt(n));
if([1,2,3].includes(first) && [1,2,3].includes(second)){
(msg.selected || [])
.map(o=>getObj('graphic',o._id))
.filter(g=>undefined !== g)
.forEach(t=>
t.set({
[`bar${second}_value`]: t.get(`bar${first}_value`),
[`bar${second}_max`]: t.get(`bar${first}_max`),
[`bar${second}_link`]: t.get(`bar${first}_link`),
[`bar${first}_value`]: t.get(`bar${second}_value`),
[`bar${first}_max`]: t.get(`bar${second}_max`),
[`bar${first}_link`]: t.get(`bar${second}_link`)
}))
;
} else {
sendChat('',`/w "${who}" <div>Please use the format <code>!swap-bars NUM NUM</code> where <code>NUM</code> is <code>1</code>, <code>2</code>, or <code>3</code>.</div>`);
}
}
});
});
Code language: JavaScript (javascript)