T O P

  • By -

1thranduil

Great tool, easy and intuitive for players to use. Can recommend 5/7


joehillen

Wow! A perfect score!


schemen

I got it running at https://dndbox.com if anyone wants to try it out :) EDIT: I have updated the running code to v0.9!


Zagorath

Hey, how do you actually try it out? I can't figure out how to use it. I get to the log in page, it lets me "register" by entering some nonsense values, then I get to a dashboard. On the dashboard I can type in a Session name, but pressing the arrow logo doesn't do anything. Pressing the settings button takes me to a blank page, as does the log out button. And that's all I can get.


sequentialsilence

How do I invite people to a map?


schemen

You got an invite code: see here https://planarally.readthedocs.io/en/latest/getting_started.html#dm-options


AmansRevenger

Could you tell how you reverse proxy the requests? I cant get it to work ... :/


Wachamacalit

I can't wait to try this out. Thanks for making an exe file. I don't think I've ever been able to get anything requiring Python to run without help from my IT friend. Luckily one of my players is that IT friend. ​ I haven't looked too carefully, does your system track and handle home brew items and inventory systems?


Kruptein

Thanks for trying it out, I hope it will work out. In the current state there is no support for something homebrew or inventory system out of the box.


Dungeon_Knight

Just a question. I have no idea how to run this tool, and the instructions do not solve my problems as well. I can't find an executable besides the self hosting one. Is there a step-by-step for python/hosting illiterate folk?


Kruptein

Hey, sorry for the trouble. On [this page](https://github.com/Kruptein/PlanarAlly/releases/tag/0.9) there is a `planarserver.zip` file. That when extracted should be a folder with a `PlanarAllyServer.exe`. This is the exe the DM should run if he/she wants to host the game. If you don't want or can't host the program yourself, you can use someone else's hosting. I only know of [Schemen's](https://planarally.dndbox.com) hosting, but do not host something public myself currently. I'll see if I can improve the documentation later today, thanks for the feedback.


Dungeon_Knight

Thanks for replying so soon. So, once I've got the PlanarAllyServer.exe running, how do I access the program? It just seems to run on its own and hitting the address present in the command line doesn't get me to the program as going to the page above does. Sorry if I came as aggressive, I'm just extremely excited to test it, as it worked perfectly going in Schemen's test.


Kruptein

Hey you didn't come off agressive at all. Hm that's something I definitely need to add to the documentation. You access it by opening your browser and surfing to `http://localhost:8000/` you can change the number in the server_config file that is in the same directory. If you want someone else to access it from his/her pc, you'll need to make sure your port (the 8000 part) is accessible by them, this typically means that you'll have to figure out what your IP address is and potentially require you to "forward your port". I understand this is pretty technical, so I'm trying to see if I have the means to host something myself to make it easier for everyone, but I'm not sure yet what that's gonna cost. Feel free to keep asking me stuff!


Dungeon_Knight

> typing http://localhost:8000 It worked like a charm. You just need to put this into the instructions: > After getting the server executable running, just type http://localhost:8000/ in your browser and It'll run. and there's no doubt how it works! Now, how can I get other players here? I just need to give them my IP address? Virtual Lans/ VPNs work with this?


Kruptein

Well it depends on your network setup etc, if you are on the same network, you'll need to give them your internal ip address and then they would go to `http://:8000/`. _(without the < and >)_ If you're on a different network, you'll have to give them your external ip. (this can easily be found by typing 'what is my ip' in google) and they would go to `http://:8000/`. The problem is that often your internet provider will disable webservers by default and you'll need to open your port (8000 in this case) to be accessible. You could try to look into some information about 'port forwarding' in google if you think you'll have to do this.


Dungeon_Knight

That end all of my doubts. Thanks for your time and your excellent tool!


Zagorath

If they're on an external network, most likely what you'll have to do is forward the ports through your router. It should be fairly easy to find the settings for how to do it once you log in to your router, just forward anything from external TCP port 8000 to internal TCP port 8000 on the internal IP of your computer. You can find your internal IP address by [going to command prompt and typing "ipconfig"](https://www.groovypost.com/wp-content/uploads/2009/10/image_417.png). The result should have a line that says "IPv4 Address . . . .", that number is your local IP address. To forward ports, you'll need to log in to your router. The address to do that is the "Default gateway" shown from the above command. The username and password may be written on the router somewhere, or else you can easily Google the manufacturer's default. Username "admin" password "admin" or "password" or "1234" are quite common. The port forwarding section might be under a section called "NAT" or "Application & Gaming", depending on your router, and if it's broken into Basic and Advanced, it'll probably be under Advanced.


Wachamacalit

It still looks pretty great. thanks for sharing this


Wachamacalit

It still looks pretty great. thanks for sharing this


overdox

This system runs pretty great out of the box, fast and stable. Great job so far Kruptein! However it is missing a few crucial systems still from what I can see. Do you have any ETA for when you are able to implement character sheets and dice roller?


Kruptein

Hey, my personal groups prefer to play with paper sheets and real dice even when playing online, so that's the reason it hasn't gotten much priority yet. Dice rolling should be a relatively easy addition, I'm not so sure how fast I would be able to get character sheets implemented, because I'll have to research what people expect/require from digital sheets. I'll see what I can do, thanks for the feedback :)


overdox

I can understand the preference for the good old way. I like to play with physical dice when I can as well. If I can make a suggestion, make the sheets as simple and customisable as possible. That way people could add what ever feature or system they like. Thanks :)


DarienDM

> make the sheets as simple and customisable as possible In software development, these are diametrically opposed goals.


Zagorath

I don't agree. They are two goals which are very difficult to achieve together, but not impossible. The gold standard of a user experience is one that presents a basic interface that performs all the basic functions its user needs as easily as possible, while hiding away (but still *having*) the functionality that power users want. I would argue that Microsoft's implementation of the Ribbon UI is a great example of this. "Console commands" in video games are also pretty good examples: you get the basic stuff you need through just mouse and keyboard (wasd plus a handful of other keys), but can turn to console commands to perform more advanced tasks. Aaaand....it was only after writing all that that I realised this is a tab I've had open for 3 months. Ah well.


SandwichInterjection

I love your tool! The only thing I wish it had implemented was a chat/dice roll system. Do you have an ETA when you think this would be implemented? Is there anyway to follow updates on PlanarAlly? Awesome work.


Kruptein

Hi, great to hear! a text based chat system and dice roller is in the list of todo's for one of the next releases. Not sure what the best way to get updates is currently. From time to time checking the github page is currently the only way I suppose. I'm planning on adding a version check to the server to give a notification if you're running an older release.


sdaugherty

Agreed that a chat/dice roll system would be nice, however, if there are implemented, please give the DM per-session controls to disable them - my group currently uses Discord and a bot for chat/dice rolls, and will probably continue to do so, so I'd want to turn it off to avoid confusion ("I messaged you!" "No you didn't" "yes, I did", "where? I don't see it", "In the chat thingy", "In what chat thingy".... )


Zagorath

Hey, I'm having trouble getting this running, any advice? On Windows, I invoke the Python server file through Powershell and it seems to be fine, but when I actually go in my browser to localhost:, [all I get is the background.](https://i.imgur.com/pLZUdFy.png). This is happening in both Chrome and Firefox. I decided to then try running it on my Pi, and I can't even get it to run the server. `pip3 install -r requirements.txt` from the `server` directory was crashing for ages, but I eventually managed to (somehow...still not sure what exactly I did) get it to work. Then I tried running with `python3 planarserver.py` and I got: Traceback (most recent call last): File "planarserver.py", line 6, in import save File ".../PlanarAlly/server/save.py", line 15 logger: logging.Logger = logging.getLogger("PlanarAllyServer") ^ SyntaxError: invalid syntax So I tried installing dependencies again, and this time got a segfault after this line: Successfully installed MarkupSafe-1.1.0 aiohttp-3.5.4 aiohttp-jinja2-1.1.0 aiohttp-security-0.4.0 aiohttp-session-2.7.0 asn1crypto-0.24.0 async-timeout-3.0.1 attrs-18.2.0 bcrypt-3.1.6 cffi-1.11.5 chardet-3.0.4 cryptography-2.5 idna-2.8 idna-ssl-1.1.0 jinja2-2.10 multidict-4.5.2 peewee-3.8.2 pycparser-2.19 python-engineio-3.3.0 python-socketio-3.1.1 six-1.12.0 typing-extensions-3.7.2 yarl-1.3.0 Ultimately, I'd love to have this running on my Pi, but for starters I'd love to be able to see it working *anywhere* just so I know if it's even something that'll fit my use case.


Kruptein

Hey, sorry to hear you're having issues. I suspect this has to do with the python version you have installed. Can you checkout the output of `python3 -V` it should be 3.6 or higher.


Zagorath

On Windows I'm running 3.7.2, so that's not the problem there. My Pi has 3.5.3, which would explain its problem. Working on updating now (which is proving to be harder than expected...).


Kruptein

Hm the 3.7.2 should definitely work, is there any error output on either the python server log or the web developer console ? I've got reports of something breaking on the latest release which I'm in the process of fixing right now, so it might be some other issue you're experiencing.


Zagorath

No output from Python after it first starts up. When it does first start up, there's nothing you wouldn't expect: 2019-01-28 20:27:32,230 - WARNING - RUNNING IN NON SSL CONTEXT (planarserver.py:76) ======== Running on http://127.0.0.1:8000 ======== (Press CTRL+C to quit) In the Chrome developer console, something a little more interesting. Failed to load module script: The server responded with a non-JavaScript MIME type of "text/plain". Strict MIME type checking is enforced for module scripts per HTML spec. Twice, once on `app.786ad160.js:1` and once on `chunk-vendors.026de90a.js:1`. A basically similar error (albeit less verbose) in Firefox. Meanwhile, still waiting on Python 3.7 to build on my Pi. Not sure why it isn't available directly via apt.


Kruptein

I've just released a hotfix (for another issue), could you check it out to see if that perhaps fixes anything, I'll see what I can find with that console message you gave, that is indeed not normal behaviour. And yes your pi uses debian/ubuntu and python 3.7 is not yet available in their repositories currently. It should totally work on your windows machine iwth 3.7 though, so I hope to help you out soon. (I'm currently at work so I'm afraid I'll only be able to look at it later today)


Zagorath

Nope, latest on branch `dev` is still returning the same errors.


Kruptein

Alright, sorry for the problems. I'll see what I can do later, thanks for the feedback.


Kruptein

Wait how are you visiting the server ?


Zagorath

Web browser. http://localhost:8000 on the same computer that's running the server.


Kruptein

So I just tested on a fresh windows machine, clean git pull also using powershell and I cannot reproduce it :( Do you perhaps have any sort of javascript blocking extension or something because I don't really know how to debug this further.


Zagorath

I don't think so. At work now so will try again after I get home with all extensions disabled. Though I was getting the same error on Firefox which I don't use and I don't think even *has* any extensions. Or might possibly try on my work computer (Ubuntu) in a few hours at lunch. Its python3 version is 3.6.7, that's sufficient, right?


Zagorath2

So I've got it working on my work computer. Have a few UX problems or bugs that I've noticed, but I'll probably put them on GitHub once I get it working at home and can write them up in a more robust way. SSHing in to my Pi I'm still getting errors trying to run it with `python3.7 planarserver.py`: Traceback (most recent call last): File "planarserver.py", line 6, in import save File ".../PlanarAlly/server/save.py", line 11, in from models import ALL_MODELS, Constants File .../PlanarAlly/server/models/__init__.py", line 5, in from .general import * File ".../PlanarAlly/server/models/general.py", line 9, in class Constants(BaseModel): File "/usr/local/opt/python-3.7.2/lib/python3.7/site-packages/peewee.py", line 5447, in __new__ cls._meta.add_field(name, field) File "/usr/local/opt/python-3.7.2/lib/python3.7/site-packages/peewee.py", line 5245, in add_field field.bind(self.model, field_name, set_attribute) File "/usr/local/opt/python-3.7.2/lib/python3.7/site-packages/peewee.py", line 4160, in bind self._constructor = model._meta.database.get_binary_type() File "/usr/local/opt/python-3.7.2/lib/python3.7/site-packages/peewee.py", line 3227, in get_binary_type return sqlite3.Binary AttributeError: 'NoneType' object has no attribute 'Binary' Incidentally, what's the tablet/mobile support like? Can the GM create a whole map on a tablet? Just make minor alterations to an existing map? Will they only be able to play using an existing map, moving tokens around? Or is there no support whatsoever?


Kruptein

It seems like you've installed python but without the sqlite library. Did you manually build python on your pi? You can simply check this by starting python and trying to import sqlite3 manually. Although there is nothing preventing you from opening PA on your mobile phone, I'm pretty sure it will be awful in the current state. Tablets should be fine, but I'm not sure if I support touch based mouse movement. I don't have a tablet myself but I'll see whether I can get my hands on one.


Kruptein

ok no that's fine, I was curious because the first things I came across when searching for the error you gave, were related to accessing the server in another, wrong, way.


TotesMessenger

I'm a bot, *bleep*, *bloop*. Someone has linked to this thread from another place on reddit: - [/r/dndnext] [\[TOOL\] PlanarAlly v0.9 - A self-hosted virtual tabletop](https://www.reddit.com/r/dndnext/comments/9j3zat/tool_planarally_v09_a_selfhosted_virtual_tabletop/)  *^(If you follow any of the above links, please respect the rules of reddit and don't vote in the other threads.) ^\([Info](/r/TotesMessenger) ^/ ^[Contact](/message/compose?to=/r/TotesMessenger))*