FE2 Map Making Basics for Dummies: The Unofficial Guide

So, you want to learn how to make a Flood Escape 2 map? Here’s a guide on how to get started:

  1. Buy the kit made by Crazyblox (linked below)
    FEMAP Kit - Roblox
  2. There are multiple components to the map making kit, here’s a rundown on them:
    • Geometry: This is for all the objects in your map.
    • Interactives: These are objects in your map that can be interacted with, such as parts that can be activated or buttons, hence why it’s called the Interactives folder.
      :bulb: Tip! You aren’t required to use these, you can delete these folders (Geometry and Interactives) if you don’t wanna use them.
    • Settings: Change these to fit your map. The following settings are:
      • Lighting: (Very straightforward. When you whitelist your map (later in the guide) then you can use that to have fun with these lighting features.)
        • Ambient: The color of the darkness.
        • FogColor: The color of the actual fog, which is closer up.
        • FogEnd: Where the fog ends.
        • FogStart: Where the fog starts.
        • TimeOfDay: What time of day your map is set in, which is in military time or however you call it (e.g. 22:00:00, aka 10 PM.)
      • BGM: What your background music is. This is in the form of an ID, you probably knew that, right?
      • Creator: I think this is pretty obvious (if you really don’t know, it’s the user who made the map). You can put your username by clicking “value” in Properties and add your name.
        :bulb: Tip! You can collaborate with friends using Team Create! You can type whatever you want in the Creator setting, even non-usernames, so don’t worry about proper formatting because there really isn’t one! However, the way most people do it is Creator1, Creator2, and Creator3, replace the fillers with actual usernames.
      • Difficulty: The difficulty of your map, as a number. 1 for Easy, 2 for Normal, 3 for Hard, 4 for Insane, and 5 for Crazy.
      • MapImage: The thumbnail of your map, displayed when your map is loading in, on the map list in the menu, and in the lobby when players are playing your map. This is also in the form of an ID. Uploading a map thumbnail is easy, just take a screenshot of the inside of your map and upload it for free. Make sure it doesn’t break Roblox’s ToS, of course.
      • MapName: The title of your map! Pick a good name that sounds cool and type it in as the value.
      • MaxTime: Set the maximum amount of time in seconds that a player has to complete the map, by default it’s 120, or 2 minutes. This can be changed from 10 seconds to 3 minutes, 2 minutes being the best as it’s the right amount for most maps. It’s best to set it to 10 seconds after lava covers your ExitRegion (explained later) to minimize how much stalling a player can do if they find a flaw in your map (stalling: staying in place at a part of your map where liquid doesn’t reach it, and wasting time for other players)
        :warning: Warning!!! Don’t delete this, your map won’t function without them.

Whew, that was a lot, but that’s not the end (yet)

  1. EventScript: Obviously, your map doesn’t control water, acid, or lava all by itself. But how does the liquid rise? This is what EventScript does: controlling the liquid.
    • Make sure to include (the first two lines):
      local Lib = workspace.Multiplayer.GetMapVals:Invoke() --Has: Map, Script, Button, btnFuncs Lib.Button:connect(function(p, bNo) if Lib.btnFuncs[bNo] then Lib.btnFuncs[bNo](bNo, p) end end)
      as this is very, VERY important. Just don’t delete it, okay?
    • wait(x): This is the delay between actions. This is the difference between changing water to acid and rising 5 seconds later, and changing water to acid and then rising while it’s changing. You’ll need to use these a lot. x is the value of seconds that the delay is.
    • Lib.Script.moveWater(Lib.Map.Intro._Water1, Vector3.new(0, 30, 0), 10, true) Okay, this line is how the water rises. _Water1 is the name of the water that is rising. It’s best to use a name like _Lava3 or _Water10 as it’s simple and you know it’s liquid. The Intro part is where the liquid is located inside of. Make sure that if you take _Water1 out of Intro, you delete the Intro part of the script, otherwise the game searches for _Water1 inside Intro, and the game doesn’t know what to do because it can’t find it, sort of like me sometimes. The (0, 30, 0) part is how many studs it moves, in x, y, and z directions. The 10 is just how many seconds it moves for.
      :bulb: Tip! You can move parts that aren’t water too! Although most official maps don’t do this, you can experiment with this if you’d like.
      :bulb: Tip! The true part means that the part moves relative to the Workspace, meaning it ignores how the part is rotated. If it’s set to false, then it moves based on the part’s rotation.
    • Lib.Script.setWaterState(Lib.Map.Intro._Water1, "acid") This just changes the state of the liquid. You can replace "acid" with "water" or "lava". Remember that it’s case-sensitive. Also remember to change Intro._Water1 if necessary.

:brain: Remember! Your map doesn’t work in Studio because in FE2CM, the game uses your EventScript to make the map work. Those scripts in Community Maps aren’t here!

That was ANOTHER long one… but here’s the last long section.

  1. Mechanics (Features): These features are used in many maps, such as Air Tanks, Buttons, all that jazz. Here’s how they work:
    • Air Tanks: When touched, they give the player 300 extra air as a separate bar on the bottom that cannot be refilled. Each air tank can only be used once, however, a player can find another air tank and use that (not in any of the official maps, though). You can add as many air tanks as you would like, but you’re best off using zero or one.
      :warning: Warning!!! Although this doesn’t break the map, don’t modify the air tanks, just duplicate them. You can change the color but I suggest not changing anything else so it doesn’t affect gameplay or the game itself negatively.
    • Buttons: When a button is pressed, it activates stuff. Buttons must be pressed in order. To determine this order, buttons are named. For example, _Button1 for the first button, _Button2 for the second button, and _Button3 for the third button, and so on. You get the idea. For group buttons, you just add an ObjectValue into the button and name it “Group”. No need to change the button color to blue.
      :warning: Warning!!! You can’t name buttons randomly, unlike liquid. The game will get confused and your map won’t work properly!
      :bulb: Tip! You can modify buttons, such as how they look and the color of the button, and so much more! Just make sure to include the Hitbox, and it’s best if you include the other objects that come with it too.
    • Interactives: Add an ObjectValue to an object and name it one of the following: (The # is the number button that activates it, for example, the 3rd button makes a platform appear which has a StringValue named _Appear3.)
      • _Appear#: Makes the part appear. Make sure to set the transparency to 0 and set the CanCollide to false.
      • _Fade#: Makes the part disappear. It’s best to set the CanCollide to true, transparency doesn’t really matter this time.
      • _Fall#: Makes the part fall. It’s best to set the CanCollide to true, transparency also doesn’t matter a lot.
        :brain: Remember! When a part falls due to a button press, it is set to CanCollide false, so don’t worry if you think that a player can cheat by hopping on a fallen part.
        :star2: Bonus! Add a delay to an interactive by adding a NumberValue to the ObjectValue you added and name it _Delay (no number in the name!) Then set the number value to how long you want the delay in seconds. You can use decimals if necessary.
        :star2: Bonus! Add a sound when a part appears/disappears/falls by just adding a sound object in your map (best to put it in the platform that is interacted with) and name it _Sound#. An ID is used, too.
    • Spawn: Where the players spawn. I think that’s easy to understand compared to whatever the heck that Interactives section was.
      :warning: Warning!!! Don’t change the size of the spawn, you can make it invisible or change its properties, though.
    • ExitRegion: When the player touches this, they complete the map. You can change its properties, I recommend changing the transparency to 1 so players can’t see it and you don’t have a big green cube in your map.
      :bulb: Tip! Add something that shows that it’s the end of the map, such as a small house with the ExitRegion in it.
    • ExitBlock: When a player completes a map, this activates to prevent players from getting out of the win zone.
      :bulb: Tip! You don’t need to use this, just put it off somewhere on the side. It’s best not to delete it altogether. You can also use multiple if you need to, no need to rename it.

:bulb: Tip! You can resize ExitRegion and ExitBlock to your map’s needs. You can only duplicate ExitBlock, however.

  1. Agility: These two mechanics are unlike the others, although they are quite simple.
    :bulb: Tip! You don’t have to use these, in fact I highly recommend not using these in maps under Hard difficulty.
    • Wall Jumps: Run and jump into the wall to stick onto it, and press space to jump off within three seconds, for extra distance run in the direction you bounce off. You can use as many of these as you want. They have three Beams, which are textures that move. Two green arrows on the sides, and one big texture with arrows between the two green ones. Although you don’t need to use these Beams, they are very helpful to indicate it’s a wall jump.
      • The _Wall object in the wall jump means it’s a wall. You can add a StringValue to any block and name it _Wall to turn it into a wall jump which can be bounced off of on any side of it.
      • It’s a good idea to leave your wall jumps named for organization purposes, but if you’re like me you don’t have time to name them, so you can leave it named Part since it doesn’t matter what they’re named.
    • Sliding: By default on PC, you press E to slide. On mobile, you have a nice button that you use to slide. On Xbox… uh, you can figure that out. (Who plays FE2 on an Xbox?) A quick tap can make your character duck down for a split second and back up, but a long tap, like a second, makes your character slide down longer. There is a limit to how long you can slide, so timing is important.
      • Slides actually don’t need to be indicated, since you can just slide wherever. However, it’s best to just indicate that there’s a sliding portion by using the Beam thing that comes with the map-making kit.
      • To adjust the height of the slide indicator, just increase the Part’s height, and then increase the Beam size by changing the height in the Properties tab. Make sure to do this to both.
        :bulb: Tip! When resizing these, it’s best to change the texture length too, since it won’t be proportional after changing the sizes.
      • Like wall jumps, you can use these as much as you want but overusing them isn’t good design. Just plop them here and there, and in places where you can get a running start and can time sliding well.
    • Ziplines: Ooh, these things are fun. To use a zipline, a player touches the green orb at one end and then it automatically slides down to the end. No movement is required, all the player does is touch the green orb.
      • Ziplines are called _Ropes in Roblox Studio. The ziplines are formed automatically, meaning you don’t need to draw a line over. However, you can guide them using Points, named Point1 and Point2 and Point3, and so on. Point1 is located at the green end of the zipline (the beginning), the final point is located at the red end of the zipline (the end). You can add as many points as you like between the beginning and end.
        • Duplicate points and rename them in order to guide the zipline. The zipline will be formed in-game, and they will go through every point that you have. Curves included too!
        • Hide your points by setting their transparency to 1, however it doesn’t really matter.

Okay, okay, I’ll stop with the ridiculously long paragraphs. Those are the most important bits of map making, but here’s the final parts.

  1. Whitelisting: Okay, let’s say you finally finished the map (we’re not going to cover how to make your map, you can find tutorials on how to build or just wing it! A lot of great map creators just messed around and came up with a cool map.), and you want to play it. You do this by whitelisting. Here’s how:
    • Highlight everything you want in your map and group it. Your map should now be in a model.
    • Right-click the model and press “Save to Roblox…”
    • Upload the model. Doesn’t matter what it’s named.
    • Grab the ID which should appear at the end screen of when you upload it and copy it down. If you missed it, go to the model’s page on the Roblox site and then copy the string of numbers in the URL.
    • Go to the game linked here: Whitelisting : FE2 Map Test - Roblox and then paste this long number string in where it says to paste it.
    • Wait a few days, check FE2’s Twitter account (https://twitter.com/fe2game) for when the whitelist queue is cleared, or just paste your ID into Community Maps regularly.
    • When it’s cleared, you should be able to play it in Community Maps, assuming you’ve done everything right! Great work!
    • If you wanna update your map, just update the model that the map is in. After up to five minutes the changes should appear in Community Maps.

I’ll update this guide every once in a while - happy map making!


this is so long it hurts my eyes
can you add a space between each paragraph slahs thing

like have it like this.

(space inbetween)

Too long, didn’t read


how do you TL;DR a map making guide lol

two things you forgot:

  1. group buttons. you make an object value and set the value to Group
  2. updating your map. lets say you are adding a part to your map. add the part, and then update the model. no need to whitelist the map again, the map will auto-update

add, “because these folders are mostly used just for sorting”

wait what I thought that was the color of the darkness???

hold on that might be an error

added it, thanks

update it aaaaaaa
missing le rescue and ziplines

ah hold on let me do that
edit: finished, one large paragraph added

There’s no rescue mission added

dfiughdhdhfiu i’ll add that later im too busy playing rhythm games



funny how a random useless reply gets marked as “Solution”

1 Like

thats MY random useless reply

also its probably b or lt

Amazing Tutorial, but here are a few things you forgot:
1.Another way to have these values is for Object Value for Wall jumps and Button Interactives, but you need to use StringVaule for Delay, Sound, and a starting water vaule.
2. Another way of updating a map while in map test is switching the map and after you transferred to the model, you bring back your map.
3. Oddica talked about it in his Academy Mini-Series, but he discussed that the water doesn’t wait at the wait sign when there’s another “move water” command. But it does stop at the change state command if there’s a wait sign.
For Example:
Lib.Script.moveWater(Lib.Map.Intro._Water1, Vector3.new(0, 30, 0), 10, true)
wait(15) <-------- This Shows that after that moves, it waits 5 seconds and ignores the other 10 seconds
–scine that happened
Lib.Script.moveWater(Lib.Map.Intro._Water1, Vector3.new(0, -10, 0), 5, true)
wait (5) <--------- This shows that it will wait for 5 seconds after the water moved down
Lib.Script.setWaterState(Lib.Map.Intro._Water1, “acid”)

hey what about the _detail things

i dont feel like updating this lol