EMSCRIPTEN html5 with multiple .pak possible?

to lighten the download
hi my question is inspired by this tuto for dlc for window :


in html5 with this method i dont have a .data file but I have its content :
“Manifest_NonUFSFiles_HTML5.txt” ,“UE4CommandLine.txt” ,and.in Content\Paks: “MyProject-HTML5.pak”

how can we pack the files in .data and could you use additional .pak as addon can be even without .data
thanks for answer

the multi.pak is possible !!!
in the tutorial that show how to do a dlc
instead of cooked for window cook for html 5
the result is 3 file “Manifest_NonUFSFiles_HTML5.txt” ,“UE4CommandLine.txt” ,and.in Content\Paks: “MyProject-HTML5.pak” for main and 1 : for dlc MyProject-HTML5DLC.pak

after you have to modify the myproject.data.js
and especially the onload function
who call finish () function

the myproject.data is obsolete
il create the .data factice and in loadPackage function i add my name package
ex :

{"audio": 0, "start": 93, "crunched": 0, "end": 568, "filename": "/MyProject4/Content/Paks/AdditionalMap.pak"}]

once I’m finished it will not serve any more
for now I can load my package early

but I would like to be able to load them when I want

Hi I think I’m trying to do the same thing as you, but I don’t understand your solution.

I have through packaging created the .data and .js files, and I’m trying to replace the .data file with paks created by releasing since I need to be able to have different dlcs, but nothing works.

So if you found a way, could you be please more specific ? It would greatly help since I find nothing about it in the docs.

Thanks a lot in advance !

Edit : Je suis français si ça peut simplifier la compréhension !

did you follow the normal tutorial?
if it’s the ones you need but for html
I modify the file MyProject.data.js

giving a file more to load
that of the patch
as I said rather change the function of the onload function
which calls the finish function

it’s a hack
I use the function normally for normal files
and I use the function with an if on the name of the dlc and at this time the it diferementally does not give the
this.byteArray.subarray (this.start, this.end);
but directly the dimensions of the bytearray
Sorry I can not help much more I search after the code but I am not found

a problem and I can not use this system on the fly you have to restart the page for the patch to be taken

folow Unreal Engine 4 Tutorial - DLC - YouTube
follow the tutorial to get the basics of operation once you understand how it works normally under window

I do not replace the .data
at the end of the data.js file the function
loadPackage and call I just add my package
but as I have no .data
i just fake
{“audio”: 0, “start”: 93, “crunched”: 0, “end”: 568, “filename”: “/MyProject4/Content/Paks/AdditionalMap.pak”}]
and that’s why I hacked the onload function for what call the function finish with the right argument

with an if when the name with DLC
0 for this.start
end of the length of array for this stop

else
normal function

first we download the .pack DLC
in addition to the normal function of the game

which means you had to have a server … Nginx example

after we put them in byte array
we modify it to add to the loadPackage the files that we want
following lsi we find dlc or not in the name we use the normal function of the function onload: function
or the hack of the function

J’ai cru voir sur ton profil que tu es français ? J’avoue avoir un peu de mal a tout comprendre…
Du coup si oui, serait-il possible de me donner un exemple ? J’ai essayé de comprendre le data.js mais je vois pas où c’est qu’on est sensé charger le .pak même si j’en vois des références dans le code, et je ne comprends pas ce qu’on est sensés faire avec le .data…

En attendant je vais regarder la vidéo pour mieux comprendre, merci beaucoup pour ton aide en tout cas !

(if you’re not french sorry, I just saw FR as location on your profile and I thought it might help communicating. So if you didn’t understand what I said, thanks a lot for trying to help, I’m gonna try understand everything and get back to you if there are still things I don’t get)

le . data quand tu cree un projet exemple myproject.data ( tu n’y touche pas c’est la que sont mise les donnee du jeu )
la la fin de MyProject.data.js

 loadPackage({"files": [{"audio": 0, "start": 0, "crunched": 0, "end": 53, "filename": "/Manifest_NonUFSFiles_HTML5.txt"}, {"audio": 0, "start": 53, "crunched": 0, "end": 91, "filename": "/UE4CommandLine.txt"}, {"audio": 0, "start": 91, "crunched": 0, "end": 99485435, "filename": "/MyProject/Content/Paks/MyProject-HTML5.pak"}], "remote_package_size": 99485435, "package_uuid": "30371fc9-75cc-4849-9b3f-f8e990c06df0"});

un ligne semblable sa veu t dire que le jeux va decouper le .data en c’est parti
les donnee a

 onload: function() {
        var byteArray = this.byteArray.subarray(this.start, this.end);

          this.finish(byteArray);

      },

qui appele finish ce que tu doi faire c’est que tu va t’intercaller entre onload et finish
donc deja pour sa il faut que tu build une version test en html comme le tutorial le fait pour window
c’est pas le plus dur tu change juste la platforme pour html
le.data lui regroupe ton .pak normal et d’autre truc
quand tu genere comme le montre le tutorial tu va recuperer un .pak pour ton dlc
donc tu as un Myproject.data le natif et un MyprojectDLC.pak
il va donc falloir charger le nouveau .pak hor deja le truc gere pas les .pak par defaut mais les .data
dou le fait de bidouiller
tu va devoir telecharger ton.pak
tu trouve des tuto pour telecharger des fichier en javascript
une foi sa tu met ton fichier dans un bitarray

dans le loadpackage tu rajoute une entree exemple en gros sa dit enfaite dans le .data
ya encore un fichier(seulement enfaite c’est faux) enfaite jai chercher pour generee un.data mais j’ai rien trouver

[{“audio”: 0, “start”: 93, “crunched”: 0, “end”: 568, “filename”: “/MyProject4/Content/Paks/AdditionalMap.pak”}]

quand on arive dans onload on peu pas charger de la meme maniere que leur .data sinon ça ne fonctionnera pas

 onload: function() {
       this.name pour recuperer le nom du fichier 
           //si le fichier contient le mot DLC   fait ça :
           var byteArray =je donne le bit array de mon fichier que jai cree precedement
    
              this.finish(byteArray);
          //sinon
            var byteArray = this.byteArray.subarray(this.start, this.end);
    
              this.finish(byteArray);
    
          },

Merci beaucoup pour ta réponse ! J’ai pas encore testé, on a dû abandonner l’HTML5 car le rendu ne correspond pas encore à nos attentes, mais je garde ça sous le coude au cas où on s’y remets pour des projets moins lourds. Merci d’avoir pris le temps de bien nous expliquer, c’est super sympa !

Je te souhaite une excellente journée :slight_smile:

j’ai en parti arreter pour les meme raison et le fait que l’on puisse pas charger des pak a la volé …
si tu as un gros projet tout devoir telecharger avant d’utiliser le site … c’est pas genial