Advertisement
Tweak16

ROBLOX Scripting | SERVER Multi Server Shout (Global Message)

Jul 18th, 2020 (edited)
2,208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.51 KB | None | 0 0
  1. -- Made by Tweakified, Neonblox Games
  2. -- Video: https://www.youtube.com/watch?v=3J7gPp0NNP4
  3. -- Server script to be placed in ServerScriptService
  4.  
  5. local ReplicatedStorage = game:GetService("ReplicatedStorage")
  6. local GlobalMessageDisplay = ReplicatedStorage:WaitForChild("GlobalMessageDisplay")
  7. local GlobalMessageNewMessage = ReplicatedStorage:WaitForChild("GlobalMessageNewMessage")
  8. local GlobalMessageResponse = ReplicatedStorage:WaitForChild("GlobalMessageResponse")
  9.  
  10. local MarketplaceService = game:GetService("MarketplaceService")
  11. local Chat = game:GetService("Chat")
  12. local Players = game:GetService("Players")
  13. local MessagingService = game:GetService("MessagingService")
  14.  
  15. local DeveloperProductId = 000000000 -- Replace with your developer product id
  16. local MessageBeingDisplayed = false
  17. local StoredMessages = {}
  18.  
  19. GlobalMessageNewMessage.OnServerEvent:Connect(function(player, message)
  20.     if MessageBeingDisplayed == false then
  21.         local FilteredString = Chat:FilterStringForBroadcast(message, player)
  22.         if FilteredString == message then
  23.             StoredMessages[player.UserId] = FilteredString
  24.            
  25.             MarketplaceService:PromptProductPurchase(player, DeveloperProductId)
  26.         else
  27.             GlobalMessageResponse:FireClient(player, "Unsent - filtered", FilteredString)
  28.         end
  29.     else
  30.         GlobalMessageResponse:FireClient(player, "Please wait", message)
  31.     end
  32. end)
  33.  
  34. MarketplaceService.PromptProductPurchaseFinished:Connect(function(PlayerId, ProductId, wasPurchased)
  35.     if ProductId == DeveloperProductId then
  36.         local player = Players:GetPlayerByUserId(PlayerId)
  37.         if player ~= nil then
  38.             if wasPurchased == false then
  39.                 local TempMessage = StoredMessages[player.UserId]
  40.                 if TempMessage ~= nil then
  41.                     GlobalMessageResponse:FireClient(player, "Purchase denied", TempMessage)
  42.                 end
  43.             end
  44.         end
  45.     end
  46. end)
  47.  
  48. MarketplaceService.ProcessReceipt = function(ReceiptInfo)
  49.     local player = Players:GetPlayerByUserId(ReceiptInfo.PlayerId)
  50.     if ReceiptInfo.ProductId == DeveloperProductId then
  51.         local TempMessage = StoredMessages[player.UserId]
  52.         if TempMessage ~= nil then
  53.             GlobalMessageResponse:FireClient(player)
  54.             MessagingService:PublishAsync("Global Message", {player.Name, TempMessage})
  55.             return Enum.ProductPurchaseDecision.PurchaseGranted
  56.         end
  57.     end
  58.     return Enum.ProductPurchaseDecision.NotProcessedYet
  59. end
  60.  
  61. MessagingService:SubscribeAsync("Global Message", function(rawData)
  62.     local data = rawData.Data
  63.     GlobalMessageDisplay:FireAllClients(data)
  64.    
  65.     MessageBeingDisplayed = true
  66.     wait(5)
  67.     MessageBeingDisplayed = false
  68. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement