Greetings fellow scripters, I'm here today wondering how I can make a building tool like stamper build, but to place blocks in FE. My goal is to recreate build to survive zombies, with old roblox materials as textures. Why I want to make this game is because it was a really good game back in the time. Anyways, here is my script. It can't use the Z; most likely because I haven't explored a certain thing required for me for this script.
script.Parent.Activated:Connect(function() local mouse = game.Players.LocalPlayer:GetMouse() local X = mouse.X local Y = mouse.Y local Z = mouse.Z print(X,Y) game.ReplicatedStorage.BuildObject:InvokeServer(X,Y) end)
game.ReplicatedStorage.BuildObject.OnServerInvoke = function(X,Y) local block = Instance.new("Part",workspace) block.Size = Vector3.new(4,4,4) block.BrickColor = BrickColor.new("Brown") local t1 = Instance.new("Texture",block) local t2 = Instance.new("Texture",block) local t3 = Instance.new("Texture",block) local t4 = Instance.new("Texture",block) local t5 = Instance.new("Texture",block) local t6 = Instance.new("Texture",block) t1.Texture = "rbxassetid://155806200" t2.Texture = "rbxassetid://155806200" t3.Texture = "rbxassetid://155806200" t4.Texture = "rbxassetid://155806200" t5.Texture = "rbxassetid://155806200" t6.Texture = "rbxassetid://155806200" t1.Face = "Front" t2.Face = "Back" t3.Face = "Bottom" t4.Face = "Top" t5.Face = "Left" t6.Face = "Right" block.Position = Vector3.new(X,Y,0) end
I'm quite sorry for the messy code above.
One reason it might be is because you are using
Mouse.Z. To fix the problem with the Z, is to change each of them to
Mouse.Hit.p.Z. Or otherwise, you can just erase X, Y, and Z and use
Mouse.Hit.p for the whole set of 3 arguments, since
Mouse.Hit.p returns a Vector3 Value.
So now, for the whole Drag'n'Drop the pieces system, you can create a new variable, called Target. Then you can create code to set the Target to
mouse.Target when the mouse presses down on an object, and then sets Target to
nil when releasing. Simply using
mouse.Target doesn't work, since eventually the player might move their mouse too fast, and end up dropping the piece. Using a variable, will make the piece the same one the player starts dragging, and
Target will stay until the player lets go of their mouse, so from a LocalScript, you could try this:
local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local target = nil
if mouse.Target then
if mouse.Target.Locked == false and mouse.Target.Anchored == false then
target = Mouse.Target
if target then
target = nil
while true do
target.Position = Mouse.Hit.p