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

Script from StarterCharacterScripts requiring ModuleScript from Workspace not working?

Asked by 5 years ago

I have a ragdoll script and basically before it ragdolls I want it to play a screaming noise. I have the screaming noise script done and it's in a ModuleScript located in workspace, as the ragdoll script is located in StarterCharacterScripts. Here are my scripts.

ModuleScript in Workspace:

local module = {}

function module.scream()
    local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(Player)
    wait()
    Player.CharacterAdded:Connect(function(Character)

        local Sound1 = Instance.new('Sound')
        Sound1.Name = "Scream1"
        Sound1.SoundId = "rbxassetid://337804578"

        local Sound2 = Instance.new('Sound')
        Sound2.Name = "Scream2"
        Sound2.SoundId = "rbxassetid://337804646"

        Sound1.Parent = Character:WaitForChild("Head")
        Sound2.Parent = Character:WaitForChild("Head")

        local screams = math.random(1,2)
        if screams == 1 then
            Character.Head.Scream1:Play()
end
        if screams == 2 then
            Character.Head.Scream2:Play()
end
end)
end)
end

return module

Ragdoll script in StarterCharacterScripts:

repeat wait() until script.Parent:IsA("Model")
local char = script.Parent
local R6 = require(script.R6)
local R15 = require(script.R15)
local plr = game:GetService("Players"):GetPlayerFromCharacter(char)
local hum = char:WaitForChild("Humanoid")
local autoLoads = game:GetService("Players").CharacterAutoLoads
local modulescript = require(game.Workspace.ModuleScript)

local function setNetworkOwner()
    for i, bp in pairs(char:GetChildren()) do
        if bp:IsA("BasePart") and bp:CanSetNetworkOwnership() then
            bp:SetNetworkOwner(plr)
        end
    end
end

hum.Died:Connect(function()
    if hum.RigType == Enum.HumanoidRigType.R6 then
        R6(char)
        setNetworkOwner()
        if autoLoads then
            delay(3, function()
                plr:LoadCharacter()
            end)
        end
    else
        R15(char)
        modulescript.scream(char)
        setNetworkOwner()
        if autoLoads then
            delay(3, function()
                plr:LoadCharacter()
            end)
        end
    end
end)

For some reason, it ragdolls but it doesn't require/call the ModuleScript, or it just doesn't work. Can anyone help me out?

Answer this question