Human: Fall Flat

Human: Fall Flat

1,312 ratings
[NEW] Human Workshop: Getting Started - Configuring Unity, Making your First Level, Publishing and Subscribing to Levels
By Mildred Bumble and 3 collaborators
This brand new guide will walk you through the initial steps needed to prepare the Unity environment for creating Human: Fall Flat levels. It will then take you through creating an initial level layout, adding mechanical prefabs, setting-up online multiplayer, lighting and checkpoints. It also covers exporting and publishing the level you've created to Steam.
Configuring Unity for Human Workshop
Installing Unity and Creating a New Project
The free version of Unity can be downloaded from and Unity 2017.4.13f1 has all the features needed to develop both Human: Fall Flat levels and multiplayer lobbies.

Click the following link to immediately download Unity 2017.4.13f1[]

For Mac you'll need to ensure that you've checked the Windows Build Support checkbox during installation (see below). If this isn't done then you will be unable to export levels from Unity and will get the following error:

Building an AssetBundle for target 'WindowsStandaloneSupport' is not allowed because the required module is not installed.

Once installed, launch Unity and create a New project. Specify the following details:

Project name - Calling it whatever you like. For the purpose of this guide I've called it New Human Project.
Location - Wherever you like. Just ensure that it's got a large amount of disk space.
Template - That it is a 3D rather than 2D project.

Then select Create project:

Importing the Human Workshop Package into Unity
Once the project is created, select the Assets option from the main menu and then follow these next series of steps:

• Select Import Package and click Custom Package:

• This will bring up a window to select which package you’d like to import.
• Navigate to the Human Fall Flat install folder.
• The default location for Human Fall Flat Workshop files is:

C:/ProgramFiles(x86)/Steam/steamapps/common/Human Fall Flat/WorkshopPackage

• Once this is done select the Human Unity package file and select Open.
• After a short delay a Import Unity Package window should appear
• Press the Import button:

• You should see a progress bar. Wait until it has finished installing.
• Once this has finished quit Unity entirely.
Copy the Project Settings folder from the supplied Workshop folder located here C:/ProgramFiles(x86)/Steam/steamapps/common/Human Fall Flat/WorkshopPackage:

Paste this into the New Human Project folder so that it replaces the existing Project Settings folder:

• Run Unity again and you now can start looking at the Workshop folder in your Assets window that's part of the Human package:

Reimporting Prefab Thumbnails
However, you'll now find that in the Assets window not all of the Prefabs have their expected thumbnails and look like this, which isn't very useful:

As noted on this page in the Unity Issue Tracker[]this is a bug in Unity, which will not be fixed.

However, to get these thumbnails to appear correctly for yourself, you can go through the following steps:

• Right click on the Prefabs folder.
• Select the Reimport All option and notice that once completed your thumbnails will appear correctly. Though, this process will take quite a while.
Create Your Level
Fundamental Parts
• Create a new Scene file.
• Rename to MyHumanLevel or whatever you want to call your Level.
• Open the Scene file.
• Delete the Main Camera from the hierarchy.
• Delete the Directional Light from the hierarchy.

Level Game Object
• If you navigate to Workshop > Prefabs you will find a Level prefab.

This can be dropped into any fresh level to save time, or you can make it from scratch by going through the steps below.

Skip to the Initial Level Layout section of this guide if you don't want to know how to make the Level prefab for yourself.

How to Create the Level Game Object
• Create an empty object and rename it Level.
• Make sure its position is set to 0 on all axis.

• Add a component called Builtin Level.
This component allows the level to play in editor.

• Add a component called Sound Manager.
This allows the level to use the games sound system.

• Add a component called Sound Library.
Points the game to the correct library of sounds.

• Add a component called Net Scene.
Allows the scene to work over the network for online multiplayer.

• Add a component called Scene Manager.
Controls the scene over the network for multiplayer.

• Create an empty object under Level and rename it InitialSpawnpoint.
This object will control where the player will spawn in the scene.
• Add a component called Checkpoint.
• Set position to 0,0,0
• Drag InitialSpawnPoint into the Spawn Point box and the Debug Spawn Point in the Builtin Level component of the Level.

• Create an empty object under Level and rename it FallTrigger.
This object will detect when the player has fallen off the level.
• Add components called FallTrigger and Box Collider.
• Set the position to 0,-30-0.
• Change the box collider size to 200,20,200.
• Make sure Is Trigger is ticked.

• Create an empty object under Level and rename it PassTrigger.
This is used to detect the player after they have progressed to the end of the level, when the player falls off the level after they have passed this point they will progress to the next level.
• Add components called PassTrigger and Box Collider.
• Set Position to 0,-3,34.
• Change the box collider size to 6,6,6.
• Make sure Is Trigger is ticked.
• On the Layer drop down button select Triggers:

Initial Level Layout
• Search in the Workshop prefab directory for GreyStoneEdgeLargeGrassFlooringStraight1.prefab
• Drag the prefab into the scene.
• Set its position to 0,-1,0.
• Set rotation to 0,0,0.
• Move into Level game object within the hierarchy.
• Label Floor1.

• Search in the workshop prefab directory for LightSandStoneFloorSmallAztecFloorPattern1.
• Drag the prefab into the scene.
• Position 0, -0.5,12.
• Set rotation to 90,0,0.
• Move into Level game object within the hierarchy.
• Label Floor2.

• Search in the workshop prefab directory for LightWoodFloorTreePlatform1.
• Drag the prefab into the scene.
• Position 0,0,25.
• Rotate 0,90,0.
• Scale 3,1,0.9.
• Move into Level game object within the hierarchy.
• Label Floor3.

• With Floor 1, Floor 2 and Floor 3 selected press CTRL + D to duplicate all three objects.
• Rename each to Floor4, Floor5, Floor6.
• Set Floor4 position to 0, -1, 37.
• Set Floor5 position to 0, -0.5, 55.
• Set Floor6 position to 9, 0, 55 and rotation 0,0,0.

Your level should now look like this:

Adding Mechanical Prefabs
• Search in the Workshop directory prefab directory for MetalMechPressureSwitchDoorwLight1 and place it in the scene.
• Move into Level game object within the hierarchy.
• Rename it to DoorPuzzle1.
• Position 0, 0, 0.
• Click the triangle next to DoorPuzzle1 in the hierarchy to get a drop-down of its child objects.
• Select PressurePlate from the hierarchy.
• Set Position to -3,0.1,14.
• Select Indicator.
• Set Position to 0, 2.5, 26.
• Select AutomaticDoor from the hierarchy.
• Set position to 0,0.1,26.

Your level layout should now look like this (OK, so you probably won't be staring so closely at a closed door):

• Search in the Workshop directory for LightGreyMetalMechMediumDanglingLantern1 and place it in the scene.
• Move into Level game object within the hierarchy.
• Set Position to 0, 6, 46.
Pass Trigger
A volume that defines the area the player falls into, to trigger the end of the current level and loading of the next.

• Select PassTrigger in hierarchy.
• Set Position to 15, -3, 55.
Rigid Bodies and Online Multiplayer
Any game object that has a Rigid Body component will require a Net Body component adding to ensure it syncs correctly across the network for online multiplayer.

You can see an example of this by clicking on Crate1x1x1 object. Adding a Net Body component will also automatically add a Net Identity component and this will be automatically assigned a value when the level is saved.

Generally, if the object moves within the scene, and has a Rigid Body component, it should also have a Net Body component.
• Open the Window menu and navigate to Lighting and then Settings.
• Change the Skybox Material to Sky.
• Drag in the Directional Light that came with the Level prefab into the
Sun Source box.
• Change the Environmental Lighting Source to Color.
• Change the Ambient Color to #6C7B96.
• Change the Environmental Reflections Intensity Multiplier to 0.7:

If you navigate to Workshop > Prefabs you will find a Checkpoint prefab. This can be dragged into the Level object to save time, alternatively you can make one from scratch:

• Select Level object and add an empty child game object and rename it to Checkpoint.
• Add component Box Collider.
• Set size to 6,6,6.
• Tick Is Trigger on Box Collider.
• Add component Checkpoint.
• Set the Number field on Checkpoint Script to 1.
• On the Layer drop down button select Triggers.
• Set position to 0,3.5,35.
• To add more Checkpoints, duplicate this object and move it into place.
• Increase the number on the Checkpoint component by 1 for each additional checkpoint you add to your level.

This is the Checkpoint prefab:

Your level should now look like this with the Checkpoint added to it:

Drop Human
You can quickly test puzzles and your checkpoints by dropping the Human into any location in the scene. You do this as follows:

• Press Play / Run.
• Select the Scene tab.
• Navigate the scene window to the desired location to drop.
• Select the Human drop down menu.
• Select Drop Human.
• Your Human will fall into the location in view within the scene window.
• Now switch back to the Game tab to carry on testing your level from where your Human fell flat.
Exporting to Local Levels
OK, so you've tested your level in Unity and you're now ready to export it to the game so that you can continue to test and play it there as well. However, before you are able to export your new level to the game there are a number of requirements that need to be met.

Export Process
First of all, you’ll need to create a thumbnail screenshot while testing your level in Play / Run mode. If you don't spawn in the level in the Game tab after selecting Play / Run mode you may find that this is because of some errors appearing in the Console and the fact that the Error Pause button in the Console is set to ON. If you set this to OFF you'll find that you'll spawn in the level as expected.

• Once in Play / Run mode press F9 at a good location to create a thumbnail screenshot for your level. You'll get shown a Thumbnail Captured confirmation message on doing so:

• Press Play / Run again to end the game.
• Select the Human option and then Human Export:

Level Title. Enter what you’d like to call your Level in Level Title. Steam imposes a limit of 129 characters (including spaces) but it will get truncated well before reaching this limit in-game so try and keep it nice and short!
Level Description. Enter more information about your level in Level Description. Steam imposes a limit of 8000 characters (including spaces) but it will get truncated well before reaching this limit in-game so consider what you want to say about your level. Both the Title and Description can be updated via the Workshop hub after you've published your level.
Dream Type (Tag). Select if your level is really only suited to single player. If it is fine for both single player and multiplayer then choose the option of Multiplayer.
Recommended Players (Tag). Select how many players, between 1-8, this level was intended for.
Theme Tags. Next you'll see the Theme Tags tick boxes. By default these will look at any prefab you've used within your level and tick that theme automatically. As an example, the Intermediate Level example scene we've provided will auto-populate the Theme Tags of Mansion, Train, Demolition, Castle, Water, Power Plant and Aztec because it features prefabs from all of those level themes.
Export Dream. Then press the Export Dream button at the bottom of the Human Export window. After a little while the exporting process will be complete and you will be able to close the Human Export window.

We'll take you through playtesting your level and how to publish it to Steam in the next section of this guide.

Export Errors
Here is a breakdown of all Export Errors you might get shown when coming to export your level that will need clearing before the Export Dream button becomes available:

• There should be no cameras in the scene.
• There is more than one level in the scene.
• There are no level objects in the scene. Check Example scenes.
SpawnPoint not defined on level.
• There are no lights in the level. Check Example scenes.
• There are no FallTriggers in the level. Check Example scenes.
• There is no LevelPassTrigger in the level. Check Example scenes.
Checkpoint missing.
Dream Title cannot be empty.
Dream Description cannot be empty.
• Invalid metadata.
Dream Image required.

Human Export Features
There are also a number of other buttons available to you within the Human Export window that break down as follows:

Language Select. At the top of the Human Export window there is a language select option where you can change any text within the Human Export window to the language of your choice, along as it is supported by the game. This will hopefully help with understanding any Export Errors displayed that you may need to clear before exporting your level.
Open Workshop folder. This will open the location where your exported levels will be saved to locally, which is as follows:


Load Screenshot. Clicking this button will load the last screenshot thumbnail you've captured from either in-game (by pressing F9 while actively playing the level via the Local Levels menu) or from within Unity.
Load Dream Image. If you've previously exported the level to the game this option will reload the saved thumbnail from the exported level rather than displaying any new thumbnail you may have captured since exporting the level to the game.

In other words, Load Screenshot switches to your new screenshot, whereas Load Dream Image switches to the existing screenshot of your level if you've previously exported it to the game.
Play-Test & Publish to Steam
Once you've successfully exported your level from Unity it will be available to play in-game, where you'll be able to play-test it in singleplayer or CO-OP before publishing it to the Steam Workshop hub. Only once you've published and subscribed to it will it also become available to play in online multiplayer. Here's how to do all of this:

• Open Human: Fall Flat.
• You should see the level you've exported from Unity within this menu:

As you can see, you'll be able to review the Name, Description and the Screenshot Thumbnail of your level, as well as a breakdown of all of the Tags that you set for your level when you exported it from Unity.

From here you have a number of options open to you. They are as follows:

WORKSHOP LEGAL AGREEMENT. If you haven't already done so then you are going to need to accept this before you can publish anything you've created to the Steam Workshop hub.
PUBLISH TO WORKSHOP. You'll be able select this option once you've done the following:

o You've accepted the WORKSHOP LEGAL AGREEMENT.
o You've ensured that your level has a Name, Description and a Screenshot Thumbnail. If it doesn't have any of these then this option won't be available until it does so:

PLAY. As far as play testing your level before publishing it to Steam this is the option that you should select so let's do that now.

As well as being able to playtest the level locally to ensure that you're happy with it you can also capture a screenshot of your level in-game following these steps:

• Press F9 in-level to capture a thumbnail screenshot. If you're playing a lobby you'll first have to press F8 twice in order to get into the correct camera view and then press F9 in-level to capture a thumbnail screenshot:

• You'll get shown a Thumbnail captured confirmation message.
• These captured thumbnail screenshots will be located here:


• It's then just a matter of moving this thumbnail file to the correct folder under the Levels folder so that it replaces the existing in-use thumbnail for that level.

Reload Level
As well as being able to capture a screenshot of your level in-game you'll also find the additional option of RELOAD LEVEL in the Pause Menu of your level but only while playing it from the LOCAL LEVELS menu:

This is a really useful feature for play-testing your level in-game, making updates and improvements to it in Unity. You use it as follows:

• First run the game and then run Unity afterward so they're both active at the same time.
• In Unity successfully export a level so that it will be available in the LOCAL LEVELS menu in-game.
• Switch to the game and locate the exported level in the LOCAL LEVELS menu and play it.
• Once you're in the level, switch back to Unity.
• Make a change to the level, take a new thumbnail screenshot if required and then re-export it.
• Switch back to the game, enter the Pause Menu and select the RELOAD LEVEL option.
• The level will reload entirely and it will now include the changes from the last export you made from Unity.

The only other additional option in the Pause Menu is that of SHOW LEVEL IN WORKSHOP but that will only get added to the Pause Menu after you've successfully published the level you're play-testing. We'll talk about the SHOW LEVEL IN WORKSHOP option later in this guide but for now let's actually look at publishing the level to Steam.

• Select the PUBLISH TO WORKSHOP option and the upload to Steam will begin immediately:

• Once the upload is complete, the Steam Overlay will open automatically, which we'll look at in the next section of this guide.
Subscribing, Rating and Reporting
Before closing the Steam Overlay you'll need to Subscribe to the level you've just published to Steam in order for it to appear in the Subscribed Levels menu so you can play it locally in singleplayer or CO-OP. More importantly, subscribing to your published level allows you to Host an online multiplayer session using that level.

You can also Subscribe to and download other people’s levels, lobbies and models (skins) from the Workshop hub.

After you've closed the Steam Overlay and you're back in-game do the following:
• You should see any levels you've subscribed to within this menu:

• The Subscribed Levels screen also has the additional option of OPEN STEAM WORKSHOP.
• Selecting this option will open the Steam Overlay and take you to relevant section of the Workshop hub based on what type of item you were looking at in-game - levels, lobbies or models (skins). This makes it quick to browse for and subscribe to new content.

The Subscribed Levels screen can also be found via the SELECT LEVEL option in online multiplayer when you're the Host of a session:

For any level you've subscribed to, if you like what you're playing then please also take the time to Rate it via the Steam Overlay. You can easily get to any published level's Workshop page in the Workshop hub by using the SHOW LEVEL IN WORKSHOP option from the in-game Pause Menu when playing that level. Selecting this option will immediately open the Steam Overlay where you'll be able to Subscribe to and Rate it.

If you don't like what you're playing and a level actually contains something that you find offensive you can also Report it to Steam via this same screen:

That's it, you're now free to play your creations!

Please take a look at our other guides for information on multiplayer support, backward compatibility to 1.2 Alpha2, example Workshop levels, templates, prefab testbeds the Node Graph System and much, much more.
Hints & Tips
Maximum Level Sizes
If you want to create a level that doesn't have problems when coming to playing it in multiplayer you're going to need to keep it to a sensible size. Objects may not function when >500 units / 0.5 kilometers from the origin of the level (this is actually double the size of the largest existing in-game level). This limit is due to the ranges in the networking system where the the maximum range for positions sent over the network for multiplayer is 500 units. Anything bigger than that will cause objects to break for clients in multiplayer.

As reference, the water in the Water level only takes up under half of this distance and the actual playable area is even smaller than this.

Prefab Placements, Net Scope warnings and using Net Scene Parent Nodes
In addition to having to keep your levels to a sensible unit size for multiplayer you're also going to need to ensure that you've set-up the scene in the level in order to cope with a large amount of prefab placements, if you're wanting to use a large amount of placements. If you're getting the following kind of warning in the Console in Unity then you'll need to look at adding Net Scene Parent Nodes into your scene's hierarchy:

Net Scope "Level" (netid=0) might produce a data packet larger than 1200 bytes, which could fail to send on some platforms! Estimated worst-case size of this scope is 1395 bytes; maximum safe limit is 1193 bytes

The above warning is to do with having too many placements without dividing them between Net Scene Nodes. You can see examples of the set-up required for this within the PrefabTestbeds that are part of the Unity package we've provided:

The PrefabTests started out as a single PrefabTested but during development we had to break up the PrefabTestbed into separate levels due to the sheer number of placements. Even after doing this they still needed splitting into individual Net Scenes within each level when it came to being able to test the prefabs for multiplayer.

If you get this warning then your level will need splitting into individual Net Scenes within the level so that it does not break when trying to get it to work in multiplayer. Without a at least a couple of Net Scene Parent Nodes everything will be under a single Net Scene by default, which will cause this error.

Metrics for Steps
When it comes to building steps and staircases within your level each step should be no higher than 35 centimetres and the depth should not be lower than 35 centimetres. This is so that you'll be able to just walk up them while playing the level. If you don't follow these metrics you'll find yourself struggling and having to jump up the stairs instead.

Metrics for Jumps
• Vertical Jump Distance - Jump to grab an upper ledge edge is approximately 2 metres.
• Horizontal Jump Distance - This will need to be adjusted and play-tested on a case-by-case basis, as the jump distance is reliant on physics and the topography of the level area i.e. whether it's an uphill or downhill jump.

FBX Models
Use programs such as Maya, 3DS Max and Blender[]to create new models for your levels!

Hot Keys
This page gives an overview of the default Unity keyboard shortcuts:

Master Unity
Unity Interactive Tutorials:
Official Learn Unity Playlist:

ProBuilder is a great tool to quickly build your dream levels and it's included with Unity!

Remember that you’ll need to create a thumbnail screenshot while testing your level in Play / Run mode by pressing F9. You'll get shown a Thumbnail Captured confirmation message on doing so:

This will then be assigned to your level for when it comes to exporting it to the game once you're ready and then when finally publishing it to Steam.

You can also capture a screenshot of your level in-game but if you're playing a lobby you'll first have to press F8 twice in order to get into the correct camera view and then press F9 in-level to capture a thumbnail screenshot.
These are Spawn Points that only activate once the player has passed through them once; replacing the previous Spawn Point.

Fall Trigger
A volume that defines the area the player can fall into before they are reset and fall back into the level.

Create a folder for your levels before you export them.

Game Window
Window that renders the game for testing.

Graph Nodes
A graphic representation of the interactivity between different scripts attached to objects.

A list of all Game Objects that exist in the current scene.

All information on the currently selected object.

An empty Game Object that every level needs to act as a Parent Object to other required objects in the level.

Level Description
A description of your levels that will appear in the main game. Be sure to fill this in so other players know what they’re getting into!

Level Prefab
In the Workshop folder under Prefabs there is a Level Prefab. You can just drop this into your level and this will all be implemented.

Level Title
Give your level an interesting name to attract other players. Most Human: Fall Flat levels are just a single word but we'll leave it up to you what you want to name your creation.

Net Body
This is a specific script that allows an object to sync in online multiplayer and respawn if it falls off the level.

Pass Trigger
A volume that defines the area the player falls into to trigger the end of the current level and loading of the next. This isn't required when building a Lobby level.

Physics Material
These different materials change the physics properties on an object.

Check the Prefabs folder for ready made objects. Also check out Assets > WorkShop > Scenes > Levels > PrefabTestBeds. We've created a separate PrefabTestBed for each level in the game that you can open. You can then drop into Play / Run mode so that you can go on a tour of all of the prefabs from that level!

Check out these scenes to quickly see it all! If you can't see something you want as a prefab then you need to let us know and we'll add it to the backlog of work to get it created for you.

A list of all assets currently in the project. Assets can be dragged and dropped straight into the Scene window from here.

Rigid Body
This is a component that makes an object a physics object that will interact with other objects.

Scene Window
The window that allows for navigation of the game world as well as manipulation of objects.

Spawn Point
A volume that shows the fall trajectory of the player once they spawn into the level for the first time.
< >
iBarin Oct 12 @ 11:29am 
Have same issue in preview with slamming player model. Unity Input Menu is too complicated.

Input Axis Joystick Look Horizontal is not setup.
hectorrmaz Aug 19 @ 6:58am 
wath how to create????????????????????????
魉魍魅魑 Jul 17 @ 7:28am 
Glue Jul 10 @ 11:54pm 
A lot of the models are missing textures and appear bright pink. I tried reimporting, but it did not help.
Garfield Jul 8 @ 11:11pm 
I get this error every time I start up a test

ArgumentException: Input Axis Joystick Look Horizontal is not setup.
To change the input settings use: Edit -> Project Settings -> Input
HumanControls.get_calc_joyLook ()
HumanControls.ReadInput (System.Single& walkForward, System.Single& walkRight, System.Single& cameraPitch, System.Single& cameraYaw, System.Single& leftExtend, System.Single& rightExtend, System.Boolean& jump, System.Boolean& playDead, System.Boolean& shooting)
Multiplayer.NetPlayer.PreFixedUpdate ()
Multiplayer.NetGame.PreFixedUpdate ()
Multiplayer.NetGamePre.FixedUpdate ()

The player model is also gone and I hear sounds of it slamming against the level
DarlingXD Jul 3 @ 8:53am 
Thank you so much:steamhappy:!
iEatPopTartsCold Jul 1 @ 4:16am 
Thank you so much for helping me get started! It has always been my dream to work in a field of software engineering, and you have made me realise that game development may well be job of my dreams.
iCraftDay Jun 21 @ 4:29am 
Also disable "Error Pause"
iCraftDay Jun 21 @ 3:41am 
well it works for me. you probably have to have steam running and also use the correct unity version. I did not try exporting, but playtesting works. The skin looks a bit glitched but works. also select "Drop Human" once if it doesn't work.
bulkmoerls Jun 16 @ 10:34am 
WOW thanks :steamhappy: