Use this space for questions related to what you're learning. For any other type of support (website, learning platform, payments, etc...) please get in touch using the contact form.
Looking for advice to dive deeper into Godot00ALBHello,
Thank you again for the course; it has been very helpful in understanding the basics of Godot. As I continue working on my project, I’ve encountered more general questions (such as managing collisions, best practices for building environments, etc.), and I’m wondering if you have recommendations on where to look for answers to these kinds of issues.
I understand that this might not be the best place to ask these questions, but I’m not sure where else to post them.
Do you have any specific resources (forums, documentation, books, other courses) or advice on how to explore these topics further?
Thank you in advance for your help,10Nov. 28, 2024
Will you make VFX Secrets 3D?harsh-ferretCould you please let me know if you have plans to create a VFX course for 3D, similar to the one you already have for 2D? I’d really like to understand how to create effects like, for example, ice_spikes :)10Nov. 20, 2024
@tool convenient layer selection causes bugsPeregrinWhen I tried to do the part where the setters update the collision layers & masks, it worked initially, but after attempting the AoE projectile challenge, I ran into an issue where the layers/masks would update wrong or not at all (differed by `Area3D` instance), and I couldn't control any of the layers or masks of any hitboxes or hurtboxes.
For example, the player's hurtbox always reset its collision layers/masks so it was on the Mob layer, and all projectiles would then collide with the player, causing them to call `_destroy()`immediately)
The only solution I managed to find was to remove the `@tool` annotation from all relevant scripts and just update all the things manually.
:(10Oct. 31, 2024
Sentence ChangeStevenYou have this: "and some that don't friendly fire." Maybe change it to: "and some that don't *like* friendly fire."10Sep. 28, 2024
Beginner Impressions on this LessonronidmcI've so far followed the lessons from the Godot 4 2D course through M8 and now through the 3D course up to this point. I feel this lesson is the first time I've considered the concepts "above my head". It feels a little too complex for beginners and while I get the concepts, can read the code, etc., I feel the course gets too *in the weeds* for what the lesson's objective is. This could very well be my own feelings, but I wanted to post my feedback as a more seasoned programmer will likely read through this lesson with little to no difficulty.
As an example, bit flags are being used here as variables but I don't recall the lesson going over that this was really a possibility. The bit flags are also tucked away as supplemental reading but I feel it's important to understand what those are and how they relate to the physics layers to get a good grasp of how to proceed. Learning how they relate to each other felt more like I had to pick up on clues rather than the lesson explaining it to me.
Curious if others feel the same way or if it's a *me* issue with it.60Sep. 28, 2024
My version of Ice_spikes.tscn seems to have shader errors.Brain Siege GameworksI am trying to do the second challenge and have successfully produced a base class and two derived classess. However the ice spikes scene doesn't seem to function and throws three shader errors. They are as follows:
`E 0:00:02:0779 Tokenizer: Unknown character #35: '#'`
`<C++ Source> ice_spikes.tscn::Shader_octm2:11`
`E 0:00:02:0779 set_code: Shader compilation failed.`
`<C++ Error> Condition "err != OK" is true.`
`<C++ Source> servers/rendering/renderer_rd/storage_rd/particles_storage.cpp:1673 @ set_code()`
`E 0:00:02:0972 version_get_shader: Parameter "version" is null.`
`<C++ Source> ./servers/rendering/renderer_rd/shader_rd.h:165 @ version_get_shader()`
30Sep. 16, 2024
Getting an error with the completed project, fireball hits the target but doesn't destroy until it reaches it's full distanceBrain Siege GameworksI'm getting this error:
`E 0:00:03:0761 projectile_3d.gd:57 @ _destroy(): Attempt to disconnect a nonexistent connection from 'Projectile3D:<Area3D#57562629602>'. Signal: 'hit_hurt_box', callable: 'Area3D(projectile_3d.gd)::_on_hit'.`
`<C++ Error> Condition "signal_is_valid" is true. Returning: false`
`<C++ Source> core/object/object.cpp:1416 @ _disconnect()`
`<Stack Trace> projectile_3d.gd:57 @ _destroy()`
`projectile_3d.gd:51 @ _physics_process()`
Any code I might need to post?20Sep. 15, 2024
@tool used in Projectile3D also crashes on Windows and MacOSDédéHi, You have a comment in this lesson about Godot crashing on MacOS when keeping @tool in projectile_3d.gd. Just to let you know that I have the same issue using the Windows version. By removing @tool cleared up the problem on my Windows version as it does with MacOS. 30Sep. 14, 2024
GIF mismatch with the actual code616b2fWhen demonstrating what happens when we set `damage_source` and `detected_hurtboxes` in the Editor, the GIF actually shows something different what would happen when we write the code. HitBoxes 'Player' flag has the value '0b01' and should set the 'Collision Layer' to layer '1' but in the GIF it sets the 'Collision Mask' to '1' instead.
It's not that big of a deal, I only was confused for a second, but thought I will point it out to you.20Sep. 07, 2024
Collision not working for projectiledeserted-walrusI can't figure out what I'm doing wrong. I've copy+pasted your code and it still isn't working. I can have the enemy react to the projectile, but the projectile itself isn't reacting and destroying itself.
I have a link to my project:
[https://drive.google.com/file/d/16y5D8vASqmb50o6E0JH4dlQmpFF6uxP4/view?usp=sharing](https://drive.google.com/file/d/16y5D8vASqmb50o6E0JH4dlQmpFF6uxP4/view?usp=sharing)
20Sep. 07, 2024
Crashing when running a sceneMoKTHey Nathan, can I upload my file somewhere for you to see where I'm going wrong?
At first the issue was the game would load but the mob wouldn't detect the fireballs.
Since I wrote the code the first time, I copied & pasted the given code and tried adjusting the collision shapes, but it crashes when I run the scene.
Not sure where I went wrong, i would repeat this lesson from scratch but I sa lotent alot of time on it and I want to know where I went wrong for next time...
Thanks Nathan!40Sep. 01, 2024
Confused by the terminologystained-wolverineHi!
I've followed the entire section and managed to make everything work, but i dont totally understand how, i am very confused with the terminology used "damage source, hurtbox type and detected_hurtboxes"
I think i understand the "detected_hurtboxes" one; it will only detect colisions for the specific Player or Mob layer, but the other two i dont quite understand what they mean and how everything work together 10Aug. 21, 2024
Player HurtBox not workinghealthy-wolverine```gdscript
@onready var _hurt_box_3d: HurtBox3D = %HurtBox3D
```
```gdscript
func _ready() -> void:
_hurt_box_3d.took_hit.connect(func _on_hurt_box_took_hit(hit_box: HitBox3D) -> void:
_gobot_skin_3d.hurt()
)
```
This is the Player script. I added a HurtBox3D to the player, a HitBox for the dummy, and the signal won't emit. Collision and Mask layers are set up properly in both scenes (I even tried all possible combinations). What did I mess up?30Aug. 20, 2024
First challenge bugged my Godothealthy-wolverineThe collision layer challenged bugged the project. As soon as I open it, the editor force quits. I only got to put an @tool at the beginning of the script. What do I do? 60Aug. 19, 2024
Connecting signals typoTJHi! In the section 'Putting it all together' there is a recap of changes made to `projectile_3d.gd`. Here step 3 is currently as follows:
1. We connect the `area_entered` and `body_entered` signals to the `_on_hit()` function. [...]
But instead of these engine signals we are using the custom signal `hit_hurt_box`
10Jul. 30, 2024
Hitbox / Hurtbox Different Flags & Engine Time Scalewell-to-do-owlHi GDQuest,
I was just curious why the hitbox and hurtbox have different bitwise flags? It did not seem like the lesson went over it if it was intentional.
Currently the hitbox has
`const DAMAGE_SOURCE_PLAYER := 1`
While the hurtbox has
`const DAMAGE_SOURCE_PLAYER := 0b01`
I would have expected them to be consistent, either both be 0b01 or both be 1, and same with the damage_source_mob constant.
---
Another feedback is in the little drop-down menu for *Couldn't I just use the area_entered signal of the Area3D node?*
In the code it states:
```javascript
func shoot() -> void:
# ...
projectile.hit_hurt_box.connect(func (hurt_box: HurtBox3D) -> void:
Engine.time_scale = 0.1
await get_tree().create_timer(0.1 * Engine.time_scale).timeout
Engine.time_scale = 1.0
)
```
With the accompanying text that does not match (text mentions waiting for 0.2 seconds while code is 0.1).
*The `Engine.time_scale` property is a global time scale that affects the speed of the game. Setting it to `0.1` makes time advance ten times slower, creating a slow-motion effect. The code waits for `0.2` seconds and then restores the time scale to `1.0`, making the game run at normal speed again.*
10Jul. 14, 2024
Lesson Q&A
Use this space for questions related to what you're learning. For any other type of support (website, learning platform, payments, etc...) please get in touch using the contact form.