Release Notes
Up-to-date changelog for Carbon's production builds.
Last updated
Up-to-date changelog for Carbon's production builds.
Last updated
Latest production release build changelog based on the production
branch.
This build is targeted at the general public.
Released on 14.11.2024 0:45AM GMT+2
[
NEW
] AddedConfigVersionChecks
override to BaseModule, enabled by default. [NEW
] Added CuiRawImageComponent.SteamId property which is used for placing the steam avatar on the image. [NEW
] Added defaultmoderator
group which gets auto-granted/revoked when players are in/out the auth-level 1 group. [NEW
] Added early injection of a new player in the permissions database onCanUserLogin
. [NEW
] Added pooling across all instances where CarbonEventArgs is passed through our processors. [NEW
] Added SelectiveEAC module - disabled by default, permission and group based system selectively allowing admin users to enter aserver.secure 1
server bypassing EAC authentication. [FIXED
] Vanish Module: Always perform Enter/Leave triggers properly when vanished. [FIXED
] Vanish Module: Fixed players vanishing on Cargo Ship or other parent triggers being detached. [FIXED
] Fixedc.reload
not attempting to load up unloaded plugins. [FIXED
] Fixed certain same-named hooks getting fired when they shouldn't in plugins/modules. [FIXED
] Fixed Lang NRE (thanks Kulltero!). [MISC
] Vanish Module: Made vanishing and unvanishing effects configurable. [MISC
] Fullscreen tabs for config editing when doing setup wizard. [MISC
] Improved analytics performance. [MISC
] Notify user when a compilation started upon runningc.load
orc.reload
on an unloaded file. [MISC
] Pooled various instances of CarbonEventArgs and ModuleEventArgs. [MISC
] Record constructor failure as a compilation failure once thrown (Thank's BugMan!). [MISC
] Shifted preinit callback to fire before the constructor. [REMOVED
] ModeratorTools Module: Removed obsolete patch. [REMOVED
] Removed obsoletePoolEx
methods.
[NEW
] Added c.grant group xx *
and c.revoke user xx *
(wildcard) options.
[NEW
] Added obsolete attribute on custom dictionary/stringbuilder Carbon pool methods (will be removed on Nov. 7th 2024).
[NEW
] Added Plugins.GetAllNonAlloc.
[NEW
] Added SelectiveEAC module - disabled by default, permission and group based system selectively allowing admin users to enter a server.secure 1
server bypassing EAC authentication.
[FIXED
] Admin Module: Fixed setup wizard with latest changes.
[FIXED
] Fixed situations when hooks accessing the permissions system in the CanUserLogin user access and refreshing is too late.
[UPDATED
] Improved Carbon.Entities.
[UPDATED
] Improved ImageDatabase performance and reliability.
[UPDATED
] Renamed Optimisations to Circular Networking since that's what it is.
[NEW
] Admin Module: Added player wetness properties to the Entities and Players tab.
[NEW
] Gather Manager Module: Include caught fish and scale collected amount based on module settings.
[NEW
] Added PoolEx.FreeRaycastHitList
used by the codegen system (possibly a bandaid fix).
[NEW
] Added ImageDatabase.Queue for singular images (key/url or just url).
[NEW
] Added more timer formats to Countdown (according to https://github.com/Facepunch/Rust.Community/pull/63).
[NEW
] Added multiple plugin name support for c.reload
, c.unload
and c.load
commands (eg. c.reload PluginA PluginB PluginC
).
[NEW
] Added NotoSansArabicBold to Carbon's CUI.
[NEW
] Added pooling to ImageDatabase and sped processing up from 500ms to frame time.
[FIXED
] Admin Module: Fixed Codefling thumbnails and larger scale thumbnail (as well as first frame of gifs are being now used).
[FIXED
] Corrected multithreaded notice/informative logging color (grey).
[FIXED
] Fixed CUI server induced client NRE (this also fixes CUI updating): Forcefully serialize all properties instead of skipping defaults.
[FIXED
] Fixed plugin class and namespace identification: fixes cases where plugins would have nested namespaces or other types above the main plugin type.
[FIXED
] Fixed situations where default plugin messages/lang phrases would be loaded multiple times.
[FIXED
] Fixed whenever having skipassetwarmup_crashes
enabled, Carbon would be executing OnServerInitialized too early.
[UPDATED
] Admin Module: Updated the 'Local' subtab to 'Installed' under the Plugins tab.
[UPDATED
] Updated c.reload
: No longer recompile manually reloaded plugins if there are no changes, and reuse runtime assemblies of said plugins to create the plugin type instance.
[UPDATED
] Updated c.reload
: Recompile if script watchers is disabled.
[UPDATED
] Updated c.reload
: Recompile the plugin if profiler tracking status changed for the scripts.
[UPDATED
] Updated Carbon's logging system to print logs executed in different threads to Rust's native output log.
[UPDATED
] Updated DepotDownloader to use the latest commit.
[UPDATED
] Updated various repositories with respect to the new Facepunch.Pool
updates.
[UPDATED
] Updates to Carbon's Assemblies
and dynamic library monitoring.
[MISC
] No longer print suggestion log in console if the command string is null or empty.
[REMOVED
] Admin Module: Removed server event toast config.
[REMOVED
] Removed Carbon.Assemblies Unload
calls.
[REMOVED
] Removed extra clears for Carbon's PoolEx extensions (since Rust's Facepunch.Pool handles it all now).
[NEW
] Added Carbon.Defines.GetHooksFolder
.
[FIXED
] Fixed lang
NRE.
[FIXED
] Fixed Carbon NuGet to use the latest API key (yearly renewed) and removed old versions.
[FIXED
] Fixed issue in CallHook with the object array of arguments, using index 13 instead of 12.
[FIXED
] Fixed issue where admin module not storing quick actions to file when changed.
[UPDATED
] Changed loading of plugins to finalize before Asset Warmup and only load Asset Warmup when all Carbon systems are online.
[UPDATED
] Close the file panel before executing the OnConfirm/OnClose callbacks (so users don't click on buttons multiple times if the action takes a while).
[UPDATED
] Optimized Carbon.Community.Protect
to cache its values using the input as key.
[UPDATED
] Renamed TimerFormats -> TimerFormat.
[UPDATED
] Upgraded Microsoft.CodeAnalysis.CSharp from 4.9.0-3.final prerelease: Upgraded Microsoft.CodeAnalysis.CSharp from 4.9.0-3.final prerelease -> 4.10.0.
[UPDATED
] Upgraded Roslyn from 4.9.0 -> 4.12.4.
[MISC
] Initial iteration at adding summary comments across the entire project.
[MISC
] No longer add post batch failed requirees multiple times.
[REMOVED
] Removed Carbon.Common.Client.
[REMOVED
] Removed unnecessary copyright notice from the top of each file since it falls back to the project license.
[REMOVED
] Removed various unused references from unrelated repository projects.
[NEW
] Added UnsubscribeAll
and GetHookSubscribers(string identifier)
to patch manager.
[NEW
] Added File browser module.
[NEW
] Added Profiler serialization and comparison mode (protocolized).
[FIXED
] Fixes, improvements and optimizations to Community.Protect
.
[UPDATED
] Updated c.harmonymods
to use Carbon's Assemblies
.
[MISC
] Filtered out command execution for no_input
(default value of key binds without a command defined).
[MISC
] No longer post process converted by default harmony mods as all the logic happens in the converter.
[MISC
] Profiles store non-incremented values of incrementative assemblies which get used for comparison purpose.
[REMOVED
] Removed Carbon.Common.Client from compiler whitelist.
[NEW
] Added Carbon.Assemblies which tracks ALL Carbon processed assemblies.
[FIXED
] Fixed del
command patch not properly error handling.
[FIXED
] Fixed certain errors occurring in LoadPlugin when plugin was invalid/non-existent.
[FIXED
] Fixed multi-word Carbon Auto convar values not properly applying upon restart.
[FIXED
] Fixed Profiler incrementals.
[FIXED
] Various fixes in the ImageDatabase module.
[UPDATED
] Improvements to the newly implemented Carbon Integration Test system.
[MISC
] No longer attempt to convert Harmony mods if they're processable.
[MISC
] No longer default to ClientPanels.OverlayNonScaled, which affects existent CUI panels.
[MISC
] No longer run OnDisabled / OnEnabled on modules when using c.loadmodule
.
[MISC
] No longer save data + groups when SetLanguage happens.
[MISC
] Optimized C4C model networking to use Rust's snapshot system.
[MISC
] Show more accurate warning in the Carbon profiler tab when things went wrong upon boot.
[MISC
] Show more accurate warning in the Carbon profiler tab when things went wrong with its loading.
[MISC
] Updated cleanup process upon data + group saving and cleared leftover memory whenever it happens.
[MISC
] Various ImageDatabase improvements & callback fixes.
[REMOVED
] Removed scaling in ImageDatabase (fixing GDI+ issues).
[NEW
] Added Carbon self-updating and according configuration.
[NEW
] Admin Module: Added confirmation dialog whenever changing hostname (Carbon tab).
[NEW
] Admin Module: Added max players option with confirmation (Carbon tab).
[NEW
] Admin Module: Added Plugins tab vendor reliant and informative error handling for endpoints in case they go down.
[NEW
] Added BaseHookable.ManualSubscriptions
.
[NEW
] Added c.custommapname
which changes the map displayed in the server browser (CarbonAuto).
[NEW
] Added c.lang
which sets the server language.
[NEW
] Added Plugin.ManualCommands
and BaseModule.ManualCommands
.
[NEW
] Added admin and player default group error handling for if it becomes null upon config loading.
[NEW
] Added Carbon analytics config option (enabled by default - it's entirely anonymous and helps us improve).
[NEW
] Added Carbon module and extension hotloading (and respective file watching configurations).
[NEW
] Added Overall, OverlayNonScaled and UnderNonScaled client panels to Carbon's CUI.
[NEW
] Added Unity Component cache Carbon component.
[NEW
] Allow custom parent string in CreateContainer (CUI) (thanks SegFault!).
[FIXED
] Admin Module: Fixed CanAccessAdminModule hook.
[FIXED
] Fixed OnPlayerCommand
not firing at the right time.
[FIXED
] Fixed hook argument resizing causing inconsistency and data loss to argument values.
[FIXED
] Fixed logging issue where exception logs are being printed only on RustPlayer hookables when there are commands or timer failures.
[FIXED
] Fixed malformed material in the Carbon Profiler CUI.
[UPDATED
] Renamed ICarbonModule to IModulePackage
.
[UPDATED
] Renamed ModLoader.LoadedPackages -> ModLoader.Packages.
[MISC
] Admin Module: Remember session information upon closing and reopening the Admin module instead removing temporary information.
[MISC
] Changed all CarbonAuto float/integer variables to be multipliers relative to vanilla value.
[MISC
] Flipped source viewer horizontal scrolling.
[MISC
] Made suggestive chat command messages lang configurable.
[MISC
] Preload covalence on sleeping players when the server initializes.
[REMOVED
] Removed c.fetchhooks
until more thorough testing is done whenever using it.
[REMOVED
] Removed c.unitystacktrace
config and enabled it by default.
[REMOVED
] Removed Column
from Failed plugins section under c.plugins
and merged it with Line (line:column
format).
[NEW
] Added command aliases - c.assignalias myalias realcommand
, c.unassignalias myalias
, c.aliases
.
[NEW
] Admin Module: Added background blur and opacity settings to Admin module.
[NEW
] Admin Module: Added display name to Carbon Auto variables (present in Admin module configurations tab).
[NEW
] Admin Module: Added Teleport2OwnedItem button on players (Entities and Players tab).
[NEW
] Added c.harmonymods
printing a full list of mods and patches created by the mods.
[NEW
] Added c.harmonywatchers
(enabled by default).
[NEW
] Added c.whymodded
and c.gocommunity
.
[NEW
] Added craft duration multipler - Carbon Auto (c.craftingspeedmultiplier_nowb
, c.craftingspeedmultiplier_wb1
, c.craftingspeedmultiplier_wb2
, c.craftingspeedmultiplier_wb3
).
[NEW
] Added default aliases: harmony.load -> c.harmonyload
, harmony.unload -> c.harmonyunload
.
[NEW
] Added Harmony patching and unpatching support for assemblies.
[NEW
] Added Suggestions algorithm (Levenshtein) component - grants 3 suggestions for chat and console inaccurate commands.
[NEW
] Added 'Unknown command' message when executing invalid commands with valid prefixes.
[FIXED
] Fixed Carbon not initializing properly when server.autouploadmap
is disabled.
[FIXED
] Fixed conflicting issue with BaseHookable.Type
by renaming it to BaseHookable.HookableType
.
[FIXED
] Fixed edge case issue with case insensitive hook and method names.
[FIXED
] Fixed Harmony mods not properly patching when hotloaded.
[FIXED
] Fixed NREs in IPlayer's RustPlayer.
[UPDATED
] Renamed BaseModule.GetEnabled()
to BaseModule.IsEnabled()
.
[MISC
] Automated hook building process for Community and Oxide remotely updated hooks.
[MISC
] Create debug internal files if plugins are marked partial regardless of the debugger attached status.
[MISC
] Include aliases in console command suggestions.
[MISC
] No longer refresh the whole panel when toggling chart layers (only individual elements).
[MISC
] No longer reload the entire module when saving an Admin module edited config.
[REMOVED
] Removed o.
and oxide.
filtering and config.
[REMOVED
] Removed o.
command analytics.
[REMOVED
] Removed unused Carbon updater.
[NEW
] Added native Mono Profiler.
[NEW
] Admin Module: Added Profiler tab with exporting support.
[NEW
] Admin Module: Added Carbon Auto variables in the Admin module configuration tab.
[NEW
] Admin Module: Added DisableConsole option to Carbon's config.
[NEW
] Admin Module: Added fade gradient effect across the entire Admin module CUI.
[NEW
] Admin Module: Added maximize button for Admin module.
[NEW
] Admin Module: Added notifications.
[NEW
] Admin Module: Added source viewer.
[NEW
] Added adminmodule.profiler.use
, adminmodule.profiler.startstop
and adminmodule.profiler.sourceviewer
permissions.
[NEW
] Added c.safezonerecycletick
CarbonAuto ConVar.
[NEW
] Added c.show perm (value)
which lists all players and groups that have that permission granted.
[NEW
] [Added c.usergroup addall|removeall group](optional-modules/added-
c-usergroup-addall|removeall-group.md): Added c.usergroup addall|removeall group
which adds/removes all players from/to a group.
[NEW
] Added carbon/logs/profiler
for profiler exports.
[NEW
] Added Init
, LoadDefaultMessages
, Loaded
, OnLoaded
and Unload
hook metadata.
[NEW
] Added OnServerCommand
metadata.
[NEW
] Added OnUserGroupAdded
and OnUserGroupRemoved
metadata.
[NEW
] Added CarbonModule.AutoPatch.
[NEW
] Added CarbonNative.
[NEW
] Added Chart graphic component.
[NEW
] Added conversion for return types.
[NEW
] Added instantiated sampling for basic and timeline profiling (separated).
[NEW
] Added Oxide AutoPatch attribute and implementation (compatibility).
[NEW
] Added platform info on the startup log regarding Rust and Carbon build information.
[NEW
] Added Profiler analytics.
[NEW
] Added ScrollView support for Carbon's CUI.
[NEW
] Added ScrollView/Scrollbar support for Rust's UI.
[NEW
] Added Source Viewer component.
[NEW
] Added SourceCode bank (cached and fast c# source code decompilation component).
[NEW
] Added stopwatch pooling to our PoolEx extensions.
[NEW
] Added support for method type (getter/setter..) for our HookAttribute.
[FIXED
] Fixed CarbonAuto initializing too late.
[FIXED
] Fixed CarbonAuto not saving properly.
[FIXED
] Fixed compatibility with ScrollViews (Oxide).
[FIXED
] Fixed GenericPosition NRE in IPlayer.
[FIXED
] Fixed inaccurate data in the Timeline graph (the side values for call times).
[FIXED
] Fixed OnCompilationmFail and OnConstructorFail description.
[FIXED
] Fixed WebRequests throwing invalid callback errors.
[UPDATED
] Admin Module: Revamped range UI options in Admin module.
[UPDATED
] Renamed Community.Runtime.CorePlugin
to Community.Runtime.Core
.
[UPDATED
] Updated CarbonAuto to no longer force the server with the modded tag.
[UPDATED
] Updated hook updater to use carbonmod.gg
hosting for protocol-based hook downloading on server boot.
[MISC
] Admin Module: Clamp Admin module minimum auth level (0 - 3).
[MISC
] Admin Module: Lock cursor only when spectating asleep players.
[MISC
] Compressed carbon
and modded
Steam tags.
[MISC
] Disabled chart shadows by default (shadows 0).
[MISC
] Improved and fixed various issues with the Profiler (timeline).
[MISC
] Made tweaking c.defaultserverchatname
, c.defaultserverchatcolor
and c.defaultserverchatid
to no longer mark the server modded.
[MISC
] Observe Task exceptions (prints exceptions on GC collections).
[REMOVED
] Removed c.plugintrackingtime
(obsolete).
[REMOVED
] Removed HarmonyInstance-related replacers from all parsers.
[REMOVED
] Removed TimeAverageGeneric (obsolete).
[NEW
] Added built-in Oxide migration process.
[NEW
] Admin Module: Added language editor (plugin phrases).
[NEW
] Admin Module: Added Quick Actions to the main Carbon tab.
[NEW
] Admin Module: Added Configuration tab permission (adminmodule.config.use).
[NEW
] Admin Module: Added 'Empower Stats' button in the Players tab (sets all stats to highest).
[NEW
] Admin Module: Added player and entity position map coordinates to Admin module.
[NEW
] Added c.unloadonfailure
Compiler configuration.
[NEW
] Added partial searching to c.plugininfo
, c.moduleinfo
& other instance specific commands.
[FIXED
] Admin Module: Fixed Codefling verification and spam.
[FIXED
] Fixed CallHook NRE when using CallHook<T>
with the return of a null value.
[FIXED
] Fixed Compat GetMessage
(thanks Patrette!).
[FIXED
] Fixed IPlayer.Object not being properly assigned (Covalence).
[FIXED
] Fixed permission registration when reloading Admin Module (and its config).
[UPDATED
] Updated to Harmony 2.3.3.0.
[UPDATED
] Admin Module: Include item ID and shortname in the Items tab, and make them copyable.
[UPDATED
] Updated c.hooks
to include various more information regarding its hooks and overall performance.
[UPDATED
] Updated c.savemodulecfg
and c.loadmodulecfg
(previously 'config').
[UPDATED
] Updated c.version
(include Rust build date), c.build
, c.commit
and c.protocol
(and exposed them for auth level 0).
[UPDATED
] Updated OnCompilationFail(ModLoader.FailedCompilation
parameters.
[UPDATED
] Updated and cleaned up c.plugins
and c.modules
.
[UPDATED
] Updated various instances where we're using ClientRPC to use RpcTarget (Rust update).
[MISC
] Don't unload plugins when re-compilation fails (by default, configurable).
[MISC
] Slightly revamped WebRequest async method functionality.
[MISC
] Various Covalence compatibility improvements.
[REMOVED
] Disabled c.reloadextensions
and c.reloadmodules
.
[REMOVED
] Removed c.filenamecheck
and implementation.
[REMOVED
] Removed base module shutdown debug message.
[NEW
] Admin Module: Added Items tab to Carbon's configuration page (can create custom items).
[NEW
] Admin Module: Added Reload button on installed Plugins.
[NEW
] Admin Module: Added Rust backpack looting hooks and logic (follow on-screen instructions).
[NEW
] Added c.commit
(prints information about the Git commit of the runtime Carbon build).
[NEW
] [Added c.debughook (hookid|name) duration](optional-modules/added-
c-debughook-(hookid|name)-duration.md): Added c.debughook (hookid|name) duration
(helps identifying what plugins fire a specific hook and logs each time it fires) debug build only.
[NEW
] Added c.openplugin PluginName
which opens the .cs
file of the plugin.
[NEW
] Added c.resethooks
which clears all progerss on all of the current hooks (hook time, fires, memory usage and lag spikes).
[NEW
] [Added OnCompilationFail150731668](optional-modules/added-
oncompilationfail150731668.md): Added OnCompilationFail150731668
(string filePath, Trace errors, Trace warnings) Engine hook.
[NEW
] [Added OnConstructorFail937285752](optional-modules/added-
onconstructorfail937285752.md): Added OnConstructorFail937285752
(RustPlugin plugin, Exception exception) Engine hook.
[NEW
] Added Permissions
instance in CarbonModule.
[NEW
] Added appropriate response when executing c.grant
or c.revoke
and the parameter is inexistent.
[NEW
] [Added bool CanAcceptBackpackItem2803314817](optional-modules/added-bool-
canacceptbackpackitem2803314817.md): Added bool CanAcceptBackpackItem2803314817
(Item backpack, Item item) (Item hook).
[NEW
] Added cached hook lag spike processing.
[NEW
] Added Carbon patch which fixes c.defaultserverchatid
to override the user id Rust uses when sending server chat messages.
[NEW
] Added Carbon patch which patches out the Rust 'Bump' log in HotAirBalloon.
[NEW
] Added LineType support to InputField Carbon CUI component.
[NEW
] Added OS commands for opening various Carbon folders (eg. c.openconfigs, c.opendata, c.openroot..).
[NEW
] Added unloaded and compilation failure plugins at the bottom of the c.plugins
command.
[FIXED
] Admin Module: Fixed 'Hide plugin icons' config option.
[FIXED
] Fixed Build.IsDebug
not being accessible due to it being static.
[FIXED
] Fixed CarbonPlugin built in harmony patch errors not showing the exception stacktrace.
[FIXED
] Fixed covalence FindPlayerById only looking for player bodies active on the server (now uses user data file).
[FIXED
] Fixed IDelFix failing by adding error handling (thanks Tryhard!).
[FIXED
] Updated Permission's UserHasPermission to use a runtime dictionary which fills up the cache as plugins need the users.
[UPDATED
] Admin Module: Run module.Reload
instead of module.Load
when saving module config in config editor (properly restarts the module).
[UPDATED
] Cleaned up Plugins tab to use IEnumerables instead of arrays.
[UPDATED
] Don't print compile time for precompiled hookables.
[UPDATED
] Include plugin and hook lag spike information in c.plugins
, c.plugininfo
, c.modules
and c.moduleinfo
.
[UPDATED
] Revamped overall code quality in ModLoader
(expected to reduce heap allocations even further).
[MISC
] Admin Module: Cache Configuration tab, than regenerate it each time it's showing initially.
[MISC
] Hook lag spike threshold command + config.
[REMOVED
] Automatically cleanup the carbon/reports
folder on preload.
[REMOVED
] No longer include version in the name of the DLL binaries (breaks referencing).
[REMOVED
] Removed c.report
, carbon/reports
folder and overall implementation (obsolete).
[NEW
] Admin Module: Added configurations tab to Admin module (gear button next to X).
[NEW
] Added ConVarSnapshots
(takes a snapshot of all default Rust ConVar values).
[NEW
] Added imagedb.loaddefaults
command.
[NEW
] Added gear and new close icon.
[FIXED
] Admin Module: Fixed dead players appearing twice in the Players tab.
[FIXED
] Fixed CuiHelper.AddUi
occasionally breaking things when plugins provide null players to it.
[FIXED
] Fixed various timing issues within modules.
[UPDATED
] Updated shutdown process to run Shutdown()
on modules on server shutdown.
[MISC
] Admin Module: Refreshed Admin module buttons and CUI.
[MISC
] Fire blank InternalCallHook initially.
[MISC
] No longer use reflection for precompiled module hooks (code-generated internal hook calls).
[MISC
] Reduced overall CuiHelper creation overhead by removing some legacy code.
[MISC
] Revoke Codefling auth token on non-200 error codes.
[MISC
] Swapped all instances of internal hook call returnables to use already boxed values (reducing heap allocations).
[REMOVED
] Admin Module: Removed obsolete DynamicTab.
[REMOVED
] Removed OnServerInitialized
hook from modules.
[NEW
] Admin Module: Added adminmodule.players.see_ips
which when granted, they can see player IP address when inspecting.
[NEW
] Admin Module: Added Admin module wizard analytic for walkthrough or skipping.
[NEW
] Admin Module: Added Grant/Revoke All permissions button on the Permissions tab (plugins, modules, groups).
[NEW
] Added ImageDatabase.HasImage
.
[NEW
] Added IModule.HasOSI
.
[NEW
] Added Rcon
config option, disabling it will turn off server RCon.
[NEW
] Added MonoMod required dependencies by Harmony.
[FIXED
] Admin Module: Fixed owned plugins glow effect in Admin module.
[FIXED
] Fixed BaseHookable.ToString
formatting.
[FIXED
] Fixed global.skipassetwarmup_crashes
OSI; this literally just showed up out of nowhere when adding the optimizations.
[FIXED
] Fixed modules firing OnServerInitialized more than they should (once) & call OSI on module reload.
[FIXED
] Fixed ZipScript and ZipDevScript processors not using the correct config for watching.
[UPDATED
] Optimized internal hooks to being called directly by the hook code generator.
[UPDATED
] Implemented IOnRconInitialize
and IOnRunCommandLine
.
[UPDATED
] Renamed carbonauto.cfg
to config.auto.cfg
(it gets auto-renamed).
[UPDATED
] Renamed config_client.json
to config.client.json
(it gets auto-renamed).
[UPDATED
] Upgraded to Harmony 2.3.1.1 (Thicc).
[MISC
] Admin Module: Invalidate ImageDatabase if core images aren't in the FileStorage database of Rust (ensures images show up in ).
[MISC
] Display internally fired hooks in c.plugininfo
and other various places.
[MISC
] Filter out the three checksum validation failures on boot as that's a hook gen timing 'issue' and absolutely inoffensive.
[MISC
] Prettified Analytics code.
[MISC
] Replace CUI null images with white panels so there's no leaking when using Carbon's CUI system.
[MISC
] Replaced powershell
to pwsh
in the Windows deployment process.
[MISC
] Revamped entire Carbon config.
[NEW
] Admin Module: Added Admin module Plugins tab HidePluginIcons config.
[NEW
] Added GetConfigPath()
and GetDataPath()
to BaseModule.
[NEW
] Added CurrentHookFires to BaseHookable.
[FIXED
] Fixed certain instances where webrequests wouldn't trigger the primary callback when errors were delivered.
[FIXED
] [Fixed code generator not properly handling stuff like HookMethod(nameof(Namespace.Type.Member))](optional-modules/fixed-code-generator-not-properly-handling-stuff-like-
hookmethod(nameof(namespace-type-member)).md): Fixed code generator not properly handling stuff like HookMethod(nameof(Namespace.Type.Member))
.
[FIXED
] Print correct information if an user/group couldn't be found when using c.grant
and c.revoke
.
[UPDATED
] [Expanded on c.plugins
to accept sorting switches (eg. c.plugins -j|--j|-json|-abc|--json|-t|-m|-f](optional-modules/expanded-on-
c-plugins-to-accept-sorting-switches-(eg--
c-plugins--j|--j|-json|-abc|--json|-t|-m|-f.md): Expanded on c.plugins
to accept sorting switches (eg. c.plugins -j|--j|-json|-abc|--json|-t|-m|-f -asc)
.
[UPDATED
] Updated, improved and optimized the hook calling process - you should see further significant performance boosts.
[MISC
] Admin Module: Refresh the panel when adding, editing or duplicating groups.
[MISC
] Cleaned up and updated all analytic metrics.
[MISC
] Redirect and execute callbacks if there are internal WebRequest exception throws.
[MISC
] [Replaced all param string](optional-modules/replaced-all-
param-string.md): s for each QueueBatch override (thancc Kulltero!).</mark></br><mark style="color:red;">[**
REMOVED**] Removed
keepArgs` from HookCaller.
[NEW
] Admin Module: Added module permissions in the Permissions tab.
[NEW
] Added GroupExists
to BaseModule.
[FIXED
] Admin Module: Fixed Admin module checkmarks disappearing from time to time by removing potentially unnecessary validation Rust file storage checks.
[FIXED
] Admin Module: Fixed Admin module showing the wizard each server restart.
[FIXED
] Fixed c.grant
and c.revoke
logic when detecting if a group has a permission.
[FIXED
] Fixed return metadata value for CanClientLogin
and CanUserLogin
.
[UPDATED
] Admin Module: Added Skip button on the wizard.
[UPDATED
] Update module permissions to register onto the module instance, not Core plugin.
[UPDATED
] Updated the wizard when Admin module config structure has changed.
[MISC
] Admin Module: Centered initial button on the Admin wizard.
[MISC
] Bypass file name checking in ZipScript processors.
[MISC
] Call OnServerShutdown
when server shuts down.
[MISC
] Call OnServerInit and OnPostServerInit when using c.setmodule
(thanks Kulltero!).
[MISC
] [Expanded on c.plugininfo
and c.moduleinfo
- c.plugininfo PluginName -t|m|f](optional-modules/expanded-on-
c-plugininfo-and-
c-moduleinfo---
c-plugininfo-pluginname--t|m|f.md): Expanded on c.plugininfo
and c.moduleinfo
- c.plugininfo PluginName -t|m|f -asc
, sorts hooks based on time (-t), memory use (-m) and fired times (-f).
[REMOVED
] No longer inject System.Memory
into plugins as it uses mscorlib redirected types.
[NEW
] Added c.fetchhooks
which will update hooks at runtime.
[NEW
] Added c.harmonyload
and c.harmonyunload
.
[NEW
] Added command aliases (support for multiple Command attributes).
[NEW
] Added tick tracking for each cached hook (shows the exact amount of times hooks got fired).
[FIXED
] Vanish Module: Fixed vanishing on Cargo Ship or parent triggers, not detaching players (force trigger update).
[FIXED
] Fixed BaseHookable.ToString()
overrides.
[FIXED
] Fixed Oxide compatibility with Covalence - adding IServer.SaveInfo.
[FIXED
] Removed CommandVar
being able to be assigned multiple times.
[FIXED
] Show if a group or user already has a permission, instead of saying there was a problem.
[FIXED
] Use virtual calls instead of direct for Harmony plugin entrypoint initialization (Thanks, Patrette!).
[UPDATED
] Admin Module: Revamped Admin module accessibility - removed access levels and added permissions instead.
[UPDATED
] Added hook ticks to c.moduleinfo
and c.plugininfo
.
[UPDATED
] Improved and optimized hook calling internal times.
[UPDATED
] Updated C4C protocol to 103.
[UPDATED
] Updated copyright year across all Carbon components.
[UPDATED
] Upgraded Roslyn compiler to C# 12.
[MISC
] Execute IHarmonyHooks.OnLoaded and OnUnloaded methods.
[MISC
] Refactored the way hook total time and memory usages is being stored.
[REMOVED
] Removed file watching from extensions and Harmony plugins.
[REMOVED
] Removed GroupHasPermission Debug log.
[NEW
] Admin Module: Added Environment tab.
[FIXED
] Corrected C4C log information showing C4C enabled when it wasn't.
[FIXED
] Fixed c.mixingspeedmultiplier
not working properly.
[FIXED
] Fixed module internal call hook overriden.
[FIXED
] Fixed other occasional CUI related client-side NREs.
[FIXED
] Made global.skipassetwarmup_crashes 1
possible, now works in C4C and normal modes.
[UPDATED
] Admin Module: Order groups based on rank (Permissions tab).
[MISC
] Disable server.secure
convar if Carbon client mode is enabled.
[NEW
] Admin Module: Added SpectatingInfoOverlay
disabling center-screen text when spectating.
[NEW
] Admin Module: Added ability to change the owner id of an entity through the Entities tab (and select the owner's entity when available).
[NEW
] Admin Module: Added ability to send players to sleep through entities/players tab.
[NEW
] Admin Module: Added conditionals to Carbon tab, show console info, and permission config options.
[NEW
] Admin Module: Added Language option to 'Add User' modal.
[NEW
] Admin Module: Added sleep option in the Players tab.
[NEW
] Admin Module: Added user editing to Permissions tab.
[NEW
] Added c.plugincmds
displaying all chat and console commands of a plugin (auth 2).
[NEW
] Added Client (C4C) config (includes env settings, gameplay and addon entries).
[NEW
] Added client gravity and old recoil properties to C4C.
[NEW
] Added support for hidden processed commands (hid carbon.
commands from c.find
due to duplicates).
[FIXED
] Admin Module: Fixed changing tab to Permissions not selecting the correct active option.
[FIXED
] Admin Module: Fixed Entities tab displaying rotations as quaternion instead of euler angles.
[FIXED
] Fixed case where server wouldn't boot if there'd be multiple instances of the same server running due to log locking (appending _temporary
to the busy server log).
[FIXED
] Fixed certain CUI-related issues when plugins would set offsets as null.
[FIXED
] Fixed edge case where CUI material is assigned null when it shouldn't.
[UPDATED
] Made c.plugininfo
be case insensitive as well as c.reloadconfig
.
[MISC
] Ensure not caching hook method duplicates.
[MISC
] Return bool in OxideMod.UnloadPlugin(string)
.
[REMOVED
] Admin Module: Removed rotation from players tab as it was redundant.
[REMOVED
] Removed +carbon.client
and +carbon.nomap
since it got moved to the config.
[NEW
] Admin Module: Added ability to change entity skin to the Entities tab.
[NEW
] Added c.reloadmodule
.
[NEW
] Added module Reload and Unload overridable methods.
[NEW
] Added permissions in c.plugininfo
.
[NEW
] Added uMod plugin endpoint user friendly error handling for when it goes down.
[NEW
] Added Webrequest automatic decompression (GZIP).
[NEW
] C4C: Added +carbon.client
which will apply Client-specific patches and modify event-related convars.
[NEW
] C4C: Added c.oldrecoil
admin command.
[NEW
] C4C: Added C4C protocol, changing it will invalidate older CCA exports and render them broken & invalid.
[NEW
] Implemented version conditional symbol processing (RUST/CARBON checking against ABV/BLW and IS current protocol).
[FIXED
] Fixed c.moduleinfo
to include async and override method counts.
[FIXED
] Fixed global.skipassetwarmup_crashes 1
behavior.
[FIXED
] Fixed HookMethod
not being processed by the codegen.
[FIXED
] Fixed modules not executing OnServerInitialized
.
[UPDATED
] Admin Module: Don't display update options in the Local tab, under Plugins.
[UPDATED
] Call OnUserPermissionGranted
for every permission granted (when using wildcards).
[UPDATED
] Call OnUserPermissionRevoked
for every permission granted (when using wildcards).
[UPDATED
] Rewrote the entire Timer system to be more lightweight.
[MISC
] Made c.grant
to be case insensitive when looking for players (as well as other perm commands).
[REMOVED
] Removed +nomap
and replaced it with +carbon.nomap
which will modify event-related convars and spawn density (disable essentially).
[REMOVED
] Removed slight fullscreen fade when spectating.
[NEW
] Image Database Module: Added multithread error handling.
[NEW
] Added LastAccess
flag in windows builds in our base processor's watcher.
[NEW
] Added TemporaryArray
.
[NEW
] Added in-use script checking and waiting for writing availability.
[FIXED
] Admin Module: Fixed spectate CUI not showing up.
[FIXED
] Fixed c.load
not doing its job properly.
[FIXED
] Fixed NRE in Modal module.
[FIXED
] User permissions processing fix.
[FIXED
] Various fixes to plugin processing and disposal.
[UPDATED
] Made c.load
, c.reload
and c.unload
be case insensitive.
[UPDATED
] Only display IP address without port in IPlayer.Address
.
[UPDATED
] Unload dependant plugins before the required parent plugin that initially was requested for unloading.
[UPDATED
] Use last result value of conflicted hooks.
[MISC
] Admin Module: Fixed plugins not refreshing correctly when loaded/unloaded (in Plugins tab).
[MISC
] Allow unsafe
keyword in plugins.
[MISC
] Conflict and result priority fixes.
[REMOVED
] Removed HigherPriorityHookWarns
config.
[NEW
] Added Carbon.Cache
- contains boxed values and defaults, meant to be used to reduce GC by plugins.
[NEW
] Added CovalencePlugin.game
- compatibility.
[NEW
] Added LibraryFunction
attribute - compatibility.
[NEW
] Added STAGING
, AUX01
and AUX02
conditional symbols to the Roslyn compiler based on the Carbon build type.
[NEW
] Added 'carbon/harmony' shipped with our build patches.
[NEW
] Added full integration for 'Carbon Compatibility Loader' by Patrette into Carbon natively.
[NEW
] Added optional CUI rect update and fixed button text update (ThePitereq PR).
[FIXED
] Fixed issue where hooks with null parameters would not be picked up by the codegen.
[FIXED
] Fixed OxideMod log formatting errors.
[UPDATED
] Carbon CUI implementation revamp all across the project.
[UPDATED
] Warn if plugins attempt to register same-named permissions under different plugin names.
[MISC
] Admin Module: Made Admin module option elements more opaque/visible.
[REMOVED
] Removed Carbon.Ext.Discord extension.
[REMOVED
] Removed unnecessary duplicate permission check on the same plugin.
[NEW
] Admin Module: Added ability to toggle the UI with the same chat command (or bind), locking keyboard movement/hotkeys when typing in input fields.
[NEW
] Added async ValueTask OnAsyncServerShutdown
in CarbonPlugin which gets called before the server shuts down (or restart), making the server wait for all plugins to complete said task without stalling the server.
[NEW
] Added Build.Git.Tag
.
[NEW
] Added c.plugininfo
and c.moduleinfo
displaying extensive information about runtime plugins.
[NEW
] Added StringBuilder
pooling in PoolEx
.
[NEW
] Added wildcard support for plugin exclusion in c.load
, c.unload
and c.reload
(eg. c.reload * Plugin1 Plugin2..
to unload everything except named plugins).
[FIXED
] Fixed AutoPatch
CarbonPlugin feature error handling - if patches fail, bail.
[FIXED
] Fixed cases where no stacktraces were shown by certain errors in specific situations.
[FIXED
] Fixed InternalCallHook code generator not properly calling hooks in specific situations.
[FIXED
] Fixed NRE thrown by c.wipeui
admin command.
[FIXED
] Properly manage Carbon patches w/out identifiers.
[UPDATED
] Include memory usage in hook warn analytics.
[UPDATED
] Removed all uses of Environment.TickCount
and instead using pooled Stopwatches.
[UPDATED
] Updated c.version
to include build tag.
[MISC
] Fixed Carbon processor OnFrame queue pretty error handling.
[MISC
] Include class index in the namespace scope when doing plugin info lookup (fixes edge-case plugin errors).
[REMOVED
] Removed EntityMapBufferSize
option (config, admin module).
[NEW
] Admin Module: Added ability to view players within groups in Permissions tab.
[NEW
] Admin Module: Added WebRequest IP validation check.
[NEW
] Debug-Only: Added c.scriptdebugorigin
which overrides the script directory Roslyn uses for the compilation debuggers so remote debugging is possible.
[NEW
] Debug-Only: Added ZipDevScriptProcessor
- acts like cszip
but make it folders (plugins/cszip_dev
).
[NEW
] Debug-Only: Added script debugging(https://docs.carbonmod.gg/docs/development/debugging-plugins) - only works when debugger is attached on server boot.
[NEW
] Vanish Module: Added Vanish permissions: vanish.allow
to vanish and vanish.unlock
to open locked entities while vanished.
[NEW
] Added +carbon.skiphookupdates
switch.
[NEW
] Added Build.IsDebug
.
[NEW
] Added c.plugins -abc
which prints plugins alphabetically, otherwise list them chronologically.
[NEW
] Added HookFlags.MetadataOnly
skipping processing said hooks and only used for display & documentation (Carbon.Hooks.Community).
[NEW
] Added OnInterferenceUpdate
and OnInterferenceOtherUpdate
.
[NEW
] Added OnPluginOutdated
hook.
[NEW
] Added Plugin.QueueWorkerThread
.
[NEW
] Added PluginReference
minimum version & requirement toggle.
[NEW
] Added QueueWorkerThread
.
[NEW
] Added ZipScriptProcessor
and ZipPlugins mod package - cszip
zips with bundled plugin partial file loading.
[NEW
] Added modules loaded/total and extension count to console info (Windows-only).
[FIXED
] Don't mark Harmony patches (for dynamic hooks) failed
if they failed unpatching - which means they're still patched.
[FIXED
] Fixed Build.Git.Url
containing .git
making the url invalid.
[FIXED
] Fixed c.show user <nick>
not working correctly due to ToLower()
and trimming.
[FIXED
] Fixed c.wipeui
throwing errors when called on the server.
[FIXED
] Fixed certain types of commands throwing errors in specific situations.
[FIXED
] Fixed Covalence non-player IPlayer assigned in server commands not having the right ID.
[FIXED
] Fixed hooks unpatching order; prioritize dependant reference hooks first, then the latter.
[FIXED
] Fixed permissions not showing parent recursive group permissions.
[FIXED
] Fixed unmanaged temporary lists in Permissions
.
[FIXED
] Non-parameter hooks now use a cached empty array for processed arguments - occasional internal hook NRE fix.
[UPDATED
] Debug-Only: Export internal call hook generated by Carbon to file (so it can be debugged with an IDE - only when class is partial).
[UPDATED
] Made ThreadEx.MainThread
public.
[UPDATED
] Updated script processor to use multiple source files per batch.
[MISC
] Pretty-format internal call hook Carbon generated methods.
[MISC
] Refactored HookEx
.
[MISC
] Renamed main thread name to Main
.
[MISC
] Revamped the whole project and got rid of ToList
.
[MISC
] Various NRE fixes across ScriptLoader
.
[REMOVED
] Vanish Module: Removed auth-level based checking.
[REMOVED
] Fixed occasional hooks failing to unpatch when c.unload *
or c.reload *
is called.
[REMOVED
] Removed c.autoupdate
command.
[REMOVED
] Removed c.reboot
command.
[REMOVED
] Removed 'Auto-Update Ext Hooks' option from the config.
[NEW
] Admin Module: Added Carbon-only plugins from Codefling (including Carbon extensions).
[NEW
] Added +nomap
server mode which disables the Rust map from being present (used by Carbon4Client) as well as server convars (like events, etc).
[NEW
] Added Carbon.Common.Client
which implements Carbon4Client systems.
[NEW
] Added UnityEngine.GameObject.FindObjectsOfType
discretion warning.
[NEW
] Display accurate line number of errors caused by plugin commands &/or hooks.
[NEW
] Implemented JetBrains Rider .idea
.
[FIXED
] Admin Module: Fixed plugins not ordering corrently when sorted by price.
[FIXED
] Fixed ImageDatabase
not processing data file properly.
[FIXED
] Fixed ScriptLoader
throwing random rare errors.
[FIXED
] Fixed certain hooks not getting called properly (precompiled hookables).
[FIXED
] Fixed empty fields not remaining empty in Admin module.
[FIXED
] Fixed plugin metadata processing; carbon compat, file name.
[FIXED
] Fixed plugins still loading when plugin constructor errors out.
[UPDATED
] Admin Module: Implemented latest improved Codefling API changes (https://codefling.com/db).
[UPDATED
] Stripped CarbonAuto
from minimal builds.
[UPDATED
] Updated Roslyn to latest (v4.5.0).
[MISC
] Always return null on asynchronously-marked hook calls.
[MISC
] Rewrote server logs to make it more clear what plugin downloading actually means/what's happening.
[REMOVED
] Removed the use of delegates (for precompiled hookables).
[NEW
] Admin Module: Added player inventory locking.
[NEW
] Admin Module: Added player renaming.
[NEW
] Added #if DEBUG
commands conditional attributes (to internal hook code generator).
[NEW
] Added c.bypassadmincooldowns
(disabled by default) - when true, admins can spam chat|console commands.
[NEW
] Added Carbon.Hooks.Community
hooks, curated by the community through PRs.
[NEW
] Added -carbon.langdir
switch.
[NEW
] Added del
patch (stops stalling the server + be able to destroy entities based on entity type).
[NEW
] Added Entities.GetAll<>
.
[NEW
] Added Facepunch.Nexus
in references.
[NEW
] Added fixcars
patch that fixes terrible performance and server lag (has 2 FindObjectsOfType calls).
[NEW
] Added OxideMod.LoadPlugin
.
[NEW
] Added hook time and memory usage to c.modules
.
[NEW
] Added material support and simple image (UnityEngine.UI.Image) ThePitereq PR: Added material support and simple image (UnityEngine.UI.Image) ThePitereq PR.
[NEW
] Added plugin uptime to the c.plugins
command.
[NEW
] Embedded git commit info in build assembly metadata.
[FIXED
] Admin Module: Fixed 'View Permissions' button in the Players tab not showing the permissions of the correct player.
[FIXED
] Feed the correct boolean value for OnServerInitialized(value) on inital boot, and hotloading.
[FIXED
] Fixed HookValidatorRefreshed
Carbon event not triggering at the right time.
[FIXED
] Fixed OnPlayerUnbanned
/ OnUserUnbanned
.
[FIXED
] Fixed ScriptLoader.Clear()
occasionally malfunctioning.
[FIXED
] Fixed internal hook call gen not considering optional types.
[FIXED
] Fixed module langs.
[FIXED
] Fixed No Give Notices giving notices.
[FIXED
] Fixed player disconnect log duplicate in console.
[FIXED
] Fixed up command line (+carbon.onboot).
[UPDATED
] Admin Module: Use Druid font for console.
[UPDATED
] Complete revamp of the development infrastructure of Carbon.
[UPDATED
] Revamped core Permissions library methods and optimized a bunch.
[MISC
] Documented all internal hooks (with the readable hook name).
[MISC
] Exposed IHook.HookFlags
, IHook.TargetType
, IHook.TargetMethod
, IHook.TargetMethods
.
[REMOVED
] Removed CorePlugin internal call hook.
[REMOVED
] Removed Oxide Rust.opj
file requests and processing.
[NEW
] Added application/x-www-form-urlencoded
by default in POST|PUT|PATCH|DELETE
requests.
[NEW
] Added AsyncEx
extensions.
[NEW
] Added c.defaultserverchatname
, c.defaultserverchatcolor
, c.defaultserverchatid
to CarbonAuto.
[NEW
] Added c.extensions
, c.modulesmanaged
.
[NEW
] Added c.installplugin
and c.uninstallplugin
.
[NEW
] Added conditional compilation symbols for build scripts.
[UPDATED
] Fixed Discord extension (and overall extensions).
[MISC
] Ignore checksum validation on Rust staging, aux01 and aux02 branches.
[MISC
] Use plugin type name instead of info name for config/data files.
[REMOVED
] Removed config/data path validation for inconsistency reasons with custom switch directories.
[NEW
] Added extension and module hotloading.
[NEW
] Added more Covalence compatibility.
[UPDATED
] Don't consider static methods hookable by the code gen.
[UPDATED
] Publicized ConsoleSystem.Arg
constructor.
[MISC
] Inject #if WIN
, #if UNIX
or #if MINIMAL
(in respective builds) - in the roslyn compiler.
[REMOVED
] Removed hook/plugin priorities.
[NEW
] Admin Module: Added Plugins tab badges on previewed plugins.
[NEW
] Added Codefling auth: Added Codefling auth(https://docs.carbonmod.gg/docs/core/modules/admin-module/codefling-auth).
[NEW
] Added c.shutdown
which terminates Carbon carefully, then renders the server completely vanilla.
[NEW
] Added carbonauto.cfg
options (extends Rust ConVar properties).
[NEW
] Added Command.Args.IsServer
.
[NEW
] Added PoolEx.FreeDictionary<TKey, TValue>(ref Dictionary<TKey, TValue> val)
.
[NEW
] Added PoolEx.GetDictionary<TKey, TValue>
.
[NEW
] Added Rust.Clans
and Rust.Clans.Local
to Carbon's global references (including Roslyn compiler).
[NEW
] Added Carbon minimal builds (excludes significant, usually visual-oriented features).
[NEW
] Added JetBrains.Annotations.MeansImplicitUse across public attributes.
[NEW
] Added MemoryMeasure struct.
[NEW
] Added turner's 'Console Command History' built into windows builds (https://codefling.com/harmony/console-command-history).
[UPDATED
] Upgraded protobuf to 3.2.26.
[UPDATED
] Upgraded Roslyn to 4.3.0.
[MISC
] Analytics improvements.
[MISC
] Directly assign Steamworks server tags instead of using reflection.
[MISC
] Overall module and Carbon extensions improvements.
[MISC
] Publicize Rust.Clans.Local
pre/post production.
[MISC
] Publicized Facepunch.Nexus.dll
.
[MISC
] Significant cleanup and optimisations across Carbon's extensions.
[REMOVED
] Removed HarmonyReference
property, config and command & enabled it by default.
[REMOVED
] Removed RustEdit.Ext
module.
[NEW
] Added plugin hook call memory allocation tracking.
[UPDATED
] Display plugin memory usage in c.plugins
.
[UPDATED
] Exposed IModuleProcessor.Build and IModuleProcessor.Uninstall.
[MISC
] Internal hook call fixup.
[MISC
] Print and store stack and inner information of unhandled exceptions (Unity, Rust, plugin monos).
[NEW
] Added Command disposal.
[NEW
] Added Global Usings and enabled Implicit Usings for Carbon.Common.
[NEW
] Added OnErrorCallback, OnWarningCallback, OnNoticeCallback and OnDebugCallback callbacks.
[FIXED
] Fixed Admin module console hooking into logging twice if disabling-enabling the module.
[FIXED
] Fixed certain plugins with the OnCollectiblePickup hook failing.
[UPDATED
] Oxide compatibility updates & overall cleanup.
[UPDATED
] Reimplemented Ben.Demystifier (log cleaner and beautifier).
[MISC
] Inject arg.cmd
property with the command installed Rust command (ConsoleSystem.Command
).
[MISC
] Publicized ConsoleSystem.Index.All
.
[NEW
] Admin Module: Added back flipping direction when selecting the same filter in Plugins tab.
[NEW
] Admin Module: Added error message when users with auth 0 try to use Carbon Admin Panel commands.
[NEW
] Added c.grant
invalidation replies.
[NEW
] Added c.revoke
invalidation replies.
[NEW
] Added OnNativeCommandHasPermission(ConsoleSystem.Arg)
hook.
[FIXED
] Admin Module: Don't allow lower-than-3 access level users to execute things on the plugins tab (favourite, auto-update, etc).
[FIXED
] Admin Module: Fixed "Add User" modal in Permissions tab disallowing from adding new users.
[FIXED
] IPlayer fix returning false-positives for the IsServer property.
[UPDATED
] Admin Module: Only show approved files in the Plugins tab.
[UPDATED
] Admin Module: Use player connection auth level for Admin module access validation.
[UPDATED
] c.load *
will load all plugins on disk than just the ones that have been unloaded (&/or ignored).
[UPDATED
] Cache OxideMod libraries for multi-purpose reusability.
[UPDATED
] Insert generated internal hook at the end of the plugin class.
[UPDATED
] Pick inner exception for OnFrame failures.
[UPDATED
] Regenerated Core plugin internal hooks (with our latest generator changes).
[UPDATED
] Remastered hook generator to use uint identifiers for hooks instead of mapping.
[UPDATED
] Set c.unitystacktrace
to true by default for production builds.
[UPDATED
] Updated all loggers to always expose stacktraces.
[UPDATED
] Use lock
and lists instead of Queue
for NextFrame/NextTick processing.
[MISC
] Admin Module: Added Deleted flag property to Plugin.Status.
[MISC
] ModerationTools Module: Warn server if cadmin
is being executed through RCon/server since it's a client-only command.
[MISC
] Fixes random crashes on Linux (LGSM primarely).
[MISC
] Initial implementation for experimental threads.
[MISC
] Multiply command cooldown every time a player tries to call it (to avoid spam) (defaults to *0.5).
[NEW
] Added c.frametickbuffersize
(defaults to 1000).
[FIXED
] Fixed asynchronous hooks not being picked up by the code generator.
[UPDATED
] Reimplemented frame queue buffer changes.
[UPDATED
] Reimplemented hook time warns (core plugins are excluded).
[UPDATED
] Reimplemented NextTick/NextFrame processing (fixes frequently called hooks creating timers/nextticks slowing down the spawning of entities on boot).
[NEW
] Admin Module: Added alpha property in color picker (CUI and implementation).
[NEW
] Added safe-error handling for Plugin.Subscribe/Unsubscribe
.
[UPDATED
] Consider CarbonPlugin for PluginReference processing.
[UPDATED
] Print exception stacktrace for Logger.Error in production builds.
[MISC
] Admin Module: Various fixes to the color picker Rust/hex color processing.
[MISC
] Code generator improvements for calling hooks with nullified arguments.
[NEW
] Added Pair<string, CuiElement, CuiElement>
support (Carbon CUI).
[NEW
] Added Plugin.IsPrecompiled
indicating if a plugin's managed programmatically.
[NEW
] Added precompiled
property to ModLoader.InitializePlugin which will process hooks, HookMethod attributes and plugin references found within the plugin type.
[NEW
] Added update
property & implementation (Oxide CUI).
[NEW
] Added container error handling (Carbon CUI).
[NEW
] Added CUI.Handler.UpdatePool (list of updated CUI elements that need updating) (Carbon CUI).
[NEW
] Added skinID attribute (Carbon CUI).
[NEW
] Added Storeless mode to Permission system - works the same as usual, just doesn't store or load anything to/from file.
[NEW
] Added support for CUI sub-elementa (eg. buttons have a text component attached to it, which you can now directly edit) (Carbon CUI).
[NEW
] Added widespread Carbon CUI implementation and individual property update support (Carbon CUI).
[FIXED
] Code generator for internal hooks improvements.
[FIXED
] Fixed Carbon running with AutoUpdate disabled.
[FIXED
] Fixed Plugin.Title always returning the default value 'Rust' (which was happening due to the constructor call shift).
[UPDATED
] Admin Module: Various UI fixes, scaling issues.
[UPDATED
] RustEdit.Ext Module: Enable-on-custom-map fix.
[UPDATED
] Call In/Once timers if server's not yet fully initialized.
[UPDATED
] Disallow and warn servers trying to run Carbon builds that are for a different operating system.
[UPDATED
] Execute plugin constructors after(!) initial plugin setup (which includes timers, persistence, etc).
[UPDATED
] Process ConsoleSystem.Args for chat commands as well.
[UPDATED
] Renamed AutoUpdate config option to AutoUpdateExtHooks.
[UPDATED
] Updated Discord invite link.
[MISC
] Disallow precompiled plugins from being unloaded/reloaded through commands.
[MISC
] Don't allow unloading/reloading precompiled plugins with c.
commands.
[MISC
] Don't insert elements into pooled containers if they're updateable (Carbon CUI).
[NEW
] Admin Module: Added Date picker (accessible by plugins as well).
[NEW
] Admin Module: Added player Ban button in Players/Entities - with date picker for duration defaults to 100y BasePlayer type (access level 2).
[NEW
] Admin Module: Added player Kick button in Players/Entities BasePlayer type (access level 2).
[NEW
] StackManager Module: Added ProhibitItemConsumableContainerStacking
(eg. wo'a jugs).
[NEW
] StackManager Module: Added ProhibitItemContainerStacking
(eg. weapons).
[NEW
] StackManager Module: Added ProhibitItemFishableStacking
(eg. bottles).
[NEW
] Vanish Module: Added BroadcastVanishSounds
config to Vanish (disabled by default).
[NEW
] Added (bool)newConfig
and (bool)newData
to BaseModule.PreLoadShouldSave()
.
[NEW
] Added more Oxide compatibility (Event, PluginManagerEvent).
[NEW
] Allow modules to override InternalCallHook
, otherwise use delegate system for hook calls (legacy).
[FIXED
] Admin Module: Fixed unnecessary refreshing.
[FIXED
] StackManager Module: Fixed overriding dictionaries enforcing values in the config.
[FIXED
] Fixed occasional misbehavior with plugins replying messages using IPlayer when commands are sent from the server.
[UPDATED
] Vanish Module: Play vanish sounds just for the vanished person by default.
[MISC
] Admin Module: Display placeholder (translated) text in empty column panels.
[MISC
] Admin Module: Don't reset admin player context storage on panel close.
[MISC
] Admin Module: Optimized RPC calls for cursor locker.
[MISC
] Call protected LoadDefaultConfig directly instead of calling it as a hook.
[MISC
] Disable Harmony debugging on the production builds.
[MISC
] Enforce hook calls if parameter types are nullable.
[MISC
] Get methods of partial subclasses that are considered for hook calling.
[MISC
] Implemented code gen for plugins that are structured with partial classes.
[MISC
] Made Timer.Destroy to return bool.
[MISC
] Properly clear harmony.log
from carbon/logs
(from both debug & release builds).
[MISC
] Render IPlayer as 'connected' when IsServer is true.
[MISC
] Swapped BaseHookable.Name
from a field to a property.
[REMOVED
] Removed legacy HookValidation
convar (from Admin module as well) as it's now entirely obsolete.
[NEW
] Fixed issue where some players do not get added to the user database.
[NEW
] Fixed script loader and watcher occasional issue.
[NEW
] Admin Module: Added ability to add a temporary nickname on the added Steam IDs to ease identification.
[NEW
] Admin Module: Added modal for adding Steam IDs in the data file - for assigning permissions/groups on Steam ID before they connect.
[NEW
] Admin Module: Added option to switch script watchers option mode.
[NEW
] Admin Module: Added toggle to switch between seeing players stored in the data file or bodies on the server.
[NEW
] Added a lot more caching when processing hooks.
[NEW
] Added abstract type checking for processed modules - allowing custom base modules to exist.
[NEW
] Added 'Autofocus' and 'HudMenuInput' properties in InputField CUI component.
[NEW
] Added code generator for directly executed hooks.
[NEW
] Added Countdown support to Carbon's CUI.
[NEW
] Added GetLibFolder and GetManagedModulesFolder.
[NEW
] Added OnUserDisconnected internal hook call.
[NEW
] Added option (disabled by default) to load plugins from subdirectories ('backups' is ignored) - 'c.scriptwatchersoption 1' to enable.
[NEW
] Added outline support to Carbon's CUI (panel, text, image/sprite, button).
[NEW
] Added support for 'ref' and 'out' keyword support in plugin hooks.
[NEW
] Added VerticalOverflow in Text CUI component.
[UPDATED
] Admin Module: Revamped spectating; teleports you 3 meters under the spectated object (and enables noclipping).
[UPDATED
] Admin Module: Revamped spectating; toggle views (F3), can type in chat, orbit spectated objects.
[UPDATED
] Added DataFileSystem.DeleteDataFile
and DynamicConfigFile.Delete
.
[UPDATED
] Fixed CUI destroyUi
taking every panel subproperty into consideration.
[UPDATED
] Fixed plugin blacklisting when analyzing subdirectories.
[UPDATED
] Fixed RustPlayer.HasPermission returning a false positive value.
[UPDATED
] Improved hook call speed by appx. 40%.
[MISC
] Admin Module: Display online/offline player count on the Players tab.
[MISC
] Vanish Module: Play 'whoosh' sound when vanishing (enabled by default).
[MISC
] Vanish Module: Toggle god mode on vanish/unvanish (disabled by default).
[MISC
] Automatically add game developers to the admin group.
[MISC
] Cleanse hook argument buffers properly.
[MISC
] Implemented InputField + Text changes into Carbon's CUI.
[MISC
] Implemented string+uint StringPool for hook identification.
[MISC
] Improved error handling for internally called and failed to execute hooks.
[MISC
] Improved plugin hotloading (even more seamless).
[MISC
] Optimisation and legacy code cleanup in the hook calling systems.
[MISC
] Place admin players that are noclipping high on the ground to avoid fall damage.
[MISC
] Rust optional update patch for pooling changes.
[NEW
] Added back c.version
, c.protocol
and c.build
.
[NEW
] Added new Carbon events: FileSystemWarmup
, FileSystemWarmupComplete
& PluginPreload
.
[UPDATED
] Admin Module: Fixed memory leak in the Entities tab under.
[UPDATED
] Admin Module: Updated UI to scale properly relative to UI scale/aspect ratio.
[UPDATED
] Fixed error formatting under c.pluginsfailed
.
[UPDATED
] Fixed OnLoseCondition hook.
[UPDATED
] Optimized hook calling performance by 35%.
[MISC
] Hooks now can contain ref parameters.
[MISC
] ICarbonModule can now patch static hooks.
[MISC
] Whitelisted Ionic.Zip.Reduced
.
[NEW
] Gather Manager Module: Added OvenSpeedOverride - changes the smelting speed in all ovens.
[NEW
] Gather Manager Module: Added smelt speed override blacklisting (based on prefab shortname and entity type).
[NEW
] Added module pooling for correct pre-initialization.
[NEW
] Added NuGet deployment -> https://www.nuget.org/packages/Carbon.Community.
[NEW
] Added OnUserCommand (Covalence hook).
[UPDATED
] RustEdit.Ext Module: Don't enforce the server to be modded when enabled.
[UPDATED
] Renamed Loader to ModLoader.
[UPDATED
] Renamed Loader.CarbonMod to ModLoader.ModPackage.
[MISC
] Enforce Harmony logs to be redirected.
[MISC
] Implemented "DELETE" in WebRequest.
[NEW
] Admin Module: Added multi-selection support in the Entities tab.
[UPDATED
] Vanish Module: Made Bradley ignore vanished players.
[UPDATED
] Legacy code cleanup.
[NEW
] Add new functionality to FileWatcherManager.
[NEW
] Added +carbon.onboot (called after modules initialize) and +carbon.onserverinit (called after server is marked as completely initialized).
[NEW
] Added Arial and Permanent Marker to the CUI.
[NEW
] Added ArrayPool implementation and c.pluginsunloaded.
[NEW
] Added Button field to Modal panel.
[NEW
] Added c.defaultplayergroup (defaults to "default") and c.defaultadmingroup (defaults to "admin").
[NEW
] Added c.protocol, c.help, and help commands for startup information.
[NEW
] Added c.wipeharmonylogonboot (defaults to true).
[NEW
] Added c.wipemarkers (player) to clear all markers of a player or caller.
[NEW
] Added c.wipeui to clear the entire drawn CUI (authlevel 1).
[NEW
] Added CanExplosiveStick, OnInvalidPositionCheck, and DestroyToPool.
[NEW
] Added CanUnlockTechTreeNode(Workbench, BasePlayer, TechTreeData.NodeInstance).
[NEW
] Added CommandLine context, read from cfg/server.cfg.
[NEW
] Added GetActivePanelList/DestroyActivePanelList for clearing all CUI drawn on clients at once without reconnecting.
[NEW
] Added IModuleProcessor.Setup.
[NEW
] Added Local subtab in the Plugins tab for displaying all loaded plugins (including those not on vending sites).
[NEW
] Added missing return attributes on some Extra hooks.
[NEW
] Added Moderation Tools description to Admin module setup wizard.
[NEW
] Added o.* command check flag.
[NEW
] Added OnChairComfort, CanPlayerInheritNetworkGroup, and CanAccessAdminModule.
[NEW
] Added OnDispenserGather in GatherManager.
[NEW
] Added permission.GetPermissions(BaseHookable).
[NEW
] Added protected buttons for the Modal panel (Button field).
[NEW
] Added user group editing to the Permissions tab.
[NEW
] Added validators to preloader.
[NEW
] Added WebRequest PATCH support.
[NEW
] Added Whitelist and DRM info to Setup Wizard.
[NEW
] Auto-confirm confirmation panels when holding (SPRINT) and added BaseModule.NextTick.
[FIXED
] Fix for case-sensitive command calls.
[FIXED
] Fixed c.report (potentially).
[FIXED
] Fixed c.unloading plugins not loaded on boot marking them as ignored and printing the correct warning (fallback to old log if not found).
[FIXED
] Fixed Carbon not starting on Linux.
[FIXED
] Fixed command line execution not being printed when there are no commands on the CN calls.
[FIXED
] Fixed compiler errors occurring when reloading specific plugins frequently.
[FIXED
] Fixed Create Group default values.
[FIXED
] Fixed exception with FileWatcher and updated Library.cs.
[FIXED
] Fixed existing key errors in compilation reference cache (Fastboot sometimes too fast).
[FIXED
] Fixed HarmonyModInfo spam on Linux.
[FIXED
] Fixed info file naming.
[FIXED
] Fixed language phrases overriding on plugin reload after changes.
[FIXED
] Fixed Modules tab config editing button issue (previously appeared unresponsive).
[FIXED
] Fixed null/empty permissions being considered (resolves various plugin command authentication issues).
[FIXED
] Fixed number fields throwing errors when SteamIDs are used (use longs instead of ints).
[FIXED
] Fixed plugins generating configs with null fields.
[FIXED
] Fixed RustPlayer being a struct and not functioning properly.
[FIXED
] Fixed Stack manager item-specific filters using the global multiplier (now has separate global multiplier, defaulting to 1).
[FIXED
] Fixed StopSpectating NRE.
[FIXED
] Fixed viewing angles when spectating and updated various references.
[FIXED
] Map Protection module fixes.
[FIXED
] Quickstart fixes and invalidated setup wizard (it'll show up on up-to-date servers).
[FIXED
] Resolved module config editing issue and updated MySql.cs.
[FIXED
] Resolved OnEntityTakeDamage issue.
[UPDATED
] Don't force servers to modded when Vanish or ModerationTools is enabled.
[UPDATED
] Error handling in RustPlugin.
[UPDATED
] Expanded Admin module open command array (cp, cpanel) and added Vanish module customization options.
[UPDATED
] Expanded features on Modals.
[UPDATED
] Fixed plugins generating configs with null fields.
[UPDATED
] Fixed repeating timers and removed Command.SkipOriginal.
[UPDATED
] Fully implemented permission-based tabs system and added permissive features to all built-in tabs.
[UPDATED
] ImageDatabase initialization fix.
[UPDATED
] Implemented asm loader whitelist specialization.
[UPDATED
] Improved speed of mass plugin reloading.
[UPDATED
] Included "No TechTree unlock" option in ModerationTools config to disable global TechTree node unlocking.
[UPDATED
] Increased script reader buffer size from 4KB to 8KB.
[UPDATED
] Initial HasLevel checks and Carbon tab permissions.
[UPDATED
] Load all plugins on server initialized when global.skipassetwarmup_crashes is enabled.
[UPDATED
] Marked c.version and c.build as auth-level 1 requirement.
[UPDATED
] Moved CUI.UniquifyCommand to Community.Protect.
[UPDATED
] Moved Local subtab to the left in Plugins panel.
[UPDATED
] New CarbonBehaviour abstract class and localized the Carbon tab.
[UPDATED
] Optimized plugin processing (pre-warming source code, improved async stream reading).
[UPDATED
] Process only Carbon.Common (internal modules) and carbon/modules DLLs modules.
[UPDATED
] Register Admin module levels (0 through 3).
[UPDATED
] Register hookable attribute permissions.
[UPDATED
] Resolved module config editing issue and updated MySql.cs.
[UPDATED
] ScriptProcessor cleanup.
[UPDATED
] Show Core plugin permissions in the Permissions tab.
[UPDATED
] Toggle noclip on vanish/unvanish (configurable).
[UPDATED
] Update and rename develop-build.yml to preview-edge-build.yml.
[UPDATED
] Updated CanPatrolHeliSeePlayer, CanUnlockTechTreeNode, OnChairComfort, OnEntitySpawn, OnChickenScared, OnHorseDung, OnJackieChan.
[MISC
] Addressed multiple issues related to hook calls in certain plugins.
[MISC
] Adjusted Server library inheritance and fixed staging branch issue (Pool.Free).
[MISC
] Assigned token reference of CommandVar commands.
[MISC
] BaseModule fix, virtualized BaseModule version, and DRM cleanup.
[MISC
] Disabled main thread compilation if global.skipassetwarmup_crashes is enabled.
[MISC
] Don't attempt to grant default/admin permissions if they're set to null in the config (disables auto-granting players to groups when empty, useful in some cases).
[MISC
] Enable Unity stacktrace on debug builds by default.
[MISC
] Initial work on the new Command Processor.
[MISC
] Integrated staging branch protocol hooks and numerous internal hooks.
[MISC
] Normalize commands (ToLower, Trim) on registration.
[MISC
] Quickstart fixes and invalidated setup wizard (it'll show up on up-to-date servers).
[MISC
] Renamed UiCommand to ProtectedCommand (for more versatile usage).
[MISC
] Resolved slow timers on boot issue and NRE in HandleEnableNeedsKeyboard.
[MISC
] Simplified Make 'constructor' overrides.
[REMOVED
] Disabled main thread compilation if global.skipassetwarmup_crashes is enabled.
[REMOVED
] Fixed repeating timers and removed Command.SkipOriginal.
[REMOVED
] Removed duplicate initialization of Carbon Extensions.
[REMOVED
] Removed misleading 'Is Core' and 'Is Disabled' read-only toggle options from Module inspector.
[REMOVED
] Removed OnInvalidPositionCheck as it was called about 8K times a second when used.
[REMOVED
] Removed redundant CanExplosiveStick (already in Extra) and updated RustEdit.Ext.
[REMOVED
] Removed unnecessary self-implemented arg.ReplyWith behavior and switched to using Rust's methods.