How to get place/game's status(private/public)?

I have script, which make portals to other my games, but some of my games are closed for a while time, but still exist in my module list.
Question, how i can get this information(private/public status of the game/place)?
Roblox API, service or yourself?

I tried to find it in MarketplaceService, not found…

I’ll glad, if someone know how to help me :slight_smile:

Maybe try this api? It returns a bool called isPlayable when you pass a placeId which may be what you’re looking for, but I am pretty sure you need to send a valid auth cookie with the request or else it’ll return unauthorized. You’ll have to use a proxy and update a bot cookie once in a while.

2 Likes

Hi.

This is currently impossible on ROBLOX Studio.

May I suggest making a web server that is constantly pinging a game for it’s status.

Furthermore, to my understanding, there aren’t any pre-made JS API’s that support this.

Sorry.
Sam.

Looks hard to script into LUA.

It seems like I need to. Must see.
Thank you.

[https://games.roblox.com/v1/games/multiget-place-details?placeIds=(id): Trust check failed]
Roblox block it…

That is why I mentioned the proxy. You’ll have to write a web server that acts as a proxy in between the Roblox game and the endpoint. Modifying this script will probably work. If you pass the placeId through the query or post data then use it in the request you’re sending from the proxy then you can get past the block. If you don’t understand javascript or nodejs enough dm me and I’ll do my best to help.

EDIT:
I’d recommend using glitch.me for the web server. It’s really easy to get started with.

Yes i know something in node.js. Ok, i’ ll try it tomorrow.

Try using this on glitch.me and fill in the cookie with a bot account’s cookie. Then send a post request to https://your-project.glitch.me/proxy?placeId=your_place_id and it should return what it gets.

const express = require('express');
const axios = require("axios")
const app = express();
const cookie = "";

app.post('/proxy', function(req, res) {
    let placeId = req.query.placeId;
    if (placeId) {
        const httpInstance = axios.create({
            headers: { 'Cookie': cookie }
        });
        httpInstance.get('https://games.roblox.com/v1/games/multiget-place-details?placeIds=' + placeId).then(function(response) {
            if (response.status == 200) {
                res.json(response.data);
            } else {
                res.statusCode(response.status);
            }
        }).catch((err) => {
            res.send(err);
        });
    } else {
        res.statusCode(400);
    }
});

const listener = app.listen(process.env.PORT, function() {
    console.log("Your app is listening on port " + listener.address().port);
});

sorry, but it still doesn’t work…

In the future look at the endpoint documentation before replying here. Is your cookie valid? 401 is code for unauthorized.

Right… But i tried to find this issue all day (and continue), not only looking at the documentation. I think that i can be understood.
But anyway i know about meaning of 401 and incorrect “cookie syntax”.

Ok, i won’t disturb you anymore :slight_smile:

Use this script:

function e(gamee)
    local link = "https://www.rprxy.xyz/places/api-get-details?assetId="..gamee
    local request = h:JSONDecode(h:GetAsync(link)) 
    
    return {
        ["IsPlayable"] = request.IsPlayable
        
        
    }
    
end

You’re aware that this post was made 10 months ago right?

Yeah lol, thought I would send it here to anyone who would need it in the future.

1 Like

This returns false on every game.

5 Likes

it is because rprxy.xyz has been discontinued. i use roproxy.com but you could use any proxy you like.

No the problem is that if you use your own proxies or other open source proxies like roproxy, somehow the isPlayable variable is always false. But on this api endpoint using Roblox instead: https://www.roblox.com/places/api-get-details?assetId=PLACEID, and even thought you use your own proxy, it still returns isPlayable variable as false all the time. Is there a way to fix this?

i’ll try to make a guess, but is this because your requests aren’t authorized or smth (no auth tokens)?
like… unautorized people can’t join places at all, this seems logic

I found a fix, first I just get the id of the creator of the game, then check all the public games they made, then check if that game’s id is in the list of public games made by the creator’s id. If that game is not on the list that means it’s private, if it is on list that means game is public.

Api endpoints to do check all public games of a creator’s id:

The code that checks if game is public is in this solution: How to check if a game is public - #36 by okfalse

1 Like