Making a Side Story

How to make a Side story;

This page will (hopefully) help you make your own side storie(s). A lot of things here were taken from Gnomes Laboratory, the main blog for MGQ-side-stories. This tutorial only covers side-stories for Chapter 1, since I didn't find a good list of Chapter 2 material.

Required items

 * A text editor
 * A (basic idea for a) story

Optional, but advised items

 * Excel, or a likewise program, just to make editing your text much more easy.
 * The monster lab converter (Everything can be made without it, but else it can be found on Rogue's website here (top link doesn't work, use the link provided by "dark" at the almost bottom of the page). The converter can be found in the folder "mon_labo/tool"
 * The lists of background music, sound effects and original in-game character and background codes, found in the same folder as the above converter.
 * Which can be extracted via NSAout at here. Remember that the all the .arc files must be in the same location as NSAout.

Looking at the competitors

 * I'm not joking, before you get started, take a look at the stories other people made and then especially at the "story.ini" files. (Just open them with notepad)

Notepad only?

 * If you only use the notepad, just copy the following in, and start editing.
 * Now you have to have every new line start with a next number and add your message between the " " with as last symbol (so before the second quotation mark) a SPACE. if your story is done, your end it by changing the 9999 into the next number you should use.
 * Now you have to have every new line start with a next number and add your message between the " " with as last symbol (so before the second quotation mark) a SPACE. if your story is done, your end it by changing the 9999 into the next number you should use.
 * Now you have to have every new line start with a next number and add your message between the " " with as last symbol (so before the second quotation mark) a SPACE. if your story is done, your end it by changing the 9999 into the next number you should use.
 * Now you have to have every new line start with a next number and add your message between the " " with as last symbol (so before the second quotation mark) a SPACE. if your story is done, your end it by changing the 9999 into the next number you should use.
 * Now you have to have every new line start with a next number and add your message between the " " with as last symbol (so before the second quotation mark) a SPACE. if your story is done, your end it by changing the 9999 into the next number you should use.
 * Now you have to have every new line start with a next number and add your message between the " " with as last symbol (so before the second quotation mark) a SPACE. if your story is done, your end it by changing the 9999 into the next number you should use.
 * Now you have to have every new line start with a next number and add your message between the " " with as last symbol (so before the second quotation mark) a SPACE. if your story is done, your end it by changing the 9999 into the next number you should use.
 * Now you have to have every new line start with a next number and add your message between the " " with as last symbol (so before the second quotation mark) a SPACE. if your story is done, your end it by changing the 9999 into the next number you should use.
 * Now you have to have every new line start with a next number and add your message between the " " with as last symbol (so before the second quotation mark) a SPACE. if your story is done, your end it by changing the 9999 into the next number you should use.
 * Now you have to have every new line start with a next number and add your message between the " " with as last symbol (so before the second quotation mark) a SPACE. if your story is done, your end it by changing the 9999 into the next number you should use.
 * Now you have to have every new line start with a next number and add your message between the " " with as last symbol (so before the second quotation mark) a SPACE. if your story is done, your end it by changing the 9999 into the next number you should use.

Monster lab converter?

 * If you use the monster lab converter, you can leave the numbers and " but you still need to add the end-of-text-spaces (more about that later)

Excel?

 * Excel requires a bit more setting up, but that might pay off in the long run.
 * In column A type in row 5-7 the numbers 1-3, select them all and the use the drag the square at the lower right corner down, to let excel number further for you
 * In column B, row 5 type " = "" (so SPACE, equal symbol, SPACE, quotation mark) and also click and drag down the black square in the lower right corner
 * In column D, row 5 you do a space and a single quotation mark and again you repeat it downwards
 * After the last line you use, you put the end-line as seen above.
 * The text you use can now by normally typed in column C.
 * When you are done with the story, copy all the cells to notepad and replace (Control+H) the TAB's with nothing.

Now you have a basic story, but without any names above the text boxes, pictures or sounds. Here we will talk about in the next steps.

Backgrounds, sprites and sounds
To add anything else then just plain text, you will have to do a bit more research and testing. Especially if you write the story first, and choose and add the rest later it is handy to use (a program like) Excel, so you can move parts of your text, without having to re-number everything.

Backgrounds

 * To have a background you need the following line in your end-product:
 * 0 = "bg,bg002,10,1500 "
 * This line has 4 parts:
 * The "bg,: signalizes the game that you want to add a background.
 * The bg002,: selects what background you want, in this case, Luka's house. In the list_bg.jpg file, found in the tool folder of the download, you can see all the available backgrounds in chapter 1 and there codes.
 * The 10,: sets location data (can be played with, but 10 is usually fine).
 * The 1500 ": sets scaling data (can be played with, but 1500 is usually fine). Also note that there is a SPACE at the end of this line.
 * You can add your own background,in that case you need to have it in the same folder with all the rest of the files (story.txt) etc... Most of the backgrounds are in BMP format so i reccomend keeping it that way
 * To have a custom background show up in your side story, use a format similar to 0 = "bg,filename.bmp,10,1500"  with "filename" being the picture file you want to use.Also it is recommended to keep it in that resolutions:800x600 othervise the game may not display it

Solid Colour Backgrounds

 * While it's awesome to have a background, sometimes you don't want one.
 * How to get rid of the background in one easy step...
 * 1 = "bg,black,10,1500 "
 * 2 = "bg,white,10,1500 "
 * Everything is the same as above, except black/white is not a picture file; just a command.
 * As above, you can use whatever transition and transition duration that you'd like...
 * So apparently you can set the background to any solid colour you'd like. Format is RRGGBB in hex. if you know your colours then this should be easy; otherwise you can use a program to mix them and find out what colour you're looking for. Aditionally you can use imaging software to select and identify colours with decimal values, then convert them to hex. 255 = FF, 0 = 00.

I'm really hoping that I don't find anything else relating to the background property... Sorry for the continued edits...
 * 1 = "bg,#FF0000,10,1500 " //red 
 * 2 = "bg,#00FF00,10,1500 " //blue 
 * 3 = "bg,#0000FF,10,1500 " //green 
 * 4 = "bg,#7F7F7F,10,1500 " //50% Grey 

Sprites

 * Sprites are the pictures of the monster girls, and are used as such:
 * 0 = "sp,8,alice_st01,0,1,10,100 "
 * This line has 7 parts:
 * The "sp,: signalizes the game that you want to add a sprite.
 * The 8,: selects the layer, similar to Photoshop. For those who don't know how it works, the higher the number, the further "back" the picture gets. So if you have a picture on layer 7 and 8 at the same position, the picture on layer 7 will appear in front of the picture on layer 8.
 * The alice_st01,: sets the sprite you want to use (look at the list_chara.txt file for all the sprite names)
 * The 0,: sets the position horizontally, accepts the - symbol for negative starting positions.  Positive values set sprite to the right, negative values to the left.
 * The 1,: sets the position vertically, accepts the - symbol for negative starting positions.  Positive values set a sprite low, negative values set a sprite high.
 * The 10,: sets the way the sprite appears on screen (sliding in, fading in, etc). Must have a value between 0 and 14 (including 14) but not over 14, or else the game crashes.
 * The 100,: sets the time it takes for the appear-animation to finish. The higher the number, the slower the sprite appears. Can be as high as the thousands.



To add a sprite that takes up the entire screen (such as Alice's unconscious sprite, or almost any rape scene drawn by UN_DO) use the following command:

sp_non_alpha,3,alice_iv02,7,300




 * This line has 5 parts:
 * The"sp_non_alpha,tells the game that you want to add a sprite without eliminating the background (alpha) color. If the background color is removed, then the sprite will appear to be transparent.
 * The 3,: selects the layer, identical to the previous sprite command.
 * The alice_iv02,: is filename of the CG you wish to use.
 * The 10,: sets the transition effect/how the sprite appears on screen (sliding in, fading in, etc). Must have a value between 0 and 14 (including 14), but not over 14, or else the game crashes.
 * The 100,: sets the time it takes for the appear-animation to finish. The higher the number, the slower the sprite appears. Can be as high as the thousands.

Unlike the previous command, you can't change where this sprite is positioned.

To delete a sprite (set with either sprite command) use a similar function to calling a sprite. Using the above for an example, you could enter:

sp_del,8,10,500

This line has 4 parts:


 * sp_del: This signals that you want to delete a sprite.
 * 8: Similarly to the above, this calls the sprite layer of eight to be deleted. Note that you do not need to reference the name of the sprite - the game will delete everything on that layer.
 * 10: This is the way the sprite disappears from the screen, similar to the second-to-last (10) operation above.By changing it you can change the way that sprite disapear from a screen
 * 500: This is the time it takes for the transition to finish. The higher the number, the slower it disappears.

Sprites2

 * sp2 command
 * sp2 is similar to sp in that it can display sprites! other than that, it's pretty different...
 * sprites displayed with sp2 can be put on layers 0 through 9 along side the sprites placed with sp. (you can put a sprite on layer 4 with sp, then another one on the same layer with sp2)
 * the command looks like this
 * sp2,4,alice_st11,350,300,0,0,0,4,1000
 * sp2 - the command
 * 4 - the layer
 * alice_st11 - the image
 * 350 - x position (0 puts the image center at absolute left)
 * 300 - y positoin (0 puts the image center at absolute top)
 * 0 - x expansion (0 leaves the image as is, anything bigger increases it's size by that many pixels, anything smaller makes it smaller by that many pixels)
 * 0 - y expansion (0 leaves the image as is, anything bigger increases it's size by the many pixels, anything smaller makes it smaller by that many pixels)
 * 0 - rotation (0 leaves the image as is, positive values rotate the image counter clockwise by specified amount, negative rotate clockwise)
 * 4 - transition effect
 * 1000 - transition duration (ms)

Move Command

 * The move command has 10 parts, took me a while to figure them out, but once you know what you're doing (and you stop crashing MGQ) it's a pretty useful command...

"move 2,3,4,5,6,7,8,9,10 //please do not run that line of script
 * 2 - This is the sprite layer to be moved. Sprite layers are between 0 and 9.
 * 3 - This is the horizontal shift (movement). Can be positive or negative. 3 moves the sprite 3 pixels right per movement loop.
 * 4 - This is the vertical shift (movement). Can be positive or negative. 4 moves the sprite 4 pixels down per movement loop.
 * 5 - This is the width modifier and can be positive or negative. 5 will increase the sprite's width by 5 pixels around the center. (will stay centered unless it's being moved by the other values)
 * 6 - This is the height modifier and can be positive or negative. 6 will increase the sprite's height by 6 pixels around the center. (will stay centered unless it's being moved by the other values)
 * 7 - This is the rotation of the sprite. Can be positive or negative; positive numbers rotate counter clockwise and negative numbers rotate clockwise.
 * 8 - Opacity. Can be negative or positive; though, it has a maximum value and once it's over that it doesn't get any more opaque.
 * 9 - Delay - This number sets the delay per loop. A delay of 0 isn't instant as the display time still applies. When you set this, please be sure to test it to see just how long you want it to be. without the display time delay a value of 16 would be about 60fps.
 * 10 - Loop Count - Finally! This is what allows the movement to happen. Everything that you've specified to now is repeated over and over this many times. It must be a positive number.

notes: Move does not appear to work with sprites created by SP, instead you have to use the SP2 command to display the image. I'm still documenting this command, will list it upon completion.

Background Music
If you want to add your own music you need to place a music file in .ogg format (converter) and use it with 1 = "bgm,somemusic.ogg ".
 * Background music, to have playing while you are going through the story, works as follows:
 * 1 = "bgm,alice1 "
 * This line has 2 parts:
 * The "bgm,: signalizes the game that you want to add a background music.
 * The alice1 ": selects music you want to have playing, can be found in list_bgm.txt.
 * Now that it's playing, of course you have the issue of stopping the music. This can be done with a single part line:
 * 1 = "bgm_stop"
 * Important things to remember, no spaces. That's it, enjoy the silence. :)

Sound Effects

 * Sound effects are small pieces of sound that play over the background music. You can have multiple sound effects at a time, while you can only have one background music. Sound effects also have the OPTION to loop (don't HAVE to)
 * 1 = "se,1,bird,loop "
 * This line has 3 or 4 parts:
 * The "se,: signalizes the game that you want to add a sound effect.
 * The 1,: selects the "layer" of the sound effect
 * The bird,: Selects which sound effects to play, all can be found in list_se.txt and you can use your own in the same way as background music.
 * The loop ": makes the sound effects loop. To not loop you just remove the command (the line will look like 1 = "se,1,bird "). To STOP a looped sound effect use the command 7 = “se_stop,1 “, where 1 is the layer again. In a post it is said that if you use own sound effects and you want to stop them immediately, you have go one layer number higher.
 * Just like with backgrounds,it is possible to add your own sound effects.Its very simple to do it,first you have to make sure that sound effect is in proper format which is wav,if its not find and download a converter or use online converter(its lots of them out there).Once done with that just simply drop it to the folder with you story.Very simple,now to use it in a story? Just type in se,1,randomsound.wav of course if you are doing it use a proper sound effect name.Example se,1,thunder.wav and thats it you got your own sound effect in your story

Syasei Command

 * The syasei command triggers an orgasm during a rape scene. With it, you can make the screen flash, play the 'syasei' (orgasm) sound effect, and switch to different rape scene CG all using only one line of code.


 * "syasei,3,iriasu_h2,0,0"
 * The '3' indicates which layer the rape CG is appearing on.
 * 'iriasu_h2' is the filename of the rape CG you want to switch to when the main character orgasms.
 * The first '0' after the filename centers the sprite horizontally. Positive numbers center CG to the right, and negative numbers to the left.
 * The second '0' centers the sprite vertically. Positive numbers center them lower on the screen, and negative numbers center them higher on the screen.


 * Generally, most rape scenes are already centered, so you can usually just leave both values at 0. This command does not work with in-game rape CG that take up the whole screen, such as most of UN_DO's rape scenes. However, it still works with any custom rape scene CG. Even if they take up the whole screen.

Flash Command

 * This command makes the screen flash. It's typically used if a spell is being cast, or if the main character is falling victim under 'Eyes of Obedience' or similar spell. It can be used whenever a main character orgasms, but the 'syasei' command is generally more efficient at doing that.
 * "flash,250,500"
 * The '250' is how long it takes for the flash to fade in.
 * The '500' is how long it takes for the flash to fade out.
 * There is no limit to how high the numbers can go. But the larger the number, the longer it takes for the flash to fade in or out. Don't use negative numbers or the game crashes.

Quake Command

 * This command makes the screen shakes, typically after someone lands a powerful attack, such as Ilias smiting someone, or demon skull beheading.
 * "quake,10,500"
 * The '10' determines how much the screen shakes.
 * The '500' determines how long it shakes for.
 * There is no limit to how the numbers go. But the higher the number, the more/longer the screen shakes. Don't use negative numbers or the command won't work.

Element Command

 * This command allows you to display the spirits across the screen, it is used during the game when one of them is trying to get Luka's attention. To make them appear on the screen, use the following line of script.
 * "element,1"
 * This line has 2 parts, the first of which is element, the second is a number between 1 and 4.
 * 1 - Sylph
 * 2 - Gnome
 * 3 - Udine
 * 4 - Salamander

Movie Clips

 * In order to play movie clips in the game, you need to make sure the movie file is encoded in MPEG-2 format (*.mpg).


 * 0 = "movie,your_video_filename.mpg"


 * This line has 2 parts:


 * The "movie,: tells the game the file name in the next arguement is a movie.
 * The your_video_filename.mpg: is the name of your video file.

Battle Making
Battle making is the most difficult thing about making a side story,in order to do so i reccomend using this tutorial http://www.mediafire.com/?5e2oenm6yrmdfno

Choices and skipping

 * To have the player choose an answer you have to enter the following line:


 * 646 = "select,Erubetie ,slime,Humanity ,man,Both ,both"


 * This line will show you 3 choices and is made out of 3 or 7 parts (7 if you count the multiple answers)
 * The "select,: this will signal the game that you want to have option boxes pop up
 * The "Erubetie ,: The TEXT of the first answer. This is what is shown on the button, and need to be ended with a space.
 * The "slime,: The IDENTIFIER of the first answer. This is the "route" the game will take when you choose this answer.
 * The other 4 parts are the same as these last two.


 * After a choice, there is usually a small bit different, and then it is back to the main story line. To not have to make large parts dubble, you can also skip certain pieces of text, so you can go back to the main line, that goes for every choice.


 * However if the choice also changes things further down in the story it is wise to when you duplicate large pieces of text, to still make it into new sections to improve readability if you need to change something.


 * If you want the game to skip to an other part you need to input the line:


 * 543 = "goto,op1a"


 * This line has 2 parts:
 * The "goto,: This will signal the game that you want it to go to the part after the comma.
 * The "op1a,: The name of the section you want the game to go to.


 * Here is an example of both the more advanced tools:


 * [story]


 * 0 = "some story "




 * 654 = "select,Option 1 ,op1,Option 2 ,op2"


 * [op1]


 * 0 = "story after option 1 "


 * 1 = "more story "


 * 2 = "goto,op1m1"


 * [op2]


 * 0 = "story after option 2 "


 * 1 = "more story "


 * 2 = "goto,op2m1"


 * [op1m1]


 * 0 = "Part of main story that has slight changes because option 1 was chosen "


 * 1 = "more story "


 * 2 = "goto,end"


 * [op2m1]


 * 0 = "Part of main story that has slight changes because option 2 was chosen "


 * 1 = "more story "


 * 2 = "goto,end"


 * [end]


 * 0 = "Last part of the story, where the options don't matter "


 * 1 = "finalizing "


 * 2 = "end"


 * In this example you can see the start of a story line, 2 options, 2 continuations with slight story differences, and then back to the main story line / ending.


 * As you probably also have noticed, the numbering goes back to 0 at the start of each new section.

'''Common Bugs/Technical Issues

 * There are a few common glitches writers can easily encounter when scripting their sidestories. Here are a few to keep in mind.
 * In older versions, writers could use the "@" character to add breaks in their dialog. It no longer functions in newer versions (including Part 3). Don't use it.
 * Add an extra space at the end of each line of dialog. Some of the newer nscripts have a (minor) bug that "devours" the last character at the end of every spoken line. As a result, when players play the mod, some sentences have missing punctuation. To keep that from happening, just add an extra space after the last period/question mark etc.
 * Don't write too much dialog at a time. If you try to add too much dialog all at once, you'll overload the text box and crash the game. This is particularly easy to do in some of the newer updates, and is the reason why some mods that worked for Parts 1 and 2 no longer work for Part 3. Either write shorter dialog, or break it into smaller chunks. Generally speaking, a single line of dialog can't have more than 200 characters (spaces included).

Game Crashes
When the game crashes, the first thing you get is a confusing error message written in a mix of Japanese and hard-to-understand English. However, there's only one or two things you really need to understand to when an error message pops up. When the game crashes, it's often because either there's too much dialog being spoken, or it can't find a file.
 * If the game crashes as someone's speaking, your dialog is too long. Go to the line where the game is crashing, and either shorten and/or break it up.


 * If the game crashes as new backgrounds, sprites, or sounds are being introduced, the game can't find the file you're specifying. Go back and make sure you spelled the missing filename correctly.  If you're using custom sprites/backgrounds/SFX, make sure they're in the mod folder, and make sure you remember to add their file extensions in the script.  The error message will at least tell you which file is missing.

Gamers can avoid the second error by playing mods on the most recent release. Note the game will never crash if it can't find the right BGM. Instead, it'll either play the title music or the monsterpedia soundtrack.