Trying to make a gui that saves other players data

im trying to make a gui that saves a players data

it only saves my data though
image
it doesnt save any other players data though

local script

local btn = script.Parent
local plr = game.Players.LocalPlayer
script.Parent.MouseButton1Click:Connect(function()
	game.ReplicatedStorage.Reset:FireServer(script.Parent.Parent.Text)
	print("Fired")
end)

server script

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

local DataStore = require(script.MainModule)


local function UpdateLevel(itemName, plr)
	DataStore("Level",plr):Set(itemName)
	print("Saved")
end

local function UpdateMagic(itemName, plr)
	-- This is essentially just getting the data from the player to use for later
	DataStore("Magic",plr):Set(itemName)
	print("Saved")
end

game.Players.PlayerAdded:Connect(function(plr)

	local LvSt = DataStore("Level", plr)

	local MSt = DataStore("Magic", plr)

	local folder = Instance.new("Folder", plr)
	folder.Name = "leaderstats"
	local coinval = Instance.new("NumberValue", folder)
	coinval.Name = "Level"
	coinval.Value = LvSt:Get()
	local mg = Instance.new("StringValue", folder)
	mg.Name = "Magic"
	mg.Value = "None"
	if MSt:Get() ~= nil then 	mg.Value = MSt:Get() end
	
end)

game.ReplicatedStorage.Reset.OnServerEvent:Connect(function(e,plr)
	local LvSt = DataStore("Level", e)
	local MSt = DataStore("Magic", e)
	local Lv = e.leaderstats.Level
	local M = e.leaderstats.Magic
	Lv.Value = 0
	M.Value = "None"
	UpdateLevel(Lv.Value, e)

	UpdateMagic(M.Value, e)
end)
game.ReplicatedStorage.LvSave.OnServerEvent:Connect(function(e,plr, val)
	local LvSt = DataStore("Level", e)
	local Lv = e.leaderstats.Level
	Lv.Value  = val
	UpdateLevel(Lv.Value, e)
end)

game.ReplicatedStorage.MSave.OnServerEvent:Connect(function(plr,e, val)
	local MSt = DataStore("Magic", e)
	local Lv = e.leaderstats.Magic
	Lv.Value  = val
	UpdateMagic(Lv.Value, e)
end)

this is what i have, what do i do to fix this?

When a Remote event is fired it sends the name of the Player who fired the event as the first parameter. Therefore, in this line:

game.ReplicatedStorage.Reset:FireServer(script.Parent.Parent.Text)

that parameter will actually be the second parameter received by the server.