Program: 71185
Project: 71185
Buggy source:
private void buildUI(){
  if (!madeUI) {
    setupModLists();
    Texture badgeTexture=new Texture(makePath(BADGE_IMG));
    plusTexture=new Texture(makePath(PLUS_IMG));
    minusTexture=new Texture(makePath(MINUS_IMG));
    charOptHighlight=makeTexture("String_Node_Str",0.5f);
    confirmButton=new ConfirmButton(CONFIRM_BUTTON_TEXT);
    confirmButton.isDisabled=true;
    confirmButton.hide();
    climbPanel=new ModPanel((me) -> {
      ModButton ironclad=new ModButton(CHAR_SELECT_X_START,CHAR_SELECT_Y,makeTexture("String_Node_Str",0.5f),me,(button) -> {
        doSelect(0);
      }
);
      me.addUIElement(ironclad);
      ModButton silent=new ModButton(CHAR_SELECT_X_START + CHAR_SELECT_X_DELTA,CHAR_SELECT_Y,makeTexture("String_Node_Str",0.5f),me,(button) -> {
        doSelect(1);
      }
);
      me.addUIElement(silent);
      int index=2;
      keys=BaseMod.playerClassMap.keySet().toArray();
      for (      Object playerKey : keys) {
        ModButton customCharacterButton=makeCharacterButton(index,playerKey,me);
        me.addUIElement(customCharacterButton);
        index++;
      }
      setupHitboxes();
    }
){
      @Override public void render(      SpriteBatch sb){
        super.render(sb);
        renderMods(sb);
        confirmButton.render(sb);
      }
      @Override public void renderButtons(      SpriteBatch sb){
        if (selected >= 0) {
          sb.setColor(new Color(1.0F,0.8F,0.2F,0.25F + (MathUtils.cosDeg((float)(System.currentTimeMillis() / 4L % 360L)) + 1.25F) / 3.5F));
          sb.draw(charOptHighlight,(CHAR_SELECT_X_START + CHAR_SELECT_X_DELTA * selected) * Settings.scale,CHAR_SELECT_Y * Settings.scale,charOptHighlight.getWidth() * Settings.scale,charOptHighlight.getHeight() * Settings.scale);
        }
        super.renderButtons(sb);
      }
      @Override public void update(){
        super.update();
        confirmButton.update();
        recalcHitboxes();
        updateHitboxes();
        if (confirmButton.hb.clicked) {
          startRun();
        }
      }
    }
;
    ModLabel header=new ModLabel(HEADER_TEXT,HEADER_X,HEADER_Y,Settings.GOLD_COLOR,FontHelper.charTitleFont,climbPanel,(me) -> {
    }
);
    climbPanel.addUIElement(header);
    ModLabel possibleModsHeader=new ModLabel(POSSIBLE_MODS_HEADER_TEXT,POSSIBLE_MODS_HEADER_X,POSSIBLE_MODS_HEADER_Y,Settings.GOLD_COLOR,FontHelper.charDescFont,climbPanel,(me) -> {
    }
);
    climbPanel.addUIElement(possibleModsHeader);
    ModLabel appliedModsHeader=new ModLabel(APPLIED_MODS_HEADER_TEXT,APPLIED_MODS_HEADER_X,APPLIED_MODS_HEADER_Y,Settings.GOLD_COLOR,FontHelper.charDescFont,climbPanel,(me) -> {
    }
);
    climbPanel.addUIElement(appliedModsHeader);
    possiblePageLabel=new ModLabel(buildPossiblePageText(),POSSIBLE_PAGE_TEXT_X,POSSIBLE_PAGE_TEXT_Y,Settings.GOLD_COLOR,FontHelper.charDescFont,climbPanel,(me) -> {
    }
);
    climbPanel.addUIElement(possiblePageLabel);
    appliedPageLabel=new ModLabel(buildAppliedPageText(),APPLIED_PAGE_TEXT_X,APPLIED_PAGE_TEXT_Y,Settings.GOLD_COLOR,FontHelper.charDescFont,climbPanel,(me) -> {
    }
);
    climbPanel.addUIElement(appliedPageLabel);
    ModButton arrowLeftPossible=new ModButton(POSSIBLE_MODS_LEFT_ARROW_X,POSSIBLE_MODS_LEFT_ARROW_Y,ImageMaster.CF_LEFT_ARROW,climbPanel,(me) -> {
      possiblePage--;
      if (possiblePage < 0) {
        possiblePage=0;
      }
      possiblePageLabel.text=buildPossiblePageText();
    }
);
    climbPanel.addUIElement(arrowLeftPossible);
    ModButton arrowRightPossible=new ModButton(POSSIBLE_MODS_RIGHT_ARROW_X,POSSIBLE_MODS_RIGHT_ARROW_Y,ImageMaster.CF_RIGHT_ARROW,climbPanel,(me) -> {
      possiblePage++;
      if (possiblePage >= maxPossiblePage) {
        possiblePage=maxPossiblePage - 1;
      }
      if (possiblePage < 0) {
        possiblePage=0;
      }
      possiblePageLabel.text=buildPossiblePageText();
    }
);
    climbPanel.addUIElement(arrowRightPossible);
    ModButton arrowLeftApplied=new ModButton(APPLIED_MODS_LEFT_ARROW_X,APPLIED_MODS_LEFT_ARROW_Y,ImageMaster.CF_LEFT_ARROW,climbPanel,(me) -> {
      appliedPage--;
      if (appliedPage < 0) {
        appliedPage=0;
      }
      appliedPageLabel.text=buildAppliedPageText();
    }
);
    climbPanel.addUIElement(arrowLeftApplied);
    ModButton arrowRightApplied=new ModButton(APPLIED_MODS_RIGHT_ARROW_X,APPLIED_MODS_RIGHT_ARROW_Y,ImageMaster.CF_RIGHT_ARROW,climbPanel,(me) -> {
      appliedPage++;
      if (appliedPage >= maxAppliedPage) {
        appliedPage=maxAppliedPage - 1;
      }
      if (appliedPage < 0) {
        appliedPage=0;
      }
      appliedPageLabel.text=buildAppliedPageText();
    }
);
    climbPanel.addUIElement(arrowRightApplied);
    ModButton seedButton=new ModButton(SEED_X,SEED_Y,new Texture(makePath(SEED_IMG)),climbPanel,(me) -> {
      BaseMod.openTextPanel(climbPanel,"String_Node_Str",Long.toString(seed),Long.toString(DEFAULT_SEED),"String_Node_Str",(panel) -> {
      }
,(panel) -> {
        this.seed=Long.parseLong(ModTextPanel.textField);
        this.setSeed=true;
        System.out.println("String_Node_Str" + this.seed);
      }
);
    }
);
    ModButton chaoticRandomButton=new ModButton(CHAOTIC_RANDOM_X,CHAOTIC_RANDOM_Y,new Texture(makePath(CHAOTIC_RANDOM_IMG)),climbPanel,(me) -> {
      BaseMod.openTextPanel(climbPanel,"String_Node_Str",Integer.toString(modAmount),Integer.toString(DEFAULT_MOD_AMOUNT),"String_Node_Str",(panel) -> {
      }
,(panel) -> {
        this.modAmount=Integer.parseInt(ModTextPanel.textField);
        randomizeMods(modAmount,false);
      }
);
    }
);
    ModButton balancedRandomButton=new ModButton(BALANCED_RANDOM_X,BALANCED_RANDOM_Y,new Texture(makePath(BALANCED_RANDOM_IMG)),climbPanel,(me) -> {
      BaseMod.openTextPanel(climbPanel,"String_Node_Str",Integer.toString(modAmount),Integer.toString(DEFAULT_MOD_AMOUNT),"String_Node_Str",(panel) -> {
      }
,(panel) -> {
        this.modAmount=Integer.parseInt(ModTextPanel.textField);
        randomizeMods(modAmount,true);
      }
);
    }
);
    BaseMod.registerModBadge(badgeTexture,MODNAME,AUTHOR,DESCRIPTION,climbPanel);
    madeUI=true;
  }
}

Fixed version (ground truth):
private void buildUI(){
  if (!madeUI) {
    setupModLists();
    Texture badgeTexture=new Texture(makePath(BADGE_IMG));
    plusTexture=new Texture(makePath(PLUS_IMG));
    minusTexture=new Texture(makePath(MINUS_IMG));
    charOptHighlight=makeTexture("String_Node_Str",0.5f);
    confirmButton=new ConfirmButton(CONFIRM_BUTTON_TEXT);
    confirmButton.isDisabled=true;
    confirmButton.hide();
    climbPanel=new ModPanel((me) -> {
      ModButton ironclad=new ModButton(CHAR_SELECT_X_START,CHAR_SELECT_Y,makeTexture("String_Node_Str",0.5f),me,(button) -> {
        doSelect(0);
      }
);
      me.addUIElement(ironclad);
      ModButton silent=new ModButton(CHAR_SELECT_X_START + CHAR_SELECT_X_DELTA,CHAR_SELECT_Y,makeTexture("String_Node_Str",0.5f),me,(button) -> {
        doSelect(1);
      }
);
      me.addUIElement(silent);
      ModButton defect=new ModButton(CHAR_SELECT_X_START + (CHAR_SELECT_X_DELTA * 2),CHAR_SELECT_Y,makeTexture("String_Node_Str",0.5f),me,(button) -> {
        doSelect(2);
      }
);
      me.addUIElement(defect);
      int index=3;
      keys=BaseMod.playerClassMap.keySet().toArray();
      for (      Object playerKey : keys) {
        ModButton customCharacterButton=makeCharacterButton(index,playerKey,me);
        me.addUIElement(customCharacterButton);
        index++;
      }
      setupHitboxes();
    }
){
      @Override public void render(      SpriteBatch sb){
        super.render(sb);
        renderMods(sb);
        confirmButton.render(sb);
      }
      @Override public void renderButtons(      SpriteBatch sb){
        if (selected >= 0) {
          sb.setColor(new Color(1.0F,0.8F,0.2F,0.25F + (MathUtils.cosDeg((float)(System.currentTimeMillis() / 4L % 360L)) + 1.25F) / 3.5F));
          sb.draw(charOptHighlight,(CHAR_SELECT_X_START + CHAR_SELECT_X_DELTA * selected) * Settings.scale,CHAR_SELECT_Y * Settings.scale,charOptHighlight.getWidth() * Settings.scale,charOptHighlight.getHeight() * Settings.scale);
        }
        super.renderButtons(sb);
      }
      @Override public void update(){
        super.update();
        confirmButton.update();
        recalcHitboxes();
        updateHitboxes();
        if (confirmButton.hb.clicked) {
          startRun();
        }
      }
    }
;
    ModLabel header=new ModLabel(HEADER_TEXT,HEADER_X,HEADER_Y,Settings.GOLD_COLOR,FontHelper.charTitleFont,climbPanel,(me) -> {
    }
);
    climbPanel.addUIElement(header);
    ModLabel possibleModsHeader=new ModLabel(POSSIBLE_MODS_HEADER_TEXT,POSSIBLE_MODS_HEADER_X,POSSIBLE_MODS_HEADER_Y,Settings.GOLD_COLOR,FontHelper.charDescFont,climbPanel,(me) -> {
    }
);
    climbPanel.addUIElement(possibleModsHeader);
    ModLabel appliedModsHeader=new ModLabel(APPLIED_MODS_HEADER_TEXT,APPLIED_MODS_HEADER_X,APPLIED_MODS_HEADER_Y,Settings.GOLD_COLOR,FontHelper.charDescFont,climbPanel,(me) -> {
    }
);
    climbPanel.addUIElement(appliedModsHeader);
    possiblePageLabel=new ModLabel(buildPossiblePageText(),POSSIBLE_PAGE_TEXT_X,POSSIBLE_PAGE_TEXT_Y,Settings.GOLD_COLOR,FontHelper.charDescFont,climbPanel,(me) -> {
    }
);
    climbPanel.addUIElement(possiblePageLabel);
    appliedPageLabel=new ModLabel(buildAppliedPageText(),APPLIED_PAGE_TEXT_X,APPLIED_PAGE_TEXT_Y,Settings.GOLD_COLOR,FontHelper.charDescFont,climbPanel,(me) -> {
    }
);
    climbPanel.addUIElement(appliedPageLabel);
    ModButton arrowLeftPossible=new ModButton(POSSIBLE_MODS_LEFT_ARROW_X,POSSIBLE_MODS_LEFT_ARROW_Y,ImageMaster.CF_LEFT_ARROW,climbPanel,(me) -> {
      possiblePage--;
      if (possiblePage < 0) {
        possiblePage=0;
      }
      possiblePageLabel.text=buildPossiblePageText();
    }
);
    climbPanel.addUIElement(arrowLeftPossible);
    ModButton arrowRightPossible=new ModButton(POSSIBLE_MODS_RIGHT_ARROW_X,POSSIBLE_MODS_RIGHT_ARROW_Y,ImageMaster.CF_RIGHT_ARROW,climbPanel,(me) -> {
      possiblePage++;
      if (possiblePage >= maxPossiblePage) {
        possiblePage=maxPossiblePage - 1;
      }
      if (possiblePage < 0) {
        possiblePage=0;
      }
      possiblePageLabel.text=buildPossiblePageText();
    }
);
    climbPanel.addUIElement(arrowRightPossible);
    ModButton arrowLeftApplied=new ModButton(APPLIED_MODS_LEFT_ARROW_X,APPLIED_MODS_LEFT_ARROW_Y,ImageMaster.CF_LEFT_ARROW,climbPanel,(me) -> {
      appliedPage--;
      if (appliedPage < 0) {
        appliedPage=0;
      }
      appliedPageLabel.text=buildAppliedPageText();
    }
);
    climbPanel.addUIElement(arrowLeftApplied);
    ModButton arrowRightApplied=new ModButton(APPLIED_MODS_RIGHT_ARROW_X,APPLIED_MODS_RIGHT_ARROW_Y,ImageMaster.CF_RIGHT_ARROW,climbPanel,(me) -> {
      appliedPage++;
      if (appliedPage >= maxAppliedPage) {
        appliedPage=maxAppliedPage - 1;
      }
      if (appliedPage < 0) {
        appliedPage=0;
      }
      appliedPageLabel.text=buildAppliedPageText();
    }
);
    climbPanel.addUIElement(arrowRightApplied);
    ModButton seedButton=new ModButton(SEED_X,SEED_Y,new Texture(makePath(SEED_IMG)),climbPanel,(me) -> {
      BaseMod.openTextPanel(climbPanel,"String_Node_Str",Long.toString(seed),Long.toString(DEFAULT_SEED),"String_Node_Str",(panel) -> {
      }
,(panel) -> {
        this.seed=Long.parseLong(ModTextPanel.textField);
        this.setSeed=true;
        System.out.println("String_Node_Str" + this.seed);
      }
);
    }
);
    ModButton chaoticRandomButton=new ModButton(CHAOTIC_RANDOM_X,CHAOTIC_RANDOM_Y,new Texture(makePath(CHAOTIC_RANDOM_IMG)),climbPanel,(me) -> {
      BaseMod.openTextPanel(climbPanel,"String_Node_Str",Integer.toString(modAmount),Integer.toString(DEFAULT_MOD_AMOUNT),"String_Node_Str",(panel) -> {
      }
,(panel) -> {
        this.modAmount=Integer.parseInt(ModTextPanel.textField);
        randomizeMods(modAmount,false);
      }
);
    }
);
    ModButton balancedRandomButton=new ModButton(BALANCED_RANDOM_X,BALANCED_RANDOM_Y,new Texture(makePath(BALANCED_RANDOM_IMG)),climbPanel,(me) -> {
      BaseMod.openTextPanel(climbPanel,"String_Node_Str",Integer.toString(modAmount),Integer.toString(DEFAULT_MOD_AMOUNT),"String_Node_Str",(panel) -> {
      }
,(panel) -> {
        this.modAmount=Integer.parseInt(ModTextPanel.textField);
        randomizeMods(modAmount,true);
      }
);
    }
);
    BaseMod.registerModBadge(badgeTexture,MODNAME,AUTHOR,DESCRIPTION,climbPanel);
    madeUI=true;
  }
}