Skip to content

Conversation

@github-actions
Copy link
Contributor

@github-actions github-actions bot commented Jan 9, 2026

Description

A comprehensive "Plug-and-Play" weapon system for 3D FPS and TPS games. This extension bridges the gap between 2D UI (Crosshairs) and 3D World Space.

Key Features:

  • Hybrid Architecture: Supports both Physical Projectiles (Bullets/Rockets) and Hitscan (Instant Lasers/Snipers).
  • Smart-Aim System: Uses Normalized Device Coordinates (NDC) to calculate the exact vector from the camera through the 2D crosshair. This fixes parallax errors and ensures 100% accuracy regardless of screen resolution or aspect ratio.
  • Physics Integration: Includes a custom "Gravity Scale" property, allowing specific weapons (like Snipers) to have low bullet drop while others (Grenades) have high drop, independent of global gravity.
  • Robust Ammo Cycle: Manages Clip Size, Current Ammo, Reserve Ammo, and Auto-Reload logic.
  • Time-Scale Safe: All timers (Fire Rate, Reload) use the Scene Time Manager, ensuring weapons pause correctly when the game is paused or in slow-motion.

How to use the extension

  1. Setup: Add the Firebullet3D behavior to your Gun object.
  2. Properties: Configure your Clip Size, Fire Rate, and Gravity Scale (0 = Straight flying, 1 = Normal physics drop).
  3. Logic:
    • Use the condition "Is Gun Ready To Fire?" to check cooldowns and ammo.
    • Use the action "Spawn Bullet" or "Shoot Hitscan Ray".
    • Important: Drag your UI Crosshair object into the "Crosshair" parameter of these actions to enable the Smart-Aim accuracy.
  4. Reloading: Use the "Reload Gun" action to trigger the reload timer.

Checklist

  • I've followed all of the best practices.
  • I confirm that this extension can be integrated to this GitHub repository, distributed and MIT licensed.
  • I am aware that the extension may be updated by anyone, and do not need my explicit consent to do so.

Example file

gdevelop-game.zip

Extension file

FireBullet3D.zip


Extension by @pokeunite

You can update the extension on this "Pull Request" by commenting the update command: in the comment field, type !update, then drag and drop a zip file with your extension file in the commenting field, like how you initially submitted the extension. It should look like this:

!update [MyExtension.zip](https://github.com/GDevelopApp/GDevelop-extensions/files/12709661/MyExtension.zip)

It can take a few seconds for the file to fully upload and show as the above. Once it is like shown above, click "Comment" and let the bot do the rest!

@github-actions github-actions bot added the ✨ New extension A new extension label Jan 9, 2026
@github-actions github-actions bot requested a review from a team as a code owner January 9, 2026 17:06
@D8H D8H mentioned this pull request Jan 9, 2026
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ New extension A new extension

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants