1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. We have recently started the 16th edition of the Mini Mapping Contest. The theme is mini RPG. Do check it out and have fun.
    Dismiss Notice
  5. Choose your ride to damnation in the 5th Special Effect Contest Poll.
    Dismiss Notice
  6. The winners of the 13th Techtree Contest have been announced!
    Dismiss Notice
  7. The 13th Music Contest Poll is up! Vote for the best tracks in this symphony of frost and flame.
    Dismiss Notice
  8. Race against the odds and Reforge, Don't Refund. The 14th Techtree Contest has begun!
    Dismiss Notice
  9. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Codeless Save and Load (Multiplayer) - v3.0.1

Submitted by TriggerHappy
This bundle is marked as approved. It works and satisfies the submission rules.
Information

If you've ever wanted to transfer progress between multiplayer maps, you probably needed to type in a long code.

That is no longer needed with this system. This will allow you to read save data from your WC3 folder and sync it to all other players in the map.

The demo map features:
  1. Load without typing anything
  2. Save Hero
    • Level/XP
    • Items
    • Abilities
    • Hero Name

  3. 5 Save Slots
* Everything is customizable and you can make the system save & load anything you want.

* This system is intended for GUI users.

Installation

To import the system, all you have to do is copy the trigger folders over to your map and save it.

Screenshots


[​IMG]
[​IMG]
[​IMG]
[​IMG]


Credits

Pipedream (optimal save system)
Previews
Contents

Codeless Save & Load v1.3.9 (Map)

Codeless Save & Load v3.0.1 (Map)

Reviews
Moderator
Awaiting further review
  1. iuryharoon

    iuryharoon

    Joined:
    Dec 12, 2012
    Messages:
    9
    Resources:
    0
    Resources:
    0
    Good night people
    wanted help to add an extra bag to save ...
    grateful..
     
  2. Recklessness

    Recklessness

    Joined:
    Aug 17, 2014
    Messages:
    81
    Resources:
    0
    Resources:
    0
    How could I make it so when a player walks through a region all current players are sent to a new map and their heroes are loaded
     
  3. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,699
    Resources:
    18
    Maps:
    1
    Spells:
    11
    Tutorials:
    6
    Resources:
    18
    Impossible. You cannot automatically start another map unless it is in a campaign.
     
  4. Recklessness

    Recklessness

    Joined:
    Aug 17, 2014
    Messages:
    81
    Resources:
    0
    Resources:
    0
    I'm trying to make an RPG essentially that has instances for dungeons or large cities if I make the map a campaign would it not work this way?
     
  5. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,699
    Resources:
    18
    Maps:
    1
    Spells:
    11
    Tutorials:
    6
    Resources:
    18
  6. Recklessness

    Recklessness

    Joined:
    Aug 17, 2014
    Messages:
    81
    Resources:
    0
    Resources:
    0
    And this could work in a multiplayer map?
     
  7. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,699
    Resources:
    18
    Maps:
    1
    Spells:
    11
    Tutorials:
    6
    Resources:
    18
    No. Game Caches only work in campaigns and campaigns are single player.
     
  8. TriggerHappy

    TriggerHappy

    Code Moderator

    Joined:
    Jun 23, 2007
    Messages:
    3,697
    Resources:
    22
    Spells:
    11
    Tutorials:
    2
    JASS:
    9
    Resources:
    22
    Your only option at the moment for multiplayer is to make your map large enough to contain all the instances you want to create. Then, you can create a region surrounding the entire area and change the player's camera bounds.
     
  9. Recklessness

    Recklessness

    Joined:
    Aug 17, 2014
    Messages:
    81
    Resources:
    0
    Resources:
    0
    I'll be trying that out the only real issue I've begun to realize is the 480x480 space is not enough for me lol, but I might just scale everything down.
     
  10. iuryharoon

    iuryharoon

    Joined:
    Dec 12, 2012
    Messages:
    9
    Resources:
    0
    Resources:
    0
  11. Clanzion

    Clanzion

    Joined:
    Jul 4, 2016
    Messages:
    426
    Resources:
    0
    Resources:
    0
     
  12. iuryharoon

    iuryharoon

    Joined:
    Dec 12, 2012
    Messages:
    9
    Resources:
    0
    Resources:
    0
    I saw this post but it did not work ...

    I know it's asking too much ... does anyone have a map that has them both working?

    TriggerHappy

    I have a problem creating the character in SAVE / LOAD and the Equipment TOGETHER ... if anyone can help?
     
    Last edited by a moderator: Mar 25, 2019
  13. ToggleModGoat

    ToggleModGoat

    Joined:
    Jan 19, 2019
    Messages:
    21
    Resources:
    2
    Maps:
    2
    Resources:
    2
    Someone probably asked this, but does it work without allowing local files or do any player who wants to save, need to enable that?
     
  14. TriggerHappy

    TriggerHappy

    Code Moderator

    Joined:
    Jun 23, 2007
    Messages:
    3,697
    Resources:
    22
    Spells:
    11
    Tutorials:
    2
    JASS:
    9
    Resources:
    22
    It works without enabling anything as of patch 1.30.
     
  15. ToggleModGoat

    ToggleModGoat

    Joined:
    Jan 19, 2019
    Messages:
    21
    Resources:
    2
    Maps:
    2
    Resources:
    2
    Amazing.

    But it looks too complicated for me tho. I only need to save Tech-Type for my map, so im trying around with stuff :confused:
     
  16. iuryharoon

    iuryharoon

    Joined:
    Dec 12, 2012
    Messages:
    9
    Resources:
    0
    Resources:
    0
  17. Azoth

    Azoth

    Joined:
    Sep 10, 2013
    Messages:
    37
    Resources:
    0
    Resources:
    0
    Something doesn't work right with the GUI -save/-load system.

    If you save your progress (type: "-save") for the first time, for example a Hero lvl 5, quit the game, restart it and type "-load", the lvl 5 Hero will be loaded. Until here everything is fine. But ...
    ... if you save him again (for example with lvl 7) and load him again, you will get your past saved game with an Hero of lvl 5.
     
  18. ZiGOR

    ZiGOR

    Joined:
    Mar 17, 2012
    Messages:
    570
    Resources:
    2
    Maps:
    2
    Resources:
    2
    Hello. I've never done saving before. How can I save the Integer variable for every player in the game and load it next game using this system? :)
     
  19. Uncle

    Uncle

    Joined:
    Aug 10, 2018
    Messages:
    765
    Resources:
    0
    Resources:
    0
    Is there a limitation to how much you can save? I'm having issues with my map, I have a Diablo style item system that needs to store a lot of different variables to an item.

    • Save Items
      • Events
      • Conditions
      • Actions
        • Set SaveTempUnit = Player1StashIndex[1]
        • For each (Integer A) from 1 to 6, do (Actions)
          • Loop - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • (Item carried by SaveTempUnit in slot (Integer A)) Not equal to No item
              • Then - Actions
                • Set TempItem = (Item carried by SaveTempUnit in slot (Integer A))
                • Set TempInteger = (Custom value of TempItem)
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemMod1[TempInteger]
                • Set SaveMaxValue[SaveCount] = 50
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemMod2[TempInteger]
                • Set SaveMaxValue[SaveCount] = 50
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveMaxValue[SaveCount] = 50
                • Set SaveValue[SaveCount] = ItemMod3[TempInteger]
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemRoll1[TempInteger]
                • Set SaveMaxValue[SaveCount] = 100
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemRoll2[TempInteger]
                • Set SaveMaxValue[SaveCount] = 100
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemRoll3[TempInteger]
                • Set SaveMaxValue[SaveCount] = 100
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemTier1[TempInteger]
                • Set SaveMaxValue[SaveCount] = 10
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemTier2[TempInteger]
                • Set SaveMaxValue[SaveCount] = 10
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemTier3[TempInteger]
                • Set SaveMaxValue[SaveCount] = 10
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemBase[TempInteger]
                • Set SaveMaxValue[SaveCount] = 25
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemType[TempInteger]
                • Set SaveMaxValue[SaveCount] = 25
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemRarity[TempInteger]
                • Set SaveMaxValue[SaveCount] = 5
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemLevel[TempInteger]
                • Set SaveMaxValue[SaveCount] = 100
                • -------- - --------
                • Set SaveCount = (SaveCount + 1)
                • Set SaveValue[SaveCount] = ItemGoldValue[TempInteger]
                • Set SaveMaxValue[SaveCount] = 999
              • Else - Actions


    • Load Items
      • Events
      • Conditions
      • Actions
        • Set TurnOffLoop = False
        • For each (Integer A) from 1 to 6, do (Actions)
          • Loop - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • TurnOffLoop Equal to False
              • Then - Actions
                • Set SaveCount = (SaveCount + 1)
                • Set SaveMaxValue[SaveCount] = 999
                • Custom script: call SaveHelper.GUILoadNext()
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • SaveValue[SaveCount] Not equal to 0
                  • Then - Actions
                    • Game - Display to (All players) for 5.00 seconds the text: (Load Item + (String((Integer A))))
                    • Item - Create Dummy Item at (Center of (Playable map area))
                    • Set AIndexItemCount = (AIndexItemCount + 1)
                    • Set IndexItem[AIndexItemCount] = (Last created item)
                    • Item - Set the custom value of (Last created item) to AIndexItemCount
                    • Set TempInteger = AIndexItemCount
                    • -------- - --------
                    • Set ItemGoldValue[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 100
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemLevel[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 5
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemRarity[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 25
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemType[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 25
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemBase[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 10
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemTier3[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 10
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemTier2[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 10
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemTier1[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 100
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemRoll3[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 100
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemRoll2[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 100
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemRoll1[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 50
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemMod3[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 50
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemMod2[TempInteger] = SaveValue[SaveCount]
                    • -------- - --------
                    • Set SaveCount = (SaveCount + 1)
                    • Set SaveMaxValue[SaveCount] = 50
                    • Custom script: call SaveHelper.GUILoadNext()
                    • Set ItemMod1[TempInteger] = SaveValue[SaveCount]
                  • Else - Actions
                    • Set TurnOffLoop = True
                    • Set SaveCount = (SaveCount - 1)
              • Else - Actions

    I can only Save and Load up to 4 items before this stops working. If there is no limit to how much I can save then what am I doing wrong?
     
    Last edited: May 17, 2019
  20. TriggerHappy

    TriggerHappy

    Code Moderator

    Joined:
    Jun 23, 2007
    Messages:
    3,697
    Resources:
    22
    Spells:
    11
    Tutorials:
    2
    JASS:
    9
    Resources:
    22
    Updated, 3.0.0.
    • Patch 1.31 support.
    • Removed Sync and SyncInteger libraries and replaced them with the new sync natives introduced in Patch 1.31.
    • Updated FileIO to v1.1.0.
    • Added SavePlayerLoading variable to the initialization trigger to prevent an unknown variable error when copying to a new map.