Buggy code:
public class SaveLoader { static File configfile = new File ( ( ( ( ( "plugins" + ( File . separator ) ) + "EpicQuest" ) + ( File . separator ) ) + "config.yml" ) ) ; static FileConfiguration config = YamlConfiguration . loadConfiguration ( SaveLoader . configfile ) ; static File signfile = new File ( ( ( ( ( "plugins" + ( File . separator ) ) + "EpicQuest" ) + ( File . separator ) ) + "signs.yml" ) ) ; static File blockfile = new File ( ( ( ( ( "plugins" + ( File . separator ) ) + "EpicQuest" ) + ( File . separator ) ) + "block.yml" ) ) ; static FileConfiguration block = YamlConfiguration . loadConfiguration ( SaveLoader . blockfile ) ; static File announcerfile = new File ( ( ( ( ( "plugins" + ( File . separator ) ) + "EpicQuest" ) + ( File . separator ) ) + "announcer.yml" ) ) ; static FileConfiguration announcer = YamlConfiguration . loadConfiguration ( SaveLoader . announcerfile ) ; static File leaderboardfile = new File ( ( ( ( ( "plugins" + ( File . separator ) ) + "EpicQuest" ) + ( File . separator ) ) + "leaderboard.yml" ) ) ; static FileConfiguration leaderboard = YamlConfiguration . loadConfiguration ( SaveLoader . leaderboardfile ) ; public static void save ( boolean isShutDown ) throws IOException , InvalidConfigurationException { } public static void saveQuestEntities ( boolean isShutDown ) throws IOException { } public static void savePlayer ( EpicPlayer epicPlayer ) { } public static void load ( ) { } public static void loadQuestEntities ( ) { } public static void loadPlayer ( UUID id ) { EpicPlayer epicPlayer = null ; File savefile = new File ( ( ( ( ( ( ( ( "plugins" + ( File . separator ) ) + "EpicQuest" ) + ( File . separator ) ) + "Players" ) + ( File . separator ) ) + ( id . toString ( ) ) ) + ".yml" ) ) ; if ( savefile . exists ( ) ) { epicPlayer = new EpicPlayer ( id ) ; FileConfiguration save = YamlConfiguration . loadConfiguration ( savefile ) ; if ( save . contains ( "Quest_list" ) ) { List < String > questList = save . getStringList ( "Quest_list" ) ; for ( String questTag : questList ) { EpicQuest epicQuest = new EpicQuest ( epicPlayer , questTag ) ; List < EpicQuestTask > taskList = epicQuest . getTasks ( ) ; for ( int taskNumber = 0 ; taskNumber < ( taskList . size ( ) ) ; taskNumber ++ ) { int amount = save . getInt ( ( ( ( "Quest." + questTag ) + "." ) + taskNumber ) ) ; <START_BUG> taskList . get ( taskNumber ) . ProgressTask ( amount , null ) ; <END_BUG> } epicPlayer . getQuestList ( ) . add ( epicQuest ) ; } } epicPlayer . setQuestsCompleted ( save . getStringList ( "Completed_Quests" ) ) ; if ( save . contains ( "Timed_Quests" ) ) { List < String > timedQuests = save . getStringList ( "Timed_Quests" ) ; for ( String questTag : timedQuests ) { epicPlayer . setQuestTimer ( questTag , save . getInt ( ( ( "Quest." + questTag ) + ".timer" ) ) ) ; } } epicPlayer . playerStatistics = new randy . engine . PlayerStatistics ( epicPlayer , ( ( float ) ( save . getDouble ( "Stats.Money_Earned" , 0 ) ) ) , save . getInt ( "Stats.Quests_Completed" , 0 ) , save . getInt ( "Stats.Dropped" , 0 ) , save . getInt ( "Stats.Quests_Get" , 0 ) , save . getInt ( "Stats.Tasks_Completed" , 0 ) ) ; epicPlayer . setQuestDailyLeft ( save . getInt ( "Daily_Left" , EpicSystem . getDailyLimit ( ) ) ) ; EpicSystem . addPlayer ( epicPlayer ) ; } else { EpicSystem . addFirstStart ( id ) ; } EpicPlayer p = EpicSystem . getEpicPlayer ( id ) ; if ( EpicSystem . useBook ( ) ) p . giveQuestBook ( ) ; } }

Fix:
taskList . get ( taskNumber ) . ProgressTask ( amount , epicPlayer ) ;