How would I make a player vacuum?

You can write your topic however you want, but you need to answer these questions:

  1. I am trying to make a player vacuum.

  2. What is the issue?
    I don’t know how I will achieve this goal.

  3. What solutions have you tried so far? Did you look for solutions on the Developer Hub?
    I have tried searching up tutorials and on the deform but nothing will show up.

How can I make a player vacuum?
What I mean by a player vacuum is basically well, a vacuum that sucks up players.
Where I got the idea from: PLAYER VACUUM - Roblox

It’s kind of hard to help you since I have no idea what you’re on about. I can’t exactly test out a gamepass. Could you try and explain into more depths rather than just saying a vacuum that sucks up players?

Yea, sure. Basically when the player clicks on the vacuum and is aimed at a player then the player gets teleported into the back clear area (I forget what it’s called) and they get frozen and are not able to walk.

I hope that explains more. (The vacuum was a reference for what it looks like)

Try using a RocketPropulsion | Roblox Creator Documentation! These pull their parent (provided it’s a BasePart) towards a seperate BasePart. Not only do you not have to constantly set the position (Like with BodyPosition), but it has events for when the object reaches the target (For more info on that, read the API page)! For example, if you wanted to get every player in the game to be sucked in, you would try:

local Players = game:GetService("Players")
local Target = workspace.Target -- Set this to whatever your target is

for i,v in pairs(Players:GetPlayers()) do
    local RP = Instance.new("RocketPropulsion")
    RP.MaxThrust = 100000 -- I've found 100000 to be a good number, but do whatever you think is good
    RP.Target = Target
    RP.Parent = v.Character:FindFirstChild("HumanoidRootPart")
    RP:Fire() -- Unlike most movers, you must call :Fire() on it for it to move.
    -- You can also do :Abort() on the RocketPropulsion to stop it.
end

You’ll have to code your own logic for detecting when the player is in front of the vacuum, but this should be simple enough.

Thanks a lot for that, but how would I use a player freeze script.
(Sorry I am just a beginner scripter)

Do you mean you want them to be unable to control their character?

Yep. By freeze I mean they cannot move or do anything.

I’d use BodyPosition and just asign the Position property to the vacuum’s position, that’ll basically suck the player to the vacuum. I don’t think it’ll look as cool, but its a solution. Hope you find your anwer!

Perfect, the Humanoid | Roblox Creator Documentation property is perfect for this! When PlatformStand is true, the character will not be able to move. We can apply this to our earlier code like so:

local Players = game:GetService("Players")
local Target = workspace.Target -- Set this to whatever your target is

for i,v in pairs(Players:GetPlayers()) do
    local hum = v.Character:FindFirstChildOfClass("Humanoid")
    if hum then
        hum.PlatformStand = true
    end
    local RP = Instance.new("RocketPropulsion")
    RP.MaxThrust = 100000 -- I've found 100,000 to be a good number, but do whatever you think is good
    RP.Target = Target
    RP.Parent = v.Character:FindFirstChild("HumanoidRootPart")
    RP:Fire() -- Unlike most movers, you must call :Fire() on it for it to move.
    -- You can also do :Abort() on the RocketPropulsion to stop it.
end

This will both make the character be completely immobilized, and be sucked towards the target part.

1 Like

Uh well… when I put this script into my tool it made ME freeze.

Just to clarify:

I’m trying to make it when you click on a player it teleports the player into a part of the tool and freezes them so they cannot move

Here is an example of it being used.
You can to skip forward a bit into the video (not to far)
This is NOT my channel

well your not gonna get a free script, they provided an explanation how to do it to the players in the server, and how rocket propulsion works

1 Like