Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Sending part info over Remote Function?

I'm trying to essentially clone a part from a local script, and put it into the game. After reading this, https://devforum.roblox.com/t/sending-a-cloned-object-to-the-server-through-a-remote-event/347281/4

I learned it would probably be easier for me to just make a different part with essentially the same properties.

I've tried a .OnServerInvoke on a remote function, and a .OnServerEvent with a remote event. I don't think I'm transferring the info right? I've followed a few tutorials and looked at some blog posts and thought I'm doing it right but I guess not?

Local Script

						local partsize = newpart.Size
						local partposition = newpart.Position
						local partcolor = newpart.Color
						local partmaterial = newpart.Material
						local partshape = newpart.Shape
						game.ReplicatedStorage.brickplace:FireServer(partsize, partposition, partcolor, partmaterial, partshape)
						newpart:destroy()

Server Script


game.ReplicatedStorage.brickplace.OnServerEvent:Connect(function(player, partsize, partposition, partcolor, partmaterial, partshape)
		local part = Instance.new("Part")
	part.Transparency = 0
	part.Parent = game.Workspace
	part.Position = Vector3.new(partposition)
	part.Size = Vector3.new(partsize)
	part.Color = Color3.new(partcolor)
end)

I'm not getting any errors, but the part being made is becoming essentially blank for all things. So the color is 0,0,0 (black) the size is is like 0.05,0.05,0.05, position is 0,0,0 etc

What exactly did I do wrong?

1 comment

0

I would recommend looking over this https://devforum.roblox.com/t/how-to-save-parts-and-the-idea-of-serialization/524311 as it might help you because you can serialize the data and send it the the remove event.

2 answers

✓ Accepted answer

In the lines 5-7 in the server script, you're trying to set Vector3/Color3 using values that are already Vector3/Color3 values. What the script is doing is the equivalent of this:

part.Position = Vector3.new(Vector3.new(0,0,0))

The solution would be to remove Vector3.new/Color3.new when assigning the part's properties.

Server Script

game.ReplicatedStorage.brickplace.OnServerEvent:Connect(function(player, partsize, partposition, partcolor, partmaterial, partshape)
	local part = Instance.new("Part")
	part.Transparency = 0
	part.Parent = game.Workspace
	part.Position = partposition
	part.Size = partsize
	part.Color = partcolor
end)

I'd also recommend sending a table of values instead of multiple values at once

1 comment

0

Thank you!

Try removing the ".new" when setting a value. (e.g part.Size = partsize)

1 comment

0

PFT im an idiot

This discussion is preserved as it was. New answers, comments, and votes are closed.