This tutorial offers a clear, logic-driven approach to server-side validation that is essential for maintaining game integrity in multiplayer environments. It effectively bridges the gap between basic scripting and functional systems architecture for aspiring developers.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
How to make Roblox Rivals in Roblox! [Part 5: 1v1 Teleport] (Roblox Studio Scripting Tutorial 2026)Added:
Yo, what's good with y'all? In today's video we have how to make rivals. I believe this is part five and stuff. I saw that rivals was was still is like pretty popular. I think it's the top five right now on Roblox stuff. So I just wanted to add a little part real quick where I'm going to show you guys how to do the little um you guys know how like you can match make by either clicking play and then clicking whatever mode you want to play.
Um then there's also the you know you go stand on a platform and then like someone else goes stand on that platform and then you can one v one against that person. That's what I'm going to show you guys how to make um for this part.
So yeah, um as I already said I got more and more videos coming out for you guys especially as we roll into the as we roll into the summer and everything. Let's go ahead and get straight into it. Okay, so first things first um let's go on ahead and let's make our teleporter. Okay.
So let's go ahead and um I guess we'll just do it like this. Okay. So I'm going to insert a part. I'm just going to insert a part and then select. Okay. So I'm just going to drag it. I think spawn is somewhere like where is spawn? Oh, spawn right there.
Okay. So I'm just going to drag this over here, right? We're just going to scale this out. So this is going to be um this is essentially going to be party one, right? Keep in mind all of this is one teleporter. This is just specifically for party one or player or the party or player one whatever you want to call it, right?
So I'll make it a color for their you know distinguishable. So I'll make this like yellow and then change it to be neon.
Right? Um of course important things make sure it's anchored.
Um and then we can just go ahead and name it party one. Right?
Now inside of this you want to have two things. First let's have a click detector so that when players click on it um they can then you know like that's how they're that's what they're saying I want to you know I guess be a part of this party like party one or party two, right? And then we're going to go ahead and insert a string variable into our string value into um the party part. Now this is going to be used to keep track of the specific player. So we're just going to rename this to be party name. So this is just this is just the name of the player, right? So by default set this to be none and stuff and then when a player clicks on it then it'll update to the username and then if they get off if they click cancel then we'll set it back to none, right? So then what we'll do is we'll go ahead and we will group this.
You can right click and then group group as model or just select it and control plus G on your keyboard. Then we can go ahead and name this to be teleporter one.
I feel like Okay, did I say you spell it? I don't know. I was like I'm looking at it I'm like I swore to I'm like I don't know if I spelled it right. But anyway, so then all we're going to do is we're just going to duplicate. So you can just click edit at the top here and then just duplicate or just control plus D.
Just did not mean to do that. And then you can just move it to the side. Let's put it right here. We'll change it to a different color. Make this purple.
Change this to be party two.
Right? And then everything is the same.
And then boom just like that we're done.
So then players will click on the teleporter and then you know we'll move them when they tap it.
If they cancel then you know they're removed. But yeah, let's go ahead and let's move on. We got to make a button real quick so that players can cancel.
So let's go on ahead and go let's open up core GUI. So the great thing is what we can honestly do is we can go right here where we have play play play text button. Control plus D to just duplicate. Literally just move it to the side.
And then just all you got to do change the background color to red.
Change the text or sorry the name to be cancel text button.
Change the text to cancel.
And then simply make it no longer visible.
Not visible. Okay, there we go. Then we will need a remote event. I don't believe I have one before. Um So you see replicated storage. We're going to hit the plus icon insert a remote event. You can just call this core event.
Right?
Then we're going to add one thing.
We're going to add one thing to the local script. So let's open up the local script. Go down to the very bottom. So down here after the whole user input service stuff.
Let's create a variable for our current party part, right? So by current party part what this means is either this one or that like these are the party parts, right?
So we're just going to set this to nil by default. So current party part is equal to nil. Right? Then we're going to say core event. Sorry, wrong thing. Core event on client event connect function and parentheses put event type just the name of the event and then arg1 which is short for argument number one which is just the piece of information sent from the server to the client. Then press enter. We'll use an if statement.
We'll say if event type is equal to in quotation marks enable cancel. Literally what this does is it just enables the cancel button. It just makes it visible so players can see it.
So um we will then we will create this variable. So party part will be equal to arg1.
Right? And then we'll say current party part is equal to party part, right?
Whatever was sent over. And then we'll make the button visible. So core GUI.cancel text button.visible is equal to true, right? Then one more function and we just need to set up the cancel functionality. So we'll say core GUI.cancel text button.activated connect function close parentheses press enter. Then you'll say core event fire server.
Right? In quotation marks you can put cancel.
Right?
And then comma we're going to put current party part, right?
And then after that we're just simply going to make it so the cancel button is no longer visible. So core GUI.cancel text button.visible is equal to false, right?
And then we're done with the local side of things. Let's move on to the server side. Okay.
So then let's open up the server script.
Then we can go ahead and go down. Um I think yeah this was after everything.
So or No.
Wait, no I feel like I'm forget No, I'm forgetting something cuz there was a part There was a part Yeah.
There's supposed to be a part where you enable Yeah, where you cancel. Yeah, this part. Okay. So right here there's supposed to be Yeah, so supposed to I'm not going to lie I forgot to take a picture of that. So I'm not going to lie I'm just kind of going to have to go off of memory. So we're going to go right here. So in between to like right before the last two ends you then you're just going to say um else if event type uh did we What did I call this? Just cancel was the name of the event? Oh yeah, just cancel.
Um So we're going to say cancel.
Enter um and then we're sending over the party part. So we'll say party part is equal to arg1.
Right? Then we'll say if party part is not equal to nil then um we can say party part, right? It would be this part specifically party part.
.party name.value be equal to nil.
And then we just move the player.
So we'll create a variable for their character.
So player. Or oh wait, is it already Did we already get that? Or no we didn't.
Okay.
So we're going to say player.character.
Now we're just going to move the character. Character pivot to um I don't know. We'll just to the the spawn I guess. It you can you can do anywhere. It really doesn't matter to be honest.
Um but yeah, so then after that we're going to go ahead and create three variables. First create a variable for our teleporter. So we'll say teleporter one is equal to workspace.WaitForChild teleporter one.
Then we'll create a variable for the HTTP service. So local HS is equal to game.GetService just like we did with the I don't know if you guys remember but this is exactly the same thing. We're literally just this is all for this Yeah, this part right here.
And then one more service we need the teleport service.
So local TPS is equal to game get service teleport service, right? Then let's go ahead and let's make the function. So we'll say for I comma V and I pairs you will say teleporter one get children. Enter.
Right? Then we create a variable for the specific party part. Party part is equal to V. Right? Then you'll say party part.click detector click detector.mouse click connect function and parentheses and parentheses put PLR which is short for the player who clicked. Enter.
Then we will simply say if party part.
party name.value is equal to nil cuz we obviously want to make sure no player is already like you know waiting in the on that specific part.
That if that's the case then we're going to go check everything real quick.
This is to make sure that like let's say you're on teleporter one that you're not or wait, I'm doing the wrong thing. If you're Wait, it checks to make sure that if you're Oh yeah, yeah, yeah. Like let's say like if you're already on teleporter one and you're trying to click the same teleporter. This is going to just prevent that essentially. And so so that you're not trying to you know like you're not trying to join something you're already a part of, you know?
So then we'll say if teleporter one.party one.party name.value again is equal to player.name enter then you'll say teleporter one.
party one.party name.value is equal to nil or sorry we'll set that to nil. And then you can just type the word else and then just copy and paste to save yourself some time. So select it.
Control C.
Copy just copy and paste and then just change this to be change this to be uh what you want to call it? Party two and then go down party two.
Right?
So then from there um we're done with that. Then we're just going to update the party name value. So we were going So, we're going to say party part.
party name.value is equal to the player's name, right? And from there, we'll create a variable for the player's character. So, it's equal to player.character, right?
Then, we are going to we'll move them on top of the players on top of the the party part. So, character pivot to then we'll say party part.CFrame. Now, I'm going to drop them a little bit above the party part specifically because sometimes when I would teleport it would like kind of like glitch and send me like I would glitch under the part and then it would like me I'd fall through the world essentially. Like I'd fall through the floor.
So, we're just going to make it a little bit above it. So, we'll say times CFrame.new -1, you could just do like two, -1. So, I'm just like it like two studs in the air higher than it. And then, core events fire client singular. Then, you will say player, this one works enable cancel, right?
And then, you're going to send over the party part.
Then, we will create variables for both players. This is to check to see like oh, if both players are already on like if there's a player waiting on party one part and party two part and stuff. So, we'll say player one is equal to game.players:FindFirstChild.
And then, you will say teleporter one.party one.party Oh, wrong thing. party name.value, right? And then, you could just copy and paste this. Control C, control V, and then just change a few things. two and two, right? And then, we're going to we're going to check to make sure that we found those players. So, we'll say if player say if player one and player two then means there are two players waiting. One is on the party one pad, the other one's on the party two pad.
And then, we can begin like getting all their um all equipped weapons and stuff to send them over to one v one. So, we can just actually copy and paste from this part right here. So, So, on the local script set the beginning, you can just copy this part right here. So, we'll just control C, we'll go here, we'll control V.
Then, from here, what you'll do is right before equip list, you can just do player one cuz we're going to have to do this for both players, obviously. So, then change this to be player one.
And then, this should be player one equip list, right? And then again, um Wait. Yeah, player one equip list, right? And then, keep this We're going to wait to do this part cuz we're going to teleport We want to teleport both at the same time. So, once you've finished that, you could just copy and paste this. Control C, control V, and then just literally do the same thing for player two. Player two equip list, change this to player two, player two equip list, and then player two equip list.
Then, you're just just going to copy and then and paste this. You guys remember, use your own ID. Remember, this is the place ID to your one v one place and stuff. I showed you guys how to find that place already in the previous video and stuff. So, this So, you're teleporting them to the the place where they're going to one v one. So, you can teleport player one along with player two.
And then, of course, we need we need to update sent data. So, this will be player one sent data. This will be player two sent data. So, player one sent data and then player two sent data, right? And yeah, so that right there. So, then if you click play, Okay, I'm not going to lie. I did not mean to do that. I was I just wanted to I just wanted to test solo, but I mean I mean, I guess that works, too. Cuz I was this I was testing it before I recorded the video, but I mean that works, too, I guess. Okay, so as you can see with our Damn, that is bright. Anyway, as you can see with our teleporters by default, as you can see, none. If I click purple, I think this Yeah, this one. It now shows my name. I can cancel and then it'll it'll do none. Then, if I as you can see if I'm clicking, nothing will happen cuz I'm already here. I can also switch in between if you want to. It'll update them accordingly. But yeah, as you can see, nothing is happening. This is the This is on the server side. So, nothing is happening. But then, if player two hopped on teleport, you should not There we go. That error message. Now, this error message is what should happen because you're not able to test teleports in studio and stuff. Um so, if you're getting this error message in studio, then that means it's working.
The teleport is trying to teleport them, but it can't and stuff like that. So, everything is working just fine. So, yeah. So, that's the end of part five.
Um if you guys want me to make more videos on Rivals or just, you know, any got any got any suggestions in general, let me know and everything. Thank you guys for all the love and support you guys show on the channel. Really do appreciate it. As always, if you guys want access to any one of my scripts or models, just simply read the description to find out how to get access to that thing. Thank you guys for watching, and I will see you guys in the next video.
Related Videos
Agentforce NOW AMA: Build with React and Salesforce Multi-Framework
SalesforceDevs
490 views•2026-05-28
How agent o11y differs from traditional o11y — Phil Hetzel, Braintrust
aiDotEngineer
450 views•2026-05-28
WEB TECHNOLOGIES UNIT-2 | Degree 4th sem BCOM Computers web technologies unit-2 full explanation💯✅
LearnwithSahera
1K views•2026-05-29
More tests are always better? How to use AI to identify tests that bring little value
Alliance4Qualification
335 views•2026-05-29
Search Algorithms Explained in 60 Seconds! 🤖💨
samarthtuliofficial
218 views•2026-06-01
People of Game of Thrones using JavaScript DOM
AltCampus
296 views•2026-05-30
Introduction to Problem Solving Part - 1 | Lecture 1 | Intermediate DSA
ascensionix
107 views•2026-05-29
🚀 BCS613C Compiler Design | Module 1 to 5 Schema Evaluation 🔥 | VTU 6th Sem 💯 #VTU #bcs613c #exam
Pranavaa-y4y
104 views•2026-06-02











