~ I know titles have been released multiple times, but in different ways. all of the other ones I tried messed up, so I made my own, and this is it ~
In this, you can add custom titles and such to get a result like this

Here's how to do it.
Go into PlayerUpdate.java and search for
Code:
appearanceData.writeByte(0);
or
Code:
appearanceData.writeByte(p.getSkullManager().isSkulled() ? 0 : -1);
Now, below
Code:
appearanceData.writeByte(0);
or above
Code:
appearanceData.writeByte(p.getSkullManager().isSkulled() ? 0 : -1);
add
Code:
String titles = "";
Now search for
Code:
appearanceData.writeShort(p.getRenderAnimation() > -1 ? p.getRenderAnimation() : p.getAppearance().getNpcType() != -1 &&
If you see
Code:
appearanceData.writeShort(p.getRenderAnimation() > -1 ? p.getRenderAnimation() : p.getAppearance().getNpcType() != -1 &&
def != null ? def.getCacheDefinition().renderEmote : p.getEquipment().getRenderAnim());
appearanceData.writeRS2String(Misc.formatPlayerNameForDisplay(p.getUsername()));
appearanceData.writeByte(p.getSkills().getCombatLevel());
appearanceData.writeShort(0); // >_>
appearanceData.writeByte(0); // <_<
updateMessage.writeByteA(appearanceData.position());
updateMessage.writeBytes(appearanceData.getBuffer());
}
}
}
replace all of that (even the end brackets) with
Code:
if (p.getRights() == 2) {
titles = "<col=FFFFFF>title</col> "; //Owner
appearanceData.writeShort(p.getRenderAnimation() > -1 ? p.getRenderAnimation() : p.getAppearance().getNpcType() != -1 &&
def != null ? def.getCacheDefinition().renderEmote : p.getEquipment().getRenderAnim());
appearanceData.writeRS2String(Misc.formatPlayerNameForDisplay(titles + p.getUsername()));
appearanceData.writeByte(p.getSkills().getCombatLevel());
appearanceData.writeShort(0); // >_>
appearanceData.writeByte(0); // <_<
updateMessage.writeByteA(appearanceData.position());
updateMessage.writeBytes(appearanceData.getBuffer());
return;
}
else if (p.getUsername().equalsIgnoreCase("PLAYERNAME")) {
titles = "<col=25a7a7>Super Boss</col> "; //Owner
appearanceData.writeShort(p.getRenderAnimation() > -1 ? p.getRenderAnimation() : p.getAppearance().getNpcType() != -1 &&
def != null ? def.getCacheDefinition().renderEmote : p.getEquipment().getRenderAnim());
appearanceData.writeRS2String(Misc.formatPlayerNameForDisplay(titles + p.getUsername()));
appearanceData.writeByte(p.getSkills().getCombatLevel());
appearanceData.writeShort(0); // >_>
appearanceData.writeByte(0); // <_<
updateMessage.writeByteA(appearanceData.position());
updateMessage.writeBytes(appearanceData.getBuffer());
return;
} else if (p.getRights() == 1) {
titles = "<col=00ffff>Moderator</col> "; //Owner
appearanceData.writeShort(p.getRenderAnimation() > -1 ? p.getRenderAnimation() : p.getAppearance().getNpcType() != -1 &&
def != null ? def.getCacheDefinition().renderEmote : p.getEquipment().getRenderAnim());
appearanceData.writeRS2String(Misc.formatPlayerNameForDisplay(titles + p.getUsername()));
appearanceData.writeByte(p.getSkills().getCombatLevel());
appearanceData.writeShort(0); // >_>
appearanceData.writeByte(0); // <_<
updateMessage.writeByteA(appearanceData.position());
updateMessage.writeBytes(appearanceData.getBuffer());
return;
} else {
appearanceData.writeShort(p.getRenderAnimation() > -1 ? p.getRenderAnimation() : p.getAppearance().getNpcType() != -1 &&
def != null ? def.getCacheDefinition().renderEmote : p.getEquipment().getRenderAnim());
appearanceData.writeRS2String(Misc.formatPlayerNameForDisplay(p.getUsername()));
appearanceData.writeByte(p.getSkills().getCombatLevel());
appearanceData.writeShort(0); // >_>
appearanceData.writeByte(0); // <_<
updateMessage.writeByteA(appearanceData.position());
updateMessage.writeBytes(appearanceData.getBuffer());
}
}
}
What you just replaced should look something like
Code:
// TODO Check if this shit work yo
if (p.getRights() == 2) {
titles = "<col=FFFFFF>title</col> "; //Owner
appearanceData.writeShort(p.getRenderAnimation() > -1 ? p.getRenderAnimation() : p.getAppearance().getNpcType() != -1 &&
def != null ? def.getCacheDefinition().renderEmote : p.getEquipment().getRenderAnim());
appearanceData.writeRS2String(Misc.formatPlayerNameForDisplay(titles + p.getUsername()));
appearanceData.writeByte(p.getSkills().getCombatLevel());
appearanceData.writeShort(0); // >_>
appearanceData.writeByte(0); // <_<
updateMessage.writeByteA(appearanceData.position());
updateMessage.writeBytes(appearanceData.getBuffer());
return;
}
else if (p.getUsername().equalsIgnoreCase("PLAYERNAME")) {
titles = "<col=25a7a7>Super Boss</col> "; //Owner
appearanceData.writeShort(p.getRenderAnimation() > -1 ? p.getRenderAnimation() : p.getAppearance().getNpcType() != -1 &&
def != null ? def.getCacheDefinition().renderEmote : p.getEquipment().getRenderAnim());
appearanceData.writeRS2String(Misc.formatPlayerNameForDisplay(titles + p.getUsername()));
appearanceData.writeByte(p.getSkills().getCombatLevel());
appearanceData.writeShort(0); // >_>
appearanceData.writeByte(0); // <_<
updateMessage.writeByteA(appearanceData.position());
updateMessage.writeBytes(appearanceData.getBuffer());
return;
} else if (p.getRights() == 1) {
titles = "<col=00ffff>Moderator</col> "; //Owner
appearanceData.writeShort(p.getRenderAnimation() > -1 ? p.getRenderAnimation() : p.getAppearance().getNpcType() != -1 &&
def != null ? def.getCacheDefinition().renderEmote : p.getEquipment().getRenderAnim());
appearanceData.writeRS2String(Misc.formatPlayerNameForDisplay(titles + p.getUsername()));
appearanceData.writeByte(p.getSkills().getCombatLevel());
appearanceData.writeShort(0); // >_>
appearanceData.writeByte(0); // <_<
updateMessage.writeByteA(appearanceData.position());
updateMessage.writeBytes(appearanceData.getBuffer());
return;
} else {
appearanceData.writeShort(p.getRenderAnimation() > -1 ? p.getRenderAnimation() : p.getAppearance().getNpcType() != -1 &&
def != null ? def.getCacheDefinition().renderEmote : p.getEquipment().getRenderAnim());
appearanceData.writeRS2String(Misc.formatPlayerNameForDisplay(p.getUsername()));
appearanceData.writeByte(p.getSkills().getCombatLevel());
appearanceData.writeShort(0); // >_>
appearanceData.writeByte(0); // <_<
updateMessage.writeByteA(appearanceData.position());
updateMessage.writeBytes(appearanceData.getBuffer());
}
}
}
Replace
Code:
<col=FFFFFF>title</col>
with what you want the ADMIN title to be
Replace
Code:
<col=00ffff>Moderator</col>
with what you want the MOD title to be
replace
with someone else's name and
replace
Code:
<col=25a7a7>Super Boss</col>
with what you want his/her title to be.
I hope this worked for you because this is how I did it.