<?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_Tilemap</id>
	<title>Export Aseprite Tilemap - 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_Tilemap"/>
	<link rel="alternate" type="text/html" href="https://f256wiki.wildbitscomputing.com/index.php?title=Export_Aseprite_Tilemap&amp;action=history"/>
	<updated>2026-04-15T22:45:53Z</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_Tilemap&amp;diff=243&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_Tilemap&amp;diff=243&amp;oldid=prev"/>
		<updated>2024-01-31T22:37:04Z</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 tilemap.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;
 local spr = app.activeSprite&lt;br /&gt;
 local pc = app.pixelColor&lt;br /&gt;
 if not spr then return print &amp;quot;No active sprite&amp;quot; end&lt;br /&gt;
 &lt;br /&gt;
 if ColorMode.TILEMAP == nil then ColorMode.TILEMAP = 4 end&lt;br /&gt;
 assert(ColorMode.TILEMAP == 4)&lt;br /&gt;
 &lt;br /&gt;
 local output_folder = app.fs.filePath(spr.filename)&lt;br /&gt;
 &lt;br /&gt;
 local function write_foenix_data(filename, data)&lt;br /&gt;
   local file = io.open(filename, &amp;quot;wb&amp;quot;)&lt;br /&gt;
   local str = string.char(table.unpack(data))&lt;br /&gt;
   file:write(str)&lt;br /&gt;
   file:close()&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local function export_cel(cel)&lt;br /&gt;
   local t = {&lt;br /&gt;
     frame=cel.frameNumber-1,&lt;br /&gt;
     bounds={ x=cel.bounds.x,&lt;br /&gt;
              y=cel.bounds.y,&lt;br /&gt;
              width=cel.bounds.width,&lt;br /&gt;
              height=cel.bounds.height }&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   if cel.image.colorMode == ColorMode.TILEMAP then&lt;br /&gt;
     local tilemap = cel.image&lt;br /&gt;
     -- save tilemap&lt;br /&gt;
     t.tilemap = { width=tilemap.width,&lt;br /&gt;
                   height=tilemap.height,&lt;br /&gt;
                   tiles={} }&lt;br /&gt;
     for it in tilemap:pixels() do&lt;br /&gt;
       table.insert(t.tilemap.tiles, pc.tileI(it()))&lt;br /&gt;
     end&lt;br /&gt;
   else&lt;br /&gt;
     -- save regular cel&lt;br /&gt;
     image_n = image_n + 1&lt;br /&gt;
     local imageFn = fs.joinPath(output_folder, &amp;quot;image&amp;quot; .. image_n .. &amp;quot;.png&amp;quot;)&lt;br /&gt;
     cel.image:saveAs(imageFn)&lt;br /&gt;
     t.image = imageFn&lt;br /&gt;
   end&lt;br /&gt;
 &lt;br /&gt;
   fill_user_data(t, cel)&lt;br /&gt;
   return t&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------------------------&lt;br /&gt;
 -- Creates output folder&lt;br /&gt;
 -- fs.makeDirectory(output_folder)  -- don&amp;#039;t!!&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------------------------&lt;br /&gt;
 -- Write /sprite.json file in the output folder&lt;br /&gt;
 &lt;br /&gt;
 local tilemapFile = app.fs.joinPath(output_folder, &amp;quot;tilemap.tlm&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 local data = {}&lt;br /&gt;
 -- add a tile because Vicky II requires it&lt;br /&gt;
 table.insert(data,0)&lt;br /&gt;
 table.insert(data,0)&lt;br /&gt;
 -- iterate over each layer&lt;br /&gt;
 for _,layer in ipairs(spr.layers) do&lt;br /&gt;
   -- iterate over each cel&lt;br /&gt;
   for _,cel in ipairs(layer.cels) do&lt;br /&gt;
     local tilemap = cel.image&lt;br /&gt;
     for it in tilemap:pixels() do&lt;br /&gt;
       table.insert(data, pc.tileI(it()))&lt;br /&gt;
       table.insert(data, 0)&lt;br /&gt;
     end&lt;br /&gt;
   end&lt;br /&gt;
   --data[y*grid.width*2 + x*2]=grid.tileIndex&lt;br /&gt;
 end&lt;br /&gt;
     &lt;br /&gt;
 &lt;br /&gt;
     &lt;br /&gt;
 --for i=1,1000 do data[i] = math.random(0,255) end&lt;br /&gt;
 &lt;br /&gt;
 write_foenix_data(tilemapFile, data)&lt;/div&gt;</summary>
		<author><name>Grenouye</name></author>
	</entry>
</feed>