Hanako Games

News, Walkthroughs, and Chat about Anime Games

Mod: New Game Plus


SET

Mod: New Game Plus

#1 by SET - Jan 12 2014

This mod allows you to start again after winning the game and keeping 25% of your skills. It's an unlockable easy mode, essentially.
[Could not load http://all.your-base.org/Images/easymodo.jpg]
Yes, it's cheating. Don't use it if that offends you.
I do have an idea for an actually useful mod, so that'll be next.
Create a new text file in your LongLiveTheQueen/game directory, call it newgameplus.rpy and dump the following wall of text in there. To get rid of it delete both newgameplus.rpy and newgameplus.rpyc from that directory.
# newgameplus
# Allows you to start over after winning the game and keeping 25% of your skills.
# Written for version 1.2.13
# WARNING: UNOFFICIAL AND BARELY TESTED, USE AT YOUR OWN RISK!

init 1:
  python:
    def mod_newgameplus_unlock_lumen_powers():
      global lumen_unlocked
      lumen_unlocked = True
      global pre_lumen_meditation
      pre_lumen_meditation = meditation_
      checklist_unlock('lumen')
      if mod_newgameplus:
        global sense_magic_, resist_magic_, wield_magic_
        sense_magic_ = flags.get('mod_newgameplus_sense_magic', 0)
        resist_magic_ = flags.get('mod_newgameplus_resist_magic', 0)
        wield_magic_ = flags.get('mod_newgameplus_wield_magic', 0)
        if sense_magic_ >= 25 and resist_magic_ >= 25 and wield_magic_ >= 25:
          unlocked_outfits.add('Lumen')
        update_adjusted_stats()

    try:
      mod_newgameplus = 0

      epilogue = reversed(renpy.game.script.lookup('epilogue').get_children())
      for statement in epilogue:
        if isinstance(statement, renpy.ast.With):
          if not isinstance(statement.next, renpy.ast.Call):
            raise Exception('Something went wrong finding the call to the end game menu')
          break
      else:
        raise Exception('Unable to find the call to the end game menu')
      my_epilogue_ending = renpy.game.script.lookup('mod_newgameplus_epilogue_ending').get_children()[0]

      # Just hijack the entire function/label, it's easier that way.
      unlock_lumen_powers = mod_newgameplus_unlock_lumen_powers
      renpy.config.label_overrides['init_stats'] = 'mod_newgameplus_init_stats'

      # Some proper code injection in the epilogue because it's one big label.
      statement.chain(my_epilogue_ending)
    except Exception, e:
      raise Exception('Exception "%s" while trying to apply mod "newgameplus".\nPlease delete the files newgameplus.rpy and newgameplus.rpyc from your game directory to get rid of this error.' % (e, ))

label mod_newgameplus_init_stats:
  python:
    weeknum = 0
    cruelty = 0
    commoner_approval = 0
    noble_approval = 0
    lassi = 10000
    unlocked_outfits = set()

    readback_log_line = []
    readback_log_data = []

    unroller.last_save_caption = ''

    if not persistent.game_successfully_started_in_gl:
      if renpy.get_renderer_info()['renderer']=='gl':
        persistent.game_successfully_started_in_gl = True

    if mod_newgameplus:
      composure_ *= mod_newgameplus
      elegance_ *= mod_newgameplus
      presence_ *= mod_newgameplus
      if composure_ >= 25 and elegance_ >= 25 and presence_ >= 25:
        unlocked_outfits.add('Royal Demeanor')

      public_speaking_ *= mod_newgameplus
      court_manners_ *= mod_newgameplus
      flattery_ *= mod_newgameplus
      if public_speaking_ >= 25 and court_manners_ >= 25 and flattery_ >= 25:
        unlocked_outfits.add('Conversation')

      decoration_ *= mod_newgameplus
      instrument_ *= mod_newgameplus
      voice_skill_ *= mod_newgameplus
      if decoration_ >= 25 and instrument_ >= 25 and voice_skill_ >= 25:
        unlocked_outfits.add('Expression')

      dance_ *= mod_newgameplus
      reflexes_ *= mod_newgameplus
      flexibility_ *= mod_newgameplus
      if dance_ >= 25 and reflexes_ >= 25 and flexibility_ >= 25:
        unlocked_outfits.add('Agility')

      swords_ *= mod_newgameplus
      archery_ *= mod_newgameplus
      polearms_ *= mod_newgameplus
      if swords_ >= 25 and archery_ >= 25 and polearms_ >= 25:
        unlocked_outfits.add('Weapons')

      running_ *= mod_newgameplus
      climbing_ *= mod_newgameplus
      swimming_ *= mod_newgameplus
      if running_ >= 25 and climbing_ >= 25 and swimming_ >= 25:
        unlocked_outfits.add('Athletics')

      horses_ *= mod_newgameplus
      dogs_ *= mod_newgameplus
      falcons_ *= mod_newgameplus
      if horses_ >= 25 and dogs_ >= 25 and falcons_ >= 25:
        unlocked_outfits.add('Animal Handling')

      novan_history_ *= mod_newgameplus
      foreign_affairs_ *= mod_newgameplus
      world_history_ *= mod_newgameplus
      if novan_history_ >= 25 and foreign_affairs_ >= 25 and world_history_ >= 25:
        unlocked_outfits.add('History')

      internal_affairs_ *= mod_newgameplus
      foreign_intelligence_ *= mod_newgameplus
      ciphering_ *= mod_newgameplus
      if internal_affairs_ >= 25 and foreign_intelligence_ >= 25 and ciphering_ >= 25:
        unlocked_outfits.add('Intrigue')

      herbs_ *= mod_newgameplus
      battlefield_medicine_ *= mod_newgameplus
      poison_ *= mod_newgameplus
      if herbs_ >= 25 and battlefield_medicine_ >= 25 and poison_ >= 25:
        unlocked_outfits.add('Medicine')

      accounting_ *= mod_newgameplus
      trade_ *= mod_newgameplus
      production_ *= mod_newgameplus
      if accounting_ >= 25 and trade_ >= 25 and production_ >= 25:
        unlocked_outfits.add('Economics')

      strategy_ *= mod_newgameplus
      naval_strategy_ *= mod_newgameplus
      logistics_ *= mod_newgameplus
      if strategy_ >= 25 and naval_strategy_ >= 25 and logistics_ >= 25:
        unlocked_outfits.add('Military')

      meditation_ *= mod_newgameplus
      divination_ *= mod_newgameplus
      lore_ *= mod_newgameplus
      if meditation_ >= 25 and divination_ >= 25 and lore_ >= 25:
        unlocked_outfits.add('Faith')

      # Just saving the Lumen skills in some flags for now.
      # They will be reset to 0 and restored once the crystal is unlocked.
      # Otherwise we might be passing lumen skill checks without being a Lumen. Oops.
      flags['mod_newgameplus_sense_magic'] = sense_magic_ * mod_newgameplus
      flags['mod_newgameplus_resist_magic'] = resist_magic_ * mod_newgameplus
      flags['mod_newgameplus_wield_magic'] = wield_magic_ * mod_newgameplus
    else:
      composure_ = elegance_ = presence_ = 0
      public_speaking_ = court_manners_ = flattery_ = 0
      decoration_ = instrument_ = voice_skill_ = 0

      dance_ = reflexes_ = flexibility_ = 0
      swords_ = archery_ = polearms_ = 0
      running_ = climbing_ = swimming_ = 0
      horses_ = dogs_ = falcons_ = 0

      novan_history_ = foreign_affairs_ = world_history_ = 0
      internal_affairs_ = foreign_intelligence_ = ciphering_ = 0
      herbs_ = battlefield_medicine_ = poison_ = 0
      accounting_ = trade_ = production_ = 0
      strategy_ = naval_strategy_ = logistics_ = 0

      meditation_ = divination_ = lore_ = 0

    sense_magic_ = resist_magic_ = wield_magic_ = 0

    update_adjusted_stats()
    update_bonuses()

  return

# Reinitialize some variables that the game itself only assigns in init blocks, which will *not* be executed again.
label mod_newgameplus_restart:
  hide screen credits
  python:
    # Fraction of skill points we're allowed to keep.
    mod_newgameplus = 0.25
    # Otherwise Lumen skills might be preselected, allowing the study of Lumen skills before the crystal was unlocked.
    current_morning_activity_group = current_evening_activity_group = None
    current_morning_activity = current_evening_activity = None
    # Because apparently Novan queens have to strip during coronation?
    current_outfit = 'boarding_school'
    # Locking Lumen powers again, skills will be returned on unlock.
    mentor = 'ursul'
    lumen_unlocked = False
  jump start

# Haven't figured out yet how to modify existing screens, so here's the whole thing.
screen mod_newgameplus_epilogue_menu:
    modal False
    vbox:
        yanchor 0
        xpos 693
        xanchor 0.5
        ypos 430
        textbutton ('Save Story'):
            action Return('save')
            style style.menu_choice_button
            xminimum 400
            xmaximum 400
        null:
            height 2
        textbutton ('New Game Plus'):
            action Return('ngp')
            style style.menu_choice_button
            xminimum 400
            xmaximum 400
        null:
            height 2
        textbutton 'Done':
            action Return()
            style style.menu_choice_button
            xminimum 400
            xmaximum 400

# Changing a lot of stuff here, so let's just make a new one for displaying this screen.
label mod_newgameplus_epilogue_save_log:
  # Show our own end screen with the New Game Plus option on it instead.
  show screen mod_newgameplus_epilogue_menu
  show epilogue_menu_hider onlayer screens:
    pos (483,420) 
    on hide:
      linear 0.6 alpha 0.0 
  hide epilogue_menu_hider onlayer screens
  $ ret = ui.interact()
  if ret=='save':
    python:
      if readback_log_line:
        readback_log_newline()
      log_written = save_log(filename='victory.html')
    if log_written:
      python:
        log_file_name = renpy.config.savedir+'/victory.html'
        open_log(filename=log_file_name)
        log_file_name = log_file_name.decode('utf-8')
      "Log saved to %(log_file_name)s\nStarting browser."
    else:
      "An error occurred saving the log.\n%(log_write_error)s"
    jump mod_newgameplus_epilogue_save_log
  elif ret=='ngp':
    hide screen mod_newgameplus_epilogue_menu
    return
  jump end_menu_jump_to_title

label mod_newgameplus_epilogue_ending:
  call mod_newgameplus_epilogue_save_log
  # The call will only return if New Game Plus was selected, otherwise it restarts RenPy.
  jump mod_newgameplus_restart

gleeful54

Re: Mod: New Game Plus

#2 by gleeful54 - Jan 18 2014

So I tried this out and.... LLTQ wouldn't start! It would show the loading icon then the icon would disappear and NO GAME! D: It works now that I've deleted the mod though. My computer's horrible. Any ideas at all why it wouldn't work?

SET

Re: Mod: New Game Plus

#3 by SET - Jan 18 2014

Sorry, no idea just from that, but a few things to consider:
In another thread you mentioned that you were playing an older version of the game. Have you updated now? This mod was made for version 1.2.13 and I'm pretty sure it wouldn't work with other versions. I also only tested it with the Steam version, but I think that shouldn't really matter. Probably.
If it still doesn't work, have you tried the tutorial autoskip mod I posted in the other thread (Re: What about modding?)? It's way smaller and a lot less invasive, so it should have a better chance of working.
One interesting piece of information would also be if you had to delete only the .rpy file to remove the mod or if there was also a .rpyc file.
Also, what's you operating system? Windows, Mac, Linux, Android?

I'm still confused why this happened, even if everything goes very wrong, at the very least the game should leave some kind of error message.

gleeful54

Re: Mod: New Game Plus

#4 by gleeful54 - Jan 22 2014

SET:

Sorry, no idea just from that, but a few things to consider:
In another thread you mentioned that you were playing an older version of the game. Have you updated now? This mod was made for version 1.2.13 and I'm pretty sure it wouldn't work with other versions. I also only tested it with the Steam version, but I think that shouldn't really matter. Probably.
If it still doesn't work, have you tried the tutorial autoskip mod I posted in the other thread (Re: What about modding?)? It's way smaller and a lot less invasive, so it should have a better chance of working.
One interesting piece of information would also be if you had to delete only the .rpy file to remove the mod or if there was also a .rpyc file.
Also, what's you operating system? Windows, Mac, Linux, Android?

I'm still confused why this happened, even if everything goes very wrong, at the very least the game should leave some kind of error message.
Not sure how to tell what version I have, and how do I update it?

SET

Re: Mod: New Game Plus

#5 by SET - Jan 23 2014

I don't think the game version is mentioned anywhere in the actual game. There is a file called "game_version" that contains it, it might be the only place where it's mentioned. Says "LongLiveTheQueenRetail-1.2.13" for me.
As for updating, depends where you bought it:
Steam: Should update automatically.
GOG: Just download the game again. The download page should also tell you which version they have.
Directly from the author: Sorry, no idea. Someone who did that would have to answer that.

Spiky Caterpillar

Re: Mod: New Game Plus

#6 by Spiky Caterpillar - Feb 1 2014

For direct purchases, Preferences: Check for updates will also show you what version you currently have.

Ariel Schnee

Re: Mod: New Game Plus

#7 by Ariel Schnee - Feb 8 2014

SET:

I don't think the game version is mentioned anywhere in the actual game. There is a file called "game_version" that contains it, it might be the only place where it's mentioned. Says "LongLiveTheQueenRetail-1.2.13" for me.
As for updating, depends where you bought it:
Steam: Should update automatically.
GOG: Just download the game again. The download page should also tell you which version they have.
Directly from the author: Sorry, no idea. Someone who did that would have to answer that.
Start the game.

Click on 'Preferences'.

Click 'Check For Updates' tab.

Click 'Check for updates' tab.

Make sure 'Beta' is enabled and 'Alpha' is disabled.

Then it should let you know if a new version is available for it now.

My current version is : "LongLiveTheQueenRetail-1.2.20.1".
---

(Dead link removed)

Ariel Schnee

Re: Mod: New Game Plus

#8 by Ariel Schnee - Jan 20 2015

It doesn't seem to work with 1.2.24.
---

(Dead link removed)

SET

Re: Mod: New Game Plus

#9 by SET - Jan 21 2015

What exactly isn't working? I have 1.2.24 (Steam Edition) now and it seems to work. But I haven't played in a year and just reloaded a old savegame, that might have influenced things. I might have to actually play through the whole game from the beginning to get a good picture. Still ann error message or description might help.

Ariel Schnee

Re: Mod: New Game Plus

#10 by Ariel Schnee - Jan 21 2015

SET:

What exactly isn't working? I have 1.2.24 (Steam Edition) now and it seems to work. But I haven't played in a year and just reloaded a old savegame, that might have influenced things. I might have to actually play through the whole game from the beginning to get a good picture. Still ann error message or description might help.
I played through an ending.

Went to the menu thing.

But there was no new game+ option, just the normal options that are usually there.
---

(Dead link removed)

SET

Re: Mod: New Game Plus

#11 by SET - Jan 22 2015

I just tried playing through a new game in 1.2.24 and it worked for me.
So here's a few things to try to figure this out:
  • 1. Are you sure the newgameplus.rpy file is still in your game directory? The update to the new version might have deleted it.
    2. Did you actually win the game? The option is only available if get make it to coronation.
    3. Try rightclicking, going to Preferences, Video Settings, Debugging Console and enter
    say(str(mod_newgameplus), "")
    and press enter twice. What does the console say?

  • Ariel Schnee

    Re: Mod: New Game Plus

    #12 by Ariel Schnee - Jan 23 2015

    SET:

    I just tried playing through a new game in 1.2.24 and it worked for me.
    So here's a few things to try to figure this out:
  • 1. Are you sure the newgameplus.rpy file is still in your game directory? The update to the new version might have deleted it.
  • C:\Program Files\Long Live The Queen\newgameplus.rpy

    SET:

    2. Did you actually win the game? The option is only available if get make it to coronation.
    Yep. Used a saved game file. Had a good run through.

    SET:

    3. Try rightclicking, going to Preferences, Video Settings, Debugging Console and enter
    say(str(mod_newgameplus), "")
    and press enter twice. What does the console say?[/list]
    " An exception occurred: name 'mod_newgameplus' is not defined "
    ---

    (Dead link removed)

    Spiky Caterpillar

    Re: Mod: New Game Plus

    #13 by Spiky Caterpillar - Jan 24 2015

    Neko Hibiki:

    SET:

  • 1. Are you sure the newgameplus.rpy file is still in your game directory? The update to the new version might have deleted it.
  • C:\Program Files\Long Live The Queen\newgameplus.rpy
    It should be in C:\Program Files\Long Live The Queen\game\newgameplus.rpy.
    (I occasionally make that mistake when testing modstuff too)

    SET

    Re: Mod: New Game Plus

    #14 by SET - Jan 26 2015

    Jup, what the Caterpillar said, wrong directory.
    That said, version 1.3 is a huge update, I'm expecting that it will break all mods. I'll try to adjust them once the update hits Steam.

    ark99k

    Re: Mod: New Game Plus

    #15 by ark99k - Aug 13 2015

    I set it up, but there isn't any option for "New Game +"? How do I use it then?
    ★Shining like a star!★

    Milkman

    problem

    #16 by Milkman - Aug 10 2016

    "I'm sorry, but an uncaught exception occurred.

    While parsing C:\Program Files (x86)\Steam\steamapps\common\LongLiveTheQueen/game/newgame.rpy.
    Exception: game/newgame.rpy contains a tab character on line 250. Tab characters are not allowed in Ren'Py scripts.

    -- Full Traceback ------------------------------------------------------------

    Full traceback:
    File "C:\Program Files (x86)\Steam\steamapps\common\LongLiveTheQueen\renpy\bootstrap.py", line 274, in bootstrap
    File "C:\Program Files (x86)\Steam\steamapps\common\LongLiveTheQueen\renpy\main.py", line 273, in main
    File "C:\Program Files (x86)\Steam\steamapps\common\LongLiveTheQueen\renpy\script.py", line 173, in load_script
    File "C:\Program Files (x86)\Steam\steamapps\common\LongLiveTheQueen\renpy\script.py", line 397, in load_appropriate_file
    File "C:\Program Files (x86)\Steam\steamapps\common\LongLiveTheQueen\renpy\script.py", line 305, in load_file
    File "C:\Program Files (x86)\Steam\steamapps\common\LongLiveTheQueen\renpy\script.py", line 245, in load_file_core
    File "C:\Program Files (x86)\Steam\steamapps\common\LongLiveTheQueen\renpy\parser.py", line 1897, in parse
    File "C:\Program Files (x86)\Steam\steamapps\common\LongLiveTheQueen\renpy\parser.py", line 208, in list_logical_lines
    Exception: game/newgame.rpy contains a tab character on line 250. Tab characters are not allowed in Ren'Py scripts.

    Windows-post2008Server-6.2.9200
    Ren'Py 6.12.2.1531"


    so thats the log i am dead

    LordeOfTheFries

    Re: Mod: New Game Plus

    #17 by LordeOfTheFries - Aug 11 2016

    Sounds like you copied a bit too much. Edit the text file? Make sure there are no tabs at the end. Also, spacing matters.

    Oh, and I edited that script a while back for my own purposes, use at your own risk:
    
    # newgameplus
    # Allows you to start over after winning the game and keeping 25% of your skills.
    # Written for version 1.2.13
    # WARNING: UNOFFICIAL AND BARELY TESTED, USE AT YOUR OWN RISK!
    
    # WARNING: Modified by a complete noob, tested (a little) with version 1.3.17, original script by SET
    # Allows keeping 100% skills, a certain percentage and 'capping' them at a set level
    
    init 1:
      python:
        def mod_newgameplus_unlock_lumen_powers():
          global lumen_unlocked
          lumen_unlocked = True
          global pre_lumen_meditation
          pre_lumen_meditation = meditation_
          checklist_unlock('lumen')
          if mod_newgameplus:
            global sense_magic_, resist_magic_, wield_magic_
            sense_magic_ = flags.get('mod_newgameplus_sense_magic', 0)
            resist_magic_ = flags.get('mod_newgameplus_resist_magic', 0)
            wield_magic_ = flags.get('mod_newgameplus_wield_magic', 0)
            if mod_newgameplus_statroof:
              if sense_magic_ > mod_newgameplus_statroof:
                sense_magic_ = mod_newgameplus_statroof
              if resist_magic_ > mod_newgameplus_statroof:
                resist_magic_ = mod_newgameplus_statroof
              if wield_magic_ > mod_newgameplus_statroof:
                wield_magic_ = mod_newgameplus_statroof
            if sense_magic_ >= 25 and resist_magic_ >= 25 and wield_magic_ >= 25:
              unlocked_outfits.add('Lumen')
            update_adjusted_stats()
            
    
        try:
          mod_newgameplus = 0.25
          mod_newgameplus_statroof = 100
    
          epilogue = reversed(renpy.game.script.lookup('epilogue').get_children())
          for statement in epilogue:
            if isinstance(statement, renpy.ast.With):
              if not isinstance(statement.next, renpy.ast.Call):
                raise Exception('Something went wrong finding the call to the end game menu')
              break
          else:
            raise Exception('Unable to find the call to the end game menu')
          my_epilogue_ending = renpy.game.script.lookup('mod_newgameplus_epilogue_ending').get_children()[0]
    
          # Just hijack the entire function/label, it's easier that way.
          unlock_lumen_powers = mod_newgameplus_unlock_lumen_powers
          renpy.config.label_overrides['init_stats'] = 'mod_newgameplus_init_stats'
    
          # Some proper code injection in the epilogue because it's one big label.
          statement.chain(my_epilogue_ending)
        except Exception, e:
          raise Exception('Exception "%s" while trying to apply mod "newgameplus".\nPlease delete the files newgameplus.rpy and newgameplus.rpyc from your game directory to get rid of this error.' % (e, ))
    
    label mod_newgameplus_init_stats:
      python:
        weeknum = 0
        cruelty = 0
        commoner_approval = 0
        noble_approval = 0
        lassi = 10000
        unlocked_outfits = set()
    
        readback_log_line = []
        readback_log_data = []
    
        unroller.last_save_caption = ''
    
        if not persistent.game_successfully_started_in_gl:
          if renpy.get_renderer_info()['renderer']=='gl':
            persistent.game_successfully_started_in_gl = True
    
        if mod_newgameplus:
          composure_ *= mod_newgameplus
          elegance_ *= mod_newgameplus
          presence_ *= mod_newgameplus
    
          public_speaking_ *= mod_newgameplus
          court_manners_ *= mod_newgameplus
          flattery_ *= mod_newgameplus
    
          decoration_ *= mod_newgameplus
          instrument_ *= mod_newgameplus
          voice_skill_ *= mod_newgameplus
    
          dance_ *= mod_newgameplus
          reflexes_ *= mod_newgameplus
          flexibility_ *= mod_newgameplus
    
          swords_ *= mod_newgameplus
          archery_ *= mod_newgameplus
          polearms_ *= mod_newgameplus
    
          running_ *= mod_newgameplus
          climbing_ *= mod_newgameplus
          swimming_ *= mod_newgameplus
    
          horses_ *= mod_newgameplus
          dogs_ *= mod_newgameplus
          falcons_ *= mod_newgameplus
    
          novan_history_ *= mod_newgameplus
          foreign_affairs_ *= mod_newgameplus
          world_history_ *= mod_newgameplus
    
          internal_affairs_ *= mod_newgameplus
          foreign_intelligence_ *= mod_newgameplus
          ciphering_ *= mod_newgameplus
    
          herbs_ *= mod_newgameplus
          battlefield_medicine_ *= mod_newgameplus
          poison_ *= mod_newgameplus
    
          accounting_ *= mod_newgameplus
          trade_ *= mod_newgameplus
          production_ *= mod_newgameplus
    
          strategy_ *= mod_newgameplus
          naval_strategy_ *= mod_newgameplus
          logistics_ *= mod_newgameplus
    
          meditation_ *= mod_newgameplus
          divination_ *= mod_newgameplus
          lore_ *= mod_newgameplus
    
          # Just saving the Lumen skills in some flags for now.
          # They will be reset to 0 and restored once the crystal is unlocked.
          # Otherwise we might be passing lumen skill checks without being a Lumen. Oops.
          flags['mod_newgameplus_sense_magic'] = sense_magic_ * mod_newgameplus
          flags['mod_newgameplus_resist_magic'] = resist_magic_ * mod_newgameplus
          flags['mod_newgameplus_wield_magic'] = wield_magic_ * mod_newgameplus
          
          # Limit stats to a certain number
          if mod_newgameplus_statroof != None:
            if composure_ > mod_newgameplus_statroof:
              composure_ = mod_newgameplus_statroof
            if elegance_ > mod_newgameplus_statroof:
              elegance_ = mod_newgameplus_statroof
            if presence_ > mod_newgameplus_statroof:
              presence_ = mod_newgameplus_statroof
            if public_speaking_ > mod_newgameplus_statroof:
              public_speaking_ = mod_newgameplus_statroof
            if court_manners_ > mod_newgameplus_statroof:
              court_manners_ = mod_newgameplus_statroof
            if flattery_ > mod_newgameplus_statroof:
              flattery_ = mod_newgameplus_statroof
            if decoration_ > mod_newgameplus_statroof:
              decoration_ = mod_newgameplus_statroof
            if instrument_ > mod_newgameplus_statroof:
              instrument_ = mod_newgameplus_statroof
            if voice_skill_ > mod_newgameplus_statroof:
              voice_skill_ = mod_newgameplus_statroof
            if dance_ > mod_newgameplus_statroof:
              dance_ = mod_newgameplus_statroof
            if reflexes_ > mod_newgameplus_statroof:
              reflexes_ = mod_newgameplus_statroof
            if flexibility_ > mod_newgameplus_statroof:
              flexibility_ = mod_newgameplus_statroof
            if swords_ > mod_newgameplus_statroof:
              swords_ = mod_newgameplus_statroof
            if archery_ > mod_newgameplus_statroof:
              archery_ = mod_newgameplus_statroof
            if polearms_ > mod_newgameplus_statroof:
              polearms_ = mod_newgameplus_statroof
            if running_ > mod_newgameplus_statroof:
              running_ = mod_newgameplus_statroof
            if climbing_ > mod_newgameplus_statroof:
              climbing_ = mod_newgameplus_statroof
            if swimming_ > mod_newgameplus_statroof:
              swimming_ = mod_newgameplus_statroof
            if horses_ > mod_newgameplus_statroof:
              horses_ = mod_newgameplus_statroof
            if dogs_ > mod_newgameplus_statroof:
              dogs_ = mod_newgameplus_statroof
            if falcons_ > mod_newgameplus_statroof:
              falcons_ = mod_newgameplus_statroof
            if novan_history_ > mod_newgameplus_statroof:
              novan_history_ = mod_newgameplus_statroof
            if foreign_affairs_ > mod_newgameplus_statroof:
              foreign_affairs_ = mod_newgameplus_statroof
            if world_history_ > mod_newgameplus_statroof:
              world_history_ = mod_newgameplus_statroof
            if internal_affairs_ > mod_newgameplus_statroof:
              internal_affairs_ = mod_newgameplus_statroof
            if foreign_intelligence_ > mod_newgameplus_statroof:
              foreign_intelligence_ = mod_newgameplus_statroof
            if ciphering_ > mod_newgameplus_statroof:
              ciphering_ = mod_newgameplus_statroof
            if herbs_ > mod_newgameplus_statroof:
              herbs_ = mod_newgameplus_statroof
            if battlefield_medicine_ > mod_newgameplus_statroof:
              battlefield_medicine_ = mod_newgameplus_statroof
            if poison_ > mod_newgameplus_statroof:
              poison_ = mod_newgameplus_statroof
            if accounting_ > mod_newgameplus_statroof:
              accounting_ = mod_newgameplus_statroof
            if trade_ > mod_newgameplus_statroof:
              trade_ = mod_newgameplus_statroof
            if production_ > mod_newgameplus_statroof:
              production_ = mod_newgameplus_statroof
            if strategy_ > mod_newgameplus_statroof:
              strategy_ = mod_newgameplus_statroof
            if naval_strategy_ > mod_newgameplus_statroof:
              naval_strategy_ = mod_newgameplus_statroof
            if logistics_ > mod_newgameplus_statroof:
              logistics_ = mod_newgameplus_statroof
            if meditation_ > mod_newgameplus_statroof:
              meditation_ = mod_newgameplus_statroof
            if divination_ > mod_newgameplus_statroof:
              divination_ = mod_newgameplus_statroof
            if lore_ > mod_newgameplus_statroof:
              lore_ = mod_newgameplus_statroof
          
          # Outfits
          if composure_ >= 25 and elegance_ >= 25 and presence_ >= 25:
            unlocked_outfits.add('Royal Demeanor')
          if public_speaking_ >= 25 and court_manners_ >= 25 and flattery_ >= 25:
            unlocked_outfits.add('Conversation')
          if decoration_ >= 25 and instrument_ >= 25 and voice_skill_ >= 25:
            unlocked_outfits.add('Expression')
          if dance_ >= 25 and reflexes_ >= 25 and flexibility_ >= 25:
            unlocked_outfits.add('Agility')
          if swords_ >= 25 and archery_ >= 25 and polearms_ >= 25:
            unlocked_outfits.add('Weapons')
          if running_ >= 25 and climbing_ >= 25 and swimming_ >= 25:
            unlocked_outfits.add('Athletics')
          if horses_ >= 25 and dogs_ >= 25 and falcons_ >= 25:
            unlocked_outfits.add('Animal Handling')
          if novan_history_ >= 25 and foreign_affairs_ >= 25 and world_history_ >= 25:
            unlocked_outfits.add('History')
          if internal_affairs_ >= 25 and foreign_intelligence_ >= 25 and ciphering_ >= 25:
            unlocked_outfits.add('Intrigue')
          if herbs_ >= 25 and battlefield_medicine_ >= 25 and poison_ >= 25:
            unlocked_outfits.add('Medicine')
          if accounting_ >= 25 and trade_ >= 25 and production_ >= 25:
            unlocked_outfits.add('Economics')
          if strategy_ >= 25 and naval_strategy_ >= 25 and logistics_ >= 25:
            unlocked_outfits.add('Military')
          if meditation_ >= 25 and divination_ >= 25 and lore_ >= 25:
            unlocked_outfits.add('Faith')
          
        else:
          composure_ = elegance_ = presence_ = 0
          public_speaking_ = court_manners_ = flattery_ = 0
          decoration_ = instrument_ = voice_skill_ = 0
    
          dance_ = reflexes_ = flexibility_ = 0
          swords_ = archery_ = polearms_ = 0
          running_ = climbing_ = swimming_ = 0
          horses_ = dogs_ = falcons_ = 0
    
          novan_history_ = foreign_affairs_ = world_history_ = 0
          internal_affairs_ = foreign_intelligence_ = ciphering_ = 0
          herbs_ = battlefield_medicine_ = poison_ = 0
          accounting_ = trade_ = production_ = 0
          strategy_ = naval_strategy_ = logistics_ = 0
    
          meditation_ = divination_ = lore_ = 0
    
        sense_magic_ = resist_magic_ = wield_magic_ = 0
    
        update_adjusted_stats()
        update_bonuses()
    
      return
    
    # Reinitialize some variables that the game itself only assigns in init blocks, which will *not* be executed again.
    label mod_newgameplus_restart:
      hide screen credits
      python:
        # Fraction of skill points we're allowed to keep.
        if mod_newgameplus is None:
          mod_newgameplus = 0.25
        if mod_newgameplus_statroof is None:
          mod_newgameplus_statroof = 100
        # Otherwise Lumen skills might be preselected, allowing the study of Lumen skills before the crystal was unlocked.
        current_morning_activity_group = current_evening_activity_group = None
        current_morning_activity = current_evening_activity = None
        # Because apparently Novan queens have to strip during coronation?
        current_outfit = 'boarding_school'
        # Locking Lumen powers again, skills will be returned on unlock.
        mentor = 'ursul'
        lumen_unlocked = False
      jump start
    
    screen mod_end_menu_screen:
        vbox pos (693, 552) anchor (0.5, 1.0) spacing 5:
            textbutton _('Title Screen') xminimum 500 xmaximum 500:
                action Jump('end_menu_jump_to_title')
            textbutton _('Show Log') xminimum 500 xmaximum 500:
                action Jump('save_story')
            textbutton _('Load Game') xminimum 500 xmaximum 500:
                action ShowMenu('load')
            textbutton _('New Game Plus') xminimum 500 xmaximum 500:
                action Jump('mod_ngp_screen')
            textbutton _('Quit') xminimum 500 xmaximum 500:
                action Quit(confirm=False)
    
    # Haven't figured out yet how to modify existing screens, so here's the whole thing.
    screen mod_newgameplus_epilogue_menu:
        modal False
        vbox:
            yanchor 1.0
            xpos 693
            xanchor 0.5
            ypos 552
            spacing 5
            textbutton "Stat Percentage":
                action Jump('mod_newgameplus_statmult_menu')
                xminimum 400
                xmaximum 400
            textbutton "Stat Roof":
                action Jump('mod_newgameplus_statroof_menu')
                xminimum 400
                xmaximum 400
            textbutton "Drop Selective Stats":
                action Jump('mod_dropstat')
                xminimum 400
                xmaximum 400
            textbutton "Start New Game Plus":
                action Jump('mod_ngp')
                xminimum 400
                xmaximum 400
            textbutton "Back":
                action Jump('mod_cancel_ngp')
                xminimum 400
                xmaximum 400
    
    screen mod_newgameplus_ability_drop_menu:
        modal False
        vbox:
            yanchor 0
            xpos 500
            xanchor 0.5
            ypos 50
            textbutton ('Royal Demeaonor'):
                action Jump('mod_drop_royal_demeanor')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('Conversation'):
                action Jump('mod_drop_conversation')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('Expression'):
                action Jump('mod_drop_expression')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('Agility'):
                action Jump('mod_drop_agility')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('Weapons'):
                action Jump('mod_drop_weapons')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('Athletics'):
                action Jump('mod_drop_athletics')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('Animal Handling'):
                action Jump('mod_drop_animal_handling')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
        vbox:
            yanchor 0
            xpos 800
            xanchor 0.5
            ypos 50
            textbutton ('History'):
                action Jump('mod_drop_history')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('Intrigue'):
                action Jump('mod_drop_intrigue')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('Medicine'):
                action Jump('mod_drop_medicine')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('Economics'):
                action Jump('mod_drop_Economics')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('Military'):
                action Jump('mod_drop_military')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('Faith'):
                action Jump('mod_drop_faith')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('Lumen'):
                action Jump('mod_drop_lumen')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
        vbox:
            yanchor 0
            xpos 650
            xanchor 0.5
            ypos 0
            textbutton 'Done':
                action Jump('mod_dropstat_done')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
    
    screen mod_newgameplus_statroof_menu:
        modal False
        vbox:
            yanchor 0
            xpos 500
            xanchor 0.5
            ypos 50
            textbutton ('5'):
                action [SetVariable("mod_newgameplus_statroof",5), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('15'):
                action [SetVariable("mod_newgameplus_statroof",15), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('25'):
                action [SetVariable("mod_newgameplus_statroof",25), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('35'):
                action [SetVariable("mod_newgameplus_statroof",35), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('45'):
                action [SetVariable("mod_newgameplus_statroof",45), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('55'):
                action [SetVariable("mod_newgameplus_statroof",55), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('65'):
                action [SetVariable("mod_newgameplus_statroof",65), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('75'):
                action [SetVariable("mod_newgameplus_statroof",75), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('85'):
                action [SetVariable("mod_newgameplus_statroof",85), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('95'):
                action [SetVariable("mod_newgameplus_statroof",95), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
        vbox:
            yanchor 0
            xpos 800
            xanchor 0.5
            ypos 50
            textbutton ('10'):
                action [SetVariable("mod_newgameplus_statroof",10), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('20'):
                action [SetVariable("mod_newgameplus_statroof",20), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('30'):
                action [SetVariable("mod_newgameplus_statroof",30), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('40'):
                action [SetVariable("mod_newgameplus_statroof",40), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('50'):
                action [SetVariable("mod_newgameplus_statroof",50), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('60'):
                action [SetVariable("mod_newgameplus_statroof",60), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('70'):
                action [SetVariable("mod_newgameplus_statroof",70), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('80'):
                action [SetVariable("mod_newgameplus_statroof",80), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('90'):
                action [SetVariable("mod_newgameplus_statroof",90), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('100'):
                action [SetVariable("mod_newgameplus_statroof",100), Jump('mod_newgameplus_statroof_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
        vbox:
            yanchor 0
            xpos 650
            xanchor 0.5
            ypos 0
            textbutton 'Done':
                action Jump('mod_newgameplus_statroof_set')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
    
    screen mod_newgameplus_statmult_menu:
        modal False
        vbox:
            yanchor 0
            xpos 500
            xanchor 0.5
            ypos 50
            textbutton ('5 %'):
                action [SetVariable("mod_newgameplus",0.05), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('15 %'):
                action [SetVariable("mod_newgameplus",0.15), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('25 %'):
                action [SetVariable("mod_newgameplus",0.25), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('35 %'):
                action [SetVariable("mod_newgameplus",0.35), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('45 %'):
                action [SetVariable("mod_newgameplus",0.45), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('55 %'):
                action [SetVariable("mod_newgameplus",0.55), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('65 %'):
                action [SetVariable("mod_newgameplus",0.65), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('75 %'):
                action [SetVariable("mod_newgameplus",0.75), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('85 %'):
                action [SetVariable("mod_newgameplus",0.85), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('95 %'):
                action [SetVariable("mod_newgameplus",0.95), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
        vbox:
            yanchor 0
            xpos 800
            xanchor 0.5
            ypos 50
            textbutton ('10 %'):
                action [SetVariable("mod_newgameplus",0.1), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('20 %'):
                action [SetVariable("mod_newgameplus",0.2), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('30 %'):
                action [SetVariable("mod_newgameplus",0.3), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('40 %'):
                action [SetVariable("mod_newgameplus",0.4), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('50 %'):
                action [SetVariable("mod_newgameplus",0.5), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('60 %'):
                action [SetVariable("mod_newgameplus",0.6), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('70 %'):
                action [SetVariable("mod_newgameplus",0.7), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('80 %'):
                action [SetVariable("mod_newgameplus",0.8), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('90 %'):
                action [SetVariable("mod_newgameplus",0.9), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
            null:
                height 2
            textbutton ('100 %'):
                action [SetVariable("mod_newgameplus",1.0), Jump('mod_newgameplus_statmult_set')]
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
        vbox:
            yanchor 0
            xpos 650
            xanchor 0.5
            ypos 0
            textbutton 'Done':
                action Jump('mod_newgameplus_statmult_set')
                style style.menu_choice_button
                xminimum 200
                xmaximum 400
    
    # Changing a lot of stuff here, so let's just make a new one for displaying this screen.
    label mod_newgameplus_epilogue_save_log:
        # Show our own end screen with the New Game Plus option on it instead.
        hide screen end_menu_screen
        show screen mod_end_menu_screen
        # show screen mod_newgameplus_epilogue_menu
        show epilogue_menu_hider onlayer screens:
            pos (483,420)
            on hide:
                linear 0.6 alpha 0.0
        hide epilogue_menu_hider onlayer screens
        pause
        # $ ret = ui.interact()
        # if ret==''
        #     jump end_menu_jump_to_title
        jump mod_newgameplus_epilogue_save_log
    
    label mod_cancel_ngp:
        hide screen mod_newgameplus_epilogue_menu
        show screen mod_end_menu_screen
        pause
        
        python:
            config.end_game_transition = ImageDissolve('heartytransition.png',2.0)
            renpy.full_restart()
    
    label mod_save:
        python:
            if readback_log_line:
                readback_log_newline()
            log_written = save_log(filename='victory.html')
        if log_written:
            python:
                log_file_name = renpy.config.savedir+'/victory.html'
                open_log(filename=log_file_name)
                log_file_name = log_file_name.decode('utf-8')
            "Log saved to %(log_file_name)s\nStarting browser."
        else:
            "An error occurred saving the log.\n%(log_write_error)s"
        jump mod_newgameplus_epilogue_save_log
    
    label mod_ngp_screen:
        hide screen mod_end_menu_screen
        show screen mod_newgameplus_epilogue_menu
        pause
        jump mod_ngp_screen
    
    label mod_ngp:
        hide screen mod_newgameplus_epilogue_menu
        # jump end_menu_jump_to_title
        jump mod_newgameplus_restart
        return
    
    label mod_newgameplus_statroof_menu:
        hide screen mod_newgameplus_epilogue_menu
        show screen mod_newgameplus_statroof_menu
        pause
    
    label mod_newgameplus_statmult_menu:
        hide screen mod_newgameplus_epilogue_menu
        show screen mod_newgameplus_statmult_menu
        pause
    
    label mod_newgameplus_statroof_set:
        hide screen mod_newgameplus_statroof_menu
        show screen mod_newgameplus_epilogue_menu
        pause
    
    label mod_newgameplus_statmult_set:
        hide screen mod_newgameplus_statmult_menu
        show screen mod_newgameplus_epilogue_menu
        pause
    
    label mod_dropstat:
        hide screen mod_newgameplus_epilogue_menu
        show screen mod_newgameplus_ability_drop_menu
        pause
    
    label mod_drop_royal_demeanor:
        hide screen mod_newgameplus_ability_drop_menu
        show screen mod_newgameplus_ability_drop_menu
        $ composure_ = 0
        $ elegance_ = 0
        $ presence_ = 0
        pause
    
    label mod_drop_conversation:
        hide screen mod_newgameplus_ability_drop_menu
        show screen mod_newgameplus_ability_drop_menu
        $ public_speaking_ = 0
        $ court_manners_ = 0
        $ flattery_ = 0
        pause
    
    label mod_drop_expression:
        hide screen mod_newgameplus_ability_drop_menu
        show screen mod_newgameplus_ability_drop_menu
        $ decoration_ = 0
        $ instrument_ = 0
        $ voice_skill_ = 0
        pause
    
    label mod_drop_agility:
        hide screen mod_newgameplus_ability_drop_menu
        show screen mod_newgameplus_ability_drop_menu
        $ dance_ = 0
        $ reflexes_ = 0
        $ flexibility_ = 0
        pause
    
    label mod_drop_weapons:
        hide screen mod_newgameplus_ability_drop_menu
        show screen mod_newgameplus_ability_drop_menu
        $ swords_ = 0
        $ archery_ = 0
        $ polearms_ = 0
        pause
    
    label mod_drop_athletics:
        hide screen mod_newgameplus_ability_drop_menu
        show screen mod_newgameplus_ability_drop_menu
        $ running_ = 0
        $ climbing_ = 0
        $ swimming_ = 0
        pause
    
    label mod_drop_animal_handling:
        hide screen mod_newgameplus_ability_drop_menu
        show screen mod_newgameplus_ability_drop_menu
        $ horses_ = 0
        $ dogs_ = 0
        $ falcons_ = 0
        pause
    
    label mod_drop_history:
        hide screen mod_newgameplus_ability_drop_menu
        show screen mod_newgameplus_ability_drop_menu
        $ novan_history_ = 0
        $ foreign_affairs_ = 0
        $ world_history_ = 0
        pause
    
    label mod_drop_intrigue:
        hide screen mod_newgameplus_ability_drop_menu
        show screen mod_newgameplus_ability_drop_menu
        $ internal_affairs_ = 0
        $ foreign_intelligence_ = 0
        $ ciphering_ = 0
        pause
    
    label mod_drop_medicine:
        hide screen mod_newgameplus_ability_drop_menu
        show screen mod_newgameplus_ability_drop_menu
        $ herbs_ = 0
        $ battlefield_medicine_ = 0
        $ poison_ = 0
        pause
    
    label mod_drop_economics:
        hide screen mod_newgameplus_ability_drop_menu
        show screen mod_newgameplus_ability_drop_menu
        $ accounting_ = 0
        $ trade_ = 0
        $ production_ = 0
        pause
    
    label mod_drop_military:
        hide screen mod_newgameplus_ability_drop_menu
        show screen mod_newgameplus_ability_drop_menu
        $ strategy_ = 0
        $ naval_strategy_ = 0
        $ logistics_ = 0
        pause
    
    label mod_drop_faith:
        hide screen mod_newgameplus_ability_drop_menu
        show screen mod_newgameplus_ability_drop_menu
        $ meditation_ = 0
        $ divination_ = 0
        $ lore_ = 0
        pause
    
    label mod_drop_lumen:
        hide screen mod_newgameplus_ability_drop_menu
        show screen mod_newgameplus_ability_drop_menu
        $ sense_magic_ = 0
        $ resist_magic_ = 0
        $ wield_magic_ = 0
        pause
    
    label mod_dropstat_done:
        hide screen mod_newgameplus_ability_drop_menu
        show screen mod_newgameplus_epilogue_menu
        pause
    
    label mod_newgameplus_epilogue_ending:
        call mod_newgameplus_epilogue_save_log
        # The call will only return if New Game Plus was selected, otherwise it restarts RenPy.
        # jump mod_newgameplus_restart
    
    Wink
    Hanako forum archive - Topic list