Replicator is a server-to-client diff-based replication system. This is a fantastic way to easily replicate any sort of data you need to any clients you want, without the need for using remotes and states.
Client example:
-- Client
local TestReplicator = Replicator.waitForReplicator("TestReplicator")
print(TestReplicator:Get()) -- Prints current value
TestReplicator.Changed:Connect(function(path : {string}, value : any)
print(path) -- The path of the change
print(value) -- The new value in the path
print(TestReplicator:Get()) -- New state
end)
Server example:
-- Server
local TestReplicator = Replicator.new("TestReplicator", {
x = 5,
y = 10,
z = {
a = 1,
b = 2,
c = 3,
},
})
TestReplicator:SubscribeAll() -- Allows all players to receive data
TestReplicator:Set({"z", "a"}, 100) -- Sets data.z.a to 100, replicating to subscribed clients
In Signal: Fixed a long standing issue with GoodSignal/Sleitnick forks, where the status of cached threads is not checked before attempting to reuse it, which could result in dispatch failing if the thread happened to be closed externally
In ValuePacker: Fixed incorrect Oklab function names
In Time: Fixed incorrect return types for GetDateTimeUTC. Previously returned DateTime instead of the dictionary of components returned by DateTime:ToUniversalTime()
In Child: Fixed Child.FromPathAsync not updating the Object variable, which resulted in all descendant searches happening on root instead
In DataStore: Fixed missing dependencies
Fixed type errors and other typechecking issues within every package
Toolchains have been consolidated, removing aftman in favor of rokit
Added CLI tool to rewrite requires for deployment and distribution
This update affects every module under Praxis! Make sure to update the ones you are using for the most up-to-date fixes and typechecking.
Note: v1.2.1 technically exists, but is corrupted. Do not use that version.
Praxis v1.2.3
Added support for context initialization in initializer
Added support for multiple init names in initializer
Fixed error when requiring badges in unpublished place
Added Lune to Rokit
Changed workspace_members in pesde.toml to publish using resolved imports, changing from src/Packages/* to pesde-dist/Packages/*.