Hot Lava

Hot Lava

42 ratings
Mapmaker's Guide
By Dawnfinder
A guide to creating custom levels in Hot Lava.
4
   
Award
Favorite
Favorited
Unfavorite
Introduction
Welcome!

If you've come to this guide you likely want to make a map. And you're in the right place. I'm going to cover the basics that are in the SDK's pdf briefly, but this guide is going to focus more on the different mechanics that can be used in the SDK. Screenshots will be included in several sections with the possibility of videos being added later.

I strongly advise joining these two discords. We can help you with anything you have trouble with, and we're pretty friendly! As well, we have some mapping competitions I host in the Event discord! You should join.

Official Hot Lava Discord[discord.gg]

Hot Lava Community Event Discord[discord.gg]
Unity Set-up
First, install unity
2019.4.7f1
This link will download the directory of unity downloads for you.[unity3d.com] Just pick the 2019.4.7f1 installation that works for you.

Originally posted by A Desperate and Fatigued Mapmaker:
For the love of god please stop updating past 2019.4.7f1, it doesn't work well if you do that. So many people have failed to follow this simple step and it ruins the whole mapping experience for them and they complain to me about it. Please don't be that guy.

Then, in your steam client you need to install Hot Lava's SDK. To do this mouse over Library and in the dropdown menu select "Tools". Find Hot Lava's SDK and download that.

Once your unity is installed, make a new project. Name it whatever you want, but be aware that all of your levels will likely be in this single project, so name it something you're comfortable with. Be sure this project is saved to somewhere that is easy for you to access as well, just for safe-keeping.

Next, you need to go to Assets > Import Package > Custom Package on the top of your screen, as seen in this screenshot.

From here you simply need to find your Hot Lava SDK, which should be installed to wherever your steam games are installed. You should be able to right click the game and view file location under properties or something. I don't remember exactly how to easily find the location, apologies.

Wait like 5 minutes, then hit import. Wait 800 more years for this to process and you will be good to start your first level.
Level Set-Up
In Unity, every level you are going to make is simply going to be its own scene. To make a scene, go to the top left corner and select file, then New Scene.
Name it whatever allows you to keep track of it, and then go back to file and hit Save Scene. The reason we save immediately is that you are not allowed to do anything Hot Lava related if the scene has not yet been saved.

Next you are going to look towards the top again and hit Klei > Mod > Create Game Container
In the image it is greyed out due to me already having one in the scene. Along the right in the Hierarchy you will now notice a Hot Lava Game with a child Game Mode - New. Your inspector should be focused on this Game Mode - New. For the basics all you really need from here is the "Add Checkpoint button in the inspector. This will generate checkpoints under the Checkpoints child of your Game Mode. The order here matters, the top one is ALWAYS your Start and the bottom one is ALWAYS the Finish. Everything in between will be your checkpoints.You can click on Game Mode again to generate another checkpoint so we have both a start and finish.

Originally posted by Dawnfinder:
NOTE: Checkpoints make the player face towards the Z axis defaultly! Rotate it accordingly.

Technically speaking, this map is playable already with the play button on top of the screen. That said, the level instantly finishes itself. Move the exit with the move tool in the top left and now your play button will make you fall into the void until you die, forever. On the top of the screen, go to GameObject > 3D Object > Cube. This will spawn a cube on your start. Use the move tool on the cube to move it down so it is just below the green outline of the start.
If you press the play button now, you should be standing on a cube and be able to jump into the finish.

Your level is now playable, congratulations. You've achieved the absolute bare minimum. If you wanted, you could go a minimalistic route and make fun and immersive levels composed entirely of cubes! They would be so fun. You could jump on one cube, and then another! Heck, you might even get players that are having SO much fun they leave your map open for 100 hours in hopes of beating it. Cubes are so powerful. Imagine if you looked along the top of your screen near the move tool, and combined the powers of the rotate and scale tools with the move tool. With the rotate tool rotating your cubes, and the scale tool making them bigger, I shudder to imagine the possibilities your mind could create. Adding textures gives us a whole new field to work with as well! Your cubes could be bland and white, or colored to some basic colors, or even entirely painted as the face of the lead developer Mark, who is amazing.

As far as basics go, this is it. If you think this is all you want to work with, you can just go straight to the uploading section. If you are interested in the more in-depth techniques of level design for Hot Lava and good practice for unity level creation, keep reading. From here, you can move through the guide as you see fit. No section NEEDS to be read besides the uploading section. Otherwise there is no true order. Explore to your heart's content!
Common Issues
  • If you can't hit the play button, go to Window > Package Manager > Textmesh Pro > Remove
  • If textures are all pink, it's possible you are missing some shaders. Divert issues with this to the Hot Lava discord pinned on Klei's Forums. If they're like this in export but not in Unity, that's generally out of our control.
  • If you die to Out of Bounds on parts of your map, make sure your objects are outside of your Game Mode. Objects inside any given Game Mode or under Hot Lava Game do not expand your playzone boundaries. I generally place a cube with not collider or visible mesh in the two far corners of my map to make sure Out of Bounds deaths don't ever happen within the map.
  • If Unity is using too much of your PC, add a lighting tab somewhere. Scroll to the bottom and turn off "Auto Generate" in the Debug Settings section.
Hot Lava Game
Level Name
The name of your level in-game. This is separate from your workshop level name, and appears in the escape menu.

Version Number
If changed between updates, resets times. If unchanged between updates, keeps times intact.

Music Track
Changes the tune you PepoDance to in-level. Lobbies always use the same lobby music regardless of this setting.

Multiplayer Enabled
Allows players to see other players in-level if checked.

Level Select Image, Intro Video
Currently unusable in dev kit to our understanding.

Logo Image
Put an image here to make it appear in the top left corner of the leaderboard.

Modkit Death Reasons
To create custom death reasons, go here. Set the size up to 4, since you can't go above that and theres no reason to go below. You can then type in any of the 4 slots to make custom reasons for death on HL_HazardReasonOverride.

Prefab Overrides
Place prefabs into these three tabs to override the model of checkpoints, finish lines, and sub mode finish lines.

Add New Game Mode
Adds another Game Mode for you to mess with.

Add Lava
Automatically adds some lava to your level in a folder for lava, as well as an empty folder for nonlava. Put objects in these and then hide or show them in Game Mode to have a lavaworld and overworld. If you don't have an overworld simply click the button and move on with your day.

Switch to Low Poly Prefabs
Exchanges your checkpoints and finish lines for low poly variants instead, due to their prevalence in the modding scene. If you press this button BEFORE you press add portals in an overworld, the portals added will also be low poly! Pro tips.
Game Mode
Game Mode - New
Replacing New with something else will rename the mode to whatever replaces new in the tab menu as well as in the escape menu if you have multiple levels.

Hide When Active
Set the size to the number of things you want to hide. The same number of boxes will appear. Put objects you don't want to see while in this gamemode here and they will magically vanish only while you play this gamemode. Anything placed here must be in every game mode in Hide When Active or Show While Active.

Show While Active
Identical to Hide When Active, change the size and put stuff in the boxes inside. These objects will magically appear while you play this gamemode! I advise unchecking the checkbox in the top left corner OF THE ITEMS IN THE SHOW WHEN ACTIVE BOXES. This assures they are visible ONLY when in this gamemode. Anything placed here must be in every game mode in Hide When Active or Show While Active.

Name Override
This overrides the name of the Game Mode - New. If you changed New to something else this overrides all instances of New or whatever replaces it.

Description
Shows up when you approach a level portal for this level.

Difficulty Data
Changes how difficult the level appears when approaching a level portal for the level.

Link to Previous Game Mode
If checked, will become a part of a multisection stage with the gamemode directly above it in the hierarchy.

Version Number
Similar function to Version Number in Hot Lava Game, changing this resets times for ONLY this level instead of all levels in the project. Add 1 to current number before uploading to reset times, leave alone to not.

Online World
All players in modes with the same number here are visible to each other. Two players in online world 0 will see each other despite being in different levels, but a player in world 0 and world 1 will not see each other even if they are standing in the exact same spot.

Type
Determines type of level.
  • Course = Normal Level, shows up in escape menu and leaderboard at all times
  • Lobby = Overworld in main game levels, always plays lobby music, always the mode you load into regardless of position in the hierachy. Does not appear in leaderboard.
  • Trial = Similar to Pogo challenges, does not show up in escape menu, but will appear in leaderboard. Portals to levels of these types can be entered by holding the grab button, as well as normal entry methods.
  • Event = Currently untested, assumed to be similar to buddy mode. If this is the case it never appears in escape menu. Doesn't appear in leaderboard unless played in the current session.
  • ALL_COURSES = Will automatically play through all courses in your level. Requires a start placed in the game mode to function.
  • RANDOMIZER = Yea I never tested this. Looks really hard to set up and isn't used in the main game yet so I haven't put the time in to figure out how it works.

Unlocked
If unchecked, Game Mode above this one in hierachy needs to be completed for this level to be entered via level portals. If checked level portals for this level will always be enterable.

2d Badge
Unknown function

Config and Modifier
Next section will be entirely on these, as they are huge. For basic implementation though you should click the circle to the right of this, make sure you are in the Asset tab of the popup, and pick a gamemode similar to what you want to make or one you've made yourself. For more detail check the next section.

Possible Mode Tweaks
This is a whole other can of worms. To explain this, think of Doggo in the base game. Carry an object into the level portal and it will trigger this. I'll explain the whole process better in grabbables and level modifiers, so look there for more details. Set the size to 1 or more to see what you got to work with.
  • Game Mode Name_Fmt = Name of level in leaderboard. {0} means your level's name. I suggest doing "{0} - Modifier Name" here.
  • Game Mode Id Suffix = Name of mode's replays in comparison to normal level's. I suggest just "_modifier" here.
  • Required Key = Item ID of grabbable required to enter special game mode.
  • Mode Config = Config used in this version of level.
  • Player Modifier = Modifier used in this version of level.
  • Not Allowed = Decal used to signal that the level can't be entered with the object yet.
  • Mode Override = Makes it so you play an entirely different game mode when you enter this game mode's portal with the object. Drag another game mode into here to set it. This could be used for things such as a reverse mode, if you made another gamemode with the checkpoints backwards, for example.

Add Level Intro
Adds a level intro camera. Plays when entering the level. Inside the intro press Add Intro Path to create and edit the path the camera follows. Edit the points the path follows as you need, and beware the default rotation has them facing the Z axis.
Interruptable allows the player to skip the camera. I advise always having this checked.
Play One Shot seems to have no effect
Speed changes the speed the camera moves along the track

Add Checkpoint
Adds a checkpoint. First and last checkpoints in the hierarchy are always the Start and Finish, respectively.

Add Lava
Kinda like the other button from Hot Lava Game, it adds lava. Enthralling.

Validate Show/Hide
I have literally never hit this button, to be honest. Pretty sure it checks if all your gamemodes have the same objects in hide/show on active, because the same pool of objects should be on all game modes.
Configs and Modifiers
When selecting a config and modifier for a Game Mode, some options pop up as defaults. The ones that matter most currently are BuddyModeConfig, DefaultPlayer, PogoStickModifier, and TinyToyModifier.

BuddyModeConfig means the level will be in buddy mode
DefaultPlayerControllerConfig and DefaultGameModeConfig is normal hot-lava style movement. If modifier is left empty it defaults to this.
PogoStickModifier means the level will be in Pogo mode
TinyToyModifier makes a level a Tiny Toy level.

Custom Level Configs and Modifiers
If you click on the box after selecting a config or modifier all of the modifications will appear in the project tab. You can right click any of them and click Show in Explorer to show it in a folder. Copy it, Paste it, and rename it to something you'll remember. Click back into Unity and your new mode should be there. Click it and this menu should pop up. One of these is for Configs and one is for Modifiers.
Theres no chance that I'm going through all of these and formatting that in this guide, since theres so many self-explanatory ones. Heres some of the less obvious ones or ones with interesting properties. Assume ones unlisted that aren't obvious have unknown functions.

Allows User Created Checkpoints
Lets players make their own checkpoints with the X key, similar to overworld and explore.

Strong Checkpoint Ordering
Requires the checkpoints to be earned in order to complete the level.

Fall Damage
Prevents fall damage deaths, as well as deaths to collision or crushing.
This ALSO cancels max speed death when boosting to +13.5

Gravity Multiplier
Alters how much gravity is applied to the player. Lower = Higher jumps, Higher = Lower jumps.

Max Velocity Modifier
Changes default move speed. Whatever number is in here is multiplied by 3.5m/s and becomes your new default walk speed.

Scale
Changes the size of the player. Bigger numbers = Bigger players.

UI Overlay Resource
No idea what this does, but it sounds like UI overrides which is sick. Please someone find out this.
Lava and Other Ways to Murder your Player
To add lava to your level, search "lava_20x20". Insert the prefab into your level. In the Hierarchy, drop down the menu for this prefab. If you want the lava to be any bigger without looking upscaled, resize the "new_lava_plane". Inside this, there are also many options to toy around with the lava that I am not too familiar with. Feel free to play with these yourself and see what they do.

To make the lava look more natural, you'll likely want it moving with the flow of your level. This should give the player a semblance of direction, even if only subconsciously. Your lava_20x20 should have come with two force_directionals and one force_vortex. I advise simply copying these default forces and messing around with:
Field Type, which changes how this field moves Lava around
Force Scale, which changes how strong this lava movement is. For a natural look you likely want this to be around 1 or lower.

Keep in mind and lava motion will not be visible to players with the dynamic lava setting off, so try not to make it necessary to complete your level and make sure it isn't so intense it lags your player's game.

To create an object that kills your player on touch, set the tag to hazard in the top left of the inspector. This can turn a simple box into a murdering machine. You monster.

To make an object that kills your player in a slow and painful fashion while they touch it (Just like stoves), add HL_Damage Collider to it. Set your damage per second to determine how fast they die. A player has 1.5(Potentially outdated?) Health, so they die in 1.5 seconds to something doing 1 damage per second.

Death Reasons
HL_Hazard_Reason_Override
Attach this to a hazard and it will allow you to change the reason for death listed in the kill feed. Look back at the Hot Lava Game section to learn how to make up to 4 custom death reasons not included in default mod kit per map.
Prefabs and Asset Packs
Alright, so you want your map to look good. But you don't have any talent in 3d modelling and cubes just are not gonna cut it. Well fear not! Luckily for you, other people have done the work you refuse to! With your installation of the Hot Lava SDK, you imported loads of prefabs used in the normal hot lava levels such as school, basement, and playground. Some of these levels, such as school, are not out yet so be careful looking through these unless you are fine with spoilers of objects such as desks.

Prefabs
So to understand what these prefabs do, you must understand what a prefab is. A prefab is essentially just a group of objects with specific settings that can easily be accessed or imported across projects. As mentioned, the Hot Lava SDK comes with many included for your use. These will be most easily accessed in the Project tab, under Assets > Plugins > Hot Lava Mod Kit > Assets > Prefabs. As well, you can generally search the project tab and find objects similar to whatever you want. Just drag these into your scene and you should be good to go. A bonus of these prefabs is that the colliders are generally pretty well adjusted, and you shouldn't need to worry about most of them.

Asset Packs
You mean to tell me the Hot Lava prefabs didn't include a prefab for a barn? Lame. You could make one yourself board by board live on twitch or you could be a smart person and download one someone else made for you! Near your Scene tab there should be an Asset Store tab. I hear your immediate concern. Store = Money. While there are higher quality paid assets in the store, theres a vast selection of free assets for you to utilize as well. Click the dropdown "All Assets" button and narrow it down to only 3d assets by hitting 3d. Next you can change the price range, and I would recommend searching for free assets first. Find one that tickles your fancy and click download. Once downloaded, the download button will be replaced with an import button. This is similar to when you installed the Hot Lava SDK. Follow through with that and you should now be able to use assets from that pack. Be warned these assets likely will require you to set proper colliders. Theres no one-size-fits-all solution for these, but I advise trying a mesh collider first and determining if a box collider is more fitting after that.

Personally, I'd advise installing Probuilder and Progrids. Install them before starting your project in case there are any complications.
Probuilder
Allows you to easily make your own shapes and geometry, and texture objects by face. Probuilder might be already installed with unity 2018, but I'm not sure of that.
Progrids
Simply creates a grid in all directions and allows you to lock your movement to specific amounts, such as snapping to every unit divisible by 1 or 2. This is very handy for fitting objects together without weird spacing between them that could kill speed.
Colliders
The collider on an object determines which parts of it the player actually touches. While Unity has a variety of colliders, when making Hot Lava levels most all situations are going to call for you to use only Mesh Colliders and Box Colliders, so we will only be covering those. Be aware that the skills on these colliders essentially can be translated to any other type of collider.


Mesh Collider
Mesh colliders create collision perfectly matching the physical shape of your object. This can be very useful for complex shapes, but be warned that these colliders often kill speed and make speedrunning maps less enjoyable. This is not always the case, but if you try to play your map and find yourself gettings stuck on many edges, you may want to reconsider your collider choice.

Convex = Makes the collision lower-poly and fit to the mesh. Recommended in rare cases, use the green outline to tell if this is a good option for you. Must be selected to make object a trigger
Is Trigger = Allows players to walk through your collider. Activates any trigger components in the same object.
Cooking Options = Has to do with lighting, which I don't know enough about to properly explain here.
Material = Properties of your collider. Materials will be covered in another section.
Mesh = The mesh that is being turned into a collider. Defaults to the shape of the mesh in question in most cases, and RARELY should be altered.

Box Collider
Box colliders are collision shaped as a box.

Edit Collider = An easy way to alter the size of the box collision in your scene. Drag the green dots to change the size after clicking this button.
Is Trigger = Allows players to walk through your collider. Activates any trigger components in the same object.
Material = Properties of your collider. Materials will be covered in another section.
Center = Where the center of your box collider is in perspective of the box's location. Often 0 0 0, but will need altering in some cases.
Size = How big your box collider is. More easily edited properly via Edit Collider, though this tool is useful for precise changes.
Materials
Materials change how your player behaves when touching an object. Many of these are simply the exact same properties with a different sound effect when walking or colliding attached. Play around with those yourself based off their names. Some have special properties.
They include:
  • Bouncy = Particularly bouncy.
  • Buddy = Very high friction. Intended for doggos and puppers.
  • GravitySurf = Surfing platform akin to in-game, where gravity is applied properly and you can not surf upside down in the odd situation you do this.
  • Hazard = Kills the player.
  • Surf = Surfing platform akin to in-game, but you can surf upside down, if that tickles your fancy.
  • ThickMat = Prevents fall damage death via get-up animation.
  • ZeroFriction = Take a wild guess.

On top of this, you can make your own material. simply open any of the materials with Show in Folder, copy paste rename, and then click it in your project tab. The inspector will show up and you can alter material properties as you see fit.
Overworlds and Level Portals
Overworld
To create an overworld, create a Game Mode as though you were making a level, but change the course type to LOBBY. Doesn't matter if the Game Mode is above or below other Game Modes, the Lobby mode will always be the one the player defaultly loads into, and the one they return to after leaving a level.

Level Portals
To create a level portal you can turn any object's collision to a trigger, and then add HL_Course Select Location.
This image is taken from the course_select_portal prefab. I recommend either using this in your level or learning from it how to set up a fancy level portal like in the games. There's a lot here, and for now as far as this guide goes I'm simply going to say that the only parts you absolutely need filled in are Game Mode Container and Spawn Point Offset.

Game Mode Container is which level the player enters upon entering a portal. Set this to the Game Mode that the portal should put the player into.

Spawn Point Offset is where the player appears and what direction they face after leaving a level. Set this to something the player can appear on. I generally take a flat cube, remove the colliders and mesh renderer, and set that as the Spawn Point Offset.

ALTERNATIVELY
Just press the button in your overworld gamemode that says add portals
If your checkpoint prefabs are all 3 set to the low poly version it makes this add low poly portals instead.
Trampolines
To make a trampoline, just attach a HL_Trampoline to the object you want to bounce off of.
Velocity Modifier
Multiplies current velocity in any of these directions by the number in here. Y must be -1 to bounce back upward. If you were moving 3.5m/s in the X direction and the value was 2 you would leave the bounce with 7m/s velocity.

Min Velocity
The minimum velocity your player must have to bounce on the trampoline.

Min Bounce
The lowest bounce the player will get off of bouncing on the trampoline.

Downward Force Required
If checked, the player must have any velocity downward to activate the trampoline. For most trampolines on the ground this should be checked.

Consider Rotation
If checked, physics will be applied to what direction the player bounces based on the orientation of the trampoline face they bounce off of.

Max Vertical Velocity
The highest bounce the player is allowed to achieve by bouncing off of the trampoline. Note that the player can fall from higher up than this and go higher by timing the jump off the trampoline right, regardless of this setting.

Material Type
Type of bounce you get.
  • NONE is like a normal trampoline
  • SPRING is like a normal trampoline afaik
  • BALLOON behaves like the balloon bounces in school

Timing Failure/Success Sound
The sound that plays when a full bounce is failed or succeeded.
Fans/Windboxes
To make windzones, attach a HL_Tunnel Fan script to wherever the wind should affect. I generally use a large box and remove the mesh renderer on it. Make sure all colliders on the zone are set to Trigger and you should be good.
Force
Which direction the fan pushes the player, and at what strength. This is based on the local axises of the object, so rotation matters.

Force Profile
I haven't had much success with this, but should make it so more or less force applies at different heights in the fan, similar to School's fans.

Crouch Modifier
The multiplier the Force receives when the player is crouching.

Force Mode
Type of force applied.
  • Force applies a force to the player
  • Impulse pushes the player much stronger than other options
  • Velocity Change seems to be nearly identical to Impulse
  • Acceleration seems to be nearly identical to Force
Climbables/Swingables
To make something you can climb or swing on, set its Layer at the top of the inspector to Climbable and put a HL_Handhold on it.
I don't know what most of the parts of HL_Handhold do, and most of them probably won't need to be messed with at all. The most important part to change is the Type dropdown.
  • Ledge makes you hold on to the edge of the object
  • Horizontal_Swing does a normal swing forward and backwards
  • Vertical_Swing makes you float up the side of the object with your momentum while grabbing?
  • Vertical_Climbable allows the player to climb up the pole. Be careful to change the way the orange part this spawns to go towards the direction the player should climb with Swing Axis
  • Mountable_Ledge makes you hold on to the edge of the object
Grabbables and Special Level Entries
Grabbables
To make an object a grabbable decoration item, set its Layer to Decoration and attach a HL_Decoration and then HL_Grabbable Item script to it. It must be done in this order or unity will attach the wrong type of decoration to it.
  • Key Id, if set, makes gamemodes change if entered with the item held
  • Grab Position is where the item appears in your hand. Alter until it looks like it fits the hand correctly
  • Grab Rotation is the direction the item is turned in your hand
  • Grab size is how big the object is in your hands
  • Placement Preview Prefab is likely the ghost seen when right clicking to place an object. Untested by me so I can't confirm
  • Is Heavy makes the player move slower and lose the ability to boost while the item is held

Originally posted by Dawnfinder:
NOTE: HL_GrabbableModifier is basically the same as HL_Grabbable, but you can set a modifier so it applies it when you hold the item.

Special Level Modes
The Possible Mode Tweaks section of the Game Mode allows for players to enter an existing level with a different modifier by holding a specific item. If the item held's Key Id matches the Key Id in the Required Key section, the modifier will be changed to the modifier in Possible Mode Tweaks.
Slime Walls / Wall Jumps / Wall Runs
Whatever you chose to call it, its the green icky paintlike goop on the walls. It's moving! Now now boys, don't touch that stuff. But for real, these things are referred to with so many different names. I'm calling them Wall Runs from now on. Get used to that.

In their simplest form, Wall Runs are achieved by putting the HL_Wall Run script on an object with it's collider set to Is Trigger. An image of this below, but the modkit_wall_run_jump prefab is an easy way in the SDK to see this in action. The prefab's local Z direction is the way the player will jump off the wall. Place the prefab partway into the wall you want to get it to work properly.


Modifier, Min/Max Vertical Velocity, Optional Orientation, Decal
Sorry, I tried testing several things with these and have no idea what it does.

Cooldown Time
How many seconds it takes before you can wallrunning again after wallrunning.
Triggers
Besides being things that upset you, triggers can be used in a variety of ways to make your map feel more interactive. To create one, simply add a HL_Activate Trigger On _______ component on to any object. Turn the collider on that object to "Is Trigger" and it will activate when the player walks through it. Triggers have a number of settings that allow for large possibilities.
Action
This is what the Trigger is going to do. This is arguably the most important part of the trigger.
  • Trigger = Activates another trigger. Genius.
  • Replace = Destroys the object in the Target and replaces it with a copy of the object in Source. Due to object destruction this can only be used once per level load.
  • Activate = Activates an object in the scene.
  • Enable = Enables a component attached to an object
  • Animate = Triggers animation supposedly. Couldn't test this one as animated objects seemed to automatically move anyway.
  • Deactivate = Deactivates an object in the scene.
  • Disable = Disables a component attached to an object
  • Toggle Component = Toggles the active state of a component attached to an object
  • Toggle Activation = Toggles the active state of an object
  • Timer = Allows for various timed actions, such as activate wait deactivate.
  • Local Player Drop Item = Makes player drop any item they're holding

Target
What your trigger is going to be affecting. Drag objects or components of objects into the box here.

Source
Used only in the Replace Action, this is the object that is copied.

Trigger Count
Number of times your trigger can be triggered. Recommend ignoring this in favor of Repeat Trigger

Repeat Trigger
When checked, trigger can be activated an infinite number of times. As players will be running your level more than once per play session, I advise this be selected for every trigger you ever make.

Cooldown
Timer before trigger can be used again.

Activation Restriction
Who activates the trigger and for who the trigger activates when activated.
  • Any = Anyone or thing can activate this trigger for everyone currently playing in a lobby.
  • Player = A player must be what activates this trigger for everyone
  • Local Player = The player must activate the trigger for only themselves. This should be the type you use in almost every situation, besides levels designed with multiplayer in mind.
  • Not Player = A non-player collider must activate this trigger, unknown for who the trigger is activated. Assume it triggers for everyone in the lobby.
  • Can Trigger Hoop = Makes it so only decorations tagged as Can Trigger Hoop activate it.
  • Tag = Anything with the specified tag can activate it.
  • Remote Player = Any other player can activate it.

Required Activator Name
If selected, only objects with the name entered exactly can activate the trigger.
Animation
To animate an object, first right click one of your tabs anywhere. I advise the Project tab.
Add Tab > Animation.
Now you have an animation tab to animate any object. Click on the object you want to animate and click Create. Add Property and select what you want to do to the object. For this example's sake I would add a transform property, and then select position. This will generate a new animation for position that starts at the position it was in before, and ends at the same location 1 second later.
To add a new point of motion, move the line on the timeline to anywhere there isnt already a dot.
Move the object to wherever it should animate to. Then press the "Add Keyframe" button on the left to add the new location to the animation.
Move these keyframes and add new ones as you see fit to make your animation the way you want it.

WARNING:
Players do not move with objects moving left and right. They have to walk with the object to stay on it.

This video probably explains animating in Unity better than this text guide can. Thanks to Lavkib for sending me this, it's how I learned.
Skyboxes, Shadow Distance, Draw Distance
The default unity skybox fits literally every situation you could ever want, obviously. In case you're crazy and want to change it, you can just get/make a skybox material and drag it onto the sky.

To make your own, you can make a new material, and set the Shader to Skybox 6 Sided. You can put an image in each of the sides and it'll be stitched together to make the skybox.

If you want to change your skybox mid-level or edit shadow and regular draw distance, add a component called HL_Configure Scene to an object that's active. I tend to just made a cube and put it on that, and then disable the mesh renderer and the collider.

Being entirely honest I'm not certain what the majority of what you can do here is for, and I tend to leave it alone.

Skyboxes
Put a skybox material in the Sky Box section and it will update the current skybox to this one. It will remain as this skybox until another HL_Configure Scene with another skybox is activated and this one is deactivated.
Originally posted by Dawnfinder:
Despite it normally being something I don't ever touch, I suggest placing a box with this component in the Objects section of all of your Game Modes! That way you never have more than one active at a time, and always have the intended skybox.

Shadow Distance
To alter how far you can see shadows, change the -1 in Shadow Draw Distance Override to something else. I tend to find 35 is the sweetspot I use, since it is just around the range where I stop noticing shadows not render further away. Setting this number higher can cause lower-end machines to lag, so be careful setting it too high, especially with higher-quality shadow settings in lighting.

Draw Distance
Check the "Override Clip Settings", and you'll see more options show up. The only one we want is "Far Clipping Plane". Setting this number higher allows the player to load stuff further away. I tend to set this to 300-500, but similar to Shadow Distance you want to be careful because it can lag machines when set too high.
Interesting Components
Theres a lot of components that are cool but realistically don't deserve their own sections in this guide. I'll try to lightning round a ton of them here that I think are cool.

HL_Collectible For Game Mode Trigger
Makes it so you have to collect all of the collectibles to enable or disable certain objects in the scene. Place this on an object inside your Game Mode.
Set the size of collectible, enable, and disable to the number of objects you want involved with each part. If I want 2 items to be collected set Collectibles to 2, etc. Then in each element for Collectibles set an object with HL_Collectible For Game Mode on it. These act as checkpoints, and can have the respawn overridden in the collectible itself. Once all of these are collected, the objects in enable will activate, and the objects in disable deactivate.

HL_Boost Battery
Makes an object act like a battery from the Tiny Toy mode. This includes rotating the object. Boosts can stack, and increase the player's speed by approximately 43% of their base move speed of 3.5m/s(1.5m/s) per stack.
Cooldown Time is how long it takes the battery to recharge so it can provide a boost again.
Boost Duration is how long the boost from the battery lasts.
Spawn Vfx Duration has unknown function. Changing the value didn't change anything in my testing.

HL_Face Camera
Makes the object face the player at all times based on its center. The Z direction face is the side that faces the player
World Space has unknown functionality.
Back Facing makes the opposite side of the Z direction face turn towards the player instead.
Perspective View makes the object rotate towards the player rather than rotate the same way the player is looking.
Lock Vertical Axis prevents the object from rotating in the Y direction.

HL_Pan With Mouse
Rotates an object with player mouse movement.

HL_Sin Mover
Moves an object in a rthymic wave motion in the directions specified. It will move that far from the starting location, and then go that far from the starting position in the other direction. You can change how long this takes by increasing the Period variable and where the cycle starts with the Time Offset variable.

HL_Teleport Volume
Teleports the player to the Target object. Object this component is on must be a trigger.

HL_Tutorial Trigger
Makes text appear for a couple of seconds when you enter a trigger this is attached to.

HL_Spawn Fall
Place this on a Rigidbody to make it spawn the object. It lasts as long as the respawn time is set to.

HL_Apply Impulse
It's what makes Tiny Toy's jump pads work. Pushes the player in a direction with a cooldown. Can set it to reset velocity so you can't stack insane speeds.

HL_Online Object
Makes an object have a copy of itself for each player, independent of other players. I recommend this for every grabbable that modifies a level.
Uploading/Updating/Reimporting Your Map
Uploading your map is a pretty easy task. Similarly to creating your gamemode, go to Klei > Mod > Upload Mod
From here, you'll get the Upload Mod menu. Press Create New Mod. Give your map a name. It will appear on the left of the upload mod menu. Make sure that your mod is selected and press export HLMod. After this, wait until the loading icon in the lower right corner of unity goes away and press Modify Mod. Put a level description in the section labelled as such, and give it any tags you feel fit your level. Pick a preview image, so people know your map is awesome and that they want to play it.
Press update and you should be good. Open your steam workshop from your profile and set the visibility of your level to public along the right, so others can play your masterpiece.

Updating:
If you think your map needs changes, select Hot Lava Game in the Hierarchy. Change the version number to 1 higher than whatever it is if you want to reset times. Then repeat the upload process, but do not make a new mod. Select your old mod and follow the steps from here and you should have an updated map.

Reimporting:
In the event that the SDK gets updated, and you want to move your map's files on to that, follow these steps provided by Drawnblue, maker of The Blue Box™(Officially Klei Curated map installed on your client(play it now(sponsored message(gone wrong))))
Step 1. Go to Assets > Export Package. Deselect everything Hot Lava/FMod related. You only want your assets and scenes n ♥♥♥♥. Export that to a unity package.
Step 2. Make a new Project.
Step 3. Import the new Hot Lava SDK.
Step 4. Import the package you exported in Step 1.
Step 5. Everything should still be working. Hooray!
Conclusion
Hey this is the end of the guide and if you read all the way to this part please go make me some levels to play because i really want more people to make levels so i can play them. Also you should totally go to those discords from the introduction and maybe enter the Hot Lava Level Jam that is almost always going on. I host those and we get some sick levels out of them, and I'm sure yours could be the next great one. Even if its not so great, someone is bound to love it. It'd be cool. You'd be cool.

Thanks for reading, and happy mapping!
Dawnfinder
14 Comments
Unknown 20 Nov, 2021 @ 11:13am 
♪♪♫♪♫♫♫




├|
⫘⫘⫘⫘⫘⫘⫘|
heh
辣椒粉 4 Sep, 2021 @ 11:23pm 
nb:steamthumbsup:
Mike 28 Aug, 2021 @ 9:49am 
kewl
Saladino 3 Dec, 2020 @ 10:42am 
Ok, thanks for the reply.
Dawnfinder  [author] 3 Dec, 2020 @ 10:25am 
Saladino, I think there are external programs that would let you do that in Unity, and you would need the SDK to run around in it. So to answer your question, the SDK itself will not let you decompile it alone
Saladino 2 Dec, 2020 @ 2:21pm 
Is it possible to decompile the levels already in the game with this? I am especially looking for collision boxes to find faster speedrun routes.
hunned 25 Feb, 2020 @ 9:40am 
Edit : No the newest doesn't work.
hunned 25 Feb, 2020 @ 8:40am 
Does it need to be the "2018.4.8" version of Unity? The newest does not work?
Play3rin 8 Nov, 2019 @ 1:48pm 
amazing bro
󠀡󠀡 󠀡󠀡 󠀡󠀡󠀡 20 Sep, 2019 @ 2:41pm 
very hard the editor -.-