• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Codeless Save and Load (Multiplayer) - v3.0.1

This bundle is marked as high quality. It exceeds standards and is highly desirable.
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


untitled5-png.241496

untitled3-png.241494

untitled4-png.241495

113935-913340d9135dcfb50a7ac3b3dff3e424.png



Credits

Pipedream (optimal save system)
Previews
Contents

Codeless Save & Load v1.3.9 (Map)

Codeless Save & Load v3.0.1 (Map)

Reviews
Awaiting further review
Antares
Promoted to HQ because it would have gotten it if it were a thing back then :psmile: High Quality
Level 6
Joined
Sep 19, 2007
Messages
215
Im trying to import this into my map when i test this map in the editor it saves heroes just fine and loads them when i import to my map it says local files aint enabled
 
Level 12
Joined
May 7, 2008
Messages
346
A bit of a random post from me, however I would very much like if this system was operational.

I've tried numerous of times to make this work but to no avail.

  • I've set the Aerial Shackle to 2 and it's thing to ''!'' but that didn't affect it one bit.
  • I'm simply trying to store Integer data, such as: Wins / Losses, MMR, win rate and basic stuff like that.

Has anyone had success with the mentioned things above?
 
Hello guys, is there a solution to the problem that the list of characters to load does not update during the game.

Example: When I save my level 5 hero in slot 2 and he goes up to level 6 or higher and saves in slot 2 again and uses a hero pick up system he returns to the level of the first time I saved in slot 5 and not level 10, but if I create the map again and load space 2 it returns to level 10.
Currently looking into this. Looks like this is a known bug on the blizzard forums with Preloaded files

 
Level 24
Joined
Jun 26, 2020
Messages
1,914
Currently looking into this. Looks like this is a known bug on the blizzard forums with Preloaded files

I don't think so, because that bug was solved in the 1.35 version
 
Level 18
Joined
Oct 17, 2012
Messages
847
A bit of a random post from me, however I would very much like if this system was operational.

I've tried numerous of times to make this work but to no avail.

  • I've set the Aerial Shackle to 2 and it's thing to ''!'' but that didn't affect it one bit.
  • I'm simply trying to store Integer data, such as: Wins / Losses, MMR, win rate and basic stuff like that.

Has anyone had success with the mentioned things above?
We will need more information, such as how you are saving and loading the data. I am not sure you are aware that you have to load data in the reverse order that you saved the data in.
 
Level 12
Joined
May 7, 2008
Messages
346
We will need more information, such as how you are saving and loading the data. I am not sure you are aware that you have to load data in the reverse order that you saved the data in.

Yep, I've tried every possible way that I could think of to load it but I just couldn't get it to work.

Maybe that's just me, if someone else had success with save / load data such as: Real Values, Integer Values, Gold, Lumber - feel free to let me know or share your version of map so we can see what are you doing correctly :D
 
I don't think so, because that bug was solved in the 1.35 version
Apparently not in this case. If you test out the save/load feature in the example map it can write/save the contents multiple times, but only loads what what was first initially read by the Preloader no matter how many times you write to the files.
Preloader() seems to read the file contents only once and then must cache them somewhere

Have tried to look for an error in the code but haven't been able to find any therefore I assume the aggressive caching isn't fully fixed on Blizzard's end.

Edit: To give more context yes the aggressive caching was mostly fixed for most errors it was causing in-game but I think in this case when it comes to the Preloader(file) function it still seems to only return whatever it first preloaded, effectively breaking subsequent save and loads. If you have a map where this save/load feature works correctly that'd be greatly appreciated.
 
Last edited:
Found a fix!

Using backup files we can save our current character on these backup files along with the main file. Then by storing the current number of the backup per slot in udg_NumberOfSaves[playerNumber*12+slot] we can load our character's progress without restarting the map by loading the most recent backup file. Each time the map is re-loaded udg_NumberOfSaves is reset, however since we still save our character to the mainfile the game still knows what our current character's progress is. The backup files are then overwritten from the last game as new saves are made in the current one.

TL: DR;
Save, Load, and Delete via the GUI dialog now all work correctly, regardless of caching.

See changes in
  • SampleDialogSystem,
  • SaveHelperLib,
  • SaveFile
 

Attachments

  • Codeless Save Load v3.0.1_BackUp.w3x
    154.3 KB · Views: 11
Last edited:
Level 5
Joined
Oct 31, 2011
Messages
92
Found a fix!

Using backup files we can save our current character on these backup files along with the main file. Then by storing the current number of the backup per slot in udg_NumberOfSaves[playerNumber*12+slot] we can load our character's progress without restarting the map by loading the most recent backup file. Each time the map is re-loaded udg_NumberOfSaves is reset, however since we still save our character to the mainfile the game still knows what our current character's progress is. The backup files are then overwritten from the last game as new saves are made in the current one.

TL: DR;
Save, Load, and Delete via the GUI dialog now all work correctly, regardless of caching.

See changes in
  • SampleDialogSystem,
  • SaveHelperLib,
  • SaveFile
One question is how do I disable it for a moment so that the hero doesn't save in the same slot?

Example: My game has the -repick command that allows you to choose another hero, but even the new hero saves in the old one's slot.

Another question is what command saves the hero in a slot of my choice.

Example: I don't want to give the player the choice of saving the same hero in a different slot, as already happens, but it only causes problems when the player tries to change heroes and play with another with the -Repick command.
 
Last edited:
One question is how do I disable it for a moment so that the hero doesn't save in the same slot?

Example: My game has the -repick command that allows you to choose another hero, but even the new hero saves in the old one's slot.

Another question is what command saves the hero in a slot of my choice.

Example: I don't want to give the player the choice of saving the same hero in a different slot, as already happens, but it only causes problems when the player tries to change heroes and play with another with the -Repick command.

So I had a similar challenge with my map. The specifics of your repick system will depend on how you've implemented it. But I made a version of the save and load map with a button to create a new character. Look at the code for this button and implement a call to your repick code there.
 

Attachments

  • Codeless Save Load v3.0.1 Backup2.w3x
    154.9 KB · Views: 10
Level 5
Joined
Oct 31, 2011
Messages
92
So I had a similar challenge with my map. The specifics of your repick system will depend on how you've implemented it. But I made a version of the save and load map with a button to create a new character. Look at the code for this button and implement a call to your repick code there.
Man, it was really good!

You can place this New Character button at the bottom after Delete Character. Because it is dangerous to press it accidentally.

What if it's possible to make the New Character button perform a choice trigger?

Example: I want to press the New Character button and run my Repick system and release the option to save in another slot.
 
Level 10
Joined
Dec 16, 2017
Messages
405
Hi guys, i am trying to save charges of the items, courier with items and charges, stash with items and charges but it seems to fail somewhere..the save is fine, on the notepad everything seems good, items order and everything, but when i load, some items drop on the ground that were supposed to be in stash, stash get's loaded even if it wasn't saved and hero items get's messed up, a few replaced with others i didn't have..and also i would like to save spell power from chopinski systems, or it should be fine just on items? I was thinking to add things like talents or "perma upgrades" that would give spell power but no wonder on how to save it..
 
Level 5
Joined
Oct 31, 2011
Messages
92
After some test I made lately, it seems that the created code has a limit because if is long enough it won't load properly.
How big are the variables being saved? The maximum value I noticed is 99,999; greater than that, it will work at some point.
 
Level 24
Joined
Jun 26, 2020
Messages
1,914
How big are the variables being saved? The maximum value I noticed is 99,999; greater than that, it will work at some point.
In my case I didn't do that, what I did is saving an string using the same logic, I saved each character by converting it to its ASCII value because the system only works with integers.

Here I explain a bit more the thing: [Solved] - Save system is not working
 
Last edited:
Level 6
Joined
Jun 18, 2011
Messages
168
Someone asked for the New Character button to be moved to the bottom, and another person asked for the items to be loaded in the exact order they were saved. Here's a version where these changes have been made.
I noticed you changed a lot of the libraries since I used it back when his PlayerUtils was version 1.28. Now you have it as 1.29 and apparently saving in a much different method. So does this mean it is now more multiplayer compatible? TriggerHappy told me a couple years ago I shouldn't use this (I didn't listen, I'm still using it because I have other causes for desyncs in my map already). Curious if changing to your version will help with that, though.
 
Level 5
Joined
Oct 31, 2011
Messages
92
I noticed you changed a lot of the libraries since I used it back when his PlayerUtils was version 1.28. Now you have it as 1.29 and apparently saving in a much different method. So does this mean it is now more multiplayer compatible? TriggerHappy told me a couple years ago I shouldn't use this (I didn't listen, I'm still using it because I have other causes for desyncs in my map already). Curious if changing to your version will help with that, though.
I believe it can help you, I use this version of DarkePacific and it is doing well in multiplayer.
 
Level 10
Joined
Dec 16, 2017
Messages
405
Hi guys

I've managed to add more buttons to the "Dialog System", but into what i added new, it doesn't save/load anything, it just shows the name of the hero that was supposed to be loaded from there, and how can you add new pages to have more save slot room?

And also, how can you disable the dialog system for a player once he loads once or lets say, twice?
 
Level 6
Joined
Jun 18, 2011
Messages
168
I believe it can help you, I use this version of DarkePacific and it is doing well in multiplayer.
Got the updates working. Finally found that I hadn't been saving the unit as SavePlayerHero when it's picked. I fixed it by declaring it when the hero is chosen. Can't remember why I didn't need that using the previous version of this.

@DarkePacific Thank you for your contributions on this as well. I plan to make a separate inventory system one day, so that change is massive for me to quickly loop a bunch of items in! The New Character button was a great idea as well and something people requested from me a lot. It does create some discourse in my map as some structures are tied to the hero you choose/intially load, but I don't think its too immersion breaking or problematic, so I think I'll keep it!

I don't allow more than one load in my game, so the epic thing you did to allow loading without restarting doesn't effect me much. Still, you get to see that the file is actually there now. Idk if that was you or already there, but that does make things a lot better for people to see the system working, so thank you again if that was you.

And also, how can you disable the dialog system for a player once he loads once or lets say, twice?

Just put the part of your loading actions that create the hero and set the SavePlayerHero variable in an if/then/else statement set some integer variable eg. Load_integer to 0 by default and Load_integer + 1 when their hero is loaded then have the if statement say if Load_integer = 2 then it displays "Can only load twice", and under else put your create character and set variable stuff.

Not sure about your new buttons, but all I could see would be needing to edit the Dialog box trigger a couple different places. I could be wrong.
 
Last edited:
Top