How i make a interact system like this?

Well, I was looking for this for a while, but I never managed to find it, so I think asking here is the best solution.

What I want to do?

I wanted to make such an interaction system, but I don’t know how to start or do it. :upside_down_face:

Demonstration Video: SCP-3008

Thank you for the supporting, Vitor.

It’s not really difficult but here is how it’ll go:
First of course you need to have simple knowledge of ``UserInputService to detect the key being clicked for pickup.

You can just make the model picked up entirely transparent (0.5) and loop its position to the player’s LookVector or use Raycast/Camera, probably there are other choices

It is extremely recommended to mostly use CFrame for everything: rotation, position.etc

It would all come up to the simple concept of:
UserInputService ---> CFrames
On client input ---> Manipulate the model

For green glowing just use the instance SelectionBox and make it interact by using .Touched event to detect if part is actually hitting something

Yeah that should do it, believe this was clear on how you can make it function, hope this helped.

1 Like

i will try that, if i have some problem i will reply

anyway, thank you, maybe this will work

Alright let me get something clear before I finish off, I messed up saying .Touched it’s completely unreliable and will bug out a lot, I suggest Region3 or Raycasting

1 Like

Well, how i detect the object? With mouse.target.name?
if not, what method you recomend?

I suggest putting a value inside the part and if you can find the value with :FindFirstChild(“”) on mouse.target.Parent then you let the player go into build mode.

1 Like

like this?

    --// Client Sided

    local UserInputService = game:GetService("UserInputService")

    local Player = game.Players.LocalPlayer

    local Mouse = Player:GetMouse()

    local Camera = workspace.CurrentCamera

    local WalkKey = "E"

    --// Script

    game:GetService("UserInputService").InputBegan:Connect(function(inputObject, gameProcessedEvent)

    if inputObject.KeyCode == Enum.KeyCode[WalkKey] then

    if Mouse.Target.Parent:FindFirstChild("Grab") then

    -- Code

        end
    end
 end)

Yes, that could work, after which you send a message to the server to make the part which you want to make other people not able to move the part.

1 Like

@vitorhinode1234

You can detect player clicking buy using player:GetMouse() and check if the object name matches. Then use RenderStepped to update the position of the Object to the mouse’s position.

1 Like

I would recommend checking this out. It should have you covered :+1:
Creating A Furniture Placement System - Resources / Community Tutorials - Roblox Developer Forum

1 Like

Yes, it covered me. but this is not exactly what I wanted, even so, I will try to make some changes.

1 Like

also, i already resolve that problem.

i used:

  • Proximity Prompt
    and
  • BodyGyro & BodyForce

Thanks for all who tried to help me.