How To Make a Piggy Game on Roblox

How To Make a Piggy Game on Roblox

Written by AlvinBlox

Published April 24, 2020

Recently, the game ‘Piggy’ has been taking the Roblox World by storm. After launching itself onto the front page, the game, developed by MiniToon, has already achieved 1 billion visits, becoming the fastest Roblox game to do so.

Want to watch Episode 1 in my new How to Make a Piggy Game series?

Here’s the link: Roblox Piggy Game Tutorial

The game is simple. Players are spawned into a map where they are locked inside – an escape room. Not only do you have to try and escape in under 10 minutes, you’re also being hunted down by a monster wielding a baseball bat who wants to kill you – the Piggy.

Although a Piggy is usually not thought to be evil and sinister, in this game the Piggy is the enemy. Do not get caught by the Piggy at any cost, because as soon as you’re killed, you’re out of the round.

The players who are trying to escape have to work together as a team to find keys which unlock other doors containing other useful items to help aid your escape. Only one tool or key can be equipped at once though – so you need to communicate with the others in the game to know who has what items.

If you run out of time and haven’t escaped the map, then the Piggy is handed the victory. Or, if the Piggy kills everyone with their baseball bat, then they will also win. The only way for the players to beat the Piggy is to find all of the keys and items and use them to escape the map. There is no way to kill the Piggy otherwise.

Usually the game will start with a intro cutscene, which creates a storyline for each chapter. Each new update to the game brings a new chapter. A chapter is basically a map and new story in the game. New keys, new challenges, new areas to escape – all within the 10 minute time limit.

What makes this Roblox game so special is the element of the unknown. Even though you might think it gets repetitive and boring after a few rounds, it really doesn’t. Unlike the genre of Murder games which can get repetitive, this game always has a new twist each round because you’ve got the escape room element which tasks you with finding items and getting to an exit. But you’ve always got to be on the lookout for the Piggy who suddenly might appear and try to capture you – leaving you on the edge of your seat and creating tension.

I’ve never got bored of Piggy and I don’t think I will – plus there are lots of different game modes that you can play. Each round you can choose of the normal rounds with either a bot playing as the Piggy or an actual player, or you can have an Infection round or a Traitor mode. Add in 10 more (and counting!) chapters and you have a really exciting game that will provide hours and hours of endless entertainment!

I recommend that when you play Piggy you do so with friends so that you can chat with each other and be on the same page – as I said, communication and team skills in Piggy are essential to win, so that you can tell each other if you see the Piggy or you get an item that’s required to unlock something.

I’ve found that talking to your friends using voice chat – on a service such as Discord – works best for these strategy games.

Your Own Piggy Game!

I have some exciting news to share with you. I am currently working on a tutorial series on how to make your own version of the Piggy game in Roblox Studio. Watch this space and be sure to subscribe to my YouTube channel to be the first to watch it when I release it.

Frequently asked Piggy game questions

My Status Bar Is Not Working (“Next Round Starts In X Seconds”)


So your status bar at the top of the game is not showing the text such as “Next round starts in x seconds”.

This could be happening for a few reasons. Most likely because you forgot to add your Status value into ReplicatedStorage. Make sure that you have inserted a StringValue object into ReplicatedStorage and named it “Status”. This is because in our RoundModule and client GUI scripts we are using :WaitForChild() to only run the code when the Status bar has been inserted, so if you forgot to insert it then the script will pause and will be waiting forever for that status value to be inserted, and eventually it will time out and stop running the script.

Another reason is because you forgot to capitalise something, for example the Value part of Status.Value – You need to have the capitalisation PERFECT else it won’t work.

Another but less likely reason is because later on in the SelectChapter() function in the RoundModule, people have accidentally named their variables incorrectly.

The Random.new() variable should be called ‘rand’. Check to make sure that you named this variable correctly. A lot of people got confused with my British accent and named it ’round’ instead, as it sounds the same.

 

 

 

Map Loading Is Not Working

This could be because in the SelectChapter() function in the RoundModule, people have accidentally named their variables incorrectly.

The Random.new() variable should be called ‘rand’. Check to make sure that you named this variable correctly. A lot of people got confused with my British accent and named it ’round’ instead, as it sounds the same.

It’s really important that you check your code over to make sure it is correct, as it’s likely that you’ve made a mistake when writing the code out.

How can I figure out what's wrong?

Use the Output window of Roblox Studio to find out if there are any error messages printed by the script if it doesn’t work. This will tell you the line number of the script where it failed. 

Error Messages like 'is not a valid Member'

If you get an error like this, it means that the script is looking for an object inside of something that is not there. It could happen when you forget to put your spawns in your map, or the folders such as “Doors”, “Items”, and “PlayerSpawns” into your map.

However, it can also happen because you are calling an in built function such as :Destroy() with a dot instead of a colon (:). A lot of people will call :GetChildren(), :Clone(), :Destroy(), :FindFirstChild() and :WaitForChild() but accidentally put a dot at the start instead of a colon, so the script would think you’re looking for an object called Clone or Destroy instead of calling the function.

Clicked or DropTools is not a valid member of Module

When you have an error like ‘not a valid member of Module’ it is likely because you forgot to require the module in your variable referencing it. You need to make sure the path to your module is in a require() function. The errors occur because it’s looking for an object with the name of your function inside the module but you need to require it first so that the module script can return the functions to the script you are calling them from.

Want to download the finished scripts?

As a Premium Channel Member, you'll have access to download everything you need from this tutorial in my private Discord server (+ many more perks!)

Screenshots from AlvinBlox’s Piggy Type Game Tutorial!

Become an AlvinBlox Channel Member and benefit from a range of perks!

You may also like…