{"id":5015,"date":"2026-07-22T23:59:22","date_gmt":"2026-07-22T21:59:22","guid":{"rendered":"https:\/\/candy-arts.com\/?page_id=5015"},"modified":"2026-08-17T06:22:41","modified_gmt":"2026-08-17T04:22:41","slug":"candy-loot","status":"publish","type":"page","link":"https:\/\/candy-arts.com\/index.php\/candy-loot\/","title":{"rendered":"Candy Loot"},"content":{"rendered":"\n<p class=\"has-text-align-center has-background has-small-font-size wp-block-paragraph\" style=\"border-top-style:none;border-top-width:0px;border-right-color:var(--wp--preset--color--white);border-right-width:100px;border-bottom-style:none;border-bottom-width:0px;border-left-color:var(--wp--preset--color--white);border-left-width:100px;background-color:#fccf004f;margin-right:0;margin-left:0;padding-top:10px;padding-right:0px;padding-bottom:10px;padding-left:0px\"><strong>Coming Soon!<\/strong><br>Candy Loot is scheduled for release in August 2026.<br>Stay tuned for updates!<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-6488167e wp-block-columns-is-layout-flex\" style=\"padding-right:0;padding-left:0\">\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66%\">\n<h2 class=\"wp-block-heading\">Candy Loot<\/h2>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<div class=\"wp-block-buttons is-horizontal is-content-justification-right is-layout-flex wp-container-core-buttons-is-layout-13f386c9 wp-block-buttons-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-right:0;padding-left:0\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link has-background wp-element-button\" style=\"background-color:#a1a1a1\"><br>Buy Now<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center has-vivid-cyan-blue-color has-text-color wp-block-paragraph\"><strong>Advanced Random Outcome Generator<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Candy Loot is a random generator algorithm.<\/strong><br>Despite the name, it isn&#8217;t limited to creating random loot lists: it can be used to generate random outcomes for any purpose, such as characters, encounters, or procedural world locations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It works by using a nested tables design, which are simple GDScript dictionaries that possess their own, individual configuration parameters.<br>It&#8217;s compatible with any game made in Godot 4, no matter what kind of inventory system you use, or the items that your game features.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Writing code that selects random values isn&#8217;t complicated, but a well-crafted random generator tool is invaluable and isn&#8217;t as simple to design.<br>The value Candy Loot provides is the amount of control it gives you over probabilities and potential outcomes, its computing performance, and the included testing tool:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Configure drop amounts: minimums, maximums and weighted ranges.<\/li>\n\n\n\n<li>Make items always drop together or mutually exclusive.<\/li>\n\n\n\n<li>Various draw options: independent\/relative weights, discard\/recast&#8230;<\/li>\n\n\n\n<li>Multiple loot stacking options, with enforceable stack limits.<\/li>\n\n\n\n<li>Use variable references and expressions for table parameters, to be resolved at runtime <em>(requires Candy Dialogue Engine)<\/em>.<\/li>\n\n\n\n<li>Write and read tables in external .txt files.<\/li>\n\n\n\n<li>Testing tool provides helpful stats on the odds and outcomes of loot tables. Results can be exported to CSV files.<\/li>\n\n\n\n<li>Very fast performance: tens of thousands of draws can resolve nearly instantly.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Note that Candy Loot is not an inventory management system.<\/strong> It only generates arrays of random data (e.g. items or character attributes). It&#8217;s your game&#8217;s responsibility to use that data for specific purposes (e.g. add the items to the player&#8217;s inventory, or create a character from the generated attributes).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For more information, see below!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-default\" style=\"margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60)\"\/>\n\n\n\n<div class=\"wp-block-group has-light-green-cyan-background-color has-background is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-ef5d2655 wp-block-group-is-layout-flex\" style=\"border-top-left-radius:48px;border-top-right-radius:48px;border-bottom-left-radius:48px;border-bottom-right-radius:48px;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--70)\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>Light &amp; Easy<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adding Candy Loot to your project couldn&#8217;t be easier: drop it in your project folder, then add one script as an autoload in your project settings. That&#8217;s it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Querying the algorithm is just as simple: call a function, and pass it 2-3 arguments to define which table to use and what logic to follow.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The only real work you&#8217;ll do is configuring the loot tables. These are just GDScript dictionaries, and they can do a lot with very little.<\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-default\"\/>\n\n\n\n<div class=\"wp-block-group has-pale-cyan-blue-background-color has-background is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-ef5d2655 wp-block-group-is-layout-flex\" style=\"border-top-left-radius:48px;border-top-right-radius:48px;border-bottom-left-radius:48px;border-bottom-right-radius:48px;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--70)\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>Full Game Compatibility<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Candy Loot can work with any game or project. It doesn&#8217;t require a specific inventory system, and it doesn&#8217;t care what type of items exist in your game.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is made possible by the fact that it knows what its scope is, and it stays focused on it: to generate a list of random outcomes (items). It doesn&#8217;t overreach by trying to sort items into your inventory system, or deciding what your item database should look like: that should be fully controlled by your game.<\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-default\"\/>\n\n\n\n<div class=\"wp-block-group has-light-green-cyan-background-color has-background is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-ef5d2655 wp-block-group-is-layout-flex\" style=\"border-top-left-radius:48px;border-top-right-radius:48px;border-bottom-left-radius:48px;border-bottom-right-radius:48px;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--70)\">\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\"><div class=\"wp-block-media-text__content\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong><strong><strong><strong><strong><strong><strong><strong><strong>Simple Design<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tables work by organizing items into &#8216;Packs&#8217;, which are just smaller dictionaries. Packs can contain other Packs, creating a nesting hierarchy that gives the Candy Loot algorithm a lot of it power.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Packs also feature a small number of keys to configure how loot is drawn: drop chances, amounts, or draw method. These keys are optional, in order to keep loot tables small and simple.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Together, these features enable infinite possibilities.<\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><a href=\"https:\/\/candy-arts.com\/wp-content\/uploads\/2026\/08\/Example-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"638\" src=\"https:\/\/candy-arts.com\/wp-content\/uploads\/2026\/08\/Example-2-1024x638.png\" alt=\"\" class=\"wp-image-5775 size-full\" srcset=\"https:\/\/candy-arts.com\/wp-content\/uploads\/2026\/08\/Example-2-1024x638.png 1024w, https:\/\/candy-arts.com\/wp-content\/uploads\/2026\/08\/Example-2-300x187.png 300w, https:\/\/candy-arts.com\/wp-content\/uploads\/2026\/08\/Example-2-768x478.png 768w, https:\/\/candy-arts.com\/wp-content\/uploads\/2026\/08\/Example-2.png 1354w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-default\"\/>\n\n\n\n<div class=\"wp-block-group has-pale-cyan-blue-background-color has-background is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-ef5d2655 wp-block-group-is-layout-flex\" style=\"border-top-left-radius:48px;border-top-right-radius:48px;border-bottom-left-radius:48px;border-bottom-right-radius:48px;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--70)\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong><strong><strong><strong><strong><strong><strong><strong><strong>Draw Modes<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Candy Loot can use different modes for drawing loot: <strong>Independent<\/strong>, where each item has its own chances of being drawn, or <strong>Relative<\/strong>, where a limited number of items are drawn among a larger pool.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Further options allow you to assign weights to items or remove their entries from the pool &#8212; with customizable number of entries to remove!<\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-default\"\/>\n\n\n\n<div class=\"wp-block-group has-light-green-cyan-background-color has-background is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-ef5d2655 wp-block-group-is-layout-flex\" style=\"border-top-left-radius:48px;border-top-right-radius:48px;border-bottom-left-radius:48px;border-bottom-right-radius:48px;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--70)\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong><strong><strong><strong><strong><strong><strong><strong>Adjustable Odds and Amounts<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can of course configure the chances of each item of being drawn, either as an absolute percentage or as a weight relative to other items.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can also precisely configure the amounts items can be drawn in, using ranges or absolute values, but also the odds of each amount.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lastly, you can define maximum caps to how many times items can be drawn.<\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-default\"\/>\n\n\n\n<div class=\"wp-block-group has-pale-cyan-blue-background-color has-background is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-ef5d2655 wp-block-group-is-layout-flex\" style=\"border-top-left-radius:48px;border-top-right-radius:48px;border-bottom-left-radius:48px;border-bottom-right-radius:48px;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--70)\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong><strong><strong><strong><strong><strong><strong><strong>Join &amp; Exclude Items<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Need to make sure weapons drop with matching ammunition, or that defeated enemies never drop more than one piece of armor?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The nested tables design allows you to ensure specific items are always drawn together or can never be drawn together.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s very intuitive to setup too: just create a table for each weapon + ammo combo, or place multiple items in a table that is configured to draw only one.<\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-group has-light-green-cyan-background-color has-background is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-ef5d2655 wp-block-group-is-layout-flex\" style=\"border-top-left-radius:48px;border-top-right-radius:48px;border-bottom-left-radius:48px;border-bottom-right-radius:48px;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--70)\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong><strong><strong><strong><strong><strong><strong>Dynamic Table Data<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In GDScript, when you assign a variable as a value to a dictionary key, it gets resolved when the dictionary is initialized (i.e. when the game starts or the scene loads). That means if the variable&#8217;s value is later changed, the dictionary won&#8217;t update. This means if you want to design a table to automatically base draw chances or drops amounts on player level or luck, you&#8217;d normally need to re-initialize tables regularly or write code that updates them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>If your project includes Candy Dialogue Engine, it can lend its power to solve this and considerably increase the capabilities of Candy Loot!<\/strong><br>\u2022 Candy Loot tables will be able to include variable references, which will be looked up every time the algorithm draws from tables.<br>\u2022 Even better: tables will be able to include expressions as values, which will also be dynamically resolved each time the algorithm runs, and these expressions will be able to feature variable references!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In other words, you&#8217;ll be able to do make an item&#8217;s drop chances equal to 3 * player_level, or its amount equal to 0.5 * player_luck, or anything else that variable references inside expressions enable!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><sub><strong><em>Please note that Candy Dialogue Engine, and a corresponding license, is required for this. The features described here will work even if you don&#8217;t use Candy Dialogue Engine for dialogues: the code just needs to be present in your project so Candy Loot can access it. Candy Dialogue Engine is a big addition, but it provides a lot of powerful features that you might find invaluable. Candy Dialogue Engine can be downloaded and tested for free: payment is only required for commercial use, and it&#8217;s free for non-commercial projects.<\/em><\/strong><\/sub><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-group has-pale-cyan-blue-background-color has-background is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-ef5d2655 wp-block-group-is-layout-flex\" style=\"border-top-left-radius:48px;border-top-right-radius:48px;border-bottom-left-radius:48px;border-bottom-right-radius:48px;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--70)\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong><strong><strong><strong><strong><strong><strong>Outputs<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Candy Loot&#8217;s algorithm keeps things simple: it outputs drawn items as an array, along with their amounts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Stacking options that respect your defined stack limits are also available.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your game code can then easily take these outputs and work with them as needed, such as assigning items to a character&#8217;s inventory, in accordance with your project&#8217;s own system or database.<\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-group has-light-green-cyan-background-color has-background is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-ef5d2655 wp-block-group-is-layout-flex\" style=\"border-top-left-radius:48px;border-top-right-radius:48px;border-bottom-left-radius:48px;border-bottom-right-radius:48px;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--70)\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong><strong><strong><strong><strong><strong>Not Just Loot<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Candy Loot is called that way because it was originally designed for generating random loot, but the algorithm really is a general random outcome generator and nothing in the code constrains it to loot only.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"text-decoration: underline;\">Some examples of alternative uses<\/span>:<br>\u2022 Generate item stats (condition, color, level, bonuses&#8230;).<br>\u2022 Generate characters (name, skills, physical appearance, personality traits&#8230;).<br>\u2022 Generate world location properties (terrain type, objects, buildings&#8230;).<br>\u2022 Generate events\/encounters (NPC type and number, encounter type&#8230;).<br>\u2022 And more &#8212; world lore, factions, quests&#8230; The algorithm should be suitable for anything that requires random\/procedural generation.<\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-group has-pale-cyan-blue-background-color has-background is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-ef5d2655 wp-block-group-is-layout-flex\" style=\"border-top-left-radius:48px;border-top-right-radius:48px;border-bottom-left-radius:48px;border-bottom-right-radius:48px;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--70)\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>Testing Tool (Table Sampler)<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-995f960e wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-1f26014c wp-block-group-is-layout-flex\">\n<p class=\"wp-block-paragraph\">If you&#8217;ve worked with random generation tables before, you know creating them is only half of the work: the other half is <strong><em>testing<\/em><\/strong> the tables to make sure the drop rates and amounts are accurate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Perhaps you&#8217;ve previously spent hours writing code that could read tables and calculate drop rates, or maybe you just chose to test by launching your game and looting items repeatedly, and just guessing if the rates felt right. Maybe you even took the extra step of painstakingly entering drop results into a spreadsheet editor by hand.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Candy Loot has you covered:<\/strong> a testing script is included, which can sample any table you designed. It simulates as many samples as you want, and it displays detailed numbers and stats so you can see the average outcomes very clearly, all from inside the Godot editor, without having to run your game!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It even offers an option to export the data to <strong>CSV<\/strong> <strong>files<\/strong>, so you can share the results with colleagues or import them to your favorite spreadsheet software. It includes various export options, including the ability to append new results to previous files in case you need to expand your sample size.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<div class=\"wp-block-group is-horizontal is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-85274b0f wp-block-group-is-layout-flex\" style=\"min-height:0px;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0\">\n<figure class=\"wp-block-image size-full has-custom-border\" style=\"margin-top:0;margin-bottom:0\"><img loading=\"lazy\" decoding=\"async\" width=\"403\" height=\"782\" src=\"https:\/\/candy-arts.com\/wp-content\/uploads\/2026\/07\/Test-Output-2.png\" alt=\"\" class=\"wp-image-5145\" style=\"border-style:none;border-width:0px\" srcset=\"https:\/\/candy-arts.com\/wp-content\/uploads\/2026\/07\/Test-Output-2.png 403w, https:\/\/candy-arts.com\/wp-content\/uploads\/2026\/07\/Test-Output-2-155x300.png 155w\" sizes=\"auto, (max-width: 403px) 100vw, 403px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\" style=\"margin-top:0;margin-right:0;margin-bottom:0;margin-left:0\"><img loading=\"lazy\" decoding=\"async\" width=\"305\" height=\"772\" src=\"https:\/\/candy-arts.com\/wp-content\/uploads\/2026\/07\/Test-Output-3.png\" alt=\"\" class=\"wp-image-5146\" srcset=\"https:\/\/candy-arts.com\/wp-content\/uploads\/2026\/07\/Test-Output-3.png 305w, https:\/\/candy-arts.com\/wp-content\/uploads\/2026\/07\/Test-Output-3-119x300.png 119w\" sizes=\"auto, (max-width: 305px) 100vw, 305px\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-group has-light-green-cyan-background-color has-background is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-ef5d2655 wp-block-group-is-layout-flex\" style=\"border-top-left-radius:48px;border-top-right-radius:48px;border-bottom-left-radius:48px;border-bottom-right-radius:48px;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--70)\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong><strong><strong><strong><strong>Performance<\/strong><\/strong><\/strong><\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;ve worked hard to optimize the algorithm and make it as fast and powerful as possible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s hard to measure precise benchmarks since there&#8217;s many ways tables can be configured, not to mention varying hardware capabilities. But to provide a baseline, our testing on an older, low-end CPU showed the algorithm was capable of making ~<strong>200 000 to 500 000 draws per second<\/strong> even in tables that feature <strong>millions of potential drops<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The actual performance might even be much higher on a modern CPU, or when the algorithm isn&#8217;t running through our testing tool. In any case, that&#8217;s a huge number for any loot generation scenario &#8212; probably overkill.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And if you do need to work with such large numbers of rolls, you can hide any latency by performing rolls slightly ahead of time in the background &#8212; e.g. as soon as the player enters an area rather than when the results are actually needed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To put it in less technical terms: it&#8217;s lightning-fast.<\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-group has-pale-cyan-blue-background-color has-background is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-ef5d2655 wp-block-group-is-layout-flex\" style=\"border-top-left-radius:48px;border-top-right-radius:48px;border-bottom-left-radius:48px;border-bottom-right-radius:48px;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--70)\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong><strong><strong><strong><strong><strong>Pricing<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Indie licenses:<\/strong><br>\u2022 Candy Loot costs <strong>\u20ac10<\/strong> only.<br>\u2022 This includes all Indie license tiers (Free, Starter and Pro), and no additional payment is required when upgrading tiers.<br>\u2022 Indie Licenses are valid for one individual. They last a lifetime and can be used by the same license holder for <span style=\"text-decoration: underline;\">unlimited projects<\/span> without additional payment.<br>\u2022 Indie licenses are a special offer to support small projects, priced considerably below the value our assets provide. See the <a href=\"https:\/\/candy-arts.com\/index.php\/indie-project-checklist\/\" data-type=\"page\" data-id=\"4504\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Indie Project Checklist<\/strong><\/a> to determine if your project qualifies.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Studio licenses:<\/strong><br>\u2022 Candy Loot is a Minor Asset. Studio projects can use our Minor Assets freely as long as they pay a minimum royalty rate of 1%.<br>\u2022 To clarify: Studio projects that already pay 1% or more for the use of other Major or Minor Assets don&#8217;t have to pay additional royalties.<br>\u2022 Studio Licenses apply per project and have no seat, budget or revenue limits. Royalties are calculated on gross revenue. Studio projects that earn 0 pay 0.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Features are identical across <strong>all<\/strong> licenses.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">See our <strong><a href=\"https:\/\/candy-arts.com\/index.php\/licensing\/\" data-type=\"page\" data-id=\"2493\" target=\"_blank\" rel=\"noreferrer noopener\">Licensing<\/a><\/strong> page for more details.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-58cb00a0 wp-block-buttons-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-right:0;padding-bottom:var(--wp--preset--spacing--40);padding-left:0\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link has-background wp-element-button\" style=\"background-color:#a1a1a1\">Buy Now<\/a><\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-group has-palette-color-3-background-color has-background is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-ef5d2655 wp-block-group-is-layout-flex\" style=\"border-top-left-radius:48px;border-top-right-radius:48px;border-bottom-left-radius:48px;border-bottom-right-radius:48px;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--70)\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong><strong><strong><strong><strong><strong><strong>Compatibility<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Godot:<\/strong><br>Candy Loot is compatible with Godot Engine 4.<br>\u2022 It&#8217;s officially supported for Godot 4.4+.<br>\u2022 Godot 4.2 and 4.3 are not officially supported but appear to be fully compatible.<br>\u2022 Godot 4.0 and 4.1 are not officially supported, but a modified version of Candy Loot is provided.<br>\u2022 Candy Tools features only work in Godot 4.3+.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Operating System &amp; Hardware:<\/strong><br>Dependent on Godot: hardware and operating systems that can run Godot can run Candy Loot.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Coming Soon!Candy Loot is scheduled for release in August 2026.Stay tuned for updates! Candy Loot Advanced Random Outcome Generator Candy Loot is a random generator algorithm.Despite the name, it isn&#8217;t limited to creating random loot lists: it can be used to generate random outcomes for any purpose, such as characters, encounters, or procedural world locations. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5015","page","type-page","status-publish","hentry"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":7}},"_links":{"self":[{"href":"https:\/\/candy-arts.com\/index.php\/wp-json\/wp\/v2\/pages\/5015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/candy-arts.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/candy-arts.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/candy-arts.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/candy-arts.com\/index.php\/wp-json\/wp\/v2\/comments?post=5015"}],"version-history":[{"count":89,"href":"https:\/\/candy-arts.com\/index.php\/wp-json\/wp\/v2\/pages\/5015\/revisions"}],"predecessor-version":[{"id":5904,"href":"https:\/\/candy-arts.com\/index.php\/wp-json\/wp\/v2\/pages\/5015\/revisions\/5904"}],"wp:attachment":[{"href":"https:\/\/candy-arts.com\/index.php\/wp-json\/wp\/v2\/media?parent=5015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}