Pummel Party

Pummel Party

Destroy friendships in the Pummel Party Workshop
Build new Boards and Minigames! Share your creations and discover other pummelers friendship ruining handiwork!
Learn More
Krzyhau 3 13 Dec, 2022 @ 8:35am
Potential suggestions for Mod Editor
After using Mod Editor for creating several custom minigames and playing a handful of them, I've stumbled upon several issues that I want to adress in this post.
  • Handling custom logic is kind of tricky. Maybe I've missed something, but I haven't noticed an obvious way to create a logic relay of some sorts, which would execute several actions at once with one action call. I've managed to achieve that effect by having a disabled object with logic component reacting to "Enabled" event, which executes some stuff and disables itself after - such fake relay can be then triggered by calling Set Active action on it. It works nice, but it's a lot of trouble setting things up.
  • Linking objects to actions can be daunting. Just to set external object in an action, you have to go through unselecting default flag and selecting Advanced one, expanding empty list, pressing the button to add a field for an object and finally dragging the object into the field. That's a lot of work for something that's pretty repetitive in cases when you're doing more complicated logic. Additionally, I feel like some default behaviour for dragging and dropping an object onto a field isn't really convenient in some cases, for instance, dragging an object with Audio Player component into the Play Sound action - would be nice if it set the field to the Audio Player component of the object, not Transform component.
  • There should be something - a component or action - for random execution of actions. Currently, you can achieve it by creating a pretty complex setup involving previously mentioned methods for logic relays and timers with random intervals which enable and disable parents of specific logic relays. Again, works fine, but difficult to set up.
  • Currently, it's hard to detect when a new round starts. The way I do it is by spawning players somewhere outside of the map, detecting when they spawn with a trigger, then teleporting them to the actual level. It would be nice to have an event for it.
  • It's also pretty difficult to detect how many players are there and affect game's logic based on it - not sure how that would have to be solved.
  • Removing mods in the editor should be possible from the "open mod" menu - didn't know for a while that you can actually remove mods from a context menu once any mod is loaded.
  • Kind of a side note - double pressing a mod in the list freezes the editor instead of opening the mod.
Overall, minigame editor in current state is pretty powerful, but requires a lot of sketchy workarounds to create anything unique, and I feel like in many cases this working around causes the game to work in a very weird way (I've seen a lot of cases where a minigame had a very unique and fun concept, but could very often break because of some weird things like desync between host and client or simply lags). I imagine it's difficult to find the right balance between making the tools simple to use but also powerful for the user, so I wouldn't be surprised if you disagreed with some of these suggestions, but it's something to at least consider.
Last edited by Krzyhau; 13 Dec, 2022 @ 8:36am
< >
Showing 1-2 of 2 comments
Charlton  [developer] 5 13 Dec, 2022 @ 1:14pm 
Hi Krzyhau, thanks for the detailed suggestions. This type of feedback is really valuable in helping us improve the mod editor so it's greatly appreciated!

I'll address each of your points in order:
  • I may be misunderstanding what you are trying to achieve here. Do you want a way to chain logic components together? You can add multiple actions to a single event, and you can add a delay between them if you need to by using a Wait action. If you want something to happen continuously but randomly you could use a logic component's "Timer" event with a random interval. Then to start/stop that, enabling/disabling the gameobject using other events is the best way to do it. If you really want a way to make one logic component run another then having one enable another is currently the best way to do it as you've found. Looking at your published minigame mod I think you already know most of this so this probably wasn't that helpful. We could look into adding an action to make another logic event run so you don't need to keep adding actions to enable/disable the logic component after each use. There might be a better way to add this though, we'll consider it!
  • This is true, we can look into improving this process.
  • Could this be achieved using a logic trigger's "Timer" event with a random interval? I may be misunderstanding what you'd like to be able to do with this.
  • There is an "On First Spawn" event in Minigame Settings > Player Settings > Event Triggers. This fires once at the start of each round for all players (despite the help text in the editor saying it only fires once per game; that text needs to be updated). We could look at adding more general events tied to a minigame (On Minigame Start, On Round Start) rather than the players but no promises here and it may take some time.
  • This could be related to general minigame events if they were added, maybe events that can be made to fire for only certain player counts? Would need time to look into a good solution for this so don't expect it anytime soon and it may/may not happen. Currently, you can adjust spawn points to only work for certain player counts using the Player Spawn Component's "Player Count Mask" option. This could potentially be used in a hacky way to do different logic per player count by spawning the first player into a different Trigger Component depending on the player count.
  • This is good feedback. More information and options on that screen would be helpful.
  • This is a bug we didn't know about. Thanks for pointing it out, a fix has been created and it will be included in the next patch!

Overall I think you described it perfectly in that it's a balance between trying to make the mod editor both accessible and powerful. We're actively reading the posts here to look for feedback and issues like this to try and improve the mod editor. Thanks again for your great feedback!
- Charlton
Last edited by Charlton; 13 Dec, 2022 @ 1:16pm
Krzyhau 3 13 Dec, 2022 @ 3:04pm 
I've just found out about Event Triggers section in Player Settings, right before reading this message. Obviously it would still be nice to have it as a global event in Logic entity as you mentioned, but at least that's workable.

And yeah, as I said, the possibilities in the editor currently are pretty huge, but it requires lots of hacky workarounds. I imagine it won't be a problem once the community comes up with some clever patterns for creating all sorts of things (heck, look at what Source mappers can do with just logic entities). I'm still scared that it might introduce some weird backend problems with the game not handling all of the wacky combinations of events and actions (the fear being caused by a few of the minigames we played with friends that straight up didn't work properly in online play, but I really couldn't tell if that was internal issue or flawed minigame) but I'm trusting y'all that it won't really get that bad in most cases.

Something I forgot to mention, it would be nice to have some sort of option to rate custom content before/after playing it, or at least have an ability to quickly visit the workshop page.

In any case, great job with the update guys, I'm having a blast messing with these tools!
< >
Showing 1-2 of 2 comments
Per page: 1530 50