This item has been removed from the community because it violates Steam Community & Content Guidelines. It is only visible to you. If you believe your item has been removed by mistake, please contact Steam Support.
This item is incompatible with Another Brick in The Mall. Please see the instructions page for reasons why this item might not work within Another Brick in The Mall.
Current visibility: Hidden
This item will only be visible to you, admins, and anyone marked as a creator.
Current visibility: Friends-only
This item will only be visible in searches to you, your friends, and admins.
Not enough ratings
By The Quadsphere
How to create graphical mods, product mods, and more.
Here are instructions on how to create and publish your own mods for the game. Mods can provide graphical modifications, alternate gameplay conditions and additional content (such as new products).
First things first, you should get yourself familiar with this folder (copy/paste this path to the Windows search bar or the file explorer):
%appdata%\..\Local\Another Brick in the Mall\workshop\
Tip: create a shortcut to this directory on your desktop for easy access.
%appdata%\..\Local\Another Brick in the Mall\workshop\in\mods
create a new folder and give it a unique name for your mod (use latin characters to avoid compatibility issues).
In this new folder, create a new text file (right-click in the folder in explorer and select New > Text Document) and rename it to moddata.xml (remove the .txt extension, the full filename should be moddata.xml).
Tip: Although you can use Notepad to edit moddata.xml, you might want to use a proper XML editor such as Microsoft XML Notepad[www.microsoft.com].
Copy/paste the following code in your moddata.xml file:
<?xml version="1.0" encoding="utf-8" ?>
<english>Your mod's name</english>
<ModAuthor>Your name or nickname</ModAuthor>
<english>A short description of your mod's features</english>
You should replace the content in <nodes></nodes> with your own.
Please note that when a node has <english></english>, it means that it is localizable. Use the API language codes referenced there to add translations as desired. For example, to add a french translation to your mod's name:
<english>Your mod's name</english>
<french>Le nom de votre mod</french>
Next you need an image to showcase your mod in-game and on the workshop (aka the capsule). Create a 1024x576 PNG image and save it as capsule.png in your mod's folder. You can save the image below to serve as a temporary capsule (right-click > Save image as...).
At this point, although your mod does nothing yet, you can test it in-game to verify that it is detected and appears properly. Go to the New game menu and to the Manage mods menu.
If your mod is not there or has errors, you might want to check the console.log file for possible errors, and double check the instructions above.
Tip: if you enable the debug overlay (F1) on the Manage mods menu, the folder names of mods will appear, which might come in handy later.
Graphical mods can 'patch' existing art (sprites, tiles and UI) with custom art.
The game's textures are usually located in
C:\Program Files (x86)\Steam\steamapps\common\Another Brick in the Mall\data
If you installed the game elsewhere, you can access the game's local files from your Steam library: right-click on the game in your library > select Properties > select the 'Local files' tab > press 'Browse local files'.
There are 3 textures there you can patch:
sprites01.png (a 4096x4096 PNG which contains most of the sprites in the game).
Tip: Yes, the bottom half of sprites01.png is empty, it is reserved for content mods. In this section we only want to replace 'vanilla' art.
tiles01.png (a 2048x2048 PNG which contains the tiles, walls and roadwork art for the game).
gui.png (a 2048x1024 PNG which contains the user interface art for the game).
Your patch will be a png image file (give it a relevant name) that will replace art at specified coordinates in a given texture. Of course, it should be located in your mod's folder.
The <GfxPatch> node structure in the XML looks like this:
In this example, the mypatch.png image will be pasted onto the sprites01.png texture at coordinates (0,1280).
Add as many <GfxPatch> nodes as you need within the <ModData> node, and don't forget to add the corresponding png files.
Now for a practical exercise, let's say we want everyone in the game to sport a clown nose (because why not?).
First, locate the noses in sprites01.png and write down their coordinates and the size of the space they occupy.
So the noses occupy a 512x64 space located at coordinates (512,1472). Select the (512x64) area, crop the image and replace the noses with clown noses. You should now have a png image that looks like this:
Save it as clown_noses.png in your mod's folder.
Now your moddata.xml should look something like this:
There you go: characters without noses! If you want to remove eyes, change the offset coordinates to (0,1472). For mouthes (0,1536).
Floor tiles mods
In addition to modifying existing floor tiles as described in the Graphical mods section, you can add extra floor tiles to the game.
Each added floor tile type needs a 512x64 png image with 8 64x64 tile variants (It can be the same tile depending on the style, the game will randomly use one of the variant for each cell the tile is applied to).
<codename> is a unique non-localizable codename for the product. Use latin characters. Do not change after the first publication to the workshop!
<name> is the localizable name of the product.
<specialty_name> is the localizable name of the product's specialty store. This is optional and only used if the <quality_distribution> of the product is 3 or more (Tier 3 demand).
<subtype> is the sub-category of the product. Accepted values are:
2 - Food
3 - Beverages
4 - Household Items
5 - Health and Beauty
6 - Tools and Materials
7 - Electronics and Appliances
8 - Clothing
9 - Media
10 - Press and Print
11 - Plants and Gardening
12 - Misc
13 - Sports and Outdoors
14 - Toys and Games
<display_type> is the type of shelf/display that is used for the product. Accepted values are:
1 - Food shelf
2 - Fridge only
3 - Fridge or food shelf (suitable for drinks)
4 - Table
5 - Cloth rack
6 - Pallet
7 - Non-food shelf
<depletion_rate> is the percentage of stock that is depleted from the shelf when a customer buys an item. Accepted values are: 1 - 100
<base_demand> is the base demand. This value is relative to the demand of all the other products. Accepted values are: 0 - 200
<base_price> is the base value (determines cost/ sell price) of the product. Accepted values are: 1 - 200
<quality_distribution> is the distributed demand for your product between tiers of quality/rarity. It determines if there is demand for a sub-category specialized store, or a product specialized store, or none of these. Accepted values are (with demand for Tier 1/Tier 2/Tier 3):
0 - no specialization (100/0/0)
1 - standard (75/25/0)
2 - high sub-category (50/50/0)
3 - specialty (30/30/40)
4 - high specialty (10/30/70)
5 - no middle (30/0/70) - typically for products in the 'Misc' sub-category
6 - only specialty (0/0/100)
<expires_in_hours> is the expiration time in hours before an item becomes obsolete/expired. Accepted values are: 1 - 240000
<requires_research> is used to tie a product to a research project. Accepted values are:
1 - Cold chain
2 - Alcohol license
4 - Frozen food supplier
5 - Chemical supplier
6 - Clothing supplier
7 - Electronics supplier
8 - Media supplier
9 - Appliances supplier
10 - Tools supplier
11 - Luxury supplier
30 - Tobacco license
31 - Newsagent supplier
32 - Plants and Gardening supplier
33 - E-Cigarettes supplier
<horizontal_gfx> references a 128x128 png with full and half-full representation for the product on horizontally oriented shelves/displays.
<vertical_gfx> references a 128x128 png with full and half-full representation for the product on vertically oriented shelves/displays. (Please note: pallet products do not have a vertical orientation).
<checkout_gfx> references a 32x32 png with a single item to be displayed on the checkout counter.
%appdata%\..\Local\Another Brick in the Mall\workshop\in\mods\1557693902\
It includes demo products for each display type and Photoshop templates to help overlaying your images correctly.
Disable vanilla products
<DisableVanillaProduct> let's you remove a vanilla product from the game's economy. This should come handy for mods or scenarios that aim to completely or partially replace the vanilla products with custom products.
Each <DisableVanillaProduct> node references a vanilla product with the localizable xml name ProductName_*. Here is the code to disable all vanilla products:
You don't have to include all the variables in your mod, you can use only one or a few, the other non-included variables will be set to the default/sandbox value.
Please note that any sandbox setting set by the player from the new game menu will be overridden by gameplay mods.
Also note that, unlike product mods settings, these values are not clamped to ensure run-time safety. Nonsensical values will most likely crash the game or create random, possibly severe, bugs. Use common sense and stress-test your mods before publishing.
<sim_speed> The simulation speed in seconds per minute: how many real-time seconds it takes to advance one minute in-game at x1 game speed. The default value is 1.0 second per minute. Any value under 0.74 is unsupported and will create problems, use at your own risk!
<starting_money> Sets the starting money for a new game.
<demand_mode> 0 - standard demand 1 - random demand
<prices_mode> 0 - standard prices 1 - random prices
<demand_amplitude> How much demand changes for each product.
<demand_frequency> How often demand changes for each product.
<staffneeds_mode> 0 - no staff needs 1 - staff hunger and bladder needs enabled
<rats_mode> 0 - no infestations 1 - mild infestations 2 - severe infestations
<events_mode> 0 - no random events 1 - standard random events 2 - frequent random events 3 - constant random events
<roadwork_fac> <maintenancecost_fac> <margins_fac> <salary_fac> <interest_fac> <foundationscost_fac> <objectscost_fac> Factors (coefficients, multipliers) to various costs, minimum salary and base interest rate.
<storecheckout_time> <selfcheckout_time> <ordercounter_time> <fastfood_eatingtime> <finedining_eatingtime> <coffeeshop_eatingtime> <bar_drinkingtime> <fastfood_cookingtime> <finedining_cookingtime> <toilet_time> The in-game time taken to complete various actions.
<speed_fac> <patience_fac> <sociability_fac> Factors to how efficient characteristics are.
<addskill_fac> Factor to any increase to a worker's experience (skill).
<satisfaction_upmod> <satisfaction_downmod> <hunger_upmod> <hunger_downmod> <bladder_upmod> <bladder_downmod> <nausea_upmod> <nausea_downmod> Factors to statuses increasing (*_upmod) or decreasing (*_downmod).
Publish to workshop
Once you're happy with your mod, copy its folder from:
%appdata%\..\Local\Another Brick in the Mall\workshop\in\mods
%appdata%\..\Local\Another Brick in the Mall\workshop\out\mods
You will now be able to upload it to Steam from the main menu (F1 -> upload/update mod).