Announcement

Collapse
No announcement yet.

[PLUGIN] Savior 3

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    I could bet somewhere you are accessing some invalid pointer to an slot instance, since you restart the level, you should check validity of your references.
    But I can't have any certain idea without crash logs.
    | Savior | USQLite | FSM | Object Pool | Sound Occlusion | Property Transfer | Magic Nodes | MORE |

    Comment


      Hi, thank you for your replay.
      this is happened on mobile only. how I can get crash log on mobile.
      thanks again

      Comment


        https://docs.unrealengine.com/en-US/...ing/index.html
        | Savior | USQLite | FSM | Object Pool | Sound Occlusion | Property Transfer | Magic Nodes | MORE |

        Comment


          Hi,
          I found log file in ue4 game folder .i don't know if this one will help..also I don't know how check the validity of reference.
          I appreciate your support .
          thanks

          Comment


            You need to check if a reference of an object you use is actually valid...

            https://www.youtube.com/watch?v=5d87aoNt-Dg
            | Savior | USQLite | FSM | Object Pool | Sound Occlusion | Property Transfer | Magic Nodes | MORE |

            Comment


              Originally posted by BrUnO XaVIeR View Post
              You can attach any save data to existing slot files if you read data before you save an individual actor.
              For example:

              New Slot Instance -> Read Slot from File -> Save Actor (Player State) -> Write Slot to File.

              The engine is probably spawning your state in Editor with every time a different name, so the easy save/load nodes can miss it in Editor, but you can load it directly like above with "Load Actor" node.
              This construction won't work, single- or multiplayer. Can you please advise, maybe there's something I'm missing here? Save returns success, but load after ServerTravel is failing

              Attached Files

              Comment


                Add a SGUID Guid structure to your actor class.
                Generate a unique persistent value in editor (no need to use the 'Generate' nodes)...

                Then use this instead:
                https://brunoxavierleite.github.io/S...rWithGUID.html
                | Savior | USQLite | FSM | Object Pool | Sound Occlusion | Property Transfer | Magic Nodes | MORE |

                Comment


                  Originally posted by BrUnO XaVIeR View Post
                  Add a SGUID Guid structure to your actor class.
                  Generate a unique persistent value in editor (no need to use the 'Generate' nodes)...

                  Then use this instead:
                  https://brunoxavierleite.github.io/S...rWithGUID.html
                  Thanks, that worked. Now the procedure returns success, but actual variables are not loaded (they are marked for SaveGame and Savior serializable interface is implemented). Is there something else I should do after loading?

                  Comment


                    Originally posted by Roland_Price View Post
                    but actual variables are not loaded (they are marked for SaveGame and Savior serializable interface is implemented).
                    Then there's no save data of the object in file.
                    I don't know if you should use event "Destroyed" for that.

                    You can open the save file on a notepad and see if there's any record of the guid in there as a string.
                    And you also have to make sure you are saving the data on server, you could be saving actor on client but there's nothing there to be saved..
                    | Savior | USQLite | FSM | Object Pool | Sound Occlusion | Property Transfer | Magic Nodes | MORE |

                    Comment


                      Thanks for the tip, I've modified the saving procedure and now it saves 2 players' states properly and variables are in the savegame file. But loading still not happening even when I do it server side (in game mode on BeginPlay for both players, I've attached the setup). Can you please advise?

                      UPD: this setup works for singleplayer though
                      Attached Files
                      Last edited by Roland_Price; 08-26-2020, 06:20 AM.

                      Comment


                        A PlayerState is created for every player on a server (or in a standalone game). PlayerStates are replicated to all clients, and contain network game relevant information about the player, such as playername, score, etc.
                        Guid must be unique for APlayerState Actor you have for each player.. I don't know if you are assigning a Guid for player 1 and another for player 2.

                        That must be done on server upon spawn.
                        And the guid value you choose to use for each have to be constant.
                        Last edited by BrUnO XaVIeR; 08-26-2020, 08:35 AM.
                        | Savior | USQLite | FSM | Object Pool | Sound Occlusion | Property Transfer | Magic Nodes | MORE |

                        Comment


                          Originally posted by BrUnO XaVIeR View Post

                          Guid must be unique for APlayerState Actor you have for each player.. I don't know if you are assigning a Guid for player 1 and another for player 2.

                          That must be done on server upon spawn.
                          And the guid value you choose to use for each have to be constant.
                          Yes, but no matter whether I use the GenerateOnce Savior node for this or set it manually the loading just won't happen. Maybe I should call it from within the player state itself? Also the issue is that I need to load the state on the server from the client when this client joins, but this player can also play offline and his progress must be carried to the co-op session

                          Comment


                            Hmm in that case I don't know if you should do that on server at all then.

                            If everything can be changed in single player mode I would save on client only and do the inverse path: through a RPC send data from client to server when that player join the server. PlayerState in that case won't help.

                            Just treat everything as a single player save file, then send player data to server. Unfortunately there's no built-in solution in the plug-in for that.
                            | Savior | USQLite | FSM | Object Pool | Sound Occlusion | Property Transfer | Magic Nodes | MORE |

                            Comment


                              Yeah, that is something I will try to manage outside of the plugin, maybe figure out a solution to store unlocks in a table somehow. I need to store unlocks for gear per player and that is the only point that the player can bring to server when connecting. Other stuff like pickups and currencies are destroyed on death so I planned to store them in PlayerState so the connected player will have PlayerSate in mint condition when connecting. The only point I need to save it is when the party travels between levels and that is what I'm trying to do here

                              But so far I can't get it to load after ServerTravel no matter what I try

                              Comment


                                One more question - what is the difference between Saviors interfaces Serializable and Procedural? I mean the core difference in usage

                                Comment

                                Working...
                                X