hello there yet again! I’m not sure if you does remember me in this category of the devforum, but I’m asking you guys for help with armor system made by Techno Studio (I’m so sorry @MikeartsRBLX I’m literally garbage at actually making scripts by myself so I can’t basically make armor system alone )
the video uploaded by Techno Studio is this video right here.
but there is some problems, the original author of that uncopylocked game I used for make armor system haesn’t finished their game for some reasons despite he used finished and functioning game when he was showcasing for his video, and the worse problem is that techno studio’s discord server (which I had to take small efforts to get into there since his other invites other then one invite he left in one of his comment) got raided in like August 25 (estimated) and I think the raider did removed majority of channels in the raiding process of Techno Studio’s discord server so that discord server was left rotten for like months…
so basically I want you to help me find the problems in this Roblox Place File game, I’ll show you some of them known problems I found in progress. (and I edited some of the lines while I was figuring the game script alone)
-
the Textbutton that is used for click[C key] and click another button[E key] inside after clicking previous one and obtaining item is not working, current reason why the C key button isn’t bringing E key button and F key button is unknown for right now.
-
at some point when player clicked play button in test section and game is ran, the output tab shows error text that redirects the player into Line 12 of the script called “Event” that is inside ServerScriptService, I does not know what makes this issue happen, but I’m wishing you that you could reupload that roblox place file game and enable http requests and test the game for fix it…
--scripts of the "Event" script inside ServerScriptService:
local function RespawnCharacter(plr)
local character = game.Workspace[plr.Name]
local humanoid = character:WaitForChild("Humanoid")
local AbilityModule = require(game.ReplicatedStorage.Armors.Abilities)
for i,v in pairs(game.ServerStorage.Inventory[plr.Name].Ability:GetChildren()) do
if AbilityModule[v.Name].HumanoidActive == true then
humanoid[AbilityModule[v.Name].HumanoidName] += v.Value
end
end
for i,v in pairs(game.ServerStorage.Inventory[plr.Name].Armor:GetChildren()) do
if v.CurrentArmor.Value ~= "" then
if game.ServerStorage.Inventory[plr.Name].Armors[v.CurrentArmor.Value].RigValue.Value == "R15" then
local Part = game.ReplicatedStorage.Armors[v.CurrentArmor.Value]["R15"][v.Name]:Clone()
if Part.Name ~= "Helmet" then
Part.Parent = game.Workspace[plr.Name]
for i,v in pairs(Part:GetChildren()) do
local weld= Instance.new("Weld")
if v:IsA("BasePart") or v:IsA("UnionOperation") or v:IsA("Part") or v:IsA("MeshPart") then
local characterPart = character:FindFirstChild(v.Name)
weld.Part0 = characterPart
weld.Part1 = Part[v.Name]
weld.Parent = Part
end
end
else
local Accessory = Instance.new("Hat")
for i,v in pairs(Part:GetChildren()) do
local Weld = Instance.new("WeldConstraint", v)
for i,f in pairs(character:GetChildren()) do
if f:IsA("Accessory") then
f:Destroy()
end
end
local focus = Part.Handle
Accessory.Parent = game.Workspace[plr.Name]
local AccessoryWeld = Instance.new("Weld", focus)
v.Parent = Accessory
AccessoryWeld.Part0 = focus
AccessoryWeld.Part1 = character.Head
Weld.Part0 = v
Weld.Part1 = focus
Accessory.Name = "Helmet"
end
end
elseif game.ServerStorage.Inventory[plr.Name].Armors[v.CurrentArmor.Value].RigValue.Value == "R6" then
local Part = game.ReplicatedStorage.Armors[v.CurrentArmor.Value]["R6"][v.Name]:Clone()
if Part.Name ~= "Helmet" then
Part.Parent = game.Workspace[plr.Name]
for i,v in pairs(Part:GetChildren()) do
local weld= Instance.new("Weld")
if v:IsA("BasePart") or v:IsA("UnionOperation") then
local characterPart = character:FindFirstChild(v.Name)
if characterPart then
weld.Part0 = characterPart
weld.Part1 = Part[v.Name]
weld.Parent = Part
end
end
end
else
local Accessory = Instance.new("Hat")
for i,v in pairs(Part:GetChildren()) do
local Weld = Instance.new("WeldConstraint", v)
for i,f in pairs(character:GetChildren()) do
if f:IsA("Accessory") then
f:Destroy()
end
end
local focus = Part.Handle
Accessory.Parent = game.Workspace[plr.Name]
local AccessoryWeld = Instance.new("Weld", focus)
v.Parent = Accessory
AccessoryWeld.Part0 = focus
AccessoryWeld.Part1 = character.Head
Weld.Part0 = v
Weld.Part1 = focus
Accessory.Name = "Helmet"
end
end
end
end
end
end
game.Players.PlayerAdded:Connect(function(plr)
wait(4.3)
if plr.PlayerGui:FindFirstChild("Inventory") then
game.Players[plr.Name].PlayerGui.Inventory.Loading.Visible = true
game.Players[plr.Name].PlayerGui.Inventory.Inventory.LoadingFrame.Visible = true
if game.ServerStorage.Inventory[plr.Name]:FindFirstChild("Tools") then
local Storage= game.ServerStorage.Inventory[plr.Name].Tools
if Storage.Slot1.ToolName.Value == "" then
else
local clone = game.ReplicatedStorage.Tools[Storage.Slot1.ToolName.Value]:Clone()
clone.Parent = plr.Backpack
end
------------------------------------------
if Storage.Slot2.ToolName.Value == "" then
else
local clone = game.ReplicatedStorage.Tools[Storage.Slot2.ToolName.Value]:Clone()
clone.Parent = plr.Backpack
end
------------------------------------------
if Storage.Slot3.ToolName.Value == "" then
else
local clone = game.ReplicatedStorage.Tools[Storage.Slot3.ToolName.Value]:Clone()
clone.Parent = plr.Backpack
end
end
RespawnCharacter(plr)
game.Players[plr.Name].PlayerGui.Inventory.Loading.Visible = false
game.Players[plr.Name].PlayerGui.Inventory.Inventory.LoadingFrame.Visible = false
end
end)
--- EVENTS PLAY
game.ReplicatedStorage.Events.ItemsInfo.OnServerEvent:Connect(function(plr, frame, Write)
if Write == "ItemInfo" then
local Module = require(game.ReplicatedStorage.Items)
local Info = plr.PlayerGui.Inventory.Inventory.Info
local Iframe = Info.Infos
Iframe.ItemName.TextLabel.Text = frame.Name
-----------
Iframe.Description.Visible = true
Iframe.ItemName.Visible = true
Iframe.Type.Visible = true
Iframe["ArmorName"].Visible = false
-----------
Iframe.Description.TextLabel.Text = Module[frame.Name].Description
Iframe.Type.TextLabel.Text = Module[frame.Name].Type
elseif Write == "ItemInfo2" then
local Module = require(game.ReplicatedStorage.Items)
local Info = plr.PlayerGui.Inventory.Inventory.Info
local Iframe = Info.Infos
Iframe.ItemName.TextLabel.Text = frame.ToolName.Value
if Module[frame.ToolName.Value] then
Iframe.Description.TextLabel.Text = Module[frame.ToolName.Value].Description
Iframe.Type.TextLabel.Text = Module[frame.ToolName.Value].Type
end
elseif Write == "ItemInfoClothes" then
local Module = require(game.ReplicatedStorage.Items)
local Info = plr.PlayerGui.Inventory.Inventory.Info
local Iframe = Info.Infos
Iframe.ItemName.TextLabel.Text = frame.ClotName.Value
if Module[frame.ClotName.Value] then
Iframe.Description.TextLabel.Text = Module[frame.ClotName.Value].Description
Iframe.Type.TextLabel.Text = Module[frame.ClotName.Value].Type
end
elseif Write == "ArmorPartInfo" then
local Info = plr.PlayerGui.Inventory.Inventory.Info
local View = plr.PlayerGui.Inventory.Inventory.View1
local Iframe = Info.Infos
local Module = require(game.ReplicatedStorage.Armors[frame.ArmorName.Value].ArmorModule)
Info.Infos.ArmorName.TextLabel.Text = frame.ArmorName.Value
for i,v in pairs(Module[frame.Name]) do
if Info.Infos:FindFirstChild(v.Name) then
else
local label = Instance.new("TextLabel")
label.Size = UDim2.new(0.893, 0,0.145, 0)
label.Font = Enum.Font.FredokaOne
label.LayoutOrder = 2
label.BackgroundColor3 = Color3.new(1, 1, 1)
label.Name = v.Name
label.TextScaled = true
Instance.new("UICorner", label)
local dw = Instance.new("UIStroke", label)
dw.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
dw.Thickness = 3
if v.adding == true then
label.Text = v.Name.." +"..v.Add
else
label.Text = v.Name.." -"..v.Add
end
label.Parent = Info.Infos
end
end
elseif Write == "ArmorPartRefhlesh" then
local Info = plr.PlayerGui.Inventory.Inventory.Info
local View = plr.PlayerGui.Inventory.Inventory.View1
local Iframe = Info.Infos
local Module = require(game.ReplicatedStorage.Armors[frame.ArmorName.Value].ArmorModule)
Info.Infos.ArmorName.TextLabel.Text = frame.ArmorName.Value
for i,v in pairs(Module[frame.Name]) do
for i,c in pairs(Info.Infos:GetChildren()) do
if c.Name == v.Name then
c:Destroy()
end
end
end
end
end)
game.ReplicatedStorage.Events.ArmorsInfo.OnServerEvent:Connect(function(plr, frame, Write, CurArmor)
if Write == "ArmorInfo" then
local Module = require(game.ReplicatedStorage.Armors[CurArmor].ArmorModule)
local Info = plr.PlayerGui.Inventory.Inventory.Info
local Iframe = Info.Infos
-----------
Iframe.Description.Visible = false
Iframe.ItemName.Visible = false
Iframe.Type.Visible = false
Iframe["ArmorName"].Visible = true
-----------
Iframe.ArmorName.TextLabel.Text = frame.Name
for i,v in pairs(Module[frame.Name]) do
if Iframe:FindFirstChild(v.Name) then
else
local clonef = plr.PlayerGui.UIs.ArmorPowerTemplate:Clone()
clonef.Name = v.Name
if v.adding == true then
clonef.TextLabel.Text = v.Name.." +"..v.Add
else
clonef.TextLabel.Text = v.Name.." -"..v.Add
end
clonef.Name = v.Name
clonef.Parent = Iframe
end
end
end
if Write == "ArmorInfoRefhlesh" then
local Module = require(game.ReplicatedStorage.Armors[CurArmor].ArmorModule)
local Info = plr.PlayerGui.Inventory.Inventory.Info
local Iframe = Info.Infos
for i,v in pairs(Iframe:GetChildren()) do
if v:FindFirstChild("ArmorAdd") then
v:Destroy()
end
end
end
end)
game.ReplicatedStorage.Events.ArmorRefresh.OnServerEvent:Connect(function(plr)
print("connect")
local armorgui = game.Players[plr.Name].PlayerGui.ArmorGui.ArmorFrame
for i,v in pairs(armorgui.ArmorInfo.ArmorR.Arms.figure:GetChildren()) do
if v.ClassName == "Model" then
print(v)
v:Destroy()
end
end
for i,v in pairs(armorgui.ArmorInfo.ArmorR.Chest.figure:GetChildren()) do
if v.ClassName == "Model" then
print(v)
v:Destroy()
end
end
for i,v in pairs(armorgui.ArmorInfo.ArmorR.Legs.figure:GetChildren()) do
if v.ClassName == "Model" then
print(v)
v:Destroy()
end
end
armorgui.ArmorInfo.ArmorName.Value = ""
armorgui.ArmorInfo.RigType.Value = ""
armorgui.ArmorInfo.ArmorNamet.Text = "Armor Name"
end)
these are the issues I found while modifying Techno Studio’s Armor system, I suck at scripting so much that I couldn’t find more problems in there but I only hopes for this armor system to be fixed so I can release my first functioning RPG game on roblox, thank you so much for noticing my post, I’ll go ahead to sleep now, peace out
-mari