What is the issue? In the function, it doesn’t want to find the ‘user’ (yes, it works if there isn’t the local user)
What solutions have you tried so far? Tried some fixes. None worked.
local function douianimation(player)
local number = 4
local selectedFriends = selectplayerfriends(player, number)
local ui = ReplicatedStorage.templates.Publish:Clone()
ui.Parent = player.PlayerGui
for _, userId in pairs(selectedFriends) do
for _, Review in pairs(ui.Frame.Reviews:GetChildren()) do
if Review.Contents.Headshot.Image == "rbxassetid://0" then
TweenService:Create(Review.UIScale, TweenInfo.new(0.1), {Scale = 1}):Play()
local success, thumbnail = pcall(function()
return Players:GetUserThumbnailAsync(userId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size420x420)
end)
if success then
local user = Players:GetPlayerByUserId(userId)
Review.Contents.Headshot.Image = thumbnail
Review.Contents.User.Text = "@" .. user.Name
end
break
end
end
end
end
local function getplayerfriends(player)
local friendsId = player.UserId
local PlayersFriends = {}
local success, page = pcall(function() return Players:GetFriendsAsync(friendsId) end)
if success then
repeat
local info = page:GetCurrentPage()
for i, friendInfo in pairs(info) do
table.insert(PlayersFriends, friendInfo)
end
if not page.IsFinished then
local advanceSuccess, advanceError = pcall(function() return page:AdvanceToNextPageAsync() end)
if not advanceSuccess then
warn("Error advancing page:", advanceError)
break
end
end
until page.IsFinished
else
warn("Failed to fetch friends for user:", player.Name)
end
return PlayersFriends
end
local function selectplayerfriends(player, number)
local PlayersFriends = getplayerfriends(player)
local selectedFriends = {}
for i = 1, math.min(number, #PlayersFriends) do
table.insert(selectedFriends, PlayersFriends[i].Id)
end
return selectedFriends
end
local module = {}
local TweenService = game:GetService("TweenService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local allreviews = require(ReplicatedStorage.modules.main.allreviews)
module.mainPublish = function(player)
local function getplayerfriends(player)
local friendsId = player.UserId
local PlayersFriends = {}
local success, page = pcall(function() return Players:GetFriendsAsync(friendsId) end)
if success then
repeat
local info = page:GetCurrentPage()
for i, friendInfo in pairs(info) do
table.insert(PlayersFriends, friendInfo)
end
if not page.IsFinished then
local advanceSuccess, advanceError = pcall(function() return page:AdvanceToNextPageAsync() end)
if not advanceSuccess then
warn("Error advancing page:", advanceError)
break
end
end
until page.IsFinished
else
warn("Failed to fetch friends for user:", player.Name)
end
return PlayersFriends
end
local function selectplayerfriends(player, number)
local PlayersFriends = getplayerfriends(player)
local selectedFriends = {}
for i = 1, math.min(number, #PlayersFriends) do
table.insert(selectedFriends, PlayersFriends[i].Id)
end
return selectedFriends
end
local function douianimation(player)
local number = 4
local selectedFriends = selectplayerfriends(player, number)
local ui = ReplicatedStorage.templates.Publish:Clone()
ui.Parent = player.PlayerGui
for _, userId in pairs(selectedFriends) do
for _, Review in pairs(ui.Frame.Reviews:GetChildren()) do
if Review.Contents.Headshot.Image == "rbxassetid://0" then
TweenService:Create(Review.UIScale, TweenInfo.new(0.1), {Scale = 1}):Play()
local success, thumbnail = pcall(function()
return Players:GetUserThumbnailAsync(userId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size420x420)
end)
if success then
local review = allreviews[math.random(1, #allreviews)]
local user = Players:GetPlayerByUserId(userId)
Review.Contents.Headshot.Image = thumbnail
Review.Contents.Description.Text = review.Review
Review.Contents.User.Text = "@" .. user.Name
end
break
end
end
end
end
douianimation(player)
end
return module
Can I see the code where you used it like that? I assume you just set user to said function, but that wont work as you reference it as user.Name. Thats my guess at least, so try this?
local module = {}
local TweenService = game:GetService("TweenService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local allreviews = require(ReplicatedStorage.modules.main.allreviews)
module.mainPublish = function(player)
local function getplayerfriends(player)
local friendsId = player.UserId
local PlayersFriends = {}
local success, page = pcall(function() return Players:GetFriendsAsync(friendsId) end)
if success then
repeat
local info = page:GetCurrentPage()
for i, friendInfo in pairs(info) do
table.insert(PlayersFriends, friendInfo)
end
if not page.IsFinished then
local advanceSuccess, advanceError = pcall(function() return page:AdvanceToNextPageAsync() end)
if not advanceSuccess then
warn("Error advancing page:", advanceError)
break
end
end
until page.IsFinished
else
warn("Failed to fetch friends for user:", player.Name)
end
return PlayersFriends
end
local function selectplayerfriends(player, number)
local PlayersFriends = getplayerfriends(player)
local selectedFriends = {}
for i = 1, math.min(number, #PlayersFriends) do
table.insert(selectedFriends, PlayersFriends[i].Id)
end
return selectedFriends
end
local function douianimation(player)
local number = 4
local selectedFriends = selectplayerfriends(player, number)
local ui = ReplicatedStorage.templates.Publish:Clone()
ui.Parent = player.PlayerGui
for _, userId in pairs(selectedFriends) do
for _, Review in pairs(ui.Frame.Reviews:GetChildren()) do
if Review.Contents.Headshot.Image == "rbxassetid://0" then
TweenService:Create(Review.UIScale, TweenInfo.new(0.1), {Scale = 1}):Play()
local success, thumbnail = pcall(function()
return Players:GetUserThumbnailAsync(userId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size420x420)
end)
if success then
local review = allreviews[math.random(1, #allreviews)]
local name = Players:GetNameFromUserIdAsync(userId)
Review.Contents.Headshot.Image = thumbnail
Review.Contents.Description.Text = review.Review
Review.Contents.User.Text = "@" .. name
end
break
end
end
end
end
douianimation(player)
end
return module