IMPORTING FROM MULTIPLAYERThis document is extensive and it covers almost everything you need to know and will save you a lot of headaches. I went into a lot of detail because I just got off doing a lot of them and not because it's a difficult task. I just did about 8 of them in about 24 hours of total work. I have just seen a lot of the stuff you can run into and want to cover it all. This task just has a bunch of little things to take care of and you might miss them if you don't know what to watch for the first few times. You can skip the tangents and parts you already know, but the stuff on the sex scenes, multiplayer code and infection entries are important and very, very helpful in sorting out your first import properly. By the time you do your third one, I expect you'll have this technique down and it'll go super-fast.
As I've been doing a lot of this recently, I've got some instructions and tips on how to import creatures from multiplayer. If you play multiplayer, this'll be even better for you, as you'll be able to see those critters at work and know what suits their interests and the needs of single-player, letting you make a pick you really want to do. This is not strictly necessary though, as there's an extensive list of creatures from multiplayer listed in the Wiki here. The descriptions are short, but it and the powers data should provide some clues as to the creature's themes. Expect surprises, but these are often good surprises.
Once you've got a candidate or two picked, message Nuku and request the import. He'll use the auto-translator system to snag it. It'll be dumped into the Auto Translator folder.
About the Auto-Translator:This is a quirky bit of code that will do a rough job of grabbing data on the creature, giving you a good base to work off of when making your version. There are a few things you need to know about it though:
1> STATS: The stats it gives are bunk. It always gives the same ones for level, hp, dmg, str, dex, etc... Set them as needed yourself once you've gone through the other work.
2> Breasts: Divide the breast size given by 2 to get a value suitable for single player that matches the multiplayer description better.
3> Often, the line for the cock width will come out as 'cock width size entry is ;' . This error is frequent, but not absolute. If it occurs, add a 'now' in front and remove the 'size'. A value will also need to be assigned. It, and sometimes a few of the other values in that area, will come out empty. They should be zeros in that case.
4> Check the creature's power level on the Wiki for reference to see how the creature ranks in the scheme of multiplayer. As a rough estimate, divide the level range (shown in the right hand side of its 'known locations' data by 5 to get a rough estimate of where it ranks. This will place it in the 1-10 range typical of FS single player creatures. Feel free to fudge it, but don't make a super-monster into a wimp or vice-versa.
5> The scenes it gives will sometimes be more useful than at other times. Generally, the description's an okay starting point and the player defeat scene is good. The monster defeat is largely redundant and will need to be replaced wholesale.
Prepping the File:1> Place a copy of the creature file in your folder.
2> Open it and change the creator name from Auto Translator to your own. You deserve some credit.
3> You'll notice that the file starts at Section 2. Copy the Section 1 data from the Template for FS.i7x file for later use. Similarly, copy the new monster table rows and the framework for the endings onto the bottom portion of the file. Start from the:
- Code: Select all
[ These represent the new additions to the table of random critters ]
line in the template file and place it immediately following the lootchance entry line in the working file.
4> With this framework, replace the 'template' in the win/loss/description say statements with the creature's name.
5> Many creature names in Multiplayer include the creature's gender, which can conflict occasionally with single-player mechanics and use of Gender Preferred feats. Consider removing the gender marker and stick to the creature type itself or use some other suitable descriptor.
Prepping the scenes:0> You'll be moving chunks around first. Don't worry about editing them or building them into the say statements yet. It's cleanup first.
1> Scroll down to the creature data received and locate the desc entry. Excise the description and place it with the appropriate say statement. Place the appropriate link for it into the desc entry instead.
2> Locate the victory entry. This is the creature victory scene. Excise it and place it with 'losetocreature' say statement. Replace it with the appropriate link in its field.
3> Locate the defeated entry. This is the scene you see as a
victorious player with this infection when you are the victor over anyone in multiplayer. The name of their losing foe is replaced with the name of the creature where appropriate. Most of the time, it will not work well as the player victory scene, but may provide added insight or description for use with the monster victory scene.
The description:The creature's description will follow the basic setup of all multiplayer monster descriptions. It will describe the creature by using the various form data successively. This starts by stating the skin, head, torso, breasts (if any), arms and legs, ass/tail. It ends with a private peak to see their groin with a small description for the cunt/cock and their sizes. In multiplayer, these are all different infection areas and so may not always flow nicely from one to another in this format. Occasional 'you's and 'they's may be off, but that's rare in this part.
1> This data is pretty much identical to the data shown in the face, body, skin, tail and cock entry below. As such, it may need a little bit of revision, especially if the form suffers variable descriptions based on variables set by other factors or by having the proper skin infection.
2> This description is rather bland and gets repetitive fast. Read it over and apply a few tweaks to set the mood by describing its stance, its arrival, its intentions and so forth. The private peek section will also need an adjustment a lot of the time, as it can be very blunt in some cases. Alternatively, try reordering the sections, putting the head or body first (if they're the most striking feature). Alternatively, simply stating what the creature is before before starting in on its description. A bull is a bull and saying you've got an anthropomorphic one in front of you will go a long way to building the picture in the player's mind instead of working from all the parts.
3> Most forms from Multiplayer are anthropomorphic/humanoid, even if they don't state so clearly. Be on the lookout for the occasional four-footer or other oddball out there, but they're rare given the game's mechanics. Since the creature's description is based on the player infection form data, it'll be tricky to spot these sometimes. Taurs almost always have 'Taur' in their name, so they're hard to miss.
Once you've got the description, you'll have an idea of what the creature looks like, so now you can move on to the creature victory scene.
Creature Victory:As stated, the creature victory scene is taken from the multiplayer code for the same. It is the message the player sees if he/she loses to the critter in question. Just what we need, right? Almost. Nearly all of this text will be useful and require minimal rewriting. The main issue will be tweaking the formatting. Once you've got this done, it'll be a speedy process that will leave you time to improve the scene you're given to new heights of pleasure.
1> The random and if clauses in this statement are nested (if within if within if...), which Inform does not like as part of a single say statement. Most of these scenes involve different results for different genders, so it'll need to be broken up. Often you'l see several [end if]'s built up in succession at the end the scene. This is a sure sign you'll need to break things into different parts.
2> Multiplayer code looks different, but is similarly easy to understand. 'of you' means the player in the code.
[if stat mutation/head of you = Corota] is checking if the player's facename is "Corota".
Gender is similar:
[if you is male] which means its checking if the player has a cock. The tricky part with gender comes in locating [if you is male] and [if you in female] in succession or nested together, thereby detecting if you're a herm (both male and female). There'll often even be an [otherwise] way at the end of this stuff to cover a neuter player, which is more common to obtain to encounter in multiplayer. If not, that scenario's probably caught by some general no-sex message or oral message normally used for a male or female victim if the creature only wants one gender for their main scene.
[if stat cock length of you > 12] is checking if the player's cock length is greater than 12. If a message like this is appearing, you've likely already been asked if the player is male shortly before, meaning two if's are nested. This is your clue to break this section into chunks back at the male/female check, making a separate say statement for each.
[if stat cocks > 1] is checking if on the number of cocks the player has. Similarly, if a message like this is appearing, you've likely got another male/female division earlier and you'll need to break things up.
[otherwise][if ...] will need to be consolidated into [otherwise if ...]. When you've got a bunch of these, you again may need to break into several say statements if they're getting nested together.
3> At times, some scenes may be driven by the player having a certain infection or trait. In those cases, since most of the multiplayer infections and traits don't exist in multiplayer, look over the scene and what's driving it, as there will often be a parallel for it in the single player. For example, the Fire Elemental got enraged after beating a player with the Fenrir Wolf dedication (an ice wolf). I altered this idea to apply to the Reindeer (with its snow powers) and the Naiad (a water maiden) and made alternative scenes. The Anime Babe was vulnerable to tentacle attack from the Parasitic Plant, but also other tentacle forms in multiplayer. The scenes were repurposed for single-player tentacle forms. If a trait can't be checked or has no apparent parallels, then leave it to the side and continue on.
4> Locate the main divisions of the script, usually detecting male/female/herm/neuter first and break those up into their own say statements. After that, start lightly revising. If you're lucky, little will be needed for this and you just need to swap for the proper if conditions and set up the proper otherwise if statements.
5> Often, the creature's name will be inserted without a 'the' ahead of it. It's being used instead of a player name in this case, so it looks a little off. Just tweak it by adding the or swapping it for another phrase like 'the <descriptive> creature' or 'he/she/it' and so on to avoid repetition.
6> Spice up the scenes a little while you're going through them. The scenes are often pretty good as is, but can be a little short to meet the needs of multiplayer better. Feel free to add an extra turn of phrase here or there to enrich it.
7> Occasionally the creature's built with a specific home or location in mind, especially if it's part of plot content. This may help determine where you'll place it in single player, but it may also mean you need to tweak these portions of dialog to suit the locations of single player instead. For example, the Quilled Tousky is found on a cliffside path and so is able to jump off the cliff while attempting to fly. I adjusted this to put him in the Junkyard and have him leap off the mounds of junk instead. The location has changed, but the results are the same.
8> Watch out for boss creatures. If you're dealing with a boss creature from a multiplayer area, then its victory scene is often going to be dramatic and possibly unusable, as its too tied to the quest involved. Porting boss creatures should also be rare, as they're not normally meant to be roaming around, though doing this might be handy if you need a boss for a quest or area you're making. There'll be plenty of ideas and parts you can use from their victory scene, but you're almost guaranteed to need to alter considerable segments of it as well to make it fit or prevent a rather more permanent end to the player.
Player Victory:1> As stated, the scene you get is not really applicable most of the time. You'll need to make a scene from scratch based on the creature type and how you think a player might react to having the chance to have some fun with it. Alternatively, you might give the creature some means of escape or simply state that the player has no interest in fun with it at this time.
2> The infected player victory message is not entirely without merit, as it might be useful for making a scene where the player's new instincts drive it to interact with another of their own kind, making for a special variation scene. You'll still need something to cover the normal situation if the player does not have the matching infection, but you might get some fun out of it.
3> A lot of people are after the player victory aspect, so don't neglect this one too often if you're porting over a bunch of critters. At least take the time to add it in on occasion or make plans to come back and add it later once you get an appropriate idea.
Combat:1> The attack entry message will need some reworking, as it defaults to listing the creature's special attacks by name. This isn't very descriptive, but will give you ideas to start. If you want to know more about these special attacks, click on them on the creature's table on their wiki page. You'll get a bunch of confusing numbers and effects, but in there is a description that'll help give you a better idea of how the critter fights. Throw in the occasional punch, kick or claw for variety and you're good to go.
2> If one of these attacks is particularly interesting or has an odd effect you want to help convey, an alt attack can be done if you're feeling up to it. I'll try to come up with a guide for those someday, but there's so much variety, it'd be tricky to say anything other than 'copy this' and 'change that a little'.
Transformation:The transformation data's broken up into two parts, the form description and transformation description. Generally, what's there is good, you'll just need to do a few minor tweaks as long as the description's not interconnected.
1> Make sure it starts with a lower case letter and matched appropriately with the typical single-player lead in. Exception: In the case of the tail entry, this is meant to be a full sentence ending in a period. It can also be left completely blank in the case of a normal, human ass. Check the template for a proper description of the format required, as the one shown by the auto-translator is not accurate.
2> Keep the cock description to a simple, one word or two word setup. You can use [one of]x[or]y[or]z[at random] or an if statement to adjust variety.
3> Remove the final period from all portions except the tail entry.
4> Look for the occasional confusion between 'they' and 'you' and 3rd and 2nd person for verbs.
4> If portions of the description are interconnected and change depending on matching with each other (typically the skin), then you have one of three options. As the use of " to mark the infection name's text is not possible, you can get around it by:
a> Make a text variable that is set by default to the creature name. You can then match infection to variable.
- Code: Select all
boptext is a text that varies. boptext is usually "Bird of Paradise".
now tail entry is "[if skinname of player is boptext]Your tailfeathers are so long that they sweep the ground as you walk, yet somehow still manage to remain spotless despite that. The feathers themselves are large and broad, starting from a deep violet from within their shafts and gradually warming through all the colours of the rainbow up to the edges.[otherwise]Your ass is firm and muscular, the sort of thing you only find on magazine covers, but there seems to be something missing about it despite its perfection.[end if]";
b> Make a separate say statement to check the various portions. This may become necessary in the case of nested comparisons, though those are extremely rare. Usually only one factor applies at any given time.
- Code: Select all
now tail entry is "[boptail]";
to say boptail:
if skinname of player is boptext:
say "Your tailfeathers are so long that they sweep the ground as you walk, yet somehow still manage to remain spotless despite that. The feathers themselves are large and broad, starting from a deep violet from within their shafts and gradually warming through all the colours of the rainbow up to the edges.";
otherwise:
say "Your ass is firm and muscular, the sort of thing you only find on magazine covers, but there seems to be something missing about it despite its perfection.";
c> Make a definition and use that for the comparison:
- Code: Select all
now tail entry is "[if player is bopskinned]Your tailfeathers are so long that they sweep the ground as you walk, yet somehow still manage to remain spotless despite that. The feathers themselves are large and broad, starting from a deep violet from within their shafts and gradually warming through all the colours of the rainbow up to the edges[otherwise]Your ass is firm and muscular, the sort of thing you only find on magazine covers, but there seems to be something missing about it despite its perfection[end if].";
Definition: a person is bopskinned:
if the skinname of the player is "Bird of Paradise", yes;
no;
While the third is the one I actually used in the case of the Bird of Paradise, all three are valid and have been used by me in the past. If you have a lot of these to deal with, then c> or a> works best. This technique can also be applied to any new creatures you make and is especially useful if they've got a special composition, gender traits or other effects. It can also be used as a means to provide a cunt description as part of the body description if the cock and body infections are paired up. See the body entries for the Cerberus and Junkman for more examples.
Stats:Set the stats as appropriate for a creature of the level and strength you're looking to make. Please adjust it accordingly to fit. Remember, the stat values provided by the auto-translator are default and never vary.
1> As stated above, check the threat level of the creature from multiplayer, divide it by 5 and that'll give you a rough idea of the level. Some aren't ranked, typically meaning they're not 'roaming creatures' but are instead just player forms that can be collected. Fudge as necessary.
2> Pick reasonable str, dex, sta, per, int and cha values for this creature. Remember that 10-11 is normal human average before the outbreak. The player's base 12 as already above the curve in that regard. Stats may be a little higher on high level creatures, but please don't send them through the roof just so your critter can feel like a bad ass. Those stats will be used eventually and need to be sensible. A player gets 1 point every two levels to a single stat. If the creatures outstrip that too much, it won't match in cases where comparisons are made with a comparable level player.
3> Dex should climb at about 1 point for every 3 to 5 levels so it can match roughly with a player over time but not require that it be their only option. More agile creatures should climb a little faster, while slower ones have their focus to toughness or damage instead.
4> Pick an hp amount that scale with the other critters around, adjusting up or down if the creature's got a toughened hide, hardy physique or is physically frailer than these other monsters. Also, if the creature doesn't fight to the last breath, it's hp should be lower, as this is its submit/flee point, not its point of exhaustion. If a creature's up for rambunctious sex after losing, it probably didn't fight to the edge of passing out.
5> Pick a damage level that meshes with the other critters around. Again, it should probably climb at a rate of a point every 2 or 3 levels. If it seems more or less vicious, adjust slightly around, but a creature shouldn't excel at everything most of the time.
6> If you give the creature an alt attack, consider dropping its regular damage to compensate, as this'll average out with their enhanced ability elsewhere. This is the difference between landing punches on the shoulder and kneeing in the balls. The first is a normal hit and hurts, but the second's a special hit and is where the big damage is done when the creature gets the chance. If you aren't distinguishing the damage, you raise the damage on the average blow to include the kneed groins. But if you're counting busted balls separately (alt attack), then the normal hits should better reflect their hit to still balance with a drop in the creature damage.
Gender, Libido and Loot:1> These are generally good, save for the breast size, which should be divided by 2 to get something more in line to match between the creature's description and the scale used in single-player (cup size scale). Remember, in single player, a 2 is a B cup and a 3 is a C cup, with is pretty nice average for the real world.
2> Check for any missing values with just a semi-colon. Those were lacking or did not get read properly and should be a zero.
3> If you're changing the creature's gender as part of your conversion, you'll need to play with the numbers and target gender.
4> Almost all creatures in multiplayer do a direct male to male and female to female infection pattern. If you want your female to make the player male or vice verso, you'll need to make that adjustment now by changing both the size values and the target gender (sex entry).
5> The libido value comes with a default value of 20, set it as you feel is appropriate based on your creature's behaviour from its appearance and victory scene. If the creature is more fight than sex, then its libido is definitely low. If its all about the sex, then it should be higher.
6> You'll not have a drop item. If appropriate, you might use an existing one, though that'd need a very good reason, or you can make a new one suitable for the creature. New infectious items are helpful, as they let a player win but still enjoy becoming infected as well.
New Variables:Fill in these creature values as appropriate. Check the
BFandI.i7x file in my folder if you need explanation or just check a few critters for more examples.
Drop Item: (optional)See other files and explanations on how to make a drop item. Usually, copy a basic infectious one, swap all names and infections as appropriate and you're good to go.
Heat: (female optional)See the other files and the
Needy Heat file originally designed by Telanda Softpaw for more on this. An explanation page to eventually come.
Alt Combat: (advanced optional)See the
Alt Combat file and various critters with alt combat attacks for examples. A how-to may come eventually, but it's really a case-by-case sort of process. Check the many examples for the type of effect you want, copy it and adjust the values as necessary for your new attack.
Endings:Write some endings for your critter for player succumbing and player survival. To mesh well with NPC and pet endings, the player should go through the military extraction, be released and try to settle down into a new life. How stable or unstable that life is can vary, but should allow for other content to work. Conversely, succumbing messages should not involve the player being successfully extracted, as they're considered feral now. Their interaction with the city and/or others of their kind should instead be explored. The template's pattern for gender division need not be followed, it's merely a helpful example.
Sending it along:If at all possible, test your file with Inform.
Send it along using your typical method. Using the Git Hub is preferred, but posting it to the forums here also works.
See the other posts on setting up inform and using the Git Hub.
If you skip the testing phase, be sure to let us know, that way we can test if it compiles before attempting to post it.
Be awesome in the knowledge that you've helped the game get even better.