FTB Utilities Rank Promotions With this script you can have FTB Utilities roles that change over time. Is for 1.12 only. Requires FTB Utilities. events.listen('player.tick', function (event) { // This check happens every 20 ticks, a.k.a every second if (event.player.server && event.player.ticksExisted % 20 === 0) { var rank = event.player.data.ftbutilities.rank events.post('test_event', {testValue: rank.id}) var newRank = ftbutilities.getRank(rank.getPermission('promotion.next')) if (newRank) { var timePlayed = event.player.stats.get('stat.playOneMinute') / 20 // Seconds player has been on server var timeRequired = newRank.getPermissionValue('promotion.timer').getInt() if (timeRequired > 0 && timePlayed >= timeRequired && rank.addParent(newRank)) { if (!events.postCancellable('ftbutilities.rank.promoted.' + newRank.id, {'player': event.player, 'rank': newRank})) { event.player.tell('You have been promoted to ' + newRank.getPermission('promotion.name') + '!') } ftbutilities.saveRanks() } } } }) // When player gets promoted to 'trusted' rank, give them gold ingot (uncomment the line) events.listen('ftbutilities.rank.promoted.trusted', function (event) { // event.data.player.give('minecraft:gold_ingot') }) 3 example roles in ranks.txt: [player] power: 1 default_player_rank: true promotion.name: Player promotion.next: newcomer promotion.timer: 5 command.ftbutilities.rtp: false command.ftbutilities.home: false [newcomer] power: 5 promotion.name: Newcomer promotion.next: regular promotion.timer: 15 ftbutilities.chat.name_format: <&aNewcomer &r{name}> command.ftbutilities.rtp: true [regular] power: 10 promotion.name: Regular promotion.next: trusted promotion.timer: 30 ftbutilities.chat.name_format: <&9Regular &r{name}> command.ftbutilities.home: true After 5 seconds of play time, player will be promoted to newcomer.After 15 seconds (or 10 since previous role) they will be promoted to regular.After 30 seconds (or 15 since previous role) they will be promoted to trusted, etc.