If you have your players change their color to transparent, then their ping should not be visible. It looks like there's an unintended bug where any player being set to transparent seems to prevent anyone from pinging (which I'm going to send in a bug report on right now), at least that is happening in my test game and pinging doesn't work until logging out and logging back in. So in the meantime you could just set your own color to transparent, and it looks like it'll prevent everyone else from pinging as well. But I'm guessing that this bug (if it's not just my computer) will eventually get fixed so I wouldn't recommend relying on it long term. For anyone with a Pro or Elite subscription, you can use a script to adjust a player's user color, using either a HEX value or 'transparent'. Use command !playercolor or this macro: !playercolor --name|?{Player name} --color|?{Color|Red,#ff0000|Green,#00ff00|Blue,#0000ff|Transparent,transparent|Custom HEX,?{Custom HEX color|#ff0000}} on('ready',function(){
on('chat:message',function(msg){
if(msg.type!=='api')return;
if(!msg.content.startsWith('!playercolor'))return;
if(msg.content.trim()==='!playercolor'){
sendChat('PlayerColor','/w gm [Set Player Color](!playercolor --name|?{Player name} --color|?{Color|Red,#ff0000|Green,#00ff00|Blue,#0000ff|Transparent,transparent|Custom HEX,?{Custom HEX color|#ff0000}})');
return;
}
if(!playerIsGM(msg.playerid)){
sendChat('PlayerColor','/w "'+msg.who+'" Only the GM can use this command.');
return;
}
const args={};
msg.content.replace('!playercolor','').trim().split(/\s+--/).forEach(part=>{const pieces=part.split('|');if(pieces.length>=2)args[pieces[0].replace(/^--/,'').toLowerCase()]=pieces.slice(1).join('|').trim();});
const name=args.name,color=args.color;
if(!name||!color){
sendChat('PlayerColor','/w gm Usage: !playercolor --name|NAME --color|#ff0000 or --color|transparent');
return;
}
let normalizedColor=color.toLowerCase().trim();
if(normalizedColor.includes('transparent')){
normalizedColor='transparent';
}else{
normalizedColor=normalizedColor.replace(/^#+/,'');
if(/^[0-9a-f]{3}$/.test(normalizedColor))normalizedColor=normalizedColor.split('').map(function(char){return char+char;}).join('');
normalizedColor='#'+normalizedColor;
}
if(normalizedColor!=='transparent'&&!/^#[0-9a-fA-F]{6}$/.test(normalizedColor)){
sendChat('PlayerColor','/w gm Invalid color. Use hex format like #ff0000, ff0000, #1ab, or transparent.');
return;
}
const matches=findObjs({_type:'player'}).filter(p=>(p.get('_displayname')||'').toLowerCase()===name.toLowerCase());
if(matches.length===0){
sendChat('PlayerColor','/w gm No player found named "'+name+'".');
return;
}
matches.forEach(function(player){player.set('color',normalizedColor);});
sendChat('PlayerColor','/w gm Set "'+name+'" to '+normalizedColor+'.');
});
});