I apologize for not updating this list recently, as I’ve been quite busy lately. However, I wanted to share a small Aseprite script I just finished working on. It allows you to import images from a folder into new layers.
I suspect that the problem is that you downloaded the file as “html”, and not as “lua”.
Please, try downloading it from here: Bitbucket
Click that link > Click on the 3 points at the top right > right click on “open raw” > save link as “import_images_as_layers.lua”
If it still doesn’t work, please create a .lua file (you can use notepad++ for example) and paste this code inside:
-- Aseprite script: Import images as layers
-- Author: JJHaggar
-- Generated with the assistance of an AI model
-- License: CC0 1.0 Universal
-- https://creativecommons.org/publicdomain/zero/1.0/
-- Prompts the user to select a file
local dlg = Dialog("Select file")
dlg:label{
id = "instructions_label",
label = "Instructions: ",
text = "Select an image in the folder that contains all the images you want to add as layers"
}
dlg:file{
id = "file",
label = "File:",
open = true,
save = false,
onchange = function(file) dlg:modify{id="file", text=file} end
}
dlg:button{ id = "ok", text = "OK" }
dlg:show()
-- Extracts the directory path of the selected file
local file = dlg.data.file
local dir = app.fs.filePath(file)
-- Gets a list of files in the selected directory
if app.fs.isDirectory(dir) then
local files = app.fs.listFiles(dir)
for _,filename in ipairs(files) do
-- Check if the file is an image by its extension
local extension = string.sub(filename, -4)
if extension == ".png" or extension == ".jpg" or extension == ".bmp" or extension == ".gif" then
-- Extract the full path to the file
local filePath = app.fs.joinPath(dir, filename)
-- Check if there is an active sprite
local sprite = app.activeSprite
if not sprite then
return app.alert("There is no active sprite.")
end
-- Creates a new layer with the file name
local newLayer = sprite:newLayer()
newLayer.name = filename
-- Load the image
local image = Image{ fromFile=filePath }
-- If the image could be loaded, add it to the sprite
if image then
-- Get the current frame
local currentFrame = app.activeFrame
-- Adds the image to the layer at the current frame
sprite:newCel(newLayer, currentFrame, image)
else
app.alert("Could not load image: " .. filename)
end
-- Refreshes the sprite view
app.refresh()
end
end
else
print("Error. Select an image in the folder you have all the images.")
end
I was dealing with my own exporter and couldn’t get aseprite to only save specific frames with SaveFileCopyAs. Your way works perfectly! Thanks again so much, this is a huge bugbear of mine dealt with !
I’m new at scripting for aseprite, i wanna something to select some blocks of 32x32 in the canvas, then flip it and move it one pixel for right or left.
i Found this to move
I’ve made s script to emphasise the layer you’re working on so you’re able to see better what you’re doing. There’s a free download for all patreon members (including the free ones) so please sign up for free:slight_smile:
I made a script for isometric “tiled mode”. It clones the selection to see how the texture fits. I hope it Helps! You can download the files at github. https://github.com/motero2k/aseprite-scripts
Hi @JJHaggar - feel free to add my latest script to the list There’s a post about it here.
Palettize (by @Projectitis) Gives you finer control when applying a fixed palette to an image, including tweaking HSV of separate channels, excluding specific color matches, and a preview before applying.
Aseprite Scripts by David_Barker Ghost Images : Animation effect similar to onion skinning. The script will generate a new layer containing a number of ‘Ghosts’ of previous frames. Layer Transition : Generates a new layer with a simple transition effect between two existing layers. Load Palette From CSV : Load a palette from a CSV file with red, green, blue, alpha columns. Save Palette To CSV : Save current palette To CSV file with red, green, blue, alpha columns. Selected Pixel Count : Counts the number of pixels in an arbitrary shaped selection.
Github repo https://github.com/davebarkeruk/Aseprite_LUA_Scripts
PalRowMax(by BraidAcer): It scans an indexed color image and tell you if you’ve used more than X palette colours in a single pixel height horizontal line - link to drive.
UPDATE: GitHub Link’s dead, but script was rescued thanks to V972here - link to Google Drive here.
Noise (by shemake): By default, it will create a new layer and scatter it with single pixel dots in your current foreground color. You can control the density with the first script option (higher numbers = LOWER density). Even better, if you want to create noise using a brush, all you have to do is choose the “Use current brush” checkbox and the script will apply the brush anywhere it would have created a speck of noise. - link to github
I don’t have much free time, and this post is getting hard to maintain ^_^U Maybe it would be a better idea to create a Github repo for this list? That way, anybody could help updating it! What do you think? ^^
If no-one beats me to it I will create a markdown page of your initial post and submit it to the official aseprite “script examples” repo this weekend.
A markdown library of community scripts that Ives in the official repo would be awesome. If the authors agree
Aseprite is working on an official scripts and extensions database with some amazing functionality.
In the meantime I have copied the scripts to an “unofficial” community scripts collection repo. Like @JJHaggar, I don’t have tons of free time, but it will be easier to manage a list this way. When the official database is ready, the scripts can be moved there instead.
Scripts can be submitted to this list by filling in an issue form: Submit a script.
A collection of utility scripts for Aseprite to enhance your pixel art workflow.
Toggle Visibility of All Layers - Toggles visibility of all layers in the active sprite. If any layer is visible, all layers will be hidden. If all layers are hidden, all layers will be shown.
Import Sprite Sheet to Layers - Imports a sprite sheet and splits it into individual layers based on provided sprite dimensions. Each sprite from the sheet will be placed on its own layer.
Export All Layers Individually - Exports layers and grouped layers from the active sprite to separate PNG files, organizing them in directories based on their group names. Each layer within a group is exported as an individual PNG file.