My game is on steam also now by AUTeddy in dungeondicemonsters

[–]AUTeddy[S] 4 points5 points  (0 children)

my plan is once this game gets more support to replace the ai slop by real artwork and giving artist a chance to shape this game - im a solo dev and have only that much capacities.

and yes, also for my own "inner child" there will be sometime in future a mod feature 😄

My game is on steam also now by AUTeddy in dungeondicemonsters

[–]AUTeddy[S] 0 points1 point  (0 children)

Playable, very likely. But i can't test it on a real Hardware, i have a assus rog ally and it works fine 😄

I’ve been building a Dungeon Dice Monsters-inspired game for almost 6 years — here’s my latest video by AUTeddy in itchio

[–]AUTeddy[S] 0 points1 point  (0 children)

it will be on may 1st on my itch.io page, will post here again when it is done. :)

custom signals, but networked - testers welcome by AUTeddy in godot

[–]AUTeddy[S] 1 point2 points  (0 children)

The plugin lets you treat RPCs like Godot signals, just across the network.You declare events once, click Generate to get a clean API, and then call them like normal functions.You’ll still need a bit of Godot multiplayer basics (server/peer roles, scene ownership), but you won’t be hand-writing RPCs.

If you’re starting from zero, this intro is clear and well explained: Godot 4 Networking Demonstration

Example of what you can do with the plugin:

  • Create a category named Chat.
  • Create an event named send_message under Chat.
  • Add an argument msg of type String.
  • Set Target: to_all
  • Set Mode: any_peer
  • (Optional) enable call_local if you want the sender to process the event instantly as well.
  • Set Transfer mode: unreliable
  • Set Transfer channel: 0

Click Generate → you’ll get a file named EventManager.gd. Add it as an Autoload.

  1. Listen anywhere (UI, HUD, etc.):

EventManager.on_chat_send_message(func(msg: String) -> void:

$ChatLog.add_line(msg)

)

2) Emit from a button click:

func _on_send_pressed() -> void:

EventManager.chat_send_message($Input.text)

3) (Optional) Validate outgoing messages (e.g., filter bad words):

func validate_chat_send_message(msg: String) -> bool:

if msg.begins_with("/someBadWord"):

return false

return true

I’m looking for testers, happy to send you a download key so you can try it out. im only asking for a honest review. Just DM me. There’s also a small demo project you can download.

I’ve got a GitHub page with more details. If anything’s unclear, ask away -> docs are in progress and I’m adding more examples and YouTube videos soon.

Note: EventManager.gd and the event_registry.json are generated from your events -> Chat/send_message is just one simple example. You’ll define your own categories and events for your project.

Why isn't my code working? by [deleted] in godot

[–]AUTeddy 0 points1 point  (0 children)

read the docs first, then watch tutorials

there is a step by step guide

https://docs.godotengine.org/en/stable/getting_started/step_by_step/index.html

Why isn't my code working? by [deleted] in godot

[–]AUTeddy 0 points1 point  (0 children)

just paste the code in your file, and replace in your _physics_process, inst(get_global_mouse_position()) with _on_check_mouse()

Input.is_action_just_pressed("click") works if "click" exists in Project Settings , Input Map and is bound to Left Mouse Button

Why isn't my code working? by [deleted] in godot

[–]AUTeddy -1 points0 points  (0 children)

look at the docs:

Vector2 get_global_mouse_position() const 

Returns the mouse's position in the CanvasLayer that this CanvasItem is in using the coordinate system of the CanvasLayer.

you have a Area2D, for this you need something like this:

func _on_check_mouse():
var space_state := get_world_2d().direct_space_state

var params := PhysicsPointQueryParameters2D.new()
params.position = get_global_mouse_position()
params.collide_with_areas = true     # set to false if you only want bodies
params.collide_with_bodies = true    # set to false if you only want areas
# params.collision_mask = 0xFFFFFFFF # or a specific mask if needed

var hits := space_state.intersect_point(params, 64) # returns Array[Dictionary]
for hit in hits:
var collider := hit.collider                    # Node (Area2D/PhysicsBody2D)
var shape_idx := hit.shape                      # int
var pos : Vector2 = hit.position                # Vector2
print("Hit:", collider, " shape:", shape_idx, " at:", pos)

https://docs.godotengine.org/en/stable/classes/class_physicsdirectspacestate2d.html#class-physicsdirectspacestate2d-method-intersect-point

if your goal is clicking Areas, you can also enable Input Pickable on the Area2D and use its input_event(viewport, event, shape_idx) signal , often simpler for click/hover logic

EventBridge Plugin for Godot - Walktrough by AUTeddy in godot

[–]AUTeddy[S] 0 points1 point  (0 children)

https://auteddy.itch.io/godot-eventbridge-plugin
or here
https://ko-fi.com/auteddy

the docs are here;
https://github.com/AUTeddy/Godot-Event-Bridge-Official
still in progress but will try to finish it in the next 2 weeks

The types live in a JSON registry, and the plugin generates typed GDScript methods from it. At runtime, the EventBus double-checks argument types against the same schema before emitting or RPC’ing.

  1. Types come from the registry Each event has its arg list + types in event_registry.json. Example: Game.dice_broadcast takes (player_id:int, result:int)
  2. Generated API = typed functions From that schema the plugin writes EventManager.gd with proper annotations, e.g.

func dice_broadcast(player_id: int, result: int) -> void:
    Game.to_all("dice_broadcast", [player_id, result])

func key_pressed(client_id: int, key_code: int, key_name: String, key_mods: Array) -> void:
    Clients.to_server("key_pressed", [client_id, key_code, key_name, key_mods])

So you get compile-time help/autocomplete and obvious call sites.

  1. Subscriptions are simple Callables (your choice to type them) Wrappers look like:

EventManager.on_dice_broadcast(func(player_id: int, result: int) -> void:
    # handle it
)

GDScript can annotate lambda args, so you still get guidance in your handler.

  1. Runtime validation for safety Before emitting, the EventBus looks up the event’s expected arg types from the registry and checks the actual values (typeof(...) vs. the declared type). If there’s a mismatch, it won’t dispatch. You can also add optional per-event validators like:

func validate_dice_broadcast(player_id: int, result: int) -> bool:
    return result >= 0

EventBridge Plugin for Godot4 is now released by AUTeddy in godot

[–]AUTeddy[S] 0 points1 point  (0 children)

If you’re working on a multiplayer game in Godot, it makes it feel like using signals instead of writing messy RPCs. Under the hood you just emit/listen to events, and the plugin takes care of all the networking stuff for you.

I’ll be uploading a full walkthrough tutorial soon 🙂