Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How can I make a brick that when clicked-moves model from Lighting, into workspace and vice/versa?

Asked by 8 years ago

E.g If I have a model in the games Lighting called "cheese", Player clicks the button--->"cheese" gets moved from the Lighting to, lets say... (1,1,2) on the map. Then if player clicks another button--->"cheese" gets moved from workspace, back into the lighting.

For the benefit of possible script wizards who may answer this who haven't answered previous question(s) of mine: I'm not very experienced at all in making scripts from scratch on ROBLOX, I only know some of the basic terminology (but even then, I don't know which terminology are really deemed as "basic" so you can see my struggle here.)

I've tried various methods to create this but they've mostly resulted in the model that I want moving being deleted entirely (le cri.)

Help would be very much appreciated and I'll be sure to credit you properly if you can help me find a working solution. :)

2 answers

Log in to vote
0
Answered by
Scriptree 125
8 years ago

This should work, I used serverstorage instead of lighting, it's better to use serverstorage now. Put this script under the brick you want to be clicked to change the parent of the map.

local serverstorage = game:GetService("ServerStorage") -- serverstorage is the service to store whatever you want in, Lighting was used before ServerStorage was made

local model = serverstorage:WaitForChild("cheese") -- replace "cheese" with the name of the model under serverstorage
local brick = script.Parent -- variable for the parent of the script, which is what the clickdetector is going to be under
local detector = Instance.new("ClickDetector", brick) -- creating a clickdetector, which is used to be able to click a specific part, and parenting it to the script's parent.

local isinwork = false -- creating debounce for later usage

--[[You have to already have the model positioned as you want it to be shown as, in serverstorage, when it's parented to workspace it will be shown in the position you had it at when u stored the model in serverstorage]]--

function moveModel() -- function that will be called when someone clicks the part
    if not isinwork then  -- checking if the debounce is false, if it is then it will parent it to workspace
        model.Parent = game.Workspace
        isinwork = true -- here it is setting the debounce to true so when it's clicked again it is parented to serverstorage
    else -- if the debounce is true then it will parent it to serverstorage
        model.Parent = serverstorage
        isinwork = false -- here it is setting the debounce to false so when it's clicked again it is parented to workspace
    end
end

detector.MouseClick:connect(moveModel) -- calling the function when the brick has been clicked

Hope that helped!

Ad
Log in to vote
1
Answered by 8 years ago

First of all Use Replicated storage, so with that said here's the code, Put it inside a gui text button, or image button. Here's the code:

function onButtonClicked()
local Model = game.ReplicatedStorage.ClassicSword:Clone() -- replace classicsword with your item to clone
Model.Parent = workspace
Model.Position = (Vector3.new(-104, 0.5, -3)) --change to positoon you want
end
script.Parent.MouseButton1Down:connect(onButtonClicked)

0
Nice explanation :D! iNicklas 215 — 8y
0
Please accept as answer if it helped viralmoose 65 — 8y
0
This worked as well man, cheers again, both this and Scriptree's answers work but I can noly mark one as the answer, you're on a roll man User#9115 0 — 8y

Answer this question