Beginner scripting challenges

Hey! I’m a new Scripter here on Roblox and i would like some challenges from you. For example tell me a few systems i could make or a game. Keep in mind that i’m still a beginner on scripting and just want challenges to help improve and practice. And also what was your first Roblox game you made yourself?

17 Likes

A simple player board that adds and removes the current players in the server, making the player jump when they type something in chat, honestly, these are just funny cool things I did when I was learning, EDIT: Oh yeah a simple keycard door too, like some type of locked door, doesn’t have to have anything advanced, if they do something specific like type in a code into a plain textbox and click enter the door transparency turns to 1 and then once they walk through it just turn it back to 0

6 Likes

Hey, Thanks for responding! I’ll try to do them all but what would you recommend looking at on the Roblox API to be able to make the player board?

5 Likes

If you like reading, then you’ll find this article on the documentation very helpful, Players | Documentation - Roblox Creator Hub specifically PlayerAdded, And PlayerRemoved, Also I view Sleitnick as one of the top coders in Roblox, so I will link a youtube video on it here that he made: https://www.youtube.com/watch?v=bX8MxozRTGo&ab_channel=sleitnick PlayerRemoving basically does the opposite of what he explains in that video, funny enough though to end this off, I recently am trying to get a good friend into coding so recently made a playerboard public that I made a few years back when I was starting out, hopefully you can find it helpful as well, as I know when I was learning just taking apart free models and stuff with scripts in them (Even though that can be dumb with nontrustworthy models) I had a good time, it made learning fun, but anyways enough ranting on from me, here’s the free model I made public for my friend that you or anybody reading this is welcome to use :smiley: https://create.roblox.com/store/asset/16756495590/ServerPlayerListBoard?externalSource=www

4 Likes

I’m quite new to scripting aswell - this is even my first DevForum reply!
A non-easy challenge i could suggest would be a teleporter that teleports people relative to where they are when first touching the part – see Doom’s silent teleporters for an example!
I recommend exploring CFrames, specifically these functions:

local WorldSpace = CFrame.new():ToWorldSpace()
local ObjectSpace = CFrame.new():ToObjectSpace()

(I’m not sure how new you are, and you really don’t have to push yourself to do this if you don’t want to. I’m also happy to write a script that does this, explanation comments included!)

3 Likes

Thanks for the response! I’ll definitely try this one. If you have time then i would love to see the script!

5 Likes

Hmm, Maybe you should create a Tool which is a ball, then script it so when you activate it you “throw” the Ball. I could give you an example if you want.

3 Likes

This could be cool! Would be very happy to see an example

4 Likes

Start a journey.

Create a path as you go. Each stop can have something fun to do, or whatever is on your mind at the time.

Then move along the path and think of something else.

After awhile you will have a collection of cool things you have learned that you can walk along and interact with. (You could even share it as an experience so people can watch you learn.)

You will also have a file you go back to and recall those scripts when you need them in the future.

5 Likes

Here’s what I came up with!

local model = workspace.Teleporter
local part1 = model:WaitForChild("Part1")
local part2 = model:WaitForChild("Part2")

--Here's a really useful chunk of knowledge: Debouncing!
--Right now, think of it as a toggle switch.
--If it's true, we won't teleport.
local debounce = false

part1.Touched:Connect(function(otherpart)
	local character: Model = otherpart.Parent

	--The colons specify what the variable is!
	--Putting a specification will make autofill assume the variable is the specification.
	--This allows to type faster. It's a good habit!

	--Part is the teleporter being touched
	--Otherpart is the part that touched the teleporter
	
	--If debounce is true, or the character isn't ours, then stop the function by using Return
	if debounce or game.Players:GetPlayerFromCharacter(character) ~= game.Players.LocalPlayer then
		return
	end
	
	--Set it so we can't teleport.
	debounce = true
	--Make a root variable, which will be the part we teleport! (HumanoidRootPart)
	local root: BasePart = character:WaitForChild('HumanoidRootPart')
	
	--Transform to object space
        --Think of the first part as being moved to the origin of the world (0,0,0)
        --The second part gets "moved" with the first part as if welded to it. (Not actually of course, this is still just an explanation)
	local objectspace = part1.CFrame:ToObjectSpace(root.CFrame)
	
	--You can ignore the camera stuff if you want, it's not mandatory, just makes teleportation give you less motion sickness
	local cameraRelative = root.CFrame:ToObjectSpace(workspace.CurrentCamera.CFrame)


	--Now transform back! (Think back to what i said about Object Space, but imagine the origin being moved instead.)
    --PivotTo is just a fancier way of setting the CFrame
	root:PivotTo(part2.CFrame:ToWorldSpace(objectspace))
	
	--Setting the camera position
	workspace.CurrentCamera.CFrame = root.CFrame:ToWorldSpace(cameraRelative)

	--Wait a set time then allow teleporting again!
	wait(0.1)
	debounce = false
end)

If you have any problems with my explanations, or don’t understand something, let me know!

3 Likes

a game that every 5 to 10 seconds 2 to 6 parts spawn around the map and the player have to collect them and when the player collects the player gets 1+ speed and 10+ cash/points, you can make the map green and the parts look like rocks so the player be collecting rocks. and you make a tools shop like a item that makes your hitbox bigger so you can collect them easier. and make it server sided so it be a challange for other players. make it do something like arrow pointing at the parts. :slightly_smiling_face::+1:

1 Like

not trying to diss on roblox or anything, but just wanted to say something: roblox is currently extremely watered down with crappy games, cash grabs, etc. extremely colorful games filled with spinners and (somehow) gambling-like machines. take a look at the front page. for me personally it is my favorite development platform, but in my opinion the game recommendation page right now is really screwed up because their main consumer is children most actual good games probably wont get out there. i’m not saying this won’t hopefully change. just thought i would give a fair warning if your thinking about this as a platform that you can get rich off of by making a good/creative game. it is probably kinda the sad reality of it. there’s been lots of posts on this topic, but if your just tryna have fun and learn more about coding, then yes, this platform is pretty great.

2 Likes

Unfortunately agree. I think with The Hunt, even though there was a lot of product placement, they did involve a few creative, original games. Maybe things are turning for the better.

3 Likes

Hey! I totally agree with you on this and i know Roblox isn’t really a platform i could make a living out of but i think it would be a good place to start learning coding. My aim is just to mainly to try doing commissions to earn a bit extra money and i don’t see myself working on any major projects on Roblox in the future. Once I’m bored of game development on Roblox I’ll probably just try to learn C++ or C#.

4 Likes