Skip to content

brokenrockstudios/RockGameplayEvents

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Star Package License

Officially released on FAB! https://www.fab.com/listings/1a2f6fb0-803d-470f-9989-d75fe98d649f


RockGameplayEvents

A relatively simple direct event system for hooking up instanced actors and ability to broadcast events in the level editor.

This system is inspired by UEFN, Source, and many other game engines that provide a similiar system but sadly UE does not, outside of the Level Blueprint.

The problem we are trying to solve

Connect the output event from an actor, to trigger a function on another actor. Without any required setup, interfaces, or extra components.

Some common scenarios might be as simple as hooking up a lightswitch to various lights, or a lever to unlock a door.

Why you should use this plugin

  • If you want to connect an broadcastable event from an actor to another in the editor.
  • If you want to accomplish this with ANY actor, no components and no interfaces.

TriggerActor: Have an appropriate Delegate(e.g. MulticastDelegate) and to add a URockDelegateConnectorComponent to the actor. This can be added per instanced actor or blueprint attached. ReceiverActor: Have a matching function signature to the trigger's selected delegate.

This system will work with any existing delegates and functions. No registration, no additional setup required.

How does it look in the editor?

image

image

Other solutions

There are other great event systems out there that either solve similiar but different problems or have different design goals.

Lyra's GameplayMessageSubsystem

This works well for a global system that you setup using Channels ahead of time. Good for highscores, and larger sweeping changes Our modified version of it https://github.com/brokenrockstudios/GameplayMessageRouter

Todo: Add more examples here

Supported Delegates

Blueprint:

TODO: Add Image

C++:

// DECLARE_DYNAMIC_MULTICAST_DELEGATE
UPROPERTY(BlueprintAssignable)
FRockTestMulticast OnTestNativeMulticast;
// DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE
UPROPERTY(BlueprintAssignable)
FRockTestMulticastSparse OnTestNativeMulticastSparse;
// DECLARE_DYNAMIC_DELEGATE
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FRockDelegateDynamic OnTestNativeDelegate;

License

Any portions of the code that are not covered by Epic's EULA are licensed under the MIT License, as specified in the LICENSE file.

Credit

Similiar Products

Contribute!

I'd love to further refine or polish this off for a wider audience. I invite everyone to either request features or make suggestions or contribute via PR.

About

A relatively simple event system for hooking up instanced actors and ability to broadcast events

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •