You are welcome, and I am glad you were able to fix your issue. Happy development! :)
CookieBadger
Creator of
Recent community posts
Hello denisvergara@outlook.com, did you make sure after adding the plugin to the addon folder to:
- add a new empty C# script, to let Godot know that this is a C# project and show the build button?
- Click the build button (little hammer icon) next to the play button?
I went ahead and tried the plugin again in 4.2.2mono and 4.3rc2mono, and in both versions I was able to install the plugin without problems. I also used the latest .NET version (6.0.424).
Hello denismedia, did you make sure after adding the plugin to the addon folder to:
- add a new empty C# script, to let Godot know that this is a C# project and show the build button?
- Click the build button (little hammer icon) next to the play button?
I went ahead and tried the plugin again in 4.2.2mono and 4.3rc2mono, and in both versions I was able to install the plugin without problems. I also used the latest .NET version (6.0.424).
I am happy to hear that you were able to solve your issue. The warning you get now should not be a problem, and only appear when you open the project. If it annoys you, you can change all instances of "EditorPlugin.GetEditorInterface()" with "EditorInterface". The reason for the obsolete code is backward compatibility with Godot 4.0.
unfortunately, I cannot tell how to fix your issue from this information. Since it happens in a new project, I suspect there might either be a problem with your .NET installation (maybe try upgrading it to a newer version), or with the version of Godot you downloaded (make sure it is the mono version). If the problem persists, you may contact me here so we can try to do some deeper troubleshooting.
Hello Relic, can you try if it gives you the same error if you add the plugin to a new project? Also, can you send me the contents of your .csproj file inside your project, to see if you have any unusual configuration there?
Please also make sure you precisely followed each of the installation steps here:
https://cookiebadger.github.io/assetplacer-docs/installation.html
Hello Michael,
1. Your guess is right, you would have to make multiple scenes (using inherited scenes could work very well). However, you can also press Alt+Click to place and select the object, so you can quickly change inspector settings, and SPACE to immediately reselect the asset for another placement, which might also be a fast workflow if you only have to change a few properties.
2. Snapping works at absolute world position, so if your snap step is set to 1 and you are placing on the XZ plane, you can snap at the XZ coordinates (0,0), (0,1), (1,0), (1,1), (0,2), etc. The offset now helps you offset this absolute snap step by a certain amount, so if you want, say, an offset of 0.3 each on X and Z, your objects would be placed at (0.3, 0.3), (1.3, 0.3), (2.3, 0.3), (0.3, 1.3), etc. You can only configure an absolute step, so the offset cannot adapt to what exactly "half the object's width" would be with your current object, but if you only use objects of the same size, then the offset that you can configure should work fine.
I hope this answers your questions!
Hello psucram!
I think you would probably be able to write a plugin, or an editor script, that could automatically generate the collisions. You can also manually edit the .import files of your models, which can also save you a lot of time. Other than that, I am afraid I can not help you with this, but I wish you good luck for your project!
Hello AXiON,
That is a strange issue, I never had anything like this happen, also you are right, the plugin should be ignored when running a scene, as none of its scripts are actually contained in any scenes. #if TOOLS to my knowledge should exclude the plugin from the project when you export it, I am unsure about its behavior when running from the editor. I will investigate this further when I have the chance, for now I assume the best workaround in your case is to disable the plugin before running the scene. Sorry for the inconvenience.
Unfortunately, the plugin doesn't support MultiMeshInstances yet. I once toyed around with a MultiMesh tool, but the performance gains that I was able to achieve were so minimal, that I temporarily dismissed my progress. My idea was to make an Open Source plugin for combining instances of the same mesh, that would work together with AssetPlacer.
Unfortunately I cannot directly tell where your issue is, from that information. Any of the following might help you:
- Make sure you followed the installation steps carefully, especially the "build" part (https://cookiebadger.github.io/assetplacer-docs/installation.html). Notice the small build button next to the play button in Godot 4.2.2.
- If this does not help, remove the addon, but also remove the "mono" folder inside the ".godot" folder in your projects root directory. Then, add plugin again and build. It should work now.
- Otherwise, try the plugin in a new project, to see if the issue is related to your project and let me know your findings.
I hope this helps!
Ok, since this error is clearly not supposed to happen, may I ask you also tell me the version of .NET, and the contents of your .csproj file? I am not sure, but it may help to go into your project folder, go into the .godot folder and delete the "mono" folder inside. After that, try if recompiling fixes the issue. Please also check if there is only one assetplacer copy in your project, and that it is where it is supposed to be.
Hey WungielPolacz! The plugin itself should neither have too large of a performance footprint on your development nor should its use be encumbered much when using high-fidelity assets. What you have to take into account though, is that Godot itself (and other Engines as well) needs to be able to handle all assets that are used. If your scene would, for example, have a thousand realistic trees, that are just instanced as nodes (which the plugin does), you will eventually notice your speed tree to go down, and your frames drop, if you do not take any optimization measures (using LODs, editing with lower viewport resolution, etc.). Hence, if you place an asset that takes a few seconds to instance, than AssetPlacer will be as slow as Godot. If you had no problems using these high-fidelity assets in the quantities you need so far, AssetPlacer should handle them fine. One thing to note, however, is the size of libraries. The more assets, and the more complex they are, the longer loading their thumbnails will take. I recommend having no more than a hundred assets per library. As for surface placement, your objects have to include collisions, as of AssetPlacer 1.2.x.
Regarding the support and updates of the plugin, I can assure you that it will continue, and is in my professional plans for at least this and next year. You have to take into the account, that as of this year, I am still a university student, maintaining this project on the side, and I like to also do not-for-profit work, like contributing to the Engine (I recently worked on Godot's AnimationPlayer) and making free plugins.
I hope this clarifies your doubts, and I could maybe convince you to give AssetPlacer a try! If you have any more questions, please go ahead.
~ CookieBadger
Hello Banana!
Of course I could try to highlight all the features, but if my plugin is worth your money is ultimately your decision :)
The last update was a compatibility, but I do plan to add more features in the future (many people have requested scattering, for example).
I can't guarantee when these are going to be implemented, but I hope to make some updates this year for sure - just know that I'm a student doing this on the side (and the time around new year's is especially hard with assignments and exams). Actually the plugin was an artifact of my Bachelor's Thesis, but I kept improving and adding to it, until I was confident enough to sell it.
Rest assured, the plugin as is will be made compatible with all Godot 4.x versions in the near future.
I hope to make more video content as well, I just didn't find time - also the added stuff was not as substantial to justify the effort, but in the meantime you can see it in action a bit in a video a friend made:
https://mastodon.art/@vukbo/111700043306101099
I hope this gave you some insights, if you have any other questions, I'll be here for you ^^
Cheers,
Cookie
Hello DistilledNuance!
Thanks for your comments, I take them into account. First of all, you are absolutely correct about the mono version. Then, about the filter system, I'm happy to let you know, that I'll include a basic one in the next version. As to the randomization, I hear this a lot, and so once I'll have the resources available, I'll think of how to implement one.
Best,
Hello flow!
I'm sorry for the late reply. I think you can fix the error by opening the PreviewRenderingViewport script, replacing line 18 with
[Export] private Godot.Environment _environment;
and then removing line 11, that says
using Environment = Godot.Environment;
Don't forget to save and press the "Build" button in the top right corner of Godot afterwards.
Please let me know, if this fixed your issue. I will then include this fix in the next version accordingly.
Hey Taobis, great to hear you got it working! Indeed, pressing the build button should do exactly that, although the button often does not show up the first time you open the project, so thanks for the tip of going through Project -> Tools.
I'm very happy that you like the tool, and I wish you all the best for your creations. I will definitely support it as long as I can.
Cheers
Hey!
What you are asking for is basically a Scattering tool. I don't know if I will ever integrate one, although it is frequently asked for, reason being that many free alternatives exist, such as SpatialGardener, Zylann's Scatter, ProtonScatter, or the built-in MultiMesh "populate surface" tool. At the moment, I can't achieve the sophistication of SpatialGardener if I tried tried to integrate something similar, so I advocate for using a different tool, instead of waiting for AssetPlacer to provide the functionality.
I hope this helps!