Představení
Obecné
- COMMAND je pole pro výběr příkazu (v tomto případě "new_folder")..
 - SOURCE je textové pole pro zadání zdrojové cesty souboru nebo složky.
 - TARGET je textové pole pro zadání cílového umístění. Také je používáno pro ukládání proměnných a může být i více v budoucnosti.
 - EXTRA (OPTIONAL) je textové pole pro zadání dalších parametrů (treba číslo, atd..). Je dobrovolné jen u některých typů tasků. POZOR: musí se vždy zadávat jako string!
 - COMMENT (OPTIONAL) je textové pole pro zadání popisu co ten daný task má dělat.
 
Dynamické proměnné
Proměnna se definuje a vkládá takto mezi tzv. díry nebo pipe |promenna|. Tímto tvarem se i čte i zapisuje. Jeto unikatní tvar který jasně identifikuje, že to je dynamická proměnná.
ZÁPIS:
- POZOR: Ukádat proměnné jde pouze v poli TARGET a v současné době má tuhle vlastnost pouze task 
search_binaryasize_file! 
ČTENÍ:
- Číst takovou proměnnou může každý 
write binary_xxxtask/operace a to pouze z property TARGET v současné době. 
Použití tasků a jak na EXTRA detail.
UPOZORNĚNÍ:
- 
                        
Pokud chcete pracovat se soubory které jsou relativne k rootu hry, máte 2 možnosti. Buď použijete speciální adresář {GAME_DIR} a nebo můžete také použit
./(Příklad./PatchData/original.pak) pred cestou jak u SOURCE, tak i u TARGETU. Systém to vyhodnodí jako relativne ke zvolené cestě hry. - 
                        
Property priority je tam pro řazení tasků dle priorit. Čím menší číslo, tím vyšší priorita v provedení.
 
Popis Tasku
- 
                    
run_file:SOURCE použijete jako cestu k souboru kterých chcete pustit. TARGET slouží k zadání parametrů, pokud je potřebujete.EXTRA je ignorováno.
POZOR pokud chceš použít cestu ktera obsahuje mezery je potřeba použít jednoduché uvozovky. Příklad: '{GAME_DIR}' -i '{MY_APPLICATION_DATA_ROAMING}'. Říkáš tím, že cesta musí být v uvozovkách při zpracování. A je určeno pouze pro TARGET.
- Tyto jednoduché uvozovky jsou platné pouze u tohoto typu tasku. Jinde to není nutné a nefunkční.
 - U toho typu tasku je přesměrován výstup přímo do logu managera. Týká se to třeba vsechn vecí z bat souborů co mají echo nebo třeba Console.WriteLine z c# console applikace.
 
 - 
                    
wait_proccess_finnish:SOURCE použijete jako název procesu který chcete monitorovat. TARGET je ignorován a EXTRA slouží k zadání timeoutu, pokud jej potřebujete. Je v sekundách a opět jako string.
 - 
                    
search_binary:(Je to pro čtení ze souboru výsledkem je offset na kterém se daný hledaný pattern nachází a uloží do promenné.)SOURCE použijete jako cestu k soubor ve kterém budete hledat. TARGET název proměnné do které se uloží offset. Nazev proměnné je string bez jakýchkoliv znaků před a za. EXTRA Jsou data které hledate v HEX string formatu (příklad: 48656C6C6F2C20576F726C6421).
 - 
                    
delete_file:SOURCE použijte jako cestu na soubor kterých chcete smazat. TARGET a EXTRA je ignorován.
 - 
                    
new_file:SOURCE použijte jako cestu k souboru kterých chcete vytvořit. Soubor bude naprosto prázdný.TARGET a EXTRA je ignorován.
 - 
                    
copy_file:SOURCE použijte jako cestu k souboru kterých chcete kopírovat. TARGET bude použit jako cesta kam se má kopírovat a EXTRA je ignorován.
 - 
                    
move_file:SOURCE použijte jako cestu k souboru kterých chcete přesunout. TARGET bude použit jako cesta kam se má přesunout a EXTRA je ignorován.
 - 
                    
new_folder:SOURCE použijte jako cestu k adresáři kterých chcete vytvořit. TARGET a EXTRA je ignorován.
 - 
                    
delete_folder:SOURCE použijte jako cestu na složku kterou chcete smazat. TARGET a EXTRA je ignorován.
 - 
                    
copy_folder:SOURCE použijte jako cestu ke složce kterou chcete kopírovat. TARGET bude použit jako cesta kam se má kopírovat a EXTRA je ignorován.
 - 
                    
move_folder:SOURCE použijte jako cestu ke složce kterých chcete přesunout. TARGET bude použit jako cesta kam se má přesunout a EXTRA je ignorován.
 - 
                
wait_task:Tento task ignoruje SOURCE i TARGET a u EXTRA je potřeba zadat číslo v sekundách a jako string. tudíž do uvozovek.
 write_binary_uintXXSOURCE je cesta k souboru který budeme modifikovat, TARGET je v tomto případě pozice v decimal čísle, je to vlastně offset a EXTRA je potřeba zadat decimal číslo. Tohle platí pro všechny ostatní Uint tasky
write_binary_intXXSOURCE je cesta k souboru který budeme modifikovat, TARGET je v tomto případě pozice v decimal čísle, je to vlastně offset a EXTRA je potřeba zadat decimal číslo. Tohle platí pro všechny ostatní Int tasky
write_binary_stringSOURCE je cesta k souboru který budeme modifikovat, TARGET je v tomto případě pozice v decimal čísle, je to vlastně offset a EXTRA je potřeba zadat string (ASCII) který budeme vkládat.
write_binary_wstringSOURCE je cesta k souboru který budeme modifikovat, TARGET je v tomto případě pozice v decimal čísle, je to vlastně offset a EXTRA je potřeba zadat Wide string(UNICODE) který budeme vkládat.
decopress_zip_fileZde je potřeba použit jak SOURCE tak TARGET a naopak EXTRA se nepoužívá.
write_binary_bytesSOURCE je cesta k souboru který budeme modifikovat, TARGET je v tomto případě pozice v decimal čísle, je to vlastně offset a do EXTRA je potřeba zadat HEX string, což bude série bytů po sobě.(příklad: 48656C6C6F2C20576F726C6421) - značí "Hello World"
size_file(task command k zjištování velikosti souboru.)SOURCE je cesta k souboru, TARGET(OPTIONAL) název proměnné do které se uloží velikost.Jinak je ignorován EXTRA je ignorován.
Popis jak na specialní adresáře
{MY_APPLICATION_DATA_LOW}Uživatelská složka "AppData/LocalLow"
{MY_APPLICATION_DATA_LOCAL}Uživatelská složka "AppData/Local"
{MY_APPLICATION_DATA_ROAMING}Uživatelská složka "AppData/Roaming"
{MY_USER_PROFILE}Root adresář uživatele.
{GAME_DIR}Adresář hry kterou si uživatel zvolil
{MY_DOCUMENTS}Adresář kde jsou uživatel dokumenty.
{WINDOWS_DIR}Root window složky
{MY_FAVORITES}Cesta do složky kde má uživatel oblíbené.
Příklad použití.
                {
                    "generals": {
                      "show_readme_after_install": true,
                      "game_root_data": null
                    },
                    "pre_tasks": [
                      {
                        "priority": 0,
                        "command": "new_folder",
                        "source": "./New_Folder/Data_In",
                        "target": "",
                        "extra": null,
                        "comment": "new folder"
                      },
                      {
                        "priority": 1,
                        "command": "search_binary",
                        "source": "{GAME_DIR}/exe/1deep/CZMaker.exe",
                        "target": "|offset|",
                        "extra": "106C6962536B696153686172702E646C6C",
                        "comment": "find offset and save to variable offset"
                      },
                      {
                        "priority": 2,
                        "command": "write_binary_bytes",
                        "source": "./exe/1deep/Application.exe",
                        "target": "|offset|",
                        "extra": "48656C6C6F2C20576F726C642148656C10",
                        "comment": "write hellow world to offset"
                      },
                      {
                        "priority": 3,
                        "command": "run_file",
                        "source": "./exe/1deep/Application.exe",
                        "target": "",
                        "extra": "",
                        "comment": "run application"
                      },
                      {
                        "priority": 4,
                        "command": "wait_proccess_finnish",
                        "source": "Application.exe",
                        "target": "",
                        "extra": "300",
                        "comment": "wait till application is exited or timeouted"
                      }
                    ],
                    "post_tasks": [
                      {
                        "priority": 0,
                        "command": "copy_file",
                        "source": "./PatchData/original.pak",
                        "target": "d:/original.pak.copied",
                        "extra": null,
                        "comment": "copy file"
                      },
                      {
                        "priority": 1,
                        "command": "wait_task",
                        "source": "",
                        "target": "",
                        "extra": "5",
                        "comment": "waiting 5s"
                      },
                      {
                        "priority": 2,
                        "command": "copy_file",
                        "source": "./PatchData/original.pak",
                        "target": "./New_Folder/Data_In/original.pak.copied",
                        "extra": null,
                        "comment": "copy file relative"
                      },
                      {
                        "priority": 3,
                        "command": "move_file",
                        "source": "d:/original.pak.copied",
                        "target": "./New_Folder/Data_In/texter.pak",
                        "extra": null,
                        "comment": "MOVE FILE"
                      },
                      {
                       "priority": 4,
                       "command": "write_binary_uint64",
                       "source": "./exe/1deep/Application.exe",
                       "target": "124",
                       "extra": "1833358489995488512",
                       "comment": "write some random int64 by bytes"
                      },
                      {
                        "priority": 5,
                        "command": "size_file",
                        "source": "./Application.exe",
                        "target": "|variable|",
                        "extra": null,
                        "comment": "get filesize, return variable or not"
                      }
                    ],
                    "modd_files": [
                      {
                        "priority": 0,
                        "name": "DataOther/resources.assets",
                        "originalMD5": "2C273719BFD8C35358A931070EC39D67",
                        "modedMD5": "A27E039B7D205CD91242AAF2F8B54EA7",
                        "installType": "patch",
                        "optional": false
                      },
                      {
                        "priority": 1,
                        "name": "PatchData/original.pak",
                        "originalMD5": "F139A2F2E0FC0D6B997CDC9BE16DA2AC",
                        "modedMD5": "589AC6491999461E3FD7B6524D7C9686",
                        "installType": "patch",
                        "optional": false
                      },
                      {
                        "priority": 2,
                        "name": "somebinary.pak",
                        "originalMD5": "",
                        "modedMD5": "8CFECCBC2168D463C194110486C20DAF",
                        "installType": "insert",
                        "optional": false
                      }
                    ]
                  }