CSModLauncher (BETA)

Discussion in 'Modding Discussion' started by Miccs, Aug 7, 2018.

  1. Aug 7, 2018
    Miccs
    The Sunset Curse
    "All your forum are belong to us!"
    Join Date: Jul 20, 2015
    Location: Under sea level or something
    Posts: 583
    Age: 19
    (I've been procrastinating making this post forever so it's good I'm finally getting this out here)

    This is a little project of mine that is made with goal to manage mods more easy, getting rid of the need to navigate through folders, but also comes with an way to easily update your mods!
    Yes, this launcher comes with a feature to update mods, which can save you a lot of time!

    The launcher uses .cmf (Cave story Mod File) files, practically renamed .JSON files (renamed to make detection easy). These files contain info about your mod, including names, descriptions and download info! more info about these later.

    Currently, the launcher is able to list mods, open mods to play them, open a custom doconfig (unfinished, but includes better font selector!) and update mods, but it's extremely likely more may be added in the future.

    I felt like there was a lot to say, so beware of walls of text.
    Setting up the launcher is easy, just put the launcher in a folder that contains folders of Cave Story mods. That's it!
    When you start up the launcher, it'll search folders with cmf files starting from the folder the launcher is placed in, and lists all mods with one.

    If you want your (or someone else's) mod to show up in the list, you'd have to make a cmf file for the mod (Of course unless it already has one).
    The launcher comes with a example cmf (incorrectly) named empty.cmf, containing explanations of each element. Copy this file to your mod's folder and edit it with your favourite text/JSON editor.

    While I hope the explanations in it is self-explanatory, I want to give extra note to the download/version links.
    It is preferred to put a permanent direct download link to a .zip file containing your mod, that contains a folder named after your mod. When someone updates/downloads their mod, it will be downloaded from the given download link.
    The version link has to be linked to a cmf file that contains the current version and latest update info.

    When you want to release an update for your mod, replace the file the cmf's download link refers to and replace the cmf at the version link. People should now be able to use the launcher to update your mod!

    Also of note is that you are not required to give a download/version link! A download link is still the minimum to download though, or else the update function will not be available for your mod.

    Q: What is a cmf file?
    A: A cmf (Cave story Mod File) file is a file that contains info about a cave story mod, including name, description, download info and more. This is what the launcher will be looking for to detect your mod.

    Q: Are you expecting including cmf files to be a new norm?
    A: No I do not. Wether this tool will be a success or not, I do not expect everyone to add support for the launcher to their mod, or that a majority of modders will even use this tool in the first place, it's all up to them.

    Q: My mod doesn't show up!
    A: Your mod will only show up if the mod's folder contains a cmf file that is not called "empty.cmf", and will show up in the list based on it's folder's name. If it still doesn't show up, try putting the launcher directly outside the mod's folder.

    Q: The list shows a 'mod' named after the launcher's folder, and selecting it crashes the launcher!
    A: This is a bug I still need to fix where the launcher also detects cmf files (that are not named "empty.cmf") in the folder the launcher is located in. This will be fixed in the future.

    Q: Pressing the play button opens the folder to my mod! Can't you just directly open the .exe?
    A: If the mod's folder opens instead of the mod being launched, it either means the mod is missing it's .exe, or the cmf file is referring to a .exe that doesn't exist. Look for an <file> tag with doukutsu as it's element.

    Q: The update button is greyed out! How do I activate them?
    A: If the update button is greyed out for a mod, it means it's cmf does not give a download link, or has one that does not link to a zip file (For safety reasons, this is a requirement).

    Q: Is updating safe? What if my update failed, do I lose my files?
    A: Any replaced files will first be backed up in a backup folder, which will be removed when the update is an success. So at failure, look for a folder called "old_backup".
    As for safety, it's as safe as downloading a file online. When updating, you will be shown the download link of the mod. While updating the downloaded zip file will be unpacked and the files will be copied to the mod's folder, nothing (but the zip file) will be opened without your consent.
    I will not hold myself responsible for any bad files downloaded through this. If you see a shady download link, please be careful.

    Q: Can you add support for Doukutsu Club?
    A: I have mentioned making the launcher use Doukutsu Club to the owner before, and interest exists. Plans are yet to be made however, but should this launcher hit well, I will consider adding support.

    Download links;
    Dropbox | Google Drive

    If you want to see an example of a cmf files, you can find one here for Metronari, one of my old mods.

    When upating a mod, the new version of the mod will be downloaded from a link given by the creator of the cmf file (likely the creator of the mod).
    Obviously, I have no control over what someone will supply as their download link other than that it has to link to a .zip file.
    For this reason, I will not hold myself responsible for any bad files downloaded through this. If updating gave you an evil file wrecking your system, please complain at where you got the cmf from.
    Updating a mod will download the zip, unpack it and copy the files to the mod folder, without launching everything. So this should be as save as downloading and unzipping any file from the internet, but please use caution if the updater shows you a shady link.

    Again, this is still a work in progress, but the basic functionality should be there. Please tell me any what any of you think of this, and if you have any suggestions and/or complaints/problems, please let me know.
     
    Last edited: Aug 8, 2018
  2. Aug 7, 2018
    Serri
    Serri Online
    Wanna nice glass of lemonade?
    "That dog!"
    Join Date: Jun 27, 2013
    Location: Cygnus
    Posts: 1691
    Age: 23
    This has always been an excellent idea that you've made. It worked well with the MaGCSL Updater, so I have certainty this will kick off well! ^_^
     
  3. Aug 7, 2018
    Noxid
    In my body, in my head
    "Life begins and ends with Nu."
    Join Date: Aug 28, 2009
    Location: The Purple Zone
    Posts: 5941
    here's a suggestion: can we not use xml because it's actually not very good
     
  4. Aug 7, 2018
    Miccs
    The Sunset Curse
    "All your forum are belong to us!"
    Join Date: Jul 20, 2015
    Location: Under sea level or something
    Posts: 583
    Age: 19
    If you can think of something better and also explain why? This is honestly the only thing I could come up with that isn't just unformatted text files.
     
  5. Aug 7, 2018
    Noxid
    In my body, in my head
    "Life begins and ends with Nu."
    Join Date: Aug 28, 2009
    Location: The Purple Zone
    Posts: 5941
    JSON has largely superceded XML as a human-readable and machine-parsable data interchange format. It's less bulky than XML, easier to understand, and easier to write. JSON works on the basis of key-value pairs and supports familiar constructs such as arrays and nested objects. Example:
    Code:
    {
    	"modname": "Cave Story 2",
    	"author": "Noxid",
    	"spritesheets": [
    		"Npc/NpcRegu.bmp",
    		"Npc/NpcSand.bmp",
    	],
    	"settings": {
    		"imageformat": "bmp",
    		"version": 2.0
    	}
    }
    
     
  6. Aug 7, 2018
    Miccs
    The Sunset Curse
    "All your forum are belong to us!"
    Join Date: Jul 20, 2015
    Location: Under sea level or something
    Posts: 583
    Age: 19
    That's defenitely interesting, and I'll consider using that instead.
    Even though it's a bit early here and changes like these shouldn't be too harsh I might just consider keeping backup support for the xml format though. Who knows.
     
  7. Aug 7, 2018
    Slither
    Professional Whatever
    "Life begins and ends with Nu."
    Join Date: Jan 13, 2011
    Location: Lasagna
    Posts: 4491
    This is pretty interesting, and it'd be neat to see it become a standard for modding and mod distribution. I'm not sure how thorough Doukutsu Club is, but maybe it'd be possible to use cmf files and DT's mod repository for some comprehensive mod access?
     
  8. Aug 8, 2018
    Miccs
    The Sunset Curse
    "All your forum are belong to us!"
    Join Date: Jul 20, 2015
    Location: Under sea level or something
    Posts: 583
    Age: 19
    Allright, early but important update i guess, most notably the switch to JSON format. The empty cmf file will be updated and the op will be updated as well. The launcher now also includes a refrence file explaining each variable in a cmf file.

    • CMF files are now in JSON format! if you already made a cmf for your mod in xml I'm very sorry, but there is no more support for it anymore.
    • The play button will now grey out when the mod's exe is missing.
    • A scrollbar has been added to the description box when the description is way too long. (you were still able to scroll, but wouldn't have any indication that there's more)
    • Updates no longer require the zipped file to have a folder that is named the same as what you enter as name in a cmf file. You still have to put everything in a folder though.
    • Fixed an issue where the launcher would crash if the .cmf file has an incorrect syntax or just can't be properly read.
    • You cannot write in the description box anymore.
    • Some other minor UI tweaks.
    • Added a secret waffle button. It's a secret!

    You can download the new update with the same download link in the OP, but here it is again to save you time.
    Edit: if you're missing the mentioned refrence file, redownload. I forgot to include it but that should be fixed now.
     
    Last edited: Aug 8, 2018
  9. Aug 8, 2018
    Serri
    Serri Online
    Wanna nice glass of lemonade?
    "That dog!"
    Join Date: Jun 27, 2013
    Location: Cygnus
    Posts: 1691
    Age: 23
    You done did it... You've surpassed Noxid!