Skip to content

[Reviewed] [Multiplayer custom lobbies] Customize the interface of multiplayer lobbies#1824

Merged
D8H merged 9 commits intomainfrom
extension/Jurfix/1823
Sep 7, 2025
Merged

[Reviewed] [Multiplayer custom lobbies] Customize the interface of multiplayer lobbies#1824
D8H merged 9 commits intomainfrom
extension/Jurfix/1823

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot commented Sep 5, 2025

Description

Custom lobbies for built-in multiplayer.

Customize the interface of multiplayer lobbies.

Joining will only work if the "join after game starts" setting is enabled, as the game automatically starts after joining a lobby.

How to use the extension

This extension contains a custom lobby list object, just add it to the scene and everything should work, make sure the project is published at least once (eg on gd games) and the "join after start" option is enabled.

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.

What tier of review do you aim for your extension?

Community (Unreviewed)

Example file

CustomLobbiesExample.zip

Extension file

MultiplayerCustomLobbiesExtension.zip


Extension by @Jurfix

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 requested a review from a team as a code owner September 5, 2025 19:20
@github-actions github-actions bot added the ✨ New extension A new extension label Sep 5, 2025
@D8H
Copy link
Copy Markdown
Contributor

D8H commented Sep 6, 2025

Thank you for submitting an extension.

I have some suggestions:

  • You can use the panel sprite button extension. Extensions dependencies are allowed for custom objects because required extensions are installed automatically with the asset.
    • The button variant don't need to be in the asset store. It's embedded into your asset.
  • MouseWheelDelta() should probably be used for the scrolling
  • Mouse wheel is usually proportional to a scroll offset, not the thumb offset (which is dependent of the content length)
  • The "for each instances" in doStepPostEvent seems not to be necessary
  • Should "Activate Button FSM behavior" be renamed "Activate interactions" or something like this?
  • The "Setup" action is private so I guess it's fine, but, usually, it's better to have separated setters to be able to be able to:
    • hide them for compatibility when they no longer make sense
    • make some parameters optional (no call to the setter meaning "keep default value") especially the new ones that may be added in the future.

@github-project-automation github-project-automation bot moved this to Needs review in Extensions review Sep 6, 2025
@D8H D8H added the 🔍 Reviewed extension An extension that is to be reviewed in great detail before merging. label Sep 6, 2025
@D8H D8H changed the title New extension: [Multiplayer custom lobbies] [Reviewed] [Multiplayer custom lobbies] Customize the interface of multiplayer lobbies Sep 6, 2025
@Jurfix
Copy link
Copy Markdown
Contributor

Jurfix commented Sep 6, 2025

  • The button has been replaced with a custom object from the Panel Sprite extension.
  • MouseWheelDelta() is taken into account when scrolling with the mouse wheel, and the list is now shifted by the height of one row per scroll.
  • Unnecessary "for each instances" have been removed.
  • The "Activate Button FSM behavior" action has been renamed to "Activate interactions".
  • The "Setup" action has been split into separate setters.
  • Added a visible "Lobbies Y offset" parameter to the "CustomLobbies" custom object.
    !update MultiplayerCustomLobbiesExtension.zip

@Jurfix
Copy link
Copy Markdown
Contributor

Jurfix commented Sep 6, 2025

Example: CustomLobbiesExample.zip

- Fix scroll activation when the custom object size is changed
- Detect the row margin automatically
- Add a private SetScrollPosition action
@D8H
Copy link
Copy Markdown
Contributor

D8H commented Sep 6, 2025

Changes

  • Simplify the events
  • Fix scroll activation when the custom object size is changed
  • Detect the row margin automatically
  • Add a private SetScrollPosition action

CustomLobbiesExample.zip

I will try to make a pixel-art example and do some additional changes for this.

@GDevelopApp GDevelopApp deleted a comment from github-actions bot Sep 6, 2025
@D8H
Copy link
Copy Markdown
Contributor

D8H commented Sep 7, 2025

Changes

CustomLobbiesExample.zip

@D8H
Copy link
Copy Markdown
Contributor

D8H commented Sep 7, 2025

The new version of the example:
CustomLobbiesExample.zip

Copy link
Copy Markdown
Contributor

@D8H D8H left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks good to me. You can do a final check if you want.

@Jurfix
Copy link
Copy Markdown
Contributor

Jurfix commented Sep 7, 2025

Yes, it looks good 👍

@D8H D8H merged commit 55b4431 into main Sep 7, 2025
2 of 3 checks passed
@github-project-automation github-project-automation bot moved this from Needs review to Added to GDevelop in Extensions review Sep 7, 2025
@D8H D8H deleted the extension/Jurfix/1823 branch September 7, 2025 16:33
@4ian
Copy link
Copy Markdown
Collaborator

4ian commented Sep 8, 2025

Thank you @Jurfix this looks awesome!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ New extension A new extension 🔍 Reviewed extension An extension that is to be reviewed in great detail before merging.

Projects

Status: Added to GDevelop

Development

Successfully merging this pull request may close these issues.

3 participants