For those who missed the presentation of w4os plugin at OpenSimulator Community Conference 2024, here are the transcript and slides of the presentation, with some additional notes and Q&A from the audience.
1. OpenSim setup
We all face the same challenges : getting a fully operational grid, and offer all the features. OpenSimulator core provides the main ones, but not all of them.
You need to install at least a web interface allowing users registration, a web assets server, a couple of helpers and for some, a currency server.
At least half a dozen different applications, each of them from a different project, using different platforms or languages, and even when they use the same language, they use different standards.
2. Graph – OpenSim raw
This is OpenSim « au naturel ».
If you are not familiar with this, nearly each line on this graph requires its own configuration, with its own name conventions when not in its own programming language.
If you are comfortable with this, maybe you should see a doctor. 😉
Some of them even have no implementation at all, only workarounds, like the in-world search, replaced by beacons like OpenSimWorld or the initial HYPEvents project, no viewer integration.
And of course, you need a website, too.
3. And then, they were one…
My first step, years ago, was to consolidate existing helpers and rewrite them to use a single config file. That’s the project « Flexible Helper Scripts ». It is still maintained as a standalone project, in parallel with w4os, as it is in its core.
But it still doesn’t solve the integration with a website.
4. The approach
So here is w4os, a « WordPress interface for OpenSimulator ».
- A one-stop shop for all needs : user registration, grid management, in-world and web helpers.
- Why WordPress ? it’s popular, it’s open source, powerful and multilingual
- Centralized management : no more settings in different places, using different standards, unified installation method
- Easy setup. Well. According to the support requests I got, it’s still not easy enough, though… 😉
5. W4OS plugin structure
W4os plugin centralizes the web interface (registration, initial avatar model, web profile, password change…) and the helpers (in-world search, land sales, classified…) in one place.
It also gives the configs to include in OpenSimulator ini files.
And all of this integrated with the rest of your website, with the same look & feel.
Added comment: w4os in this graph represents the plugin installed on your website, not the website of w4os.org.
4. Avatar registration
The first need is avatar registration. W4os allows users to register an avatar from the website.
Some names can be protected, for example to make sure nobody uses your own name and fake being member of the staff.
Users can choose their initial outfit. You define models by creating and customizing dedicated avatars in-world:
- What they wear will be the appearance of the new user
- Their profile picture will be used on the website for model picking.
- You can define what models are available by a name rule, or select them manually.
The avatar profile displayed in the viewer is also available on the website.
7. Blocks
The big thing in WordPress is the blocks system. It allows you to configure any specific pages, or the template used by all or some pages.
Several widgets are available in the plugin. They are all available either as Gutenberg block (the modern system), shortcodes (available with any theme), or modules for specific themes like Divi.
8. Blocks Examples
Some examples
- Grid info
- Grid status
- Registration form
- Profile page
- Popular places
- Destinations guide
- Web search
9. Splash time
Thanks to the blocks and shortcodes, you can customize your splash page. The page displayed by the viewer as login screen.
I am not particularly proud of Speculoos splash page, it’s a bit busy right there, but that was only my taste a few years ago. It will be easy to switch to a clean display. When I’m decided.
The point is, everything needed is here. I can mix w4os plugin features (the orange grid info boxes on the left, the popular places on the center) with standard WordPress features (the blue latest news on the right). The best of both worlds.
10. Viewer Search
Another fundamental feature is the search. While there are websites dedicated to this, it’s sad not to benefit from the viewer features.
W4os plugin (and more precisely the helpers), allow this. And you can either show results of your own grid, or show results from several grid using the same search engine.
For example by using 2do.directory, but any search engine following the search helper protocol would work.
11. Calendar
The calendar is something I care a lot. It’s integrated, and as for other searches, using 2do.directory or another provider, you can give access not only to your own grid events, but also to other grids.
Added comment: the calendar requires extra steps by design, as publishing an event is neither an OpenSimulator functionality, neither provided by the viewer and not yet by the plugin. Using 2do.directory service allows to share a calendar from a standard service like Google Agenda.
12. Web search
Aside from direct search tabs like “Places” or “Land for sale”, the viewer provides a “web search” tab. The results are provided by the same engine. It allows you to enable search directly through all viewer features, or directly from your website, while maintaining consistency.
13. Destination guide
Destination guide is a small, clean presentation of interesting places, it’s a convenient way to help your members find popular places to go.
The Destination Guide block use the same source format as our in-world Teleport Board project, so you can easy provide the same recommandations in both ways.
14. Most recent features
I always try to enhance the easiness of the plugin. There’s a lot more to do, but it’s getting better every day.
- Different settings pages for each functionality
- Direct link from admin-bar menu
- Detailed instructions everywhere I can
- Localizable
- The plugin itself already includes English and French (frequently revised), as well as Dutch, German, Italian and Portuguese.
15. It’s coming…
And now ? Where are last year’s announced features?
Here is a graph to better understand.
Helpers and web integration are huge. A lot of different things linked together, and each change has implications everywhere. It’s a lot of work for a single person. I am doing my best.
The next thing to come is the separation of avatars and WordPress user accounts, to allow a more flexible approach: either one user/one avatar as currently, or one user/multiple avatars, or avatars managed without required wordpress users.
I work actively on this feature, it will be available in the next weeks and it’s the first step in integrating the features in progress in the Version 3 branch.
16. Thank you
Thank you for your attention.
For more information, you can check:
- https://w4os.org/ the website of the plugin
- https://2do.directory/ the shared search engine and calendar
- Teleport to hop://speculoos.world:8002/lab/ for in-world beacons (2do Events board and the Teleport Board)
Questions from the audience
How secure is connecting WordPress to my grid?
Short answer: as secure as OpenSimulator alone.
The long answer is there: https://w4os.org/security/
Can I put the WordPress website on a different server than OpenSimulator?
Absolutely, as long as it has access to the mysql database
I have already a web interface with my grid, can I use w4os in parallel?
- Most parts of w4os can be enabled or disabled, allowing to use it as a “one shop stop” or complement other integrations. If you need current “fixed” parts to be optional, the best way to ask is to make a request for feature on the issues page of the repository: http://github.com/GuduleLapointe/w4os
- The helpers and 2do Directory are already by design usable independently.
Can I send pictures from in-world to my profile?
- The profile picture used on the web profile page is already fetched from in-world profile
- Thanks to the web assets server, any in-world image can be used in a website, using their UUID.
(somewhat unrelated, but interesting too) What about Joomla interface?
- The Joomla extension for OpenSimulator hasn’t received any update since 2019. Unfortunately, regarding CMS and security, it’s an eternity. I wouldn’t recommend to use any internet solution that old.
- The w4os plugin is modular (and will be even more in v3), and parts of it could be included in Joomla extension, as long as there is a maintainer for this extension (they use very different structures, I am not used to Joomla).
- Particularly, the helpers included in w4os are unaltered code from Flexible Helper Scripts, by design integrable in any other solution.