Issue with referencing module

image
In red: The module I’m referencing
In blue: Changes I want to be temporary for this one instance. (heavy attack)

When I make these changes they call all the way back to the module itself, and different references (i.e. a light attack) it would use these values too and affect how that works. While making my game I want to keep the point of things being easily editable / accessible and clean so it’s easier for myself later on the road and the only solution I know to this is to just paste the module data into the script.

tl;dr I want to read and edit this data as it was its own while referencing the module as it would just be a table in the script

wait, so you are changing data in a script, but this data is coming from a module right?

idk if i got your point but:

Module_Animations[TypeOfClass]["Attack 1"][Sword_Name]:Play()

this line right here is used in my whole script, ( i use only one for everything )
this will play some specific animations depending on the situation, as you can see

–Type of class = Tank, Ranger, Mage, Fighter, etc

– This is a reference in the module, i actualy did something like this:

local Module = {
["Fighter"] = { -- Type of Class
		["Attack 1"] = {  -- Type of Animation

			["Normal Sword"] = AnimationHere,
			["Bronze Sword"] = AnimationHere,
			["Claymore"] = Animationhere,
			["Long Blade"] = AnimationHere,
			
		},
	},

}

return Module

Sword_Name is the name of the current sword that the player is holding, but

i have all plr individual values inside a table, when they pick up a sword, it will insert [StringValue]
Sword for example

this small data will be used for many other things, really usefull, and anti-exploitable if well used
only server-sided

this was just some example, you can adjust to anything else as you noticed

i don’t really know what your script is doing, so i can’t give some properly example
i see that you are calling the module but, i still don’t know why you are using repeat

Repeating is for the hitbox running,
but when I change Table.TagProps.blockable = false, it changes the module ITSELF to have that value, which I don’t want

if you don’t want to edit your module every single time just make everything predefined in your module, but there is some details

idk how player data is made in your game, but, this small example:
(uses [Values] stored inside the player.Localplayer )


local PlayerStats = {
["Blocking"] = false,
["Parrying"] = false

}
local Blocking = Instance.new("BoolValue", player)
Block.Name = "Blocking"

local Parrying = Instance.new("BoolValue", player)
Parrying.Name = "Parrying"

--some devs may say storing values is bad since blah blah blah,
--but who really cares, when it comes to gameplay 
--nothing matters but the moment itself, this is for learning purposes, 

--(and yes, you could just create variable references and
 --stuff inside a table to reference everything without using any values)

using GetPropertyChangedSignal ( server-side and local client scripts)
it will check when Blocking and parrying is TRUE or False

example:

local plr = game.Players.LocalPlayer
plr.Level:GetPropertyChangedSignal("Value"):Connect(function()

--stuff here if the value somehow changed
end)

this can help in multiple ways, and with this you can edit your module

–Inside your module you can some stuff like:

local Module = {

["Blocking"] = {

--References here, only if the player is blocking

},

["Parrying"] = {

--References here, only if the player is Parrying

},

}

return Module

if you noticed, you never will edit anymore values in scripts( that are coming from your modules)
and you will
run anything directly, according to player status, block or parry

you can use this to check player actual damage
check her/his weapon
check weapon knockback
range
and even more,

you don’t need to edit your module, just create predefined values for each player when they join, inside a table or whatever
and then each time that value change, it will change dramatically everything,
since any action will be different (from modules)
as i said above

i dont intend to edit the module, i just want to change a thing on a copy of the module, and that small change to not stay

well, why you are getting a copy of an module?
and why you want to change data temporary inside a copy of that module?

i really don’t get this idea lol

i dont want to edit the module
i just want to edit the refrenced one inside of the script itself

when im doing it the thing im doing now the module itself gets edited and then other things using it will be affected in a way I dont want

a
i think i understand

but why you are editing values inside a [copied] module?
(sorry for asking) because creating values inside a table for the player
would be more useful than copying the module, editing, only to modify
something for a short time or (you will use that module’s copy forever)

bcz its supposed to be an altered version of a weaker attack, and if i were to edit the weaker attack it would change appropriately