Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Made by Tweakified, Neonblox Games
- -- Video: https://www.youtube.com/watch?v=3J7gPp0NNP4
- -- Server script to be placed in ServerScriptService
- local ReplicatedStorage = game:GetService("ReplicatedStorage")
- local GlobalMessageDisplay = ReplicatedStorage:WaitForChild("GlobalMessageDisplay")
- local GlobalMessageNewMessage = ReplicatedStorage:WaitForChild("GlobalMessageNewMessage")
- local GlobalMessageResponse = ReplicatedStorage:WaitForChild("GlobalMessageResponse")
- local MarketplaceService = game:GetService("MarketplaceService")
- local Chat = game:GetService("Chat")
- local Players = game:GetService("Players")
- local MessagingService = game:GetService("MessagingService")
- local DeveloperProductId = 000000000 -- Replace with your developer product id
- local MessageBeingDisplayed = false
- local StoredMessages = {}
- GlobalMessageNewMessage.OnServerEvent:Connect(function(player, message)
- if MessageBeingDisplayed == false then
- local FilteredString = Chat:FilterStringForBroadcast(message, player)
- if FilteredString == message then
- StoredMessages[player.UserId] = FilteredString
- MarketplaceService:PromptProductPurchase(player, DeveloperProductId)
- else
- GlobalMessageResponse:FireClient(player, "Unsent - filtered", FilteredString)
- end
- else
- GlobalMessageResponse:FireClient(player, "Please wait", message)
- end
- end)
- MarketplaceService.PromptProductPurchaseFinished:Connect(function(PlayerId, ProductId, wasPurchased)
- if ProductId == DeveloperProductId then
- local player = Players:GetPlayerByUserId(PlayerId)
- if player ~= nil then
- if wasPurchased == false then
- local TempMessage = StoredMessages[player.UserId]
- if TempMessage ~= nil then
- GlobalMessageResponse:FireClient(player, "Purchase denied", TempMessage)
- end
- end
- end
- end
- end)
- MarketplaceService.ProcessReceipt = function(ReceiptInfo)
- local player = Players:GetPlayerByUserId(ReceiptInfo.PlayerId)
- if ReceiptInfo.ProductId == DeveloperProductId then
- local TempMessage = StoredMessages[player.UserId]
- if TempMessage ~= nil then
- GlobalMessageResponse:FireClient(player)
- MessagingService:PublishAsync("Global Message", {player.Name, TempMessage})
- return Enum.ProductPurchaseDecision.PurchaseGranted
- end
- end
- return Enum.ProductPurchaseDecision.NotProcessedYet
- end
- MessagingService:SubscribeAsync("Global Message", function(rawData)
- local data = rawData.Data
- GlobalMessageDisplay:FireAllClients(data)
- MessageBeingDisplayed = true
- wait(5)
- MessageBeingDisplayed = false
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement