Talkie is a Roblox module for remote communicating. Based on Comm module from Stephen Leitnick .
Use the package manager Wally to install Talkie.
aftman init
aftman add UpliftGames/wally
aftman install
Create new Wally project (or use the already created)
Add this line into dependencies on your wally.toml file
Talkie = " themusaigen/talkie@1.25.0"
-- Load the Talkie.
local Talkie = require (game .ReplicatedStorage .Talkie ) -- In your project it might be ReplicatedStorage.Packages.Talkie
-- Or:
-- local Talkie = require(game.ReplicatedStorage.Talkie.Client) IntelliSense only for client methods
-- Create the instance of Talkie. If you required Talkie directly by your side (Client/Server), you must use `new` method.
local client =
Talkie .Client (--[[ Package: ReplicatedStorage.SomeFolder/Services, etc...]] --[[ , namespace: "MyService"]] )
-- Or the same, but IntelliSense will show Client + Server methods
-- local client = Talkie.new(sameArgs as Above)
-- Grab the RemoteFunction from storage.
-- NOTE: On client these methods only grabs remotes, not create!
local example = client :Function (" ExampleFunction" )
-- Another remotes, like Event, Property, etc...
--[[ Or auto-parse method.
local remotes = client:Parse()
local example = remotes.ExampleFunction
]]
example :Listen (function (arg )
print (` Server told us: {arg}` )
end )
example :Invoke (" Hello, server!" )
-- Load the Talkie.
local Talkie = require (game .ReplicatedStorage .Talkie ) -- In your project it might be ReplicatedStorage.Packages.Talkie
-- Or:
-- local Talkie = require(game.ReplicatedStorage.Talkie.Server) IntelliSense only for Server methods
-- Create the instance of Talkie. If you required Talkie directly by your side (Client/Server), you must use `new` method.
local server = Talkie .Server (--[[ Package: ReplicatedStorage.SomeFolder/Services/etc...]] --[[ , namespace: "MyService"]] )
-- Or the same, but IntelliSense will show Client + Server methods
-- local server = Talkie.new(sameArgs as Above)
-- Create `ExampleFunction`.
-- NOTE: On server these methods only creates remotes, not grabs!
local example = server :Function (" ExampleFunction" )
-- Another remotes creation, like Event, Property, etc...
example :Listen (function (player , arg )
print (` {player.Name} told us: {arg}` )
end )
game .Players .PlayerAdded :Connect (function (player )
player .CharacterAdded :Connect (function ()
example :Invoke (player , " Hello, client!" )
end )
end )
For other examples see examples folder.
MIT , see LICENSE for detailed information.