{"id":"chicken-ahm-12/world-weaver","name":"world-weaver","scope":"chicken-ahm-12","platform":"roblox","description":"A powerful terrain generation tool for roblox that helps you generate procedural terrain to your liking, similar to minecraft","version":"0.10.1","latest":"0.10.1","versions":["0.1.0","0.10.1"],"license":"Apache-2.0","licenseRating":"safe","licenseCaveats":["Modified files must carry a notice of changes. If the package ships a NOTICE file, its attributions must be preserved."],"licenseVerified":true,"dependencies":{},"integrity":"b707ed1496fed3a502d3691b9d61a6964cec337ebcd8f77c1a5ef62232d1156e","likes":0,"downloads":0,"install":"forest install chicken-ahm-12/world-weaver","url":"https://forest.dev/p/roblox/chicken-ahm-12/world-weaver","files":"https://api.forest.dev/ai/package/roblox/chicken-ahm-12/world-weaver/files","readme":"# WorldWeaver\r\n\r\nA powerful roblox terrain generation tool that lets you generate terrain procedurally. It provides you with an extensive set of settings that allow you to generate the type of terrian you want, with the type of biomes you want, similar to how minecraft works.\r\n\r\n# Getting Started\r\n\r\n### Proper Paths\r\nMake sure the paths to modules are properly sourced. Especially the one sourcing the Painting module in Generator:\r\n\r\n```lua\r\n-- Generator.luau\r\nlocal Painting = require(script.Parent.Painting)\r\n```\r\n\r\n### Create a script\r\nFirst write a script and make variables linking to the Modules Settings and Generator:\r\n\r\n```lua\r\nlocal Settings = require(path_to_settings_module)\r\nlocal Generator = require(path_to_generator_module)\r\n```\r\n\r\n### Create a settings object\r\n\r\nInitialize a Settings object by running:\r\n\r\n```lua\r\nlocal new_Settings = Settings.new()\r\n\r\n-- Changes to these new settings (Interpolation Values to be specific)\r\n-- should be made here\r\n\r\n-- ///////\r\nnew_Settings:BuildCache() -- this is necessary for proper smooth terrain\r\n```\r\n\r\nThis ensures you can make different settings (such as different size, amplitudes, etc)\r\nto your liking or if there different maps at different places within the server,\r\nthose maps could each have their own settings.\r\n\r\n## Generate Terrain\r\n\r\n#### Step 1: Find this command box\r\n\r\n![](snapshots/Step1PermaGenerate.png)\r\n\r\n#### Step 2: Paste your generation script (Where you create the settings object, make your desired changes and input into the generator, here\r\n\r\n![](snapshots/Step2PermaGenerate.png)\r\n\r\n#### Step 3: Run\r\n\r\n![](snapshots/Step3PermaGenerate.png)\r\n\r\nvoila! run the script and watch your terrain generate realtime!\r\n\r\n# Best Practices\r\n\r\n### Generate test worlds\r\n\r\nInstead of running in terminal, you could make a proper server script with proper paths and then generate a test world by playing the game. once you are satisfied with the generated map after tweaking it, you can save those settings in a script for future use and if you want to generate right away, copy those changes (or script) and generate in the terminal.\r\n\r\n### Save the settings of different kinds of maps\r\n\r\nAs stated above, if you like different maps with different characteristics, biomes etc (that you added or changed), you should save them in a script so you don't have to keep thinking what to change to achieve the same map that you did in the past.\r\n\r\n### Size on all axis are better off equal\r\n\r\nAlthough this is not strictly necessary.\r\n\r\nThere are size parameters that control the size of your terrain:\r\n```lua\r\nSettings.MapWidth = 600\r\nSettings.MapBreadth = 600\r\n```\r\nThe best practice that ensures your terrain generates without hiccups would be\r\nto make these values equal, that is:\r\n```lua\r\nSettings.MapWidth = 300\r\nSettings.MapBreadth = 300\r\n```\r\n\r\n### Size should be a multiple of division\r\nThis setting is what controls how much area (in this case 600 by 600) will be generated in a single moment:\r\n```lua\r\nSettings.CaveDisabledMapDIV = 600 -- or 300 whatever you like\r\n```\r\nMake sure your width and breath are a multiple of this (in our case a multiple of 600):\r\n```lua\r\nSettings.MapWidth = 600 -- or 1200 or 1800\r\nSettings.MapBreadth = 600 -- or 1200 or 1800 \r\n```\r\nor it should be less than the division itself\r\n```lua\r\nSettings.MapWidth = 300 -- or 175 or 500\r\nSettings.MapBreadth = 300 -- or 175 or 500\r\n```\r\n\r\n### Don't go for too many blocks\r\nif the size is too large (like 1200 by 1200) roblox will\r\nhave a hard time closing and or will lag after a good while in run-time\r\n\r\nthe best way to deal with this would be to create your own\r\nchunk loader and unloader that generates a certain chunk and \r\nungenerates other (this might come in future updates)\r\n\r\nIn any case a size of 600 by 600 or 800 by 800 is a very big map in of itself\r\nso you don't need to worry about that in first place.\r\n\r\n### Use Roblox's in built terrain generator for generating large maps\r\n\r\nIf you want to make maps as large as 2000 by 2000 studs or More, you should use Roblox's\r\nin built terrain generator by setting:\r\n\r\n```lua\r\nSettings.useInBuiltTerrain = true\r\n```\r\nThough you would be better off setting fast blend to true as well for faster and efficient calculation of terrain:\r\n\r\n```lua\r\nSettings.fastBlend = true\r\n```\r\n\r\n### FastBlend or normal Blend?\r\n\r\nYou can choose any, and see whose results you like the more. Normal blend blends more whereas\r\nfastblend gives more characteristics to biomes. Both look nice in their own way, so it is subjective.\r\nAlthough, if you are generating very large maps, going with fast blend is better.\r\n\r\n# Snapshots\r\n\r\n## (Smoothify = false) + (useInBuiltTerrain = false)\r\n\r\n![Generated_Terrain](snapshots/Snap_1.png)\r\n![Generated_Terrain](snapshots/view.png)\r\n\r\n## (Smoothify = true) + (useInBuiltTerrain = false)\r\n\r\n![Generated_Terrain](snapshots/smooth_block.png)\r\n\r\n## (Smoothify = false) + (useInBuiltTerrain = true)\r\n\r\n![Generated_Terrain](snapshots/blocky_notSmooth.png)\r\n\r\n## (Smoothify = true) + (useInBuiltTerrain = true)\r\n\r\n![Generated_Terrain](snapshots/smooth.png)\r\n\r\n\r\n","readmeTruncated":false}