Are there any plans to add a UserId
parameter to the GetOutfits
function so we can get the outfits of other users instead of just the LocalPlayer
? Currently, the only way to do this is by using a proxy to make HTTP requests to the avatar web API.
+1 to this.
As someone who has an avatar that directly uses multiple accessory types, these limitations are frustrating!
Limiting to 1 of each accessory type is problematic for many reasons:
-
First and foremost, it âsunsetsâ many avatars that people use on a daily basis, my own included! This isnât exactly in alignment with Robloxâs âidentity in the metaverseâ path! I want to be a dragon wearing a cape, crown, armor, belt & sword. This shouldnât be disallowed! Furthermore, Roblox avatars from 2010 had multiple of a single accessory type:
-
Secondly, this severely limits the creative possibilities for players. Robloxâs avatar teams put a heavy emphasis on making everything into accessories, to strengthen the âmix and matchâ aspects of the avatar creation process & to allow players to be creative with their digital identity. Because nearly everything is accessories, limiting to ONE of each accessory type effectively counteracts the entire purpose of having everything as accessories. For example, if I want to wear a cape and wings, or if I want to wear a belt and a sword, I canât now!
-
Thirdly, this has a huge negative impact on UGC. Players will be less likely to buy UGC items since they already have one worn, and it also prevents things like pauldrons, and multi-colored pigtails! Hereâs some real-world examples of UGC that is not possible with these changes:
Overall, avatars should be allowed to wear multiple of a given accessory type, on mobile, xbox, PC, and in-game. The solution here lies not in limiting accessory type, but in limiting max total accessories or max triangles.
Doing this unlocks player creativity, and doesnât sunset my dragon:
Same here. My avatar relies on many shoulder (3+ paldurons to make a nicer robot âarm prostheticâ) and torso accesories (jacket + swordpack + belt)
Limiting accessories in this way is limiting expression which is against what roblox is promiting itself towards; creativity and self-expression.
How in the heck im supossed to express myself using only 1 accessory per 1 slot?
To be clear itâs not really a âchangeâ, the website still works the way it did, but this new API is enforcing dumb old limits that do not make any sense. This is worrying looking towards the future; these limits are harmful and not necessary in their current form. Itâs important that Roblox understands this and works towards changing them.
Back in the day these limits were dumb and still are dumb to this day. My avatar is doing fine with 10+ accesories. Let me wear whatever i want to on my avatar wihout some out-of touch decisions that nobody was told about untill now.
Heck, the reason why i wear my jacket and other âpseudo layered accessoriesâ is simple; layered clothing sucks on blocky avatars as it was tailored especially for rtho avatars. All of this could be solved with an optional original blocky base cage.
I agree with the general sentiment in this thread about the new APIs limiting accessories per category, limits should definitely be based on triangles/memory.
In regards to the API limits, and assuming these limits will be applied to the websiteâs avatar editor eventually; consumers want options. It is rare that a consumer ever wants to be limited, and in this case the APIs are limiting. Players want the ability to express themselves, to get creative, they canât do that when they are being arbitrarily limited.
Take 5 minutes of your time, join any game that allows for avatar customization, or any game centered around fashion (such as Royal High.) You will be able to find plenty of avatars that are wearing multiple accessories under the same category.
This is going to be very useful! Roblox creators can finally make more granular avatar editors in-game and provide users with much more intuitive and efficient customizability. Very happy to see this!
Any chance the beta will open up again for accessing catalog-related functionality? Thatâs the primary resource I need for my game at the moment.
While you are correct, the release of this API did not directly change the ability to use the advanced options for accessories in the avatar editor on the web, there are broader changes happening which may suggest these limitations are the unfortunate future. Specifically, the ability to equip multiple hair UGC items was removed from the web form leading up to this with the release of layered clothing.
The non dynamic hair that is currently available in the avatar shop, which total over 10,000 UGC hair items, can no longer be combined using the desktop, mobile, or web clients. If you try it will error or replace your current hair. I am fairly certain this limit was implemented to impose limits on new dynamic hair and upcoming dynamic eyelashes and eyebrows since these dynamic UGC items use a cage mesh and canât occupy the same space. I believe this is all part of a larger effort to push players away from the classic R6 and R15 avatars to âmodernizeâ the platform and attract a broader player base.
Our players do find it frustrating that the in game âSave to Robloxâ canât do multiple of anything UGC with the exception of hats. So any player looking to wear multiple UGC items must use the web, which by default is blocked for mobile users. Players wanting multiple hair UGC items must now resort to using sketchy third party mobile browsers and/or browser extensions to do it. As you can imagine this poses a greater security concern because third party software and extensions are not all trustworthy.
As for the API itself, we have had the beta up and running for a few months in our experience, Envy Avatar Studio, and with the exception of these limitations, everyone has loved what this API has allowed us to implement. A big round of applause is in order for the dev team on this API!
I used AvatarEditorService to modify layered clothing properties
Wow nice good work keep it up!
Itâs finally here! The 2 year wait was definitely worth it. However I donât know if this is intentional, but the playerâs DisplayName
appears at the center of a game whenever the AvatarEditorService:PromptCreateOutfit()
or AvatarEditorService:PromptSaveAvatar()
methods are used. In the screenshot below, Iâm using the AvatarEditorService:PromptSaveAvatar()
method.
With all of that said, nice addition as always Roblox! This will help many developers make functional avatar editors!
Thanks for your report, we will fix this issue.
Hello - great update! Really looking forward to all of the possibilities this will lead to.
I have been experimenting with the AvatarEditorService:GetInventory()
method, and found it to produce unreliable results about 5-10% of the time. Using the following code in a LocalScript, I have received different results:
local AvatarEditorService = game:GetService("AvatarEditorService")
local assetTypes = {
Enum.AvatarAssetType.BackAccessory,
Enum.AvatarAssetType.ShoulderAccessory,
Enum.AvatarAssetType.WaistAccessory,
Enum.AvatarAssetType.Hat,
Enum.AvatarAssetType.HairAccessory,
Enum.AvatarAssetType.FaceAccessory,
Enum.AvatarAssetType.NeckAccessory,
Enum.AvatarAssetType.FrontAccessory,
}
AvatarEditorService:PromptAllowInventoryReadAccess() -- get access to inventory
local promptResult = AvatarEditorService.PromptAllowInventoryReadAccessCompleted:Wait()
if promptResult == Enum.AvatarPromptResult.Success then
local startTime = os.clock()
local pages = AvatarEditorService:GetInventory(assetTypes) -- get pages object
local inventory = {} -- table of all AssetIds
local function iterate(page) -- recursive func to iterate through pages object
for _, asset in pairs(page) do
table.insert(inventory, asset.AssetId)
end
if not pages.IsFinished then
pages:AdvanceToNextPageAsync()
iterate(pages:GetCurrentPage()) -- recurse with next page
end
end
iterate(pages:GetCurrentPage())
print(#inventory.. " accessories in your inventory; found in ".. (math.round((os.clock() - startTime) * 100) / 100).. " seconds")
end
Result #1: The expected result
This is the result that prints majority of the time, and is the correct result.
Result #2: The random result
Sometimes, this result prints randomly, with the accessories number ranging from 100-300. This is the incorrect result, and Iâm not sure why its printing this.
Result #3: The error
Lastly, this will error randomly when I call the pages:AdvanceToNextPageAsync()
method. I am also not sure why this is occurring.
Is this a bug (if so, I can move this reply to a bug report), or an issue with my code? Any help would be appreciated, thank you!
Edit: I have moved this to a bug report as others have also been experiencing this, and there appears to be an issue with the page cursors.
Found a small bug: if you call PromptSaveAvatar()
or PromptCreateOutfit()
and then quickly close the prompt window before the character preview loads, thereâll be an error about AnimationClipProvider.
I am pretty sure some developers like them have already had early access to the feature during the beta testing, which seems a little unfair to all the new developers trying to come up.