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 branch. This build is targeted at the general public.
[
NEW
] AddedFacepunch.Ping
andRust.FileSystem
to be forcefully publicized - fixes a few specific plugins to compile successfully. [NEW
] Added UniTask. [FIXED
] : Fixed cases where same named plugins would exist in multiple vendors - added option to switch between vendors on the file. [FIXED
] Fixed an issue whereOnServerCommand
would not fire with the sameOnConsoleCommand
logic. [FIXED
] Fixed Carbon and modded tag not being separated with commas, breaking Rust's own compact tags. [FIXED
] Fixed missed implementation error when Oxide extensions/plugins attempt to load up extensions at runtime (compatibility). [FIXED
] Fixed pool leak in IOnConsoleCommand. [FIXED
] Fixed server shutdown,c.unload *
andc.reload *
not unloading plugins dependant on other plugins correctly. [UPDATED
] ImprovedRustPlugin.LogToFile
and reduced string allocations (thanks DezLife!). [UPDATED
] ImprovedRustPlugin.PrintToChat
(thanks DezLife!). [MISC
] Fixes and improvements to the newly implemented LUI (CUI creation system) (thanks ThePitereq!). [REMOVED
] Removed log printing the entire connection string when duplicate MySQL connections occur with the same connection string. [REMOVED
] Removed unnecessary assembly validators. [REMOVED
] Removed unused appdomain Sandboxing.
[NEW
] : Added Codefling login analytic.
[NEW
] : Added AutoWipe module(https://docs.carbonmod.gg/docs/core/modules/autowipe-module).
[NEW
] Added c.editconfig
which when called by an admin client, will open up a json config at a relative path (eg. carbon/config.json) and allow you edit it in Carbon's panel.
[NEW
] Added GetMessageByLanguage
.
[NEW
] Added OnCarbonVanished(BasePlayer)
and OnCarbonUnvanished(BasePlayer)
hook calls whenever players use Vanish.
[NEW
] Added alias warning whenever trying to assign an alias on an already existent Rust command.
[NEW
] Added Carbon.Startup, which handles Oxide migration and publicization/patching whereas Carbon.Preloader solely only handles self-updating.
[NEW
] Added default conditional compilation symbol OXIDE_PUBLICIZED
.
[NEW
] Added developer mode.
[NEW
] Added GC events flag in Shift+REC profiles in the Profiler tab (enabled by default).
[NEW
] Added hook exception tracking (plugin total and per-hook instance).
[NEW
] Added missing RustExtensionMethods (compatibility with Oxide).
[NEW
] Added publicized assemblies config.
[NEW
] Added publicizer blacklist config options.
[NEW
] Added silly goose proof handling for people assigning a command with the same assigning key as value (creating stackoverflows).
[FIXED
] : Fixed file path when downloading files through the Plugins tab.
[FIXED
] Fixed Rust console occasional NRE (when disabling Rust console, aka -noconsole
).
[UPDATED
] Load all in-memory patched assemblies before Unity does (so ours have priority).
[UPDATED
] No longer write patched/publicized assemblies to disk (keeping Rust entirely vanilla).
[UPDATED
] Optimized hook calling slightly by reducing allocs when checking hook conflicts.
[UPDATED
] Updated Carbon-called commands to use a cached argument buffer.
[MISC
] Automatically remove predefined aliases for harmony.load
-> c.harmonyload
and unload.
[MISC
] Export all in-memory patched assemblies to carbon/developer/patched_assemblies
directory.
[MISC
] Inject Cronos
into Roslyn compiler.
[MISC
] Made IOnServerInitialized
a callable hook.
[MISC
] Show internal/hidden hooks in c.hooks
.
[MISC
] Stripped away all self-updating code and moved to Carbon.Startup.
[REMOVED
] Removed Carbon Harmony processors (switched to using Rust vanilla).
[REMOVED
] Removed HarmonyWatchers config + command.
[NEW
] Added ConfigVersionChecks
override to BaseModule, enabled by default.
[NEW
] Added CuiRawImageComponent.SteamId property which is used for placing the steam avatar on the image.
[NEW
] Added default moderator
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 on CanUserLogin
.
[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 a server.secure 1
server bypassing EAC authentication.
[FIXED
] : Always perform Enter/Leave triggers properly when vanished.
[FIXED
] : Fixed players vanishing on Cargo Ship or other parent triggers being detached.
[FIXED
] Fixed c.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
] : 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 running c.load
or c.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
] : Removed obsolete patch.
[REMOVED
] Removed obsolete PoolEx
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
] : 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
] : Added player wetness properties to the Entities and Players tab.
[NEW
] : 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
] : 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
] : 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
] : 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 -> 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 confirmation dialog whenever changing hostname (Carbon tab).
[NEW
] : Added max players option with confirmation (Carbon tab).
[NEW
] : Added Plugins tab vendor reliant and informative error handling for endpoints in case they go down.
[NEW
] Added Carbon self-updating and according configuration.
[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
] : 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
] : 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 background blur and opacity settings to Admin module.
[NEW
] : Added display name to Carbon Auto variables (present in Admin module configurations tab).
[NEW
] : Added Teleport2OwnedItem button on players (Entities and Players tab).
[NEW
] Added command aliases - c.assignalias myalias realcommand
, c.unassignalias myalias
, c.aliases
.
[NEW
] Added 'Unknown command' message when executing invalid commands with valid prefixes.
[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.
[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 Profiler tab with exporting support.
[NEW
] : Added Carbon Auto variables in the Admin module configuration tab.
[NEW
] : Added DisableConsole option to Carbon's config.
[NEW
] : Added fade gradient effect across the entire Admin module CUI.
[NEW
] : Added maximize button for Admin module.
[NEW
] : Added notifications.
[NEW
] : Added source viewer.
[NEW
] Added native Mono Profiler.
[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
] : 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
] : Clamp Admin module minimum auth level (0 - 3).
[MISC
] : 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 language editor (plugin phrases).
[NEW
] : Added Quick Actions to the main Carbon tab.
[NEW
] : Added 'Empower Stats' button in the Players tab (sets all stats to highest).
[NEW
] : Added Configuration tab permission (adminmodule.config.use).
[NEW
] : Added player and entity position map coordinates to Admin module.
[NEW
] Added built-in Oxide migration process.
[NEW
] Added c.unloadonfailure
Compiler configuration.
[NEW
] Added partial searching to c.plugininfo
, c.moduleinfo
& other instance specific commands.
[FIXED
] : 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
] : Include item ID and shortname in the Items tab, and make them copyable.
[UPDATED
] Updated to Harmony 2.3.3.0.
[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
] : Added Items tab to Carbon's configuration page (can create custom items).
[NEW
] : Added Reload button on installed Plugins.
[NEW
] : 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
] : 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
] : 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
] : 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
] : 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
] : 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
] : 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
] : Removed obsolete DynamicTab.
[REMOVED
] Removed OnServerInitialized
hook from modules.
[NEW
] : Added adminmodule.players.see_ips
which when granted, they can see player IP address when inspecting.
[NEW
] : Added Admin module wizard analytic for walkthrough or skipping.
[NEW
] : 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
] : 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
] : 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
] : 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
] : 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
] : Added module permissions in the Permissions tab.
[NEW
] Added GroupExists
to BaseModule.
[FIXED
] : Fixed Admin module checkmarks disappearing from time to time by removing potentially unnecessary validation Rust file storage checks.
[FIXED
] : 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
] : 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
] : 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
] : 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
] : 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
] : 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
] : Order groups based on rank (Permissions tab).
[MISC
] Disable server.secure
convar if Carbon client mode is enabled.
[NEW
] : Added SpectatingInfoOverlay
disabling center-screen text when spectating.
[NEW
] : Added ability to change the owner id of an entity through the Entities tab (and select the owner's entity when available).
[NEW
] : Added ability to send players to sleep through entities/players tab.
[NEW
] : Added conditionals to Carbon tab, show console info, and permission config options.
[NEW
] : Added Language option to 'Add User' modal.
[NEW
] : Added sleep option in the Players tab.
[NEW
] : 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
] : Fixed changing tab to Permissions not selecting the correct active option.
[FIXED
] : 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
] : Removed rotation from players tab as it was redundant.
[REMOVED
] Removed +carbon.client
and +carbon.nomap
since it got moved to the config.
[NEW
] : 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
] : 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
] : 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
] : 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
] : 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/harmony' shipped with our build patches.
[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 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
] : 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
] : 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
] : Added ability to view players within groups in Permissions tab.
[NEW
] : Added WebRequest IP validation check.
[NEW
] : Added c.scriptdebugorigin
which overrides the script directory Roslyn uses for the compilation debuggers so remote debugging is possible.
[NEW
] : Added ZipDevScriptProcessor
- acts like cszip
but make it folders (plugins/cszip_dev
).
[NEW
] : Added script debugging(https://docs.carbonmod.gg/docs/development/debugging-plugins) - only works when debugger is attached on server boot.
[NEW
] : 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
] : 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
] : Removed auth-level based checking.
[REMOVED
] Fixed occasional hooks failing to unpatch when c.unload *
or c.reload *
is called.
[REMOVED
] Removed 'Auto-Update Ext Hooks' option from the config.
[REMOVED
] Removed c.autoupdate
command.
[REMOVED
] Removed c.reboot
command.
[NEW
] : 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
] : 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
] : 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
] : Added player inventory locking.
[NEW
] : Added player renaming.
[NEW
] Added -carbon.langdir
switch.
[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 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.
[NEW
] Added plugin uptime to the c.plugins
command.
[NEW
] Embedded git commit info in build assembly metadata.
[FIXED
] : 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
] : 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 Plugins tab badges on previewed plugins.
[NEW
] : 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 back flipping direction when selecting the same filter in Plugins tab.
[NEW
] : 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
] : Don't allow lower-than-3 access level users to execute things on the plugins tab (favourite, auto-update, etc).
[FIXED
] : Fixed "Add User" modal in Permissions tab disallowing from adding new users.
[FIXED
] IPlayer fix returning false-positives for the IsServer property.
[UPDATED
] : Only show approved files in the Plugins tab.
[UPDATED
] : 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
] : Added Deleted flag property to Plugin.Status.
[MISC
] : 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 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
] : 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
] : Various UI fixes, scaling issues.
[UPDATED
] : 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
] : Added Date picker (accessible by plugins as well).
[NEW
] : Added player Ban button in Players/Entities - with date picker for duration defaults to 100y BasePlayer type (access level 2).
[NEW
] : Added player Kick button in Players/Entities BasePlayer type (access level 2).
[NEW
] : Added ProhibitItemConsumableContainerStacking
(eg. wo'a jugs).
[NEW
] : Added ProhibitItemContainerStacking
(eg. weapons).
[NEW
] : Added ProhibitItemFishableStacking
(eg. bottles).
[NEW
] : 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
] : Fixed unnecessary refreshing.
[FIXED
] : 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
] : Play vanish sounds just for the vanished person by default.
[MISC
] : Display placeholder (translated) text in empty column panels.
[MISC
] : Don't reset admin player context storage on panel close.
[MISC
] : 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
] : Added ability to add a temporary nickname on the added Steam IDs to ease identification.
[NEW
] : Added modal for adding Steam IDs in the data file - for assigning permissions/groups on Steam ID before they connect.
[NEW
] : Added option to switch script watchers option mode.
[NEW
] : Added toggle to switch between seeing players stored in the data file or bodies on the server.
[NEW
] Added 'Autofocus' and 'HudMenuInput' properties in InputField CUI component.
[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 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
] : Revamped spectating; teleports you 3 meters under the spectated object (and enables noclipping).
[UPDATED
] : 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
] : Display online/offline player count on the Players tab.
[MISC
] : Play 'whoosh' sound when vanishing (enabled by default).
[MISC
] : 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.
[NEW
] Added back c.version
, c.protocol
and c.build
.
[NEW
] Added new Carbon events: FileSystemWarmup
, FileSystemWarmupComplete
& PluginPreload
.
[UPDATED
] : Fixed memory leak in the Entities tab under.
[UPDATED
] : 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
] : Added OvenSpeedOverride - changes the smelting speed in all ovens.
[NEW
] : 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
] : 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
] : Added multi-selection support in the Entities tab.
[UPDATED
] : Made Bradley ignore vanished players.
[UPDATED
] Legacy code cleanup.