Start a new game from completed game?

Discuss how to use the Ren'Py engine to create visual novels and story-based games. New releases are announced in this section.
Forum rules
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.
Post Reply
Message
Author
User avatar
wyverngem
Miko-Class Veteran
Posts: 615
Joined: Mon Oct 03, 2011 7:27 pm
Completed: Simple as Snow, Lady Luck's Due,
Projects: Aether Skies, Of the Waterfall
Tumblr: casting-dreams
itch: castingdreams
Location: USA
Contact:

Start a new game from completed game?

#1 Post by wyverngem »

Is there a way in renpy to start a new game from a completed game save?
I can research a bit more and I understand how to make screens, labels, and add descriptions to saves, but I'm struggling with a few items.
How do I;
1) Create saves that are labeled somehow as completed playthroughs

2) Make a load screen that only shows saves of completed playthroughs.

3) These completed playthrough saves load the game at the start label keeping the variables from the save.


What I'm trying to accomplish:
The player completes the game.
A persistent variable unlocks the menu choice "New Game Plus".
The savename variable is set to describe the playthrough.
Renpy saves as a new_game_plus file. These files don't show up in the regular load or save screen, but appear only appear on "New Game Plus".
The player is given the option to go to this menu or can close the game and go to the main menu where it's located.
On this screen, the completed playthrough saves are shown with a description.
Player can choose to load.
The save loads at the label "start" carrying over the flag from the save

User avatar
gas
Miko-Class Veteran
Posts: 842
Joined: Mon Jan 26, 2009 7:21 pm
Contact:

Re: Start a new game from completed game?

#2 Post by gas »

Use a json callback to store a variable tied to the status of the game.
The persistent discriminate between slots based on the content of the json.
Need code?
If you want to debate on a reply I gave to your posts, please QUOTE ME or i'll not be notified about. << now red so probably you'll see it.

10 ? "RENPY"
20 GOTO 10

RUN

User avatar
wyverngem
Miko-Class Veteran
Posts: 615
Joined: Mon Oct 03, 2011 7:27 pm
Completed: Simple as Snow, Lady Luck's Due,
Projects: Aether Skies, Of the Waterfall
Tumblr: casting-dreams
itch: castingdreams
Location: USA
Contact:

Re: Start a new game from completed game?

#3 Post by wyverngem »

It'd be helpful. I've never used a json callback before.

User avatar
Saltome
Veteran
Posts: 244
Joined: Sun Oct 26, 2014 1:07 pm
Deviantart: saltome
Contact:

Re: Start a new game from completed game?

#4 Post by Saltome »

Try this demo.

Code: Select all

define saveload_plus = False

label start():
    "Beginning."
label new_game:
    "Starting new game."
    $ exp = 0
    $ game_cycle = 0
    jump play_game
    
label new_game_plus:
    "Starting New Game Plus."
    $ saveload_plus = True
    $ renpy.call_in_new_context("_game_menu", _game_menu_screen = "load")

label play_game:
    "Defeat goblin. Gain 10 exp."
    $ exp += 10
    "Total exp: [exp]"
    "Ending"
    $ save_name = "Completed with flying colors"
    $ persistent.completed = True
    menu:
        "You have won, would you like to save the completed game?"
        "Yes":
            $ saveload_plus = True
            $ renpy.call_in_new_context("_game_menu", _game_menu_screen = "save")
        "No":
            pass
    menu:
        "Would you like to start New Game Plus?"
        "Yes":
            jump play_game
        "No":
            pass
    return
^Put this in scripts.rpy

Code: Select all

screen file_picker_plus():

    frame:
        style "file_picker_frame"

        has vbox

        # The buttons at the top allow the user to pick a
        # page of files.
        hbox:
            style_group "file_picker_nav"
            
            textbutton _("Previous"):
                action FilePagePrevious()

#            textbutton _("Auto"):
#                action FilePage("auto")

#            textbutton _("Quick"):
#                action FilePage("quick")

            for i in range(1, 9):
                textbutton str(i):
                    action FilePage(i)

            textbutton _("Next"):
                action FilePageNext()

        $ columns = 2
        $ rows = 5

        # Display a grid of file slots.
        grid columns rows:
            transpose True
            xfill True
            style_group "file_picker"

            # Display ten file slots, numbered 1 - 10.
            for i in range(1, columns * rows + 1):
                $ s = "c{}".format(i)
                # Each file slot is a button.
                button:
                    action FileAction(s)
                    xfill True

                    has hbox

                    # Add the screenshot.
                    add FileScreenshot(s)

                    $ file_name = "c{}".format(FileSlotName(i, columns * rows))
                    $ file_time = FileTime(s, empty=_("Empty Slot."))
                    $ save_name = FileSaveName(s)

                    text "[file_name]. [file_time!t]\n[save_name!t]"

                    key "save_delete" action FileDelete(s)
^Add this to screens.rpy

Code: Select all

if persistent.completed :
            textbutton _("New Game +") action ShowMenu("new_game_plus")
^ Put this in the main_menu screen, next to the other textbuttons.

Code: Select all

screen save():

    # This ensures that any other menu screen is replaced.
    tag menu

    use navigation
    if saveload_plus:
        use file_picker_plus
    else:
        use file_picker

screen load():

    # This ensures that any other menu screen is replaced.
    tag menu

    if saveload_plus:
        use file_picker_plus
    else:
        use navigation
        use file_picker
^Replace the save and load screens with these.

This should roughly do what you're trying to.
Deviant Art: Image
Discord: saltome
Itch: Phoenix Start

User avatar
wyverngem
Miko-Class Veteran
Posts: 615
Joined: Mon Oct 03, 2011 7:27 pm
Completed: Simple as Snow, Lady Luck's Due,
Projects: Aether Skies, Of the Waterfall
Tumblr: casting-dreams
itch: castingdreams
Location: USA
Contact:

Re: Start a new game from completed game?

#5 Post by wyverngem »

Saltome, almost perfect, however, it asks me if I want to save my game when I'm on this label:

Code: Select all

label new_game_plus:
    show screen myscreen
    "Starting New Game Plus."
    $ saveload_plus = True
    $ renpy.call_in_new_context("_game_menu", _game_menu_screen = "load")
Also would there be a way at the ending of the game to force the save? I'd rather that then an option at the end.

User avatar
Saltome
Veteran
Posts: 244
Joined: Sun Oct 26, 2014 1:07 pm
Deviantart: saltome
Contact:

Re: Start a new game from completed game?

#6 Post by Saltome »

Wait, you mean it shows you the save screen instead of the load screen? I know for a fact this code works properly on Ren`py 7 and I think 6.99. Can you test it on 7? And which version are you using for your project?

Yes you can force a save without opening the save screen, but you need to specify which slot to use anyway and managing that can be a bit of a hassle across multiple save files.
Change this bit like so:

Code: Select all

            $ renpy.save(available_slot(), save_name)
#            $ saveload_plus = True
#            $ renpy.call_in_new_context("_game_menu", _game_menu_screen = "save")
And add this bit to the beginning:

Code: Select all

init python:
    def available_slot(columns = 2, rows = 5):
        available = False
        i = 1
        while not available:
            page = i % (columns*rows)
            name = "{}-c{}".format(page, FileSlotName(i, columns * rows))
            
            available = not renpy.can_load(name)
#            renpy.say(str(i), str(name))
            i += 1
        return name
It will automatically pick the first available slot and save to it.
Deviant Art: Image
Discord: saltome
Itch: Phoenix Start

User avatar
wyverngem
Miko-Class Veteran
Posts: 615
Joined: Mon Oct 03, 2011 7:27 pm
Completed: Simple as Snow, Lady Luck's Due,
Projects: Aether Skies, Of the Waterfall
Tumblr: casting-dreams
itch: castingdreams
Location: USA
Contact:

Re: Start a new game from completed game?

#7 Post by wyverngem »

I'm working in the newest version of Renpy, and I do appriciate the code as it's promising. I did have to modify the code for different reasons. The issues I'm finding with the first code you gave me are the following;

In screens.rpy
In your save and load screens I had to change file_picker to their respective file_slot(_("Save")) to get the screens to wrok properly again. I had to change the ShowMenu to Start in the new game plus textbutton to get it to call the loading screen.

When playing the game by selecting Start on the Main Menu you can play the game all the way to the end_game. There you can save the game in your new screen without issues, but there's no return button on that screen and when you add one it gives you an error about not being able to find the label. However, you can press ESC key and it will return you back to after the save and to the next menu of continuing or not.

You can save and continue in a loop that works perfectly. :D

However, if you decide to leave the game, and start from a new game plus from the main menu there are issues. The first is that the game loads and then immediately after calls the save screen. Where it will ask you if you wanted to overwrite your save. I don't know what to do to get it to not ask you if you want to save. I don't need the game to do that.

If you hit escape it hides the screen and you can move onto the menu about if you want to start a new game plus. Yes and no work fine, and you start the game over again from the play_game label. Looping like it's supposed too, and I turned off saveload_plus to false here becasue I don't want the screen to show on the normal esc_menu in the new game.

Also, there's the issues that if you delete all of your new game plus games and go to the main_menu the screen still has the textbutton. When you go to the loads you can't load and you start a new game from scratch. It needs not a persistent, but more of if saves in list show button.

The codes you have for new items works at saving new files, which is great, but your file_picker_plus() screen doesn't actually list those saved files.

To sum it up:
- No Return option on file_picker_plus() screen.
- After loading from a New Game Plus in the main_menu() it calls the save screen immediately after.
- If the player deletes all their saves on the file_picker_plus() it still allows the player to choose New Game Plus from the window.
- Saves made with "$ renpy.save(available_slot(), save_name)" don't show on the file_picker_plus screen

Here's my updated code.
script.rpy

Code: Select all

default name = ""
default exp = 0
default game_cycle = 0
image gray = Solid("#D3D3D3")
image blue = Solid("#003366")
define saveload_plus = False
screen status:
    label name + "'s expereince is " + str(exp) +"."
label start():
    scene gray with dissolve
    "Beginning."
    "This is an example code of how a new game plus can work to remember the things you've done in a previous game."
    "It can be many variables and flags, but to keep it simple we'll remember only our \"experiences\". So let's begin the game."
    "By the way, this conversation only appears if you start the game from the main menu Start."
label new_game:
    scene gray with dissolve
    $ name = ""
    jump play_game
    
label new_game_plus:
    scene gray with dissolve
    "Which completed game would you like to load?"
    $ saveload_plus = True
    $ renpy.call_in_new_context("_game_menu", _game_menu_screen = "load")

label play_game:
    scene gray with dissolve
    if name == "":
        "You are an adventuring with a team of friends. Let's call you..."
        $ name = renpy.random.choice(["Doug", "Jarrod"])
        extend "[name]."
    else:
        if name == "Doug":
            "Once again, Doug, has decided to journey forth with the party members."
        else:
            "Oh, it's you. Do I really have to narrate this?"
            "I'm sorry. I'm sorry. Let's just get on with this Jarrod."
    show screen status
    $ save_name = name
    $ saveload_plus = False
    "While exploring you come across a goblin."
    menu:
        "De ja vue" if exp in range(1,10):
            "Wait, a minute, you've seen this thing before!"
            "So the logical thing is to do neither of those two things and do this thing!"
            "Which, leads you falling flat on your face."
        "Persaude" if exp in range (10,20):
            "Diplomacy always, works, except when you're Jarrod."
            if name != "Jarrod":
                "Oh, good you have a chance, you're not Jarrod."
            else:
                "Ah...sorry Jarrod. You know I love this story."
            "But, as your approach the goblin two more of it's buddies attack you."
            "You end up a tenderized mess; that the party has to spend money to fix."
            "By the way you're now addicted to bacta!"
        "Attack":
            if exp >= 10:
                "You defeat goblin, and gain a purseful of gold."
            else:
                "It's too much for you, and you are forced to run away."
        "Run away":
            if exp >=10:
                "You start to run away, but as you're running away you notice the Goblin behind you."
                "The goblin trips and you escape scrap free."
                "You succesffully run away."
            else:
                "You run, and let the other party members take care of it. Yet, they don't share anything with you."
        "Sneak past the goblin" if exp > 20:
            "You go to sneak pas the goblin, when you feet slip and you gently caress it's neck."
            "The goblins turns to you and putting up it's war axes goes to..."
            "Gently carees, you're neck."
            "And that's how you meet your lovely wife Unga."
            "The end."
    $ exp += 10
    "Total exp: [exp]"

label end_game:
    scene blue with dissolve
    "And so your journey ended."
    $ save_name = name + " completed the game with " + str(exp) + " expereince points."
    $ persistent.completed = True
    menu:
        "You have won, would you like to save the completed game?"
        "Yes":
            $ saveload_plus = True
            $ renpy.call_in_new_context("_game_menu", _game_menu_screen = "save")
            $ saveload_plus = False
        "No":
            pass
    menu:
        "Would you like to start New Game Plus?"
        "Yes":
            jump play_game
        "No":
            pass
    return
save/load screens

Code: Select all

## Load and Save screens #######################################################
##
## These screens are responsible for letting the player save the game and load
## it again. Since they share nearly everything in common, both are implemented
## in terms of a third screen, file_slots.
##
## https://www.renpy.org/doc/html/screen_special.html#save https://
## www.renpy.org/doc/html/screen_special.html#load
screen save():

    # This ensures that any other menu screen is replaced.
    tag menu

    use navigation
    if saveload_plus:
        use file_picker_plus
    else:
        use file_slots(_("Save"))
        #use file_picker #No such screen exsist.

screen load():

    # This ensures that any other menu screen is replaced.
    tag menu

    if saveload_plus:
        use file_picker_plus
    else:
        use navigation
        use file_slots(_("Load"))
        # use file_picker No such screen exsist.


screen file_slots(title):

    default page_name_value = FilePageNameInputValue(pattern=_("Page {}"), auto=_("Automatic saves"), quick=_("Quick saves"))

    use game_menu(title):

        fixed:

            ## This ensures the input will get the enter event before any of the
            ## buttons do.
            order_reverse True

            ## The page name, which can be edited by clicking on a button.
            button:
                style "page_label"

                key_events True
                xalign 0.5
                action page_name_value.Toggle()

                input:
                    style "page_label_text"
                    value page_name_value

            ## The grid of file slots.
            grid gui.file_slot_cols gui.file_slot_rows:
                style_prefix "slot"

                xalign 0.5
                yalign 0.5

                spacing gui.slot_spacing

                for i in range(gui.file_slot_cols * gui.file_slot_rows):

                    $ slot = i + 1

                    button:
                        action FileAction(slot)

                        has vbox

                        add FileScreenshot(slot) xalign 0.5

                        text FileTime(slot, format=_("{#file_time}%A, %B %d %Y, %H:%M"), empty=_("empty slot")):
                            style "slot_time_text"

                        text FileSaveName(slot):
                            style "slot_name_text"

                        key "save_delete" action FileDelete(slot)

            ## Buttons to access other pages.
            hbox:
                style_prefix "page"

                xalign 0.5
                yalign 1.0

                spacing gui.page_spacing

                textbutton _("<") action FilePagePrevious()

                if config.has_autosave:
                    textbutton _("{#auto_page}A") action FilePage("auto")

                if config.has_quicksave:
                    textbutton _("{#quick_page}Q") action FilePage("quick")

                ## range(1, 10) gives the numbers from 1 to 9.
                for page in range(1, 10):
                    textbutton "[page]" action FilePage(page)

                textbutton _(">") action FilePageNext()


style page_label is gui_label
style page_label_text is gui_label_text
style page_button is gui_button
style page_button_text is gui_button_text

style slot_button is gui_button
style slot_button_text is gui_button_text
style slot_time_text is slot_button_text
style slot_name_text is slot_button_text

style page_label:
    xpadding 42
    ypadding 3

style page_label_text:
    text_align 0.5
    layout "subtitle"
    hover_color gui.hover_color

style page_button:
    properties gui.button_properties("page_button")

style page_button_text:
    properties gui.button_text_properties("page_button")

style slot_button:
    properties gui.button_properties("slot_button")

style slot_button_text:
    properties gui.button_text_properties("slot_button")

## New Game Plus screen is used instead when the flag saveload_plus = True.
screen file_picker_plus():
    frame:
        style "file_picker_frame"

        has vbox
        hbox:
            style_group "file_picker_nav"
            
            textbutton _("Previous"):
                action FilePagePrevious()
            for i in range(1, 9):
                textbutton str(i):
                    action FilePage(i)

            textbutton _("Next"):
                action FilePageNext()

        $ columns = 2
        $ rows = 5

        # Display a grid of file slots.
        grid columns rows:
            transpose True
            xfill True
            style_group "file_picker"

            # Display ten file slots, numbered 1 - 10.
            for i in range(1, columns * rows + 1):
                $ s = "c{}".format(i)
                # Each file slot is a button.
                button:
                    action FileAction(s)
                    xfill True
                    has hbox
                    # Add the screenshot.
                    add FileScreenshot(s)
                    $ file_name = "c{}".format(FileSlotName(i, columns * rows))
                    $ file_time = FileTime(s, empty=_("Empty Slot."))
                    $ save_name = FileSaveName(s)

                    text "[file_name]. [file_time!t]\n[save_name!t]"

                    key "save_delete" action FileDelete(s)
and new_navigation screen:

Code: Select all

## Navigation screen ###########################################################
##
## This screen is included in the main and game menus, and provides navigation
## to other menus, and to start the game.

screen navigation():

    vbox:
        style_prefix "navigation"

        xpos gui.navigation_xpos
        yalign 0.5

        spacing gui.navigation_spacing

        if main_menu:
            if persistent.completed :
                textbutton _("New Game +") action Start("new_game_plus")#Becuase ShowMenu wouldn't allow games to be loaded.

            textbutton _("Start") action Start()

        else:

            textbutton _("History") action ShowMenu("history")

            textbutton _("Save") action ShowMenu("save")

        textbutton _("Load") action ShowMenu("load")

        textbutton _("Preferences") action ShowMenu("preferences")

        if _in_replay:

            textbutton _("End Replay") action EndReplay(confirm=True)

        elif not main_menu:

            textbutton _("Main Menu") action MainMenu()

        textbutton _("About") action ShowMenu("about")

        if renpy.variant("pc"):

            ## Help isn't necessary or relevant to mobile devices.
            textbutton _("Help") action ShowMenu("help")

            ## The quit button is banned on iOS and unnecessary on Android.
            textbutton _("Quit") action Quit(confirm=not main_menu)


style navigation_button is gui_button
style navigation_button_text is gui_button_text

style navigation_button:
    size_group "navigation"
    properties gui.button_properties("navigation_button")

style navigation_button_text:
    properties gui.button_text_properties("navigation_button")

User avatar
Saltome
Veteran
Posts: 244
Joined: Sun Oct 26, 2014 1:07 pm
Deviantart: saltome
Contact:

Re: Start a new game from completed game?

#8 Post by Saltome »

Heh, I goofed, I was the one using an old project.
I redid the script to be up do date, and I think I've fixed all the issues you have.
I decided to leave the new game enabled even if you have no completed saves, instead of showing the load screen it just starts a normal new game.
And keep in mind you can have multiple pages of save files, so if it shows the new_game_plus loading screen with no saves, when you start new game plus, there is probably one on another page.


script.rpy:

Code: Select all

init python:
    def list_completed_saves(columns = 2, rows = 5):
        list = renpy.list_slots()
        r = []
        for save in list:
            if "c" in save:
                r += [save]
        return r
        
    def available_slot(columns = 2, rows = 5):
        available = False
        i = 1
        while not available:
            page = 1 + (i / (columns*rows))
            name = "{}-c{}".format(page, FileSlotName(i, columns * rows))
            
            available = not renpy.can_load(name)
            i += 1
        renpy.say("", str(name)) ##Prints the name of the available slot
        return name
label start():
    "Beginning."
label new_game:
    "Starting new game."
    $ exp = 0
#    $ game_cycle = 0
    jump play_game
    
label new_game_plus:
    "Starting New Game Plus."
    if list_completed_saves():
        $ renpy.call_in_new_context("_game_menu", _game_menu_screen = "load", completed_mode = True)
    else:
        "No completed save files, starting normal new game."
        jump play_game

label play_game:
    "Defeat goblin. Gain 10 exp."
    $ exp += 10
    "Total exp: [exp]"
    "Ending"
    $ save_name = "Completed with flying colors"
    $ persistent.completed = True
    
    menu:
            "You have won, would you like to start New Game Plus?"
            "Yes":
                jump play_game
            "No":
                pass
    $game_plus = False
    menu:
        "Would you like to save the completed game?"
        "Yes":
            if not game_plus:
                python:
                    game_plus = True
                    renpy.retain_after_load()
                    renpy.save(available_slot(), save_name)
            else:
                jump play_game
            return
        "No":
            pass
    
    
    return
navigation screen:

Code: Select all

screen navigation():

    vbox:
        style_prefix "navigation"

        xpos gui.navigation_xpos
        yalign 0.5

        spacing gui.navigation_spacing

        if main_menu:
            if persistent.completed:
                textbutton _("Start +") action ShowMenu("new_game_plus")
            textbutton _("Start") action Start()

        else:

            textbutton _("History") action ShowMenu("history")

            textbutton _("Save") action ShowMenu("save")

        textbutton _("Load") action ShowMenu("load")

        textbutton _("Preferences") action ShowMenu("preferences")

        if _in_replay:

            textbutton _("End Replay") action EndReplay(confirm=True)

        elif not main_menu:

            textbutton _("Main Menu") action MainMenu()

        textbutton _("About") action ShowMenu("about")

        if renpy.variant("pc"):

            ## Help isn't necessary or relevant to mobile devices.
            textbutton _("Help") action ShowMenu("help")

            ## The quit button is banned on iOS and unnecessary on Android.
            textbutton _("Quit") action Quit(confirm=not main_menu)
load screen and file_slots_plus:

Code: Select all

screen load(completed_mode = False):

    tag menu

    if completed_mode:
        use file_slots_plus(_("Load"))
    else:
        use file_slots(_("Load"))

screen file_slots_plus(title):

    default page_name_value = FilePageNameInputValue(pattern=_("Page {}"), auto=_("Automatic saves"), quick=_("Quick saves"))

    use game_menu(title):

        fixed:

            ## This ensures the input will get the enter event before any of the
            ## buttons do.
            order_reverse True

            ## The page name, which can be edited by clicking on a button.
            button:
                style "page_label"

                key_events True
                xalign 0.5
                action page_name_value.Toggle()

                input:
                    style "page_label_text"
                    value page_name_value

            ## The grid of file slots.
            grid gui.file_slot_cols gui.file_slot_rows:
                style_prefix "slot"

                xalign 0.5
                yalign 0.5

                spacing gui.slot_spacing

                for i in range(gui.file_slot_cols * gui.file_slot_rows):

                    $ slot = "c{}".format(i + 1)

                    button:
                        action FileAction(slot)

                        has vbox

                        add FileScreenshot(slot) xalign 0.5

                        text FileTime(slot, format=_("{#file_time}%A, %B %d %Y, %H:%M"), empty=_("empty slot")):
                            style "slot_time_text"
                            
                        text "c{}".format(FileSaveName(slot)):
                            style "slot_name_text"

                        key "save_delete" action FileDelete(slot)

            ## Buttons to access other pages.
            hbox:
                style_prefix "page"

                xalign 0.5
                yalign 1.0

                spacing gui.page_spacing

                textbutton _("<") action FilePagePrevious()

                if config.has_autosave:
                    textbutton _("{#auto_page}A") action FilePage("auto")

                if config.has_quicksave:
                    textbutton _("{#quick_page}Q") action FilePage("quick")

                ## range(1, 10) gives the numbers from 1 to 9.
                for page in range(1, 10):
                    textbutton "[page]" action FilePage(page)

                textbutton _(">") action FilePageNext()
Deviant Art: Image
Discord: saltome
Itch: Phoenix Start

User avatar
wyverngem
Miko-Class Veteran
Posts: 615
Joined: Mon Oct 03, 2011 7:27 pm
Completed: Simple as Snow, Lady Luck's Due,
Projects: Aether Skies, Of the Waterfall
Tumblr: casting-dreams
itch: castingdreams
Location: USA
Contact:

Re: Start a new game from completed game?

#9 Post by wyverngem »

Thanks so much! :) Look like this will be a good base to start. I do have a question though, in y our python code in scripts.rpy do I have to define the columns and rows if I change them in game?

User avatar
Saltome
Veteran
Posts: 244
Joined: Sun Oct 26, 2014 1:07 pm
Deviantart: saltome
Contact:

Re: Start a new game from completed game?

#10 Post by Saltome »

If you still have ten slots per page it shouldn't really matter. Otherwise yes, or you can directly change the default values in the function declaration.
Deviant Art: Image
Discord: saltome
Itch: Phoenix Start

User avatar
wyverngem
Miko-Class Veteran
Posts: 615
Joined: Mon Oct 03, 2011 7:27 pm
Completed: Simple as Snow, Lady Luck's Due,
Projects: Aether Skies, Of the Waterfall
Tumblr: casting-dreams
itch: castingdreams
Location: USA
Contact:

Re: Start a new game from completed game?

#11 Post by wyverngem »

Thanks! :D Dug a little deeper into the code and found something that works for me. I had forgotten about this:
FileSave(None) saves to a new file. You can then use FileUsedSlots() to get a list of file slots that have been used.
for saving new files. :) I also got the Json callbacks working. So I'll be able to do more with these. Thanks for the help getting past the confusion!

Post Reply

Who is online

Users browsing this forum: Kocker