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

Help getting a customizable morph GUI to work? Buttons are unresponsive

Asked by 7 years ago
Edited 7 years ago

I would first off like to say I am relatively new with scripting and GUIs in general, but I have been slowly improving and learning to understand things via lots of trial and error.

I'm trying to work on a warrior cat map, I have the morphs and was provided the morph/customization GUI to work with via a link. I've inserted the GUI into the StarterGui folder, and I'm at a bit of a predicament.

Upon inserting the Gui into the folder, the initial screen comes up just fine. The buttons highlight when you mouse over them, but they do not work.

Additionally, I was under the impression there was buttons on the side to reopen the GUI when you close it, but those won't appear either. It seems once you press the x in the corner, you're pretty much sunk even if it was working.

Script for closing the GUI, named Open/CloseScript

function onClicked()
script.Parent.Parent:remove()
end

script.Parent.MouseButton1Click:connect(onClicked)

I'll be posting lots of links just to be sure I've covered all my bases as far as information needed by answerers.

Link to the GUI in question. You can see in the comments I'm not the only one having issues.

https://www.roblox.com/library/86336731/Warrior-cat-morph-gui-free-use

Link to the morphs I am using (which I know were made to be compatible with this GUI. The morphs do have some viruses but I went through and removed them before using them). This GUI is supposed to, as far as I'm aware, allow the morph to be painted on a menu. The morphs/GUI are also supposed to come with claw and sleep tools but that's not important to what I need.

https://www.roblox.com/library/99452345/Mandaka-Models-c

Screencap of the GUI on my game. This is as far as it will go.

https://gyazo.com/c211827e84feba1c11e5dc19871cd259

Looks like this in the explorer (I chose the apprentice as a sample but this GUI is for multiple models) https://gyazo.com/1e406fb8755f6338f739ce5a60061945

Below is the script labelled Script

function onButtonClicked()
    q=script.Parent.Parent.Parent.Parent.Parent.Character
b = script.Parent.Parent.Parent.Parent.Parent
gun = game.Lighting.Sleep:clone()
gun2 = game.Lighting.BluesteelClaws:clone()
if b.Backpack:findFirstChild(gun.Name) ~= nil then return end
gun.Parent = b.Backpack
gun2.Parent = b.Backpack
    q.Head.Transparency = 1
    q.Torso.Transparency = 1
    q.Head.face.Transparency=1
    ll=q:FindFirstChild("Left Arm")
    la=q:FindFirstChild("Right Arm")
    rl=q:FindFirstChild("Left Leg")
    ra=q:FindFirstChild("Right Leg")
    ll.Transparency = 1
    la.Transparency = 1
    rl.Transparency = 1
    ra.Transparency = 1

script.Parent.Parent.Visible = false
script.Parent.Parent.Parent.Warrior.Visible = false
script.Parent.Parent.Parent.Kit.Visible = false

script.Parent.Parent.Parent.WarrEyeSpot.Visible = true
script.Parent.Parent.Parent.NoWarrEyeSpot.Visible = true
end 

script.Parent.MouseButton1Click:connect(onButtonClicked)

Below is the script labelled SuitMorph

local Suit = game.Lighting:findFirstChild(script.Parent.Suit.Value)
local Me = script.Parent.Parent.Parent.Parent.Parent.Character

function Click(mouse)
    script.Parent.Visible = true
    if Me:findFirstChild("Humanoid") ~= nil and Me:findFirstChild("Arm1") == nil then
        local g = Suit.Arm1:clone()
        g.Parent = Me
        local C = g:GetChildren()
        for i=1, #C do
            if C[i].className == "Part" then
                local W = Instance.new("Weld")
                W.Part0 = g.Middle
                W.Part1 = C[i]
                local CJ = CFrame.new(g.Middle.Position)
                local C0 = g.Middle.CFrame:inverse()*CJ
                local C1 = C[i].CFrame:inverse()*CJ
                W.C0 = C0
                W.C1 = C1
                W.Parent = g.Middle
            end
                local Y = Instance.new("Weld")
                Y.Part0 = Me["Left Arm"]
                Y.Part1 = g.Middle
                Y.C0 = CFrame.new(0, 0, 0)
                Y.Parent = Y.Part0
        end

        local h = g:GetChildren()
        for i = 1, # h do
            h[i].Anchored = false
            h[i].CanCollide = false
        end

    end

    if Me:findFirstChild("Humanoid") ~= nil and Me:findFirstChild("Arm2") == nil then
        local g = Suit.Arm2:clone()
        g.Parent = Me
        local C = g:GetChildren()
        for i=1, #C do
            if C[i].className == "Part" then
                local W = Instance.new("Weld")
                W.Part0 = g.Middle
                W.Part1 = C[i]
                local CJ = CFrame.new(g.Middle.Position)
                local C0 = g.Middle.CFrame:inverse()*CJ
                local C1 = C[i].CFrame:inverse()*CJ
                W.C0 = C0
                W.C1 = C1
                W.Parent = g.Middle
            end
                local Y = Instance.new("Weld")
                Y.Part0 = Me["Right Arm"]
                Y.Part1 = g.Middle
                Y.C0 = CFrame.new(0, 0, 0)
                Y.Parent = Y.Part0
        end

        local h = g:GetChildren()
        for i = 1, # h do
            h[i].Anchored = false
            h[i].CanCollide = false
        end

    end

    if Me:findFirstChild("Humanoid") ~= nil and Me:findFirstChild("Leg1") == nil then
        local g = Suit.Leg1:clone()
        g.Parent = Me
        local C = g:GetChildren()
        for i=1, #C do
            if C[i].className == "Part" then
                local W = Instance.new("Weld")
                W.Part0 = g.Middle
                W.Part1 = C[i]
                local CJ = CFrame.new(g.Middle.Position)
                local C0 = g.Middle.CFrame:inverse()*CJ
                local C1 = C[i].CFrame:inverse()*CJ
                W.C0 = C0
                W.C1 = C1
                W.Parent = g.Middle
            end
                local Y = Instance.new("Weld")
                Y.Part0 = Me["Left Leg"]
                Y.Part1 = g.Middle
                Y.C0 = CFrame.new(0, 0, 0)
                Y.Parent = Y.Part0
        end

        local h = g:GetChildren()
        for i = 1, # h do
            h[i].Anchored = false
            h[i].CanCollide = false
        end

    end

    if Me:findFirstChild("Humanoid") ~= nil and Me:findFirstChild("Leg2") == nil then
        local g = Suit.Leg2:clone()
        g.Parent = Me
        local C = g:GetChildren()
        for i=1, #C do
            if C[i].className == "Part" then
                local W = Instance.new("Weld")
                W.Part0 = g.Middle
                W.Part1 = C[i]
                local CJ = CFrame.new(g.Middle.Position)
                local C0 = g.Middle.CFrame:inverse()*CJ
                local C1 = C[i].CFrame:inverse()*CJ
                W.C0 = C0
                W.C1 = C1
                W.Parent = g.Middle
            end
                local Y = Instance.new("Weld")
                Y.Part0 = Me["Right Leg"]
                Y.Part1 = g.Middle
                Y.C0 = CFrame.new(0, 0, 0)
                Y.Parent = Y.Part0
        end

        local h = g:GetChildren()
        for i = 1, # h do
            h[i].Anchored = false
            h[i].CanCollide = false
        end

    end
    if Me:findFirstChild("Humanoid") ~= nil and Me:findFirstChild("Chest") == nil then
        local g = Suit.Chest:clone()
        g.Parent = Me
        local C = g:GetChildren()
                local R = Me:GetChildren()
        for i=1, #R do
            if R[i].className == "Hat" then
                R[i]:remove()
            end
        end
        for i=1, #C do
            if C[i].className == "Part" then
                local W = Instance.new("Weld")
                W.Part0 = g.Middle
                W.Part1 = C[i]
                local CJ = CFrame.new(g.Middle.Position)
                local C0 = g.Middle.CFrame:inverse()*CJ
                local C1 = C[i].CFrame:inverse()*CJ
                W.C0 = C0
                W.C1 = C1
                W.Parent = g.Middle
            end
                local Y = Instance.new("Weld")
                Y.Part0 = Me.Torso
                Y.Part1 = g.Middle
                Y.C0 = CFrame.new(0, 0, 0)
                Y.Parent = Y.Part0
        end

        local h = g:GetChildren()
        for i = 1, # h do
            h[i].Anchored = false
            h[i].CanCollide = false
        end

    end
end

script.Parent.MouseButton1Down:connect(Click)

This turned out to be very long... Terribly sorry. Could I get some help? The morph models themselves are in the workspace, so I assume I need to move those first?

1 answer

Log in to vote
0
Answered by 7 years ago
Edited 7 years ago

EDIT: For the script labeled Script, you wrote:

q=script.Parent.Parent.Parent.Parent.Parent.Character

The issue may be the not having a space after the q and after the =. Also reading more of the script labeled Script, I see more lines of code with no spaces before and after the =. Maybe fixing that will help.

For the script called Script, you want the bottom when connecting to say:

script.Parent.MouseButton1Down:connect(onButtonClicked)

Please let me know if this does not fix it.

0
Unfortunately nothing changed :( but I appreciate you answering my question! Would you like to see the script for opeing/closing the GUI? I realized I didn't post it. Might be useful shakinit4jezuz 0 — 7y
0
Yes please. And I am very sorry it did not work. I did also find an issue with the script. vinniehat54 18 — 7y
Ad

Answer this question