<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://f256wiki.wildbitscomputing.com/index.php?action=history&amp;feed=atom&amp;title=Export_Aseprite_Tileset</id>
	<title>Export Aseprite Tileset - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://f256wiki.wildbitscomputing.com/index.php?action=history&amp;feed=atom&amp;title=Export_Aseprite_Tileset"/>
	<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Export_Aseprite_Tileset&amp;action=history"/>
	<updated>2026-04-15T23:46:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://f256wiki.wildbitscomputing.com/index.php?title=Export_Aseprite_Tileset&amp;diff=244&amp;oldid=prev</id>
		<title>Grenouye: New page.</title>
		<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Export_Aseprite_Tileset&amp;diff=244&amp;oldid=prev"/>
		<updated>2024-01-31T22:40:09Z</updated>

		<summary type="html">&lt;p&gt;New page.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;====== This LUA script file needs to be placed in Aseprite&amp;#039;s &amp;quot;scripts&amp;quot; folder. ======&lt;br /&gt;
 -- export tileset.lua&lt;br /&gt;
 -- Copyright (C) 2022  Daniel Tremblay&lt;br /&gt;
 --&lt;br /&gt;
 -- This file is released under the terms of the MIT license.&lt;br /&gt;
 &lt;br /&gt;
 if TilesetMode == nil then return app.alert &amp;quot;Use Aseprite v1.3&amp;quot;  end&lt;br /&gt;
 &lt;br /&gt;
 local lay = app.activeLayer&lt;br /&gt;
 if not lay.isTilemap then return app.alert &amp;quot;No active tilemap layer&amp;quot; end&lt;br /&gt;
 &lt;br /&gt;
 local tileset = lay.tileset&lt;br /&gt;
 &lt;br /&gt;
 local dlg = Dialog(&amp;quot;Export Tileset&amp;quot;)&lt;br /&gt;
 dlg:file{ id=&amp;quot;filename&amp;quot;, label=&amp;quot;Export to Tilemap file:&amp;quot;, save=true, focus=true,&lt;br /&gt;
           filename=app.fs.joinPath(app.fs.filePath(lay.sprite.filename), &amp;quot;tileset.png&amp;quot;) }&lt;br /&gt;
  :label{ label=&amp;quot;Number of Tiles to be exported&amp;quot;, text=tostring(#tileset) }&lt;br /&gt;
 &lt;br /&gt;
  :separator()&lt;br /&gt;
  :number { id=&amp;quot;tilemap_cols&amp;quot;, label=&amp;quot;Number of columns in Tilemap:&amp;quot;, text=&amp;quot;16&amp;quot; }&lt;br /&gt;
  :check { id=&amp;quot;ask_overwrite&amp;quot;, label=&amp;quot;Ask before overwrite existing Tilemap file&amp;quot;, selected=true }&lt;br /&gt;
  :check { id=&amp;quot;tiles_extruded&amp;quot;, label=&amp;quot;Extrude Tiles in Tilemap&amp;quot;, selected=false }&lt;br /&gt;
  :check { id=&amp;quot;keep_sprite_frames&amp;quot;, label=&amp;quot;Keep generated sprite frames open&amp;quot;, selected=false }&lt;br /&gt;
  :check { id=&amp;quot;open_generated&amp;quot;, label=&amp;quot;Open generated Tilemap&amp;quot;, selected=false }&lt;br /&gt;
 &lt;br /&gt;
  :separator()&lt;br /&gt;
  :button{ text=&amp;quot;&amp;amp;Export&amp;quot;, focus=true, id=&amp;quot;ok&amp;quot; }&lt;br /&gt;
  :button{ text=&amp;quot;&amp;amp;Cancel&amp;quot; }&lt;br /&gt;
  :show()&lt;br /&gt;
 &lt;br /&gt;
 -- Data validation&lt;br /&gt;
 local data = dlg.data&lt;br /&gt;
 if not data.ok then return end&lt;br /&gt;
 &lt;br /&gt;
 local spec = lay.sprite.spec&lt;br /&gt;
 local grid = tileset.grid&lt;br /&gt;
 local size = grid.tileSize&lt;br /&gt;
 &lt;br /&gt;
 -- Create a new sprite with the dimension of one single tile&lt;br /&gt;
 local newSpr = Sprite(size.width, size.height, lay.sprite.colorMode)&lt;br /&gt;
 &lt;br /&gt;
 -- give the new sprite the same palette as the source sprite&lt;br /&gt;
 newSpr:setPalette(lay.sprite.palettes[1])&lt;br /&gt;
 &lt;br /&gt;
 -- First copy first tile into sprite frame 1&lt;br /&gt;
 local tile = tileset:getTile(0)&lt;br /&gt;
 newSpr.cels[1].image = tile&lt;br /&gt;
 &lt;br /&gt;
 -- Then create new frame and copy each tile into a new frame of sprite&lt;br /&gt;
 &lt;br /&gt;
 for i = 1, #tileset - 1 do&lt;br /&gt;
   app.command.NewFrame { [&amp;quot;content&amp;quot;]=&amp;quot;current&amp;quot; }&lt;br /&gt;
   local tile = tileset:getTile(i)&lt;br /&gt;
   newSpr.cels[i + 1].image = tile&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 if app.apiVersion &amp;gt;= 3 then&lt;br /&gt;
   newSpr.filename = &amp;quot;sprite frames&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- Export sprite frames as an extruded sprite sheet&lt;br /&gt;
 app.command.ExportSpriteSheet{&lt;br /&gt;
   ui=false,&lt;br /&gt;
   askOverwrite=data.ask_overwrite,&lt;br /&gt;
   type=SpriteSheetType.ROWS,&lt;br /&gt;
   columns=data.tilemap_cols,&lt;br /&gt;
   textureFilename=data.filename,&lt;br /&gt;
   extrude=data.tiles_extruded,&lt;br /&gt;
   openGenerated=data.open_generated&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 -- Close sprite frames again&lt;br /&gt;
 if data.keep_sprite_frames == false then&lt;br /&gt;
   newSpr:close()&lt;br /&gt;
 end&lt;/div&gt;</summary>
		<author><name>Grenouye</name></author>
	</entry>
</feed>