AssetService

非推奨を表示
作成できません
サービス

AssetService is a non-replicated service that handles asset-related queries to the Roblox web API.

概要

方法

プロパティ

方法

CreateEditableImageAsync

イールド

Creates a new EditableImage instance populated with the given texture. Non-asset texture IDs such as rbxthumb:// are supported. If using an image asset, it must be associated with and/or owned by a creator of the experience, or it must have been created inside the experience.

パラメータ

textureId: Content

Texture ID of the image to populate the EditableImage.


戻り値

A new EditableImage containing the provided image.

CreateEditableMeshAsync

イールド

Returns a new EditableMesh instance created from an existing mesh content ID.

パラメータ

meshId: Content

Content ID of the mesh from which to create an EditableMesh instance.


戻り値

The new EditableMesh instance.

CreateEditableMeshFromPartAsync

イールド

Returns a new EditableMesh instance created from the MeshId of an existing MeshPart.

パラメータ

meshPart: Instance

The MeshPart from which to create an EditableMesh instance. The part must have a valid MeshId for this method to operate.


戻り値

The new EditableMesh instance.

CreateMeshPartAsync

イールド
プラグインのセキュリティ

This method creates a MeshPart with a specified CollisionFidelity, RenderFidelity, and FluidFidelity. Because MeshPart.MeshId is read only, this method is for creating a mesh with any mesh ID through scripts, without having to clone an existing MeshPart. It throws errors if creation fails.

パラメータ

meshId: Content
options: Dictionary

Options table containing one or more controls for the method:

既定値: "nil"

戻り値

CreatePlaceAsync

イールド

Clones a place through the given templatePlaceID and returns the PlaceId of the new place, which you can use with TeleportService. The clone place displays within the inventory of the place's creator with the given name and description.

Note that the template place must have template copying enabled through place settings. You cannot use this method to clone places that you don't own.

Frequent use of this API is not recommended, particularly if the created places contain scripts, as updating the code in a large volume of places quickly becomes infeasible. For user-generated worlds, consider serializing user creations and saving them in DataStores instead.

パラメータ

placeName: string

Name of the new place.

templatePlaceID: number

PlaceId of the place to clone.

description: string

Description of the new place.

既定値: ""

戻り値

PlaceId of the new place.

CreatePlaceInPlayerInventoryAsync

イールド

パラメータ

player: Instance
placeName: string
templatePlaceID: number
description: string
既定値: ""

戻り値

GetAssetIdsForPackage

イールド

Returns an array of asset IDs that are contained in a specified package.

パラメータ

packageAssetId: number

戻り値

Asset IDs that are contained in a specified package.

GetAudioMetadataAsync

イールド

Provides relevant metadata about a specific audio source (artist, title, duration, type, etc.).

パラメータ

idList: Array

Array of asset or content IDs for which to retrieve metadata. Max batch size is 30.


戻り値

Array of dictionary tables in the same order as the request, where each dictionary contains the following metadata for its asset/content:

Note that if an error occurs on fetching metadata for any of the requested assets, for example the asset ID doesn't exist, its dictionary table is still included in the returned array but it only contains the AssetId field for reference purposes. Additionally, if the AudioType cannot be determined for a given asset (perhaps because it's private audio), the resulting dictionary will not contain an AudioType entry.

コードサンプル


local AssetService = game:GetService("AssetService")
local SoundService = game:GetService("SoundService")
local trackIDs = {
SoundService.Sound1.SoundId,
SoundService.Sound2.SoundId,
SoundService.Sound3.SoundId,
SoundService.Sound4.SoundId
}
local success, result = pcall(function()
return AssetService:GetAudioMetadataAsync(trackIDs)
end)
if success then
for i = 1, #trackIDs do
local contentId = "rbxassetid://" .. result[i].AssetId
if trackIDs[i] == contentId then
print(result[i].Title, "by", result[i].Artist)
else
warn("No metadata fetched for requested asset #" .. tostring(i))
end
end
end

GetBundleDetailsAsync

イールド

This function returns details of the contents of the specified bundle.

If the bundle ID does not exist, it throws HTTP 400 (Bad Request). If bundleId is not convertible to an integer, it throws Unable to cast string to int64.

パラメータ

bundleId: number

The ID of the specified bundle.


戻り値

Dictionary with the following key-value pairs containing details about the specified bundle:

  • Id — Bundle ID (same as passed bundleId argument)

  • Name — Bundle name

  • Description — Bundle description

  • BundleType — String representing the Enum.BundleType, for example "BodyParts" or "DynamicHead"

  • Items — Array of items in the bundle, each with details represented through the following keys:

    • Id — Item ID

    • Name — Item name

    • Type — Item type such as "Asset" .

コードサンプル

Getting Bundle Details

local AssetService = game:GetService("AssetService")
local BUNDLE_ID = 14
local success, result = pcall(function()
return AssetService:GetBundleDetailsAsync(BUNDLE_ID)
end)
if success then
print(result)
--[[
{
["BundleType"] = "BodyParts",
["Description"] = "The year is 5003, Battlebot 5000 must face his mightiest foe, or face becoming obsolete.",
["Id"] = 14,
["Items"] = {
[1] = {...},
[2] = {
["Id"] = 1678225030,
["Name"] = "SinisterBot 5001 Left Arm",
["Type"] = "Asset"
},
[3] = {...},
[4] = {...},
[5] = {...},
[6] = {...},
[7] = {...}
},
["Name"] = "SinisterBot 5001"
}
--]]
end

GetGamePlacesAsync

イールド

Returns a StandardPages object which contains the name and PlaceId of places within the current experience.


戻り値

コードサンプル

AssetService:GetGamePlacesAsync

local AssetService = game:GetService("AssetService")
local placePages = AssetService:GetGamePlacesAsync()
while true do
for _, place in placePages:GetCurrentPage() do
print("Name:", place.Name)
print("PlaceId:", place.PlaceId)
end
if placePages.IsFinished then
break
end
placePages:AdvanceToNextPageAsync()
end

PromptCreateAssetAsync

イールド

Allows in-experience asset creation for users by prompting a publish dialog. When called, it presents a dialog to the user, allowing them to enter a name, description, and preview the asset. Upon submitting, it saves the asset to the user's inventory. Can only be invoked on the server side.

パラメータ

player: Player

The user who submits an asset creation.

instance: Instance

The asset to be created. Currently can't contain scripts or nest non-public assets.

assetType: Enum.AssetType

The asset type. Currently can only be Enum.AssetType.Model.


戻り値

The Enum.PromptCreateAssetResult and asset ID pair if successful.

PromptImportAnimationClipFromVideoAsync

イールド

パラメータ

player: Player
progressCallback: function

戻り値

SavePlaceAsync

void
イールド

Saves the state of the current place. Only works for places that are created with AssetService:CreatePlaceAsync() or which have the API enabled through place settings.


戻り値

void

SearchAudio

イールド

Returns a AudioPages object containing the result of the given search. Will not return fields with empty values.

Note that this method has a low HTTP request limit and can throw an error, so it should always be wrapped in pcall() for error handling. Possible error messages include:

Error MessageReason
HTTP 429 (Too Many Requests)AssetService:SearchAudio() has been called too many times.
Unexpected type for data, expected array got voidThe keyword argument was filtered.

パラメータ

searchParameters: AudioSearchParams

戻り値

コードサンプル

Getting Music Search Titles

local AssetService = game:GetService("AssetService")
local audioSearchParams = Instance.new("AudioSearchParams")
audioSearchParams.SearchKeyword = "happy"
local success, result = pcall(function()
return AssetService:SearchAudio(audioSearchParams)
end)
if success then
local currentPage = result:GetCurrentPage()
for _, audio in currentPage do
print(audio.Title)
end
else
warn("AssetService error: " .. result)
end
--[[ Returned data format
{
"AudioType": string,
"Artist": string,
"Title": string,
"Tags": {
"string"
},
"Id": number,
"IsEndorsed": boolean,
"Description": string,
"Duration": number,
"CreateTime": string,
"UpdateTime": string,
"Creator": {
"Id": number,
"Name": string,
"Type": number,
"IsVerifiedCreator": boolean
}
}
--]]

イベント