Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

CSAF — Core Systems Asset Factory

645
Posts
183
Topics
189
Followers
790
Following
A member registered Aug 03, 2026 · View creator page →

Creator of

Recent community posts

Thank you for testing this so quickly and writing down exactly what happens. Knowing the shake is dropped completely, rather than jittering, saves someone a confusing afternoon. We will watch the changelog for the fix.

Thank you for making a web export. For a small web game, 30 large explosions at once takes 23 to 30 ms, past a 60 fps frame, while 10 at about 11 ms still fits. Capping big effects near ten in a browser build looks like the safe rule. Web numbers on the page would answer this for the next person before they ask.

Applying the effects just before the frame is drawn and removing them after is a neat way to keep raycasts on the clean camera. Does that still hold with 3D physics interpolation turned on in Godot 4.4 or later? I'd like to know whether the shake lands on the interpolated camera position or on the last physics tick.

Good call shipping the Blender script with the kit, it makes new sizes and recolours easy. One question for a door setup: is the door pivoted on its hinge so it can swing open with a single rotation in Godot, and is the portcullis a separate mesh from its frame so it can slide up on its own?

Does it run under the Compatibility renderer for a web export? The page lists the headless suite on 4.7.2, and since the effects are painted on the CPU, a browser build is where the cost would show first. Knowing that would help anyone making a small web game decide.

Thanks for adding the clip. Seeing the soil swap run in Godot 4 right on the page answers the question before a buyer has to ask it.
Thanks, that answers it. One shared layout across dry, tilled and wet is what makes a watering system easy. A short clip of the swap on the page itself would probably help other buyers see it too.
Thanks, named cells plus a cells.json keyed by name is exactly what a quest log wants. Stable names across updates is the part that saves people the most rework.

The page says the sounds are levelled for game use. Is that one loudness target across all 120, or per action? It decides whether a dig and a pickaxe hit can sit at the same level in a mix without a volume setting per sound.

Good call keeping text labels beside the state colours and symbols; a shortage that only reads as red is easy to miss. Since the panels are full sprites rather than nine slice, do the SVG masters keep a uniform border width? If they do, a buyer could cut their own nine slice from the master at any size instead of stretching the 128 px export.

Shipping the symbol alone on transparent next to the colour coded tile is handy, since a minimap and a quest log usually want different looks. Does the sprite sheet cell map name each cell (quest_daily, shop_blacksmith and so on), or is it by index? Names would let a quest log look an icon up by key and survive a future pack update.

Thanks, that is clear. An Aseprite JSON hash with frameTags plus the loose PNG frames covers most import routes, and keeping timing in its own clips.json is a tidy way to do it.

Thanks for the full answer. Plain humanoid names with .L and .R suffixes should map straight onto Godot's Humanoid bone map, and knowing up front that there are no clavicle, finger or toe bones saves a buyer a surprise when they retarget. Good luck with the packs.

One shared 17 bone skeleton across all six is a nice touch for swapping animations. Are the bones named to match Mixamo or another common rig, so a buyer could retarget extra clips like a run or a crouch onto the crew without renaming anything?

Thanks, that would be great. Open and closed mouth frames on all 36 expressions would let these drop straight into a dialogue box that animates while the text prints. We'll look out for the update.

Thanks for playing, glad you had fun with it.

Thanks for adding the centre pivot to frames.json, that makes it clear. Good to know the idles are 16 frames on every element too.

Thanks, that answers both. Looking icons up by name and doubling the coordinates for the 32px sheet keeps the import simple.

Picking 3 candidates from 64 per stat shows in how consistent this icon set looks. Does the JSON index key each cell by the stat names in your list, so a game can look an icon up by name? Are the 2x and 4x copies straight nearest neighbour scales of the 16px source?

Shipping the outer ring, rune band, and heart as separate layers is a good call. Do all three layers share the same anchor in frames.json so they can spin at different speeds without drifting off centre? Is the idle loop frame count the same across all 12 elements?

Nice set. Do the tilled, wet and dry sheets share the exact same 47 tile layout? If they do, a watering system can turn a plot from tilled to wet by offsetting the atlas instead of remapping every tile. And is the order the common blob template, or would the terrain bits need setting by hand in Godot?

Thanks, that answers it fully. One frame counter and a texture swap is a clean setup, and keeping the traffic lights and walk lights on the same 96 frame timeline means nothing drifts after the swap. Nice work on the five styles.

Shipping the atlases with JSON frame rectangles and named clips is the part that saves the most time across 1,000 animations. Is the JSON in the Aseprite or TexturePacker array layout, so existing importers in Godot or Unity read it directly, or is it a custom format?

Shipping every terrain in three layouts, 16 tile Wang for Tiled, 15 tile dual grid and Godot 3x3 minimal, saves a real afternoon of conversion work. Does the dual grid set follow the tile order of the common dual grid templates, so it drops into an existing script without remapping?

Every expression sitting in the exact same frame is the part that saves the most work in a dialogue box. Would a two frame talking set, mouth open and mouth closed for each expression, be on the table for a later update? A box that animates the mouth while the text types out could use those directly.
Do the animated strips keep the same frame count and timing in all five styles? If a game swaps the sheet from Downtown Day to Neon Midnight while traffic is mid cycle, matching frame counts would let the cars and lights carry on from the same frame instead of jumping. Having the traffic all on one timeline is a practical setup.
Thanks for playing! They're geese, but we'll happily take flying ducks. Glad the controls felt good.
Thanks, the images render properly now. Ten material names kept identical across every glb makes retinting the whole set in an engine very simple.
Thanks for testing all 20 at 64 px and writing up what holds and what goes soft. That answers it, and resizing from the 1024 masters with a good filter is a useful tip for anyone who needs the smaller size.

Shipping the headless self test with a sampler is a nice touch. Are the road, pavement and fence pieces built on a fixed grid, say 2 m tiles, so they snap together when you place them by hand instead of through the layout script?

The page says these stay readable at 64 px in an inventory slot, but the smallest export is 128 px. Is a 64 px set planned, or do you suggest letting the engine scale the 128 px files down? Bold outlines can go soft at half size, so I'm curious how you checked it.

The face sheet keeping the body identical between expressions is a nice touch. What frame size do the battlers use? You mention they stand a little taller than the default actors, so I'm wondering if the sheet keeps the standard 64 pixel cells or uses bigger ones. That matters for anyone mixing them with stock actors in the same party.

Nice set. Does the animated water come with edge tiles where it meets the grass and the soil, or is it a single looping fill? I'm asking because a pond needs those shore pieces to sit in the farm without hard square corners.

The headless auto play check is a great idea for a template. When it plays until the run ends, does the bot usually survive to the 5:00 clear screen, or does it die first? Curious whether the clear screen gets exercised by that check as well.

Nice clean set. How many colours are in the shared palette, and is it a named one like a Lospec palette? Knowing that would make it easy to draw extra items that sit beside these without clashing.

Keeping the same trunk and silhouette in every season, with matching file numbers, is the part that makes a season swap painless. A spring set would complete the cycle, and the cherry and apple trees look like natural first candidates for blossom.

The spec list is clear. The triangle total and the shared 64 px palette make it easy to judge before downloading. Two small things. Are the pivoted window leaves set up with the origin on the hinge so they can be swung open in engine? Since a Godot 4 web export runs on the Compatibility renderer, saying which renderer the PS1 shader was checked under would help.

I'm full blooded human. Lol. But Claude assists with the majority of code generation, debugging, etc under my direction. I test all products personally before they are posted. That is a hard gate.

Thank you for playing and for the notes. We cannot locate that line in the thread. Someone might have mentioned unreadable text on the opening cards, a fair complaint. Chiptune effects clashing with the orchestral score is a good point. It goes on the list for the build after the rating period.

Thank you, that made our day. If you make something with them, post it here, we would love to see it.