A year in review and a decade ahead

  CORE DEVELOPMENT

The large majority of effort in 2019 was put into the development of uMod, which will be replacing Oxide and provide a much more flexible and extensive platform for plugin development and game server modding.

Some of the major developments include...

  • New compiler. The new incremental compiler will upgrade plugins from C# 6 to C# 7, with C# 8 around the corner.

  • New database client and abstraction layer. The new DBAL replaces the Oxide.Sqlite and Oxide.Mysql extensions, making database a first-class citizen in uMod. There is a lot to mention with this, but expect more information when the documentation is released.

  • Unit testing! We have implemented nearly 200 unit tests for uMod core and another 100 tests across the secondary systems. We cannot understate how important this development is. Unit tests have allowed us to iterate quickly over systems that suffered from serious technical debt and dramatically improve uMod while ensuring that we don’t break existing functionality.

  • Coding against interfaces. We have added nearly 60 interface to describe core functionality. These interfaces ensure the core is less brittle, easier to test, and is crucial for the new dependency injection implementation.

  • Dependency injection. Hooks now have the benefit of dependency injection. We will provide more details about this in the upcoming documentation.

  • The old DirectCallMethod implementation for invoking hooks was replaced with a new implementation based on ExpressionTree.Invoke which dramatically improves the flexibility of hook invocation with negligible performance impact.

  • Asynchronous filesystem I/O. One the biggest bottlenecks in Oxide is reading and writing to/from the filesystem on the main thread. An extensive and shiny new filesystem API was added which performs these operations on a background thread which frees up the main thread to do other things.

  • TOML configurations. We have changed uMod (not Oxide) configurations to use the TOML format and added the ability for plugin developers to use TOML in their configuration and localization files.

  • Expanded pooling. Oxide has a very limited pooling system. We have dramatically expanded the pooling options and implemented it throughout uMod to minimize the overall memory footprint.

  • Expanded logging. The Oxide logging system was decent, but not very configurable. The new logging system is much more configurable.

  • String interpolation. With help from LaserHydra, we have implemented a runtime string interpolation system which allows for named variables when formatting strings.

  • There is more, but in total the overhaul is a significant departure from Oxide in many important and fundamental ways. We'll make sure to post more on each change as we move forward.

  SITE DEVELOPMENT

While the focus these past months has been mainly on the uMod core and related tools necessary for everything to come together, we do have a few tidbits we have been working on with the site...

  • Plugin collaboration and patching was added to give developers better options to collaborate without requiring them to use GitHub.

  • ElasticSearch. We implemented the ElasticSearch search engine for plugin and user searching. ElasticSearch dramatically improves the performance and flexibility of searching. More work will be done on expanding this to more systems and improving the ability to search by particular things (like commands or documentation) as time permits.

  • Guides. We have added a new dynamic documentation system called “guides.” The uMod documentation will use this new system. We are incrementally moving all of the documentation to the new dynamic system.

  • Site performance. Calytic is constantly working to make sure the site is performing smoothly and there are little to no interruptions. We've had to deal with a few attacks within the past year, along with some abuse of our site. Tireless!

  • Unlicensed plugin warning. We added a notice to unlicensed plugins to warn server owners and developers about using unlicensed plugins. We will be encouraging plugin developers to apply a permissible open source license to their plugins going forward.

  THE MARKETPLACE

We know that you are all eager to use the Marketplace and sell your work there, we're just as eager to get it launched! A lot of the functionality for the Marketplace hinges on uMod being released along with the tools necessary to make the Marketplace secure, easy-to-use, and reliable.

We will be focusing on the Marketplace more once uMod builds start rolling out for testing to ensure that everything is working and running smoothly for its public launch.

  PLUGIN REVIEWING

We've been working to involve some of our more dedicated community members in the plugin review process for plugins. This will help speed up the approval process and allow the Calytic and myself to focus on the other aspects of the project and website. It's easy to get burnt out, so we certainly appreciate the help!

The purpose of reviewing plugins is to point out potential issues, check for malicious code, and to make sure that the plugin generally follows our general guidelines and standards for public plugins. Please keep in mind that this process is still being developed and fine tuned, so bear with us.

  UNCLAIMED PLUGINS

There are still a few plugins that need some loving attention! If you are a currently an active developer in our community and you are interested helping out by taking over maintaining a plugin or two, take a look at the list of unclaimed plugins. If you have not yet submitted any of your own plugins that have been approved, you won't be able to claim any of these yet.

  ADVERTISE WITH US

Currently there are 15 ad placement spots throughout the site, which can be found where the "Advertise with Us" or existing partner banners are located. Some of these slots are already spoken for, such as the ones currently showcasing Game Server Kings; but if you are interested in advertising with us to support the project, please contact us along with details about what you're looking for and we'll see what we can work out!

game-with-us-1.png

  DISCORD HANGOUT

As many of you have already discovered, we do have a Discord! While we are planning to have the Discord linked/synced with our site eventually, you can for the time being join using this link. Keep in mind that this Discord is not instant chat support, but feel free to chat and get to know some of the community more.

  COMMUNITY HELPERS

We've had a few community members jump in and help with community support, writing guides, reviewing plugins, helping our in Discord, etc. We certainly appreciate the help! If you see one of them around, make sure to say thanks!   


As always, thank you for your patience and being part of our community as it grows! We are excited to finish up our Alpha soon and take uMod into Public Beta!

That's a lot of great news, impressive stuff. 
Awesome stuff Wulf! Great work by you and the team.
Hi Wulfy
Such an announcement! Thank you everyone for contributing to uMod in any way, including any plugin developers and etc :)

Really nice read.
Nice to hear that you are not totally burnt out :o)

btw.
Discord...
"you can for the time being join using this link" (what link ?)



Merged post

A while ago I actually tried to find the discord link on Patreon because that is where I support you guys and Patreon sent me a mail about Discord link as a benefit, but I guess that isn't really set up or maintained.
5d485c0d7001e.png?uid=5d485c56dcf2c FuelStream

Discord...
"you can for the time being join using this link" (what link ?)

Fixed, thanks!
I am excited to see what 2020 holds for UMod, especially TOML support. Super user-friendly, should help with guides as well. Excellent update Wulf :)
We appreciate your continue support, Oxide was a great mod and uMod is steadily becoming a great replacement
i love Umod and find its a great source for Rust plugins but i feel like by the time the marketplace is enabled rust will already be a dead game.
tomhud
i love Umod and find its a great source for Rust plugins but i feel like by the time the marketplace is enabled rust will already be a dead game.

Good thing uMod is and will be for more than just Rust! ;)

The Marketplace is still a priority, but uMod needs to be released before the Marketplace can be.

It really needs postgres support....  mysql is sadly lacking in functionality...
and having worked with "Oracle" on large installations,
it's not a company I personally trust to "do the right thing".. the beancounters are an absolute menice....
5e7c5648be6ee.jpg razorfishsl
It really needs postgres support....  mysql is sadly lacking in functionality...
and having worked with "Oracle" on large installations,
it's not a company I personally trust to "do the right thing".. the beancounters are an absolute menice....
That's something we can consider adding support for with uMod, not Oxide.
5e13a8d5b2bc5.jpg Wulf
That's something we can consider adding support for with uMod, not Oxide.

It is well worth is........   The Query capability on joins is way better..... 
so much so... Gitlab.. said "stuff it to  mysql" support....
now it's only postgresql.

Question on the Marketplace when finished.. Any thought on how to handel when adding a plugin to the Marketplace and somone else adding a remake to the plugin section?