PreloadAsync is not working, am I using it properly?
Well, I've created an inventory GUI, everything is done but when I test it, the decals failed to preload. Anyone got any idea on what happened?
Here's the script itself:
02 | local rep = game:GetService( "ReplicatedStorage" ) |
03 | local remote = rep.Remotes:WaitForChild( "GetPlayerItemInfoCTC" ) |
04 | local remote 2 = rep.Remotes:WaitForChild( "SendPlayerItemInfoEvent" ) |
05 | local remote 3 = rep.Remotes:WaitForChild( "InventoryControlEvent" ) |
06 | local remote 4 = rep.Remotes:WaitForChild( "CloseAllGuisCTC" ) |
07 | local frame = script.Parent |
08 | local gui = frame.Parent |
09 | local panelHolder = frame:FindFirstChild( "BlankHolder" ) |
10 | local plr = game.Players.LocalPlayer |
11 | local itemModule = require(rep.Modules.ItemLibrary) |
12 | local contentProvider = game:GetService( "ContentProvider" ) |
18 | local function checkHorizontalNumber(id, line) |
22 | local preOperator = line - 1 |
23 | local operator = 4 * preOperator |
24 | local formula = id - operator |
29 | local itemInfo = remote:InvokeServer() |
32 | for i, v in pairs (itemInfo) do |
34 | local lineNumber = math.ceil(i / 4 ) |
35 | local HorizontalId = checkHorizontalNumber(i, 1 ) |
36 | local additional = HorizontalId - 1 |
37 | local additional 2 = lineNumber - 1 |
38 | local Coordinate = UDim 2. new( 0 , 135 * additional, 0 , 135 * additional 2 ) |
39 | local obtainedItemName, obtainedItemInfo = itemModule.GetItem(v) |
41 | if obtainedItemInfo then |
42 | local itemTier = itemModule.TierValue(v) |
43 | local targetPanel = panelHolder:FindFirstChild( "Panel" ..i) |
45 | targetPanel.ToolName.Text = obtainedItemName |
46 | targetPanel.ItemImage.Image = "rbxassetid://" ..obtainedItemInfo.image |
48 | contentProvider:PreloadAsync( { targetPanel.ItemImage } ) |
50 | local newPanel = panelHolder.Panel 1 :Clone() |
51 | newPanel.Name = "Panel" ..i |
52 | newPanel.Parent = panelHolder |
53 | newPanel.ToolName.Text = obtainedItemName |
54 | newPanel.Position = Coordinate |
55 | newPanel.ItemImage.Image = "rbxassetid://" ..obtainedItemInfo.image |
57 | contentProvider:PreloadAsync( { newPanel.ItemImage } ) |
The item library is just a module script that stores all information for all gears.
Here's the output:
1 Wood Club
Starting Module
20:50:36.140 - ContentProvider:PreloadAsync() failed for rbxassetid://2331348483
2 Alpha Sword
Starting Module
20:50:36.487 - ContentProvider:PreloadAsync() failed for rbxassetid://2331348483
The game is a group game, and the decal's owner is the group. This should've worked properly but it didn't, if you can find any problem please tell me, all help appreciated.