My intentions for this page are to explain through example every aspect of a side story and how they are used. I will include documentation along the way so every command will explain what it's doing (at least the first time) and how it is used. Please do not edit this page, I'll get to it on a fairly regular basis.
I started writing in here right away without actually planning it out... caused a few problems as I started going through it in my head... So, I'm currently writing the actual Side Story - on the side - and will update here as I get it working properly... Ideally, I'll have a downloadable version available before it's completed here...
Battles and Battle Structure is a little more complicated than I'd originally thought, at least to map everything 'perfectly'. So this is going to take a while... I'm currently working on a battle section which can be found at Side Stories - Battle Commands and will update from there. That said, the current story outline is going to be changed somewhat to make it fit a little better...
I will update it here shortly so as to make it work; however it's going to be a bit of time before the story is completed. I'm currently debating how I'm going to add the separate files (since it's done with restart,path\subpath to control all the fight situations, really holding them all on one page is too much; so using separate pages has so far been the only option I've found that really works. Though, doing it that way will create a whole bunch of very redundant pages. I don't feel the wiki needs those... Any suggestions would be wonderful; thanks. :)
Contents
Description
27/04/2014
Alright, so I've been working on a monsterpedia file, as well as a side story editor. Some of you may wonder, why bother with the side story editor? Since side stories are so limited in what you can do with them. Other's may wonder, why work on a monsterpedia? there's one in the game..? Well, I'll answer both of those questions here... Though, they are unrelated to the purpose of this page. So you can read them if you'd like, or you can proceed below them to the actual content of this page.
Side Stories / Side Story Editor
When I first came to the Monster Girl Quest Wiki, I had no idea about the limitations of Side Stories, I felt that creating a Side Story editor would be awesome! Then looking at the previously documented commands that you can use in a Side Story, I realized just how limited they were. My first reaction was - why bother making a side story editor? Then I thought, well people still make side stories, I can make it easier to do that, fairly easily since they're so limited... Then I thought, well... there are commands in some side stories that I've never heard of, and that I didn't understand how they worked. So I started doing research into the Monster Laboritory and discovered a bunch of new commands, figured out how they worked, then documented them in the 'making a side story' section of this page. Now I realize that a Side Story, though still inherently limited, can be quite elaborate, so an editor is something that could be a great tool for side story creators to both assist them in Side Story developement, as well as showing them just how far they can take their stories.
Monsterpedia
Creating a monsterpedia isn't so much about seeing all the graphics in the game, it's more about knowing what's available. The monsterpedia is meant for side story developers as well as people making a repatch, to show all the different graphics in the game, their filenames, and who they relate to specifically. Originally I had intended to create a monsterpedia that was limited to each individual monster entry, though early on I realized that there were some issues with doing that. Not all graphics are actually referenced in battle, and beyond that, extracting specific graphic to battle information is a very lengthy process. Anyway, not going to happen. I refuse. Instead, I've created a monster specific graphic list. This is not monster / fight specific, but monster specific. For instance, Granberia has multiple entries, though each entry references all of Granberia's graphics. This is the first test that I did with splitting them up on a fight specific basis. Granberia has 2 images that aren't referenced in battle, they are instead referenced later on in the Monster Lord's castle, during a non-battle scene. Not very useful to have undocumented images. Anyway, that's why we need a monsterpedia, so that people creating can have an actual image list that's already been broken down in a character specific way.
Putting it all together What I've decided to do in the interm, is create a Side Story, without an editor. The purpose of this side story is to show how everything that you can use in a side story is actually used. Hopefully I'll find a good reason to use the four remaining undocumented commands in side story developement somewhere in here... The creation of this Side Story will not be done privately however, instead I'm going to create it here, on the site. I will document the use of every command (at least the first time I use the command) and explain what they're doing as well as how they work. Hence, Putting it all together...
The Story
I've decided to create a Side Story that takes place in the coliseum. In it, Luka will battle every creature within the game. Winning a battle will award Luka a bonus, losing a battle will allow him to retry, though he will not recieve a bonus for the battle's completion. As a side story developer, you can go through to the individual sections (which will be linked somewhere on here) for each monster to see their specific image list. That's the plan... We'll see how it goes...
pre-story notes ... all variable use is being remapped, I'm having issues with the battle development as, well - it's just slightly more problematic than I'd assumed it would be. I've decided that viewing the 'extra' moves with points earned isn't exactly a valid option, as tracking this over a number of monsters becomes problematic with limited variable use.
as such, all images and moves will be available to the user after they battle set character... at least, that's the plan... battle control is a little more problematic than I'd originally thought, the battles will not be exactly as they were in the original game, which is fine because they all take place in the Coliseum anyway, so they're not supposed to be exactly the same... doesn't matter, I'm getting to it... the first battle I'll be posting (001_SlimeGirl) will contain a fairly basic battle tutorial, as the battle's become more advanced, well... yeah... so will the tutorials I guess...
[setting]
[intro]
- background[3]
- 0 = bg,bg043,10,1500 "
- name:[4]
- 1 = "name,Leprichaun "
- text/speach[5]
- 2 = "Well, Luka... I'm sending you to the Colosseum as an example... "
- 3 = "To show various writers how they can create their own stories... "
- 4 = "as well as how to reference specific monster girls from across this world... "
- 5 = "name,Luka "
- 6 = "Reference monster girls? "
- 7 = "For what? what do you mean? "
- 8 = "name,Leprichaun "
- 9 = "... Alright... so you're not going to remember this anyway... but this... "
- 10 = "this isn't real... it's a game... and writers need to access the images... "
- 11 = "or their stories will be... ... well... free of monster girls... "
- 12 = "name,Luka "
- 13 = "A... a game..? What do you mean 'a game'? You're not playing with me! "
- flash:[6]
- 14 = "flash,250,500"
- 15 = "name,Leprichaun "
- 16 = "Luka? Are you listening to me? "
- 17 = "name,Luka "
- 18 = "wha..? what happened? "
- 19 = "name,Leprichaun "
- 20 = "What? ... anyway, it's time for you to fight... you can't back out now... "
- 21 = "I'm setting your level back to 1... but you're going to get stronger with each fight... "
- 22 = "Ontop of that, you will be awarded points when you are hit by techniques... "
- 23 = "Those points will be used to view any techniques that you've not seen... "
- 24 = "Left over points can be used for different things that will be explained in time... "
- 25 = "Understood? "
- 26 = "name,Luka "
- 27 = "..? wha? where am I..? Wait, the Colosseum.? How'd I get here? "
- 28 = "what's going on!? Alice!? "
- 29 = "Where's Alice!? "
- 30 = "name,Leprichaun "
- 31 = "... "
- 32 = "you seemed to black out a few minutes ago... you don't remember coming here? "
- 33 = "... well, it was your idea! lets just head in... "
- var_ld: [7]
- 34 = "var_ld,v0,1"
- goto:[8]
- 35 = "goto,story"
- 36 = "..."
- end:[9]
- 37 = "end"
[story]
var_cpa: [10]
- 1 = "var_cpa,v0,=,0,0"
var_jump: [11]
- 2 = "var_jump,intro"
- 3 = "name,Luka "
- 4 = "... alright, what's next... "
select: [12]
- 5 = "select,Section 1 ,group1,Section 2 ,group2, Section 3 ,group3, Section 4,group4"
note re: '...': [13]
- 6 = "..."
- 7 = "end"
[group1]
variable notes for group1: [14]
- 1 = "name,Announcer "
- 2 = "var_cpa,v6,=,0,0"
- 3 = "var_jump,group1_FirstBattle"
- ; if we're still here, the var_jump didn't fire... so we progress with the story...
- 4 = "Alright Luka, lets see where you're at in group 1... "
var_out: [15]
- 5 = "var_out,You've had ,v6, fights "
- 6 = "var_out, and,v2, victories...@"
- 7 = "Go on out, your opponent should be waiting for you..."
- 8 = "var_cpa,v2,1,0"
- 9 = "var_jump,003_SlugGirl
- 10 = "..."
- 11 = "end"
[group1_FirstBattle]
- 1 = name,Announcer "
- 2 = "Well Luka, It's your first battle. You're up against the Slime Girl, "
- 3 = "don't forget your sword... "
sprites with sp command: [16]
- 4 = "sp,2,angersword,0,0,10,1000 "
deleting a sprite made with the sp command: [17]
- 5 = "sp_del,2,10,1000 "
- 6 = "Luka... it's time to fight! "
- 7 = "goto,001_SlimeGirl"
- 8 = "..."
- 9 = "end"
[group2]
variable notes for group2: [18]
- 1 = "name,Leprichaun "
- 2 = "this hasn't been written yet... lets go back to the story... "
- select: [19]
- 3 = "goto,story"
- 4 = "..."
- 5 = "end"
[group3]
variable notes for group3: [20]
- 1 = "name,Leprichaun "
- 2 = "this hasn't been written yet... lets go back to the story... "
- 3 = "goto,story"
- 4 = "..."
- 5 = "end"
[group4]
variable notes for group4: [21]
- 1 = "name,Leprichaun "
- 2 = "this hasn't been written yet... lets go back to the story... "
- 3 = "goto,story"
- 4 = "..."
- 5 = "end"
[001_SlimeGirl]
notes 'n' stuff: [22]
- 1 = "bg,bg084,10,1500 "
- 2 = "name,Announcer "
- 3 = "Welcome to the coliseum folks, have we got a show planned out for you today! "
- 4 = "Monster's from aroudn the world, most of whome have never participated here, "
- 5 = "have gathered to fight one man! You all know him, it's Luka! "
- 6 = "name, "
- 7 = "the audience stands and applods "
- 8 = "name,Announcer "
- 9 = "First up, Luka is going to face a slime girl! "
- 10 = "And while her level is extremely low, we've set Luka's to match! "
- 11 = "Welcome to the colesium's main event folks, I hope you're ready for a long show... "
restart: [23]
- 12 = "restart,LukaVsAll\001_SlimeGirl
- 13 = "..."
- 14 = "end"
- not a bad idea to list out the backgrounds you intend to use, just for your own reference...
- delete them from your story when you're going to 'publish' it though...
- ;background information
- ;bg084 - the Coliseum
- ;bg043 - stairs, going to use it as the entrance to the arena
NOTES
- ↑
- title="your title"
- this is the title of your story, make it awesome...
- ↑
- This story will explain ALL side story functionality...
- every 'new' instance of a command will be documented with a reference, like this one...
- click the [number] above the command for a detailed description of how a command works...
- the purpose of each variable in this story will be explained as it is introduced...
- ↑
- bg,bg043,10,1500
- bg - tells the program that you're switching the background...
- bg043 - the image you're using (this one is a game resource...
- if you want to use a custom file, you must specify the directory and full image name...
- gra\mybg.png for instance
- supported graphic types are bmp, jpg and png.
- bg,bg043,10,1500
- ↑
- "name,Leprichaun "
- The name command indicates who's speaking... it has two parts...
- name - the command
- Leprichaun - the speaker
- name, leaves the speaker name blank
- name (no comma) nulifies the speaker, it's required to do it that way sometimes..
- ↑
- with no command, whatever is written is text, spoken by whoever is listed as the current speaker with the name command. (Leprichaun in this case)
- ↑
- flash,outTime,inTime
- the flash command causes the screen to 'flash' out, then come back...
- you pass it 2 numbers, they are entered in ms (1000 = 1 second)...
- the first number is how long it takes to get to the brightest point of the flash...
- the second number is how long it takes to get back from it...
- ↑
- var_ld,variable,value
- var_ld is used to set a specific value into a variable...
- you have access to v0 through v9 in monster girl quest side stories...
- here I am setting v0 to 1...
- ↑
- goto,target
- goto is just what it sounds like, you're going there, there are no choices...
- the target I'm using is story, it must be something that exists within the currently active story.ini file.
- ↑
- There are no flags to set for end, it just ends the script of your side story.
- It's important to put one at the end of every [section] of your side story...
- ↑ : var_cpa,variable,compair method,value,action
- var_cpa compairs a variable against a specified value then takes a specified action.
- below, we're checking if v0 = 0, if it does, we're preforming action 0.
- action 0 sets a flag if the variable matches the chosen criteria
- action 1 sets a flag if the variable does not match the chosen criteria
- ↑ : var_jump,target
- var_jump is a conditional goto. it's used in combination with var_cpa
- and the goto is preformed if the flag is set. in this case, we go to the
- intro, at the end of the intro v0 is set with var_ld to 1, so we will
- not return to the intro once we've seen it...
- ↑ : select,$String,dest1,$String2,dest2
- select allows the user to have a choice, you can have up to 4 choices available...
- $string and $String2 are the text displayed by the choice, you must have a trailing space.
- $dest1 and dest2 are destinations. [story] for example would be a destination...
- ↑ : note, i use ... after things like this because you shouldn't make it here... "
- because the script / your choice, should take you elsewhere...
- it's a personal preference, you don't need to do it...
- ↑ : v6 holds how many fights Luka has had in this section
- v2 deals with how many victories he's had here...
- ↑ : var_out,$string,variable,$string2
- var_out allows you to display the contents of a variable. You can put
- text before the variable, and text after it. You must have a minimum of
- the comma though to indicate if you didn't put text in. var_out does not
- end the string of text, it will not make the user click after it's displayed...
- keep that in mind when using it... putting a @ at the end will cause a pause.
- here I'm using 2 var_out's in a row, which will display both variables without
- user intervention... fun stuff...
- ↑ : sp, layer, $file, x,y,transition,duration
- this one's a little more complicated.
- layer this can be set between 0 and 9, higher layers overlap lower ones...
- $file is the filename, like bg it can be your own or one from the game
- x is the x offset, can be positive or negative - offset is from the center
- of the screen, and positions from the center of the image.
- y is the y offset, can be positive or negative - offset is from the center
- of the screen, and positions from the center of the image.
- transitions are the same as they are in bg
- duration is the same as in bg as well, done in ms - 1000 = 1 second.
- ↑ : sp_del,layer,transition,duration
- this deletes a sprite from the screen...
- it's exactly the same as SP, but less complex...
- ↑ : v7 holds how many fights Luka has had in this section
- v3 deals with how many victories he's had here...
- ↑ goto,target
- goto is just what it sounds like, you're going there. there are no choices...
- the target i'm using is [story], it must be something that exists within your
- currently active story.ini file.
- ↑ : notes - v8 holds how many fights Luka has had in this section
- v4 deals with how many victories he's had here...
- ↑ : v9 holds how many fights Luka has had in this section
- ; v5 deals with how many victories he's had here...
- ↑ : ; in concept, this works - I haven't written or documented the battle yet however...
- ; keep checking back, I'll get to it when I can... however, I've spent enough time
- ; at it for the day...
- ↑ : restart,$path
- the restart command loads a side story...
- using it from within a side story allows you to do all sorts of fun things,
- like have more than one battle in your story for instance...
- when you list the path to restart, the base folder is the mod folder, so
- you must include your side story folder as well. In this case, LukaVsAll...
- in the LukaVsAll folder / directory, there is a sub folder / directory called
- 001_SlimeGirl, in which all custom sounds / graphics relating to that side story
- are contained as well. Also, it has it's own story.ini file...
- you'll see it branched off later when I add it...
