<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.doc.boardgamearena.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sumpfork</id>
	<title>Board Game Arena - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.doc.boardgamearena.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sumpfork"/>
	<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/Special:Contributions/Sumpfork"/>
	<updated>2026-10-07T02:15:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpseasofhavoc&amp;diff=31698</id>
		<title>Gamehelpseasofhavoc</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpseasofhavoc&amp;diff=31698"/>
		<updated>2026-10-02T17:46:59Z</updated>

		<summary type="html">&lt;p&gt;Sumpfork: Initial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Seas of Havoc – Quick Reference =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Goal:&#039;&#039;&#039; Have the most &#039;&#039;&#039;Infamy&#039;&#039;&#039; when the game ends. You earn it in combat, from Market cards in your deck, and from active upgrades.&lt;br /&gt;
&lt;br /&gt;
== Round structure ==&lt;br /&gt;
The game alternates &#039;&#039;&#039;Island Phase → Sea Phase&#039;&#039;&#039; until the game ends.&lt;br /&gt;
&lt;br /&gt;
== Island Phase ==&lt;br /&gt;
# &#039;&#039;&#039;Send out Skiffs.&#039;&#039;&#039; Starting with the First Player, go clockwise and place &#039;&#039;&#039;1 Skiff per turn&#039;&#039;&#039; (3 each) until all are placed. Only one Skiff can be on each slot or card.&lt;br /&gt;
#* &#039;&#039;&#039;Board slots&#039;&#039;&#039; resolve &#039;&#039;&#039;immediately&#039;&#039;&#039;.&lt;br /&gt;
#* &#039;&#039;&#039;Market cards&#039;&#039;&#039; are only &#039;&#039;claimed&#039;&#039; when you place a Skiff. You pay for them after all Skiffs are out.&lt;br /&gt;
# &#039;&#039;&#039;Buy claimed cards&#039;&#039;&#039; in turn order. Pay the cost shown top-left and the card goes &#039;&#039;&#039;straight into your hand&#039;&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Clean up.&#039;&#039;&#039; Take back your Skiffs and refill the Market to 5 cards.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Location !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| Sail Maker / Blacksmith / Bank || Gain sails / cannonballs / coins&lt;br /&gt;
|-&lt;br /&gt;
| Capitol || Take the &#039;&#039;&#039;First Player token&#039;&#039;&#039; now, plus 1 resource&lt;br /&gt;
|-&lt;br /&gt;
| Trading Post || Exchange up to 2 resources&lt;br /&gt;
|-&lt;br /&gt;
| Workshop || Pay the cost to &#039;&#039;&#039;activate a ship upgrade&#039;&#039;&#039;, which is permanent and worth Infamy&lt;br /&gt;
|-&lt;br /&gt;
| Deep Cove || Scrap up to 2 cards from your hand or discard pile and gain their cost in resources&lt;br /&gt;
|-&lt;br /&gt;
| Flag slots || Take a flag. You can use it later (optional)&lt;br /&gt;
|-&lt;br /&gt;
| Market || Claim a card. &#039;&#039;Before&#039;&#039; placing, you may scrap all unclaimed cards and restock, but then you must claim one of the new cards&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags&#039;&#039;&#039; (keep them; you may use a flag&#039;s action when a card or effect lets you):&lt;br /&gt;
* &#039;&#039;&#039;Red – Shipwright:&#039;&#039;&#039; scrap 1 card and gain its cost&lt;br /&gt;
* &#039;&#039;&#039;Tan – Bosun:&#039;&#039;&#039; draw 1 card&lt;br /&gt;
* &#039;&#039;&#039;Green – Purser:&#039;&#039;&#039; gain 1 resource of your choice&lt;br /&gt;
* &#039;&#039;&#039;Blue – Sailor:&#039;&#039;&#039; take another turn (one more Skiff, or one more card in the Sea Phase)&lt;br /&gt;
&lt;br /&gt;
== Sea Phase ==&lt;br /&gt;
* Starting with the First Player and going clockwise, each player &#039;&#039;&#039;must play 1 card&#039;&#039;&#039; if they have any. Resolve it (or pass, but you still play the card), then discard it.&lt;br /&gt;
* &#039;&#039;&#039;Movement:&#039;&#039;&#039; follow the card&#039;s arrows and your ship changes heading as shown. You can pay sails for an &#039;&#039;&#039;extended maneuver&#039;&#039;&#039;, but only if the main maneuver had &#039;&#039;&#039;no collision&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Board wraps:&#039;&#039;&#039; ships and shots leaving one edge come back on the opposite edge.&lt;br /&gt;
* Once every hand is empty, everyone &#039;&#039;&#039;draws 4 cards&#039;&#039;&#039; and you go back to the Island Phase. If your deck runs out, shuffle your discard pile to make a new one.&lt;br /&gt;
&lt;br /&gt;
=== Collisions ===&lt;br /&gt;
* Your ship stops in the space &#039;&#039;&#039;before&#039;&#039;&#039; the obstacle. You may then pivot 90°.&lt;br /&gt;
* The player who caused the collision &#039;&#039;&#039;discards 1 card&#039;&#039;&#039; (nothing if their hand is empty).&lt;br /&gt;
* &#039;&#039;&#039;Rock:&#039;&#039;&#039; you take a Damage card.&lt;br /&gt;
* &#039;&#039;&#039;Ramming a ship:&#039;&#039;&#039; you score &#039;&#039;&#039;+1 Infamy&#039;&#039;&#039; and the rammed ship takes a Damage card.&lt;br /&gt;
* &#039;&#039;&#039;Whirlpool:&#039;&#039;&#039; forced 90° pivot. &#039;&#039;&#039;Gust:&#039;&#039;&#039; pushed 1 space without changing heading. A gust collision counts as yours, so it can score a ram.&lt;br /&gt;
&lt;br /&gt;
=== Cannon fire ===&lt;br /&gt;
Fire from either side of your ship, up to the range printed on the card. A shot hits the &#039;&#039;&#039;first thing in its path&#039;&#039;&#039;. If it hits a ship, that ship takes a Damage card and you score:&lt;br /&gt;
* &#039;&#039;&#039;Broadside&#039;&#039;&#039; (hits the ship&#039;s side): &#039;&#039;&#039;+2 Infamy&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Raking shot&#039;&#039;&#039; (hits bow or stern): &#039;&#039;&#039;+3 Infamy&#039;&#039;&#039;&lt;br /&gt;
With multiple shots, each one scores separately. You get no Infamy for hitting your own ship.&lt;br /&gt;
&lt;br /&gt;
=== Shipwrecks ===&lt;br /&gt;
Sail onto a shipwreck to collect it as a booty token. You can hold &#039;&#039;&#039;only 1&#039;&#039;&#039; at a time. You can use the resources on it anytime you need to spend resources, but you lose the whole booty token.&lt;br /&gt;
&lt;br /&gt;
== Game end and scoring ==&lt;br /&gt;
* The game ends &#039;&#039;&#039;at the end of the Sea Phase in which the Damage deck runs out&#039;&#039;&#039;. Use spare damage cards to finish that phase.&lt;br /&gt;
* &#039;&#039;&#039;Final Infamy&#039;&#039;&#039; = Infamy gained during the game + active upgrades + Market cards you own (deck, hand and discard) − Damage cards.&lt;br /&gt;
* &#039;&#039;&#039;Ties:&#039;&#039;&#039; most resources wins, then fewest Damage cards.&lt;/div&gt;</summary>
		<author><name>Sumpfork</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Game_art:_img_directory&amp;diff=26889</id>
		<title>Game art: img directory</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Game_art:_img_directory&amp;diff=26889"/>
		<updated>2025-10-21T16:57:33Z</updated>

		<summary type="html">&lt;p&gt;Sumpfork: /* Image Manipulation Tools */ - add &amp;#039;community provided&amp;#039; section with link to card sprite generation python script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Studio_Framework_Navigation}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Metadata images ==&lt;br /&gt;
&lt;br /&gt;
Game metadata images are images of game box, banner, title, etc. These images are no longer stored in project directory.&lt;br /&gt;
&lt;br /&gt;
Metadata images are managed through the [[Game_metadata_manager|Game Metadata Manager]]. After you go there select the link to the game you want to upload images for.&lt;br /&gt;
&lt;br /&gt;
== Game art ==&lt;br /&gt;
&lt;br /&gt;
You must upload in img directory all images of your game interface.&lt;br /&gt;
&lt;br /&gt;
=== Images naming constraints ===&lt;br /&gt;
&lt;br /&gt;
To be correctly deployed your images file names should not contain spaces or parentheses.&lt;br /&gt;
&lt;br /&gt;
=== Images loading ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be careful&#039;&#039;&#039;: by default, ALL images of your img directory are loaded on a player&#039;s browser when he loads the game. For this reason, don&#039;t publish images that are not useful in your img, or it will slow down the game load.&lt;br /&gt;
&lt;br /&gt;
Note that you can tune the way images are loaded with Javascript method &amp;quot;dontPreloadImage&amp;quot; (see [[Game_interface_logic:_yourgamename.js|Game Interface Logic]]).&lt;br /&gt;
&lt;br /&gt;
General recommendation it to have no more than dozen of image files, 2Mb max each. However if there is heavy game resources specific to a player (i.e. player board of specific color or set of cards) it is better to separate them and &amp;quot;don&#039;t pre-load&amp;quot; since in any given game only some of them will be used.&lt;br /&gt;
&lt;br /&gt;
=== Images format ===&lt;br /&gt;
&lt;br /&gt;
You can use these image formats while building your game interface:&lt;br /&gt;
;jpg images&lt;br /&gt;
&lt;br /&gt;
should be used for non-transparent images. Jpg are usually lighter than pngs, so please choose Jpg for big pictures (ex: game board, cards) when you don&#039;t need transparency to accelerate game load. You don&#039;t need transparency for rounded card corners, it can be done using css.&lt;br /&gt;
&lt;br /&gt;
;png images&lt;br /&gt;
&lt;br /&gt;
should be used for images with transparency, such as non-square tokens, meeples, etc (combined into sprite).&lt;br /&gt;
&lt;br /&gt;
;gif images&lt;br /&gt;
&lt;br /&gt;
can be used for animated images. This is not recommended to use gif animated images as they can upset players, but for some specific interface element this could be useful.&lt;br /&gt;
&lt;br /&gt;
;svg images&lt;br /&gt;
&lt;br /&gt;
svg images can be really efficient for icons or abstract images. Note: consider also using font awesome for icons instead of separate asset file.&lt;br /&gt;
&lt;br /&gt;
=== Webp ===&lt;br /&gt;
png and jpg images are automatically converted to webp during deployment. Webp&#039;s are lighter weight.&lt;br /&gt;
&lt;br /&gt;
When requesting a png/jpg file, many modern browsers will specify a preference for webp in their Accept header, and our CDN will comply with this request serving the converted webp image instead of the original png you uploaded. You can confirm which format your browser requests by checking request and response headers for the image in the network tab of your browser&#039;s developer tools.&lt;br /&gt;
&lt;br /&gt;
In rare cases, this can cause a problem because the conversion is lossy.&lt;br /&gt;
&lt;br /&gt;
If and only if this does cause a problem, then you can capitalise the first letter of your image&#039;s extension, &amp;lt;code&amp;gt;.Png&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.Jpg&amp;lt;/code&amp;gt;, and reference &amp;lt;code&amp;gt;image.Png&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;image.png&amp;lt;/code&amp;gt; in the CSS. This will bypass the webp conversion and ensure you use the original image. This should not be done unless it is required.&lt;br /&gt;
&lt;br /&gt;
=== Use background-size ===&lt;br /&gt;
&lt;br /&gt;
In order to allow for players to use the browser zoom without your images becoming pixelated, it&#039;s recommended to use higher resolution images than needed for the normal display of your interface, and to use the css property &#039;&#039;&#039;background-size&#039;&#039;&#039; to fit the image to the size you need for your interface.&lt;br /&gt;
&lt;br /&gt;
=== Use CSS Sprites ===&lt;br /&gt;
&lt;br /&gt;
To limit the number of images load and make the game load faster, you must use CSS sprites, i.e. you must gather several images in a single one. However, there are limitations. Do not make any CSS image sprite with dimensions that exceed 4096x4096 pixels or it will not work on mobile devices (Android max texture size is 4096 pixels, test your own browser at [http://webglreport.com/ WebGL Report]).&lt;br /&gt;
&lt;br /&gt;
To learn more on CSS Sprites:&lt;br /&gt;
* [http://www.w3schools.com/css/css_image_sprites.asp CSS sprites (W3C documentation)].&lt;br /&gt;
* [[Game interface stylesheet: yourgamename.css]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; the maximum image size should be 4096x4096 (otherwise, some devices may not display parts of the image, see https://stackoverflow.com/questions/34682482/what-is-the-maximum-sprite-sheet-size-i-can-use-for-android-devices)&lt;br /&gt;
&lt;br /&gt;
Tools:&lt;br /&gt;
* Sprite Generator https://www.toptal.com/developers/css/sprite-generator/&lt;br /&gt;
* Another Sprite Generator https://www.finalparsec.com/tools/sprite_sheet_maker&lt;br /&gt;
&lt;br /&gt;
=== Shrink images ===&lt;br /&gt;
&lt;br /&gt;
If you get high resolution images from publisher you need to shrink them since web display requires much lower resolution than printing.&lt;br /&gt;
&lt;br /&gt;
* Shrink images size without visible loss of quality &lt;br /&gt;
** Offline tool for PNG: https://pngquant.org/ &lt;br /&gt;
** Online tools for PNG/JPG: https://tinypng.com/ or http://www.iloveimg.com/ or https://squoosh.app/&lt;br /&gt;
** Online tool for SVG: https://jakearchibald.github.io/svgomg/&lt;br /&gt;
&lt;br /&gt;
== Image Manipulation Tools ==&lt;br /&gt;
&lt;br /&gt;
You have no choice but to use one of the image manipulating tools to create a successful game adaptation, you would have to&lt;br /&gt;
deal with&lt;br /&gt;
* Converting to supported formats&lt;br /&gt;
* Adding transparency &lt;br /&gt;
* Stitching&lt;br /&gt;
* Shrinking with no quality loss&lt;br /&gt;
* Resizing&lt;br /&gt;
&lt;br /&gt;
For that you need a good tools, recommended tools (if you know more add them here)&lt;br /&gt;
* Gimp (all platforms) - general GUI image editor&lt;br /&gt;
* Paint.net (Windows) - general GUI image editor&lt;br /&gt;
* ImageMagic (All platforms) - https://www.imagemagick.org/script/download.php - command line image editor, great for mass manipulations and scripting&lt;br /&gt;
&lt;br /&gt;
AI tools are very good at editing photos with minimal prompting too.&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PDF to png convertion (linux)&lt;br /&gt;
 gs -sDEVICE=pngalpha   -o output.png -r600 -dDownScaleFactor=3 input.pdf &lt;br /&gt;
&lt;br /&gt;
PDF to jpg using image magic and cropping page&lt;br /&gt;
 montage -colorspace sRGB -density 300 -geometry 452x+0+0 -tile 5 -crop 82x87%+130+126 input.pdf  output.jpg&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
PSD Extraction (image magic - CMYK to sRBG - one layer per file)&lt;br /&gt;
 for i in *.psd; do  convert  $i -profile /usr/share/color/icc/colord/sRGB.icc   `basename $i .psd`.png; done;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tiling - The order of the images will match the &#039;ls&#039; order. If needed change the filenames if you need a specific order.&lt;br /&gt;
&lt;br /&gt;
 montage -colorspace sRGB -density 300 *.png -tile 6 -background transparent ../tokens.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PDF scrabber (linux) - extract all graphics file from pdf&lt;br /&gt;
 pdfimages my.pdf prefix-&lt;br /&gt;
&lt;br /&gt;
=== Online tools ===&lt;br /&gt;
&lt;br /&gt;
PSD extraction (adobe file format)&lt;br /&gt;
&lt;br /&gt;
 https://www.photopea.com/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seamless background (for tiled background wallpaper)&lt;br /&gt;
&lt;br /&gt;
 https://www.imgonline.com.ua/eng/make-seamless-texture.php&lt;br /&gt;
&lt;br /&gt;
Download game assets from tabletop simulator&lt;br /&gt;
&lt;br /&gt;
 https://www.npmjs.com/package/ttsbackup&lt;br /&gt;
&lt;br /&gt;
=== Community Provided ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/sumpfork/seas_of_havoc_boardgamearena/tree/main/misc/tools/extract_cards This python script] shows how to make card sprite images for BGA from a one-card-per-page pdf:&lt;br /&gt;
** reads the pages from a pdf document&lt;br /&gt;
** crops each pages to exclude bleed etc.&lt;br /&gt;
** removes duplicate images based on a difference in histograms&lt;br /&gt;
** converts to a target resolution&lt;br /&gt;
** assembles the resulting images into a single one given a number of rows and columns&lt;br /&gt;
** saves as any format that Pillow supports (e.g. jpg or png)&lt;br /&gt;
&lt;br /&gt;
[[Category:Studio]]&lt;/div&gt;</summary>
		<author><name>Sumpfork</name></author>
	</entry>
</feed>