Chracters is not a valid member of ModuleScript

image
image

When I press the buttons, I get an error.

AttacksInputController:

local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TweenService = game:GetService("TweenService")

local Events = ReplicatedStorage:WaitForChild("Events")

local Character = script.Parent.Parent.Parent

local Player = Players.LocalPlayer

local PlayerGui = Player:WaitForChild("PlayerGui")
local MainGui = PlayerGui:WaitForChild("MainGui")
local Attacks = MainGui.Attacks
local AttackTemplate = script.AttackTemplate

local SharedModules = ReplicatedStorage:WaitForChild("SharedModules")
local Configurations = SharedModules.Configurations

local CharacterConfigurations = require(Configurations.CharacterConfigurations)

local EquippedCharacterName = nil


local module = {}

local function UseSpecialAttack(AttackNumber)
	if EquippedCharacterName == nil then
		return
	end
	local Result = Events.SpecialAttack:InvokeServer(AttackNumber)

	if Result == true then
		local AttackData = nil
		for _, v in CharacterConfigurations do
			if v.CharacterName == EquippedCharacterName then
				AttackData = v.Attacks[AttackNumber]
			end
		end
		local AttackTemplate = Attacks[tostring(AttackNumber)]
		AttackTemplate.DebounceFrame.Size = UDim2.fromScale(1, 1)
		TweenService:Create(AttackTemplate.DebounceFrame, TweenInfo.new(AttackData.AttackDebounce), {Size = UDim2.fromScale(1, 0)}):Play()
	end

end

local function InputBegan(Input, GameProcessedEvent)
	if GameProcessedEvent or EquippedCharacterName == nil then return end

	if Input.KeyCode == Enum.KeyCode.One then
		UseSpecialAttack(1)
	end
	if Input.KeyCode == Enum.KeyCode.Two then
		UseSpecialAttack(2)
	end
	if Input.KeyCode == Enum.KeyCode.Three then
		UseSpecialAttack(3)
	end
	if Input.KeyCode == Enum.KeyCode.Four then
		UseSpecialAttack(4)
	end
end

local function EquipCharacterClient(CharacterData)
	
	EquippedCharacterName = CharacterData.CharacterName
	for i, v in CharacterData.Attacks do
		local NewTemplate = AttackTemplate:Clone()
		NewTemplate.Name = tostring(i)
		NewTemplate.Number.Text = tostring(i)
		NewTemplate.AttackName.Text = v.AttackName
		NewTemplate.Visible = true
		NewTemplate.DebounceFrame.Size = UDim2.fromScale(1, 0)
		NewTemplate.Parent = Attacks

		NewTemplate.MouseButton1Click:Connect(function()
			UseSpecialAttack(i)
		end)
	end
end

function module.Init()
	UserInputService.InputBegan:Connect(InputBegan)
	Events.EquipCharacterClient.OnClientEvent:Connect(EquipCharacterClient)
end	
return module

CharacterHandler:

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")

local Events = ReplicatedStorage.Events

local SharedModules= ReplicatedStorage.SharedModules
local Configurations = SharedModules.Configurations

local AttackHitboxes
local CharacterConfigurations = require(Configurations.CharacterConfigurations)


local module = {}
local ClickAttackDebounces = {}

module.Modules = {}

function module.EquipCharacter(Player, CharacterName)
	local Values = Player:WaitForChild("Values")
	Values.Character.Value = CharacterName

	local CharacterData = nil

	for _, v in CharacterConfigurations do
		if v.CharacterName == CharacterName then
			CharacterData = v
			break
		end
	end

	Events.EquipCharacterClient:FireClient(Player, CharacterData)
	
end

local function PlayerAdded(Player)
	Player.CharacterAdded:Connect(function(Character)
		task.wait(1)
		module.EquipCharacter(Player, "Hunter")
	end)
end

local function SpecialAttack(Player, AttackNumber)
	local PlayerCharacter = Player.Values.Character.Value 
	local Result = require(script.Chracters[PlayerCharacter][tostring(AttackNumber)]).AttackFunction(Player)
	return Result
end

function module.Init()
	Players.PlayerAdded:Connect(PlayerAdded)

	for _, v in Players:GetPlayers() do
		task.spawn(function()
			PlayerAdded(v)
		end)
	end
	
	Events.SpecialAttack.OnServerInvoke = SpecialAttack
	
end
return module

as I understand it the script can’t access characters or I misunderstood
image

I think you made a typo in your code when you typed Characters. Output said ‘Chracters’.

Bruh, I don’t understand how I didn’t notice, thank you :sweat_smile:

It’s a common mistake. Have a good day!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.