Basically what I wrote in the question is what I need help on. I tried to add a cooldown in the module script then get it from the local script but I get this error
21:01:18.542 Players.Funnyskyswagway3.PlayerScripts.Keybinds:10: attempt to index nil with ‘Cooldown’ - Client - Keybinds:10
Local Script:
local GameFolder = game.ReplicatedStorage.GameFolder local Modules = GameFolder.Modules local PearlModule = require(Modules.PearlAbilities) local Debounce = true local UserInputService = game:GetService("UserInputService") UserInputService.InputBegan:Connect(function(hit, chat) if chat then return end local ActivateAbility = PearlModule[hit.KeyCode] local Cooldown = ActivateAbility.Cooldown if ActivateAbility and Debounce == true then Debounce = false ActivateAbility.Activate() wait(Cooldown) Debounce = true end end)
Module Script:
local TweenService = game:GetService("TweenService") local Player = game.Players.LocalPlayer local Character = Player.Character or Player.CharacterAdded:wait() local Abilitys = { [Enum.KeyCode.Q] = { Activate = function() local Gem = Player.Character:WaitForChild("Gem") if Gem.Light.Brightness == 0 then Gem.Material = Enum.Material.Neon TweenService:Create(Gem.Light,TweenInfo.new(1), {Brightness = 10} ):Play() else Gem.Material = Enum.Material.SmoothPlastic TweenService:Create(Gem.Light,TweenInfo.new(0.5), {Brightness = 0} ):Play() end end, } } return Abilitys
You reference cooldown with the table in the modulescript, but It doesnt have a cooldown.
The part that Im talking about is
Abilitys[Enum.KeyCode.Q]
Cooldown tries to find a cooldown inside of the table, even though it doesnt exist
Im just going to copy your code and add a cooldown so you can understand
local Abilitys = {} local keyQ = Abilitys[Enum.KeyCode.Q] keyQ.Activate = function() local Gem = Player.Character:WaitForChild("Gem") if Gem.Light.Brightness == 0 then Gem.Material = Enum.Material.Neon TweenService:Create(Gem.Light,TweenInfo.new(1), {Brightness = 10} ):Play() else Gem.Material = Enum.Material.SmoothPlastic TweenService:Create(Gem.Light,TweenInfo.new(0.5), {Brightness = 0} ):Play() end end keyQ.Cooldown = --whatever you want your cooldown to be
I recommend you write it in the way I do to make it easier to read
using .to create a function or [] is the same as what you did
You can just copy this into your modulescript, and it should work
Hope I helped!