Roblox Studio error

Http requests are not enabled. Enable via game settings

What Http requests are not enabled. Enable via game settings means in Roblox Studio, the three things that cause it with the code that triggers each, and the fix for each one.

Updated 23 October 20263 min readErrorLuau

In short

HttpService (GetAsync, PostAsync, RequestAsync) is switched off by default in every experience. Turn it on in Studio: File, Experience Settings (called Game Settings in older Studio versions), Security, Allow HTTP Requests, then Save. The setting belongs to the published experience, so publish the place first if it was never published. HTTP requests also only work from server scripts.

On this page
  1. What it means
  2. Causes and fixes
  3. Fix it with RoCode
  4. Find the line
  5. Questions
  6. Sources

What the message means

Output (example)
ServerScriptService.Webhook:9: Http requests are not enabled. Enable via game settings

Other forms of the same message:

  • HTTP requests are not enabled. Enable via Experience Settings
  • Http requests can only be executed by game server
  • HttpService is not allowed to access ROBLOX resources

The switch is the HttpService.HttpEnabled property. Scripts cannot turn it on while the game runs; it is set in Experience Settings.

Even with it on, requests can still fail: the website may be down, block Roblox, or reject your request. Those failures come back as other errors, such as HTTP 403 (Forbidden), so wrap requests in pcall.

Causes and fixes

Three things cause this error in practice. Each one below has the smallest code that triggers it, then the fix.

Allow HTTP Requests is off

The default. A webhook, a weather API or a version check works nowhere until the experience allows it.

Breaks Script in ServerScriptService named Status
local HttpService = game:GetService("HttpService")

-- with Allow HTTP Requests off:
-- Http requests are not enabled. Enable via game settings
local body = HttpService:GetAsync("https://example.com/status.json")
print(body)

In Studio, open File, Experience Settings, then Security, switch on Allow HTTP Requests and Save. In your code, wrap the request in pcall so a failure is reported instead of stopping the script.

Fixed Script in ServerScriptService named Status
local HttpService = game:GetService("HttpService")

local ok, result = pcall(function()
	return HttpService:GetAsync("https://example.com/status.json")
end)

if ok then
	print("status:", result)
else
	warn("[Status] request failed:", result)
end

The request is made from a LocalScript

Only the server can send HTTP requests. A LocalScript calling HttpService fails with Http requests can only be executed by game server, whatever the setting says.

Breaks LocalScript in StarterPlayerScripts named News
local HttpService = game:GetService("HttpService")

-- in a LocalScript: Http requests can only be executed by game server
local data = HttpService:GetAsync("https://example.com/news.json")
print(data)

Make the request in a server Script and send the result to clients with a RemoteEvent or RemoteFunction.

Fixed Script in ServerScriptService named News
local HttpService = game:GetService("HttpService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local getNews = Instance.new("RemoteFunction")
getNews.Name = "GetNews"
getNews.Parent = ReplicatedStorage

local cached: string? = nil

getNews.OnServerInvoke = function(_player: Player): string
	if cached == nil then
		local ok, result = pcall(HttpService.GetAsync, HttpService, "https://example.com/news.json")
		cached = if ok then result else "News is unavailable right now."
	end
	return cached :: string
end

The place has never been published

Experience Settings are saved to the experience on Roblox. A place that only exists as a local file has nowhere to save them, so the setting cannot be turned on there.

Breaks Script in ServerScriptService named Ping
local HttpService = game:GetService("HttpService")

-- a local .rbxl file that was never published: the setting cannot be saved,
-- so this still fails with Http requests are not enabled
print(HttpService:GetAsync("https://example.com/ping"))

Publish the place (File, Publish to Roblox), then turn the setting on. Have the script check HttpService.HttpEnabled and say clearly when it is off.

Fixed Script in ServerScriptService named Ping
local HttpService = game:GetService("HttpService")

if not HttpService.HttpEnabled then
	warn("[Ping] HTTP is off: Experience Settings, Security, Allow HTTP Requests")
	return
end

local ok, result = pcall(HttpService.GetAsync, HttpService, "https://example.com/ping")
print(ok, result)

Fix it in your place

Paste the error, RoCode fixes it in your place

Copy the line from Output and paste it here. RoCode opens the script it names in the place you have open in Studio, works out which of the causes above it is, and edits the code there instead of handing you a snippet to paste.

For example: ServerScriptService.Webhook:9: Http requests are not enabled. Enable via game settings

RoCode is an AI agent for Roblox Studio: it reads the scripts in the place you have open, finds the line and edits it there, and every change is an undo point. It runs on Windows or macOS with a desktop browser. Free to start, with free credits every day.

How to find the line that causes it

  1. Open Output (Window menu, or the Script tab), clear it with Ctrl+K (⌘K on Mac), and press Play.
  2. Find the first red line. It starts with the script's place in the Explorer and the line number, such as ServerScriptService.Shop:12:.
  3. Click the red line. Studio opens that script with the cursor on the failing line.
  4. Read the lines between Stack Begin and Stack End under it: they list the calls that led there, newest first, so you can see which function called the broken one.
  5. Still not sure which value is wrong? Add print(typeof(x), x) just above the line, or set a breakpoint on it and read the values in the Watch window.

Questions

Where is Allow HTTP Requests?

In Roblox Studio: File, Experience Settings (Game Settings in older versions), then Security, then Allow HTTP Requests. Save after switching it on.

Can a LocalScript send HTTP requests?

No. Only server scripts can. Send the result to players with a RemoteEvent or RemoteFunction.

Can I call roblox.com with HttpService?

Not the Roblox websites: those requests fail with HttpService is not allowed to access ROBLOX resources. HttpService can call a subset of Roblox's Open Cloud endpoints with an API key stored as a secret; for most things, use the matching in-engine service, such as MarketplaceService or GroupService.

Can RoCode fix it?

RoCode can fix the code: it moves the request to a server Script and adds the pcall and the RemoteEvent. The Allow HTTP Requests switch itself is an Experience Settings change you make in Studio.

Sources and further reading

How the code was checked: every block marked Fixed passes Luau's strict type checker against Roblox's API definitions (luau-lsp, 23 October 2026), and every block marked Breaks compiles and fails only when it runs. The message wording, including the newer Experience Settings form and the server-only message, was checked against the message strings in Roblox Studio itself (macOS build of 13 October 2026) on 23 October 2026. A type check catches misspelt APIs and wrong types, not game logic, so playtest in Studio before you publish.

Stop hunting errors line by line.

RoCode reads the scripts in your open place, fixes the error where it happens and tells you what it changed. Free every day, no card required.