Information for Mod Authors

Before starting
For the sake of later combining mods to work together, as early as possible when making your mod, try get a general idea to what Variables, Switches, Actors, Classes, Enemies etc. you are gonna need, and then go to the following sheet and reserve them Odyssey of Gianna mod compatibility It is okay at a start to reserve more than you end up needing, and if in doubt, better to take a bit too many, and then free them up in the sheet once your are done and know you wont use them, than taking too few, and risking someone else taking them in the meantime. This serves to make sure noone are using the same ID for things, making it a much easier to combine mods afterwards. Editing already existing entries, while almost always necessary, should be kept to a minimum, for the same reasons, but try and keep your own written code in separate events (whether Common, or map events), and then only have them referenced in the existing events, where needed

Best modding practices
When writing the actual code for your mod, try as much as possible to write your code in your own unique events etc. and just call these from the existing parts of the game where needed. This will make it a lot easier to combine your mod with other mods in the future, to the point where someone with basic JSON knowledge can do the majority of the combining of the mods via copy-paste in a text editor for the relevant files. Moving code to your own plugins/js files would make it even better, but would also be a lot harder and take more time to actually do, so is often not a viable solution Additionally adding comments in your code, explaining any parts will also make it easier for both yourself and others that may look at your code in the future, to remember/figure out what exactly is going on. These will generally not be read by the game, as as such makes no difference in the execution of the code

Creating your mod project folder
You may have noticed that the game folder structure for Odyssey of Gianna is a little different from most other RPGM MV projects. These were done to accommodate for the rather extensive changes between the difficulty modes, while also keeping overall size of the game low. This however does mean there is a few extra steps to creating your mod project folder than normally
 * 1) Create a new project folder as usual in the RPGM MV engine software
 * 2) Decide on what difficulty (Easy, Normal, Hard) you want to base your mod on
 * 3) Go to your ...\Odyssey of Gianna\Game\www\data_ \ where is what you decided on in point 2. And copy all the json files in there over to the data folder for the project you created in point 1, and confirm the overwrite
 * 4) Go to your ...\Odyssey of Gianna\Game\js\ and copy the entire content including subfolders over to the same js folder for the project you created in point 1 EXCEPT the files which name starting with "rpg_managers" and "plugins", and confirm the overwrite
 * 5) Finally still in the ...\Odyssey of Gianna\Game\js\ copy over just the plugins_ .js file to your mod project folder, and rename it there to just plugins.js, overwriting the current plugins.js already there
 * 6) Happy modding :)

Making your mod ready for upload
For the same reasons as when you created your mod project there is a few more steps when preparing your finished mod to be uploaded so other people can get it and play with it There are 2 methods you can use to incorporate the mod into an existing Odyssey of Gianna game. You can have it completely overwrite one of the current difficulty modes OR you can get it to show up in the launcher as it's own entry separate to the official difficulty modes. Which is the correct on for you to use is entirely based on what your mod does, though the second option does require a few minor edits for you to make to some js files. Not anything super crazy though. Also despite there are a the existence of How to install a mod I would highly suggest either leave a link to that page with your mod or create your own installation instructions with your mod, either in the form of a readme file, or a note on the side where your mod can downloaded from, if such a thing is possible

Overwriting an official difficulty

 * 1) Create a new empty folder with a \Game\www\data_ where is the difficulty you base your mod on when originally creating your mod project, as well as a \Game\www\js subfolders
 * 2) From your mod's project folder grab the content of the \Game\www\data\ and copy the files that are relevant for your changes to the \Game\www\data_ in your new folder, if you are in doubt what these are exactly, head the #modding channel in the discord found on this wiki main page, and we should be able to help you out on that, a lot of the files are named in relatively obvious ways. (The reason you don't want to grab everything is that the game would be easily reconstructable, from a basic RPGM MV project then, and you surely don't want to be responsible for easy access to the game for pirates right?)
 * 3) (If you added or created any new plugins) From your mod's project folder go to \Game\www\js\plugins\ and copy any new plugins you added/made yourself over to the equivalent folder in your new folder. If you just activated plugins from the within the engine editor you do not need to do this step
 * 4) (if you activated, de-activated OR edited the parameters/settings for any plugins) From your mod's project folder go to \Game\www\js\ and copy the plugin.js file over to your new project. Once that is done, rename the file in your new folder to plugins_ .js (Any notetags, plugincalls etc. you have added, edited or removed in the editor, is not part of this, but rather would be in the files covered in point 2)
 * 5) Finally if you added and/or edited any images, audio or any other files not covered in any of the previous points, be sure to copy those over to their relevant folders as well
 * 6) Add the entire newly created folder with all the files you copied to it into an archive of some sort (.rar .zip .7z etc) and upload it to wherever you prefer
 * 7) (Optional, but highly encouraged) Add a new page linked and formatted in a similar way to the rest on Mods

Adding as a separate entry
(A lot of this will be the same as before but there are a few very important key differences)
 * 1) Create a new empty folder with a \Game\www\data_ where  is the name of your mod as you want it to appear in the launcher, as well as a \Game\www\js subfolders
 * 2) From your mod's project folder grab the content of the \Game\www\data\ and copy the files that are relevant for your changes to the \Game\www\data_ in your new folder, if you are in doubt what these are exactly, head to the #modding channel in the discord found on this wiki's main page, and we should be able to help you out on that, a lot of the files are named in relatively obvious ways. (The reason you don't want to grab everything is that the game would be easily reconstructable, from a basic RPGM MV project then, and you surely don't want to be responsible for easy access to the game for pirates right?)
 * 3) (If you added or created any new plugins) From your mod's project folder go to \www\js\plugins\ and copy any new plugins you added/made yourself over to the equivalent folder in your new folder. If you just activated plugins from the within the engine editor you do not need to do this step
 * 4) From your mod's project folder go to \www\js\ and copy the plugin.js file over to your new project. Once that is done, rename the file in your new folder to plugins_.js (Any notetags, plugincalls etc. you have added, edited or removed in the editor, is not part of this, but rather would be in the files covered in point 2)
 * 5) From your mod's project folder, and copy over the rpg_managers.js file to your new folder, then rename this file to rpg_managers_.js
 * 6) Now open this rpg_managers_.js in a pure text editor (I would suggest Notepad++, that is a free, and more powerful version of the notepad that comes with windows). Find all entries of '\data' and replace them with '\data_ ' (there should be 2 entries). Likewise find all entries of '\save' and replace them with '\save_ ' (there should only be a single one). Then save the file (with the same name).
 * 7) Finally if you added and/or edited any images, audio or any other files not covered in any of the previous points, be sure to copy those over to their relevant folders as well
 * 8) Add the entire newly created folder with all the files you copied to it into an archive of some sort (.rar .zip .7z etc.) and upload it to wherever you prefer
 * 9) (Optional, but highly encouraged) Add a new page linked and formatted in a similar way to the rest on Mods