Docs / Roblox Games/Quick Draw

Quick Draw

Fast-paced multiplayer drawing game with live canvas replication.

Roblox GamesLuaProfileServiceCustom Remote Networking
Quick Draw

Overview

Quick Draw is a multiplayer drawing experience where players take turns drawing a randomly chosen prompt for 1 minute. At the end of the minute, players in the crowd decide who made the best drawing based on the prompt.

Key Systems & Features

  • Extensive drawing system
  • Round-based gameplay
  • Autoscaling levels system
  • Funnels to other games

Code Examples

Below are some code snippets from this project.

XP Handler (snippet)
LUA
local function CalculateRequiredXP(level)
	return math.floor(XPSettings["BaseXP"] * (XPSettings["GrowthRate"] ^ (level - 1)))
end

local function GiveXP(player, value)
	local xp = player:FindFirstChild("Data").XP
	local level = player:FindFirstChild("Data").Level
	if xp and level then
		if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(player.UserId, XPSettings["2xXP"]) then
			xp.Value += (value * 2)
		else
			xp.Value += value
		end
		if xp.Value >= CalculateRequiredXP(level.Value) then
			level.Value += 1
			xp.Value = 0
		end
	end
end
Player's chance to play incrementation
LUA
local function IncreaseChance()
	local total = 0
	for _,v in pairs(PTable) do
		if not IsChosenPlayer(v["Player"]) and (v["Player"].Name ~= "" or v["Player"].Name ~= nil) then
			if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(v["Player"].UserId, Gamepasses["2xChance"]) or v["Player"].Data.FirstTimePlaying.Value == true then
				v["Chance"] +=  math.random(4,6)
			else
				v["Chance"] +=  math.random(1,3)
			end
		else
			v["Chance"] = 1
		end
		total += v["Chance"]
	end
	
	for _,v in pairs(PTable) do
		if (v["Player"].Name ~= "" or v["Player"].Name ~= nil) then
			Network:FireClient("UpdateChances", v["Player"], v["Chance"], total)
		end
	end
end

Links