Skip to main content
CorgiDev Logo

CorgiDev Thoughts

This blog will mostly serve as a spot for me to throw things I am thinking about or things that I have learned that I feel others may benefit from.

All links on this page, outside of those within the header and navigation breadcrumbs, will open in a new window.

If the images are too small, you should be able to right-click them and select the browser option to open the image in a new window to view them full-size.

HTML Order versus Visual Order

When building a site, you can have elements in the markup in one order, but then change how it displays via CSS. However, ideally you want the visual / reading order to match the order the content is in the HTML. This is because the code order is mostly what will control how assistive technology navigates through the content. You also want this order to remain the same if the user resizes the screen so they are not disoriented and don't struggle to find controls/content that has moved. By remaining consistent between screen sizes or code verus display, we can better ensure the content will flow in a predictable and meaningful order.

This is also why we want to avoid overwriting tab order using tabindex unless we are forcing an interactive element into the tab order that is not being tabbed to for some reason. If you are using proper semantic elements this overwriting is typically not necessaryunless there is a compatibility issue. Usually, forcing elements into tab order is only necessary when you are using a custom element.

In some cases, you may be able to use the role attribute to have the custom element be properly recognized as what it is (i.e., button, link, etc.) and the browser thus automatically placing it into tab order. Only if that does not work, would tabindex potentially be needed as well. However, even in those cases we should only be setting tabindex to -1 (removes from tab order) or 0 (adds to tab order).

Setting tabindex to 0 or -1 will purely add/remove the elements from the tab order. When adding to tab order using tabindex="0", the element's placement in tab order will still be primarily determined by its order in the code. We don't want to use other positive values that would actually force an element into a particular spot in the tab order. Doing so can result in issues when the page adjusts based on screen size or if elements are removed/added by various controls or user actions. There is even a warning about this on the tabindex Mozilla Developer Network page Opens in new window.

If you'd like to learn more about the importance of ensuring HTML order matches the display order, check out the following article: HTML Source Order vs CSS Display Order | Adrian Roselli Opens in new window.


How old is your GitHub account?

Every GitHub account has an associated ID that is created sequentially. There are over 100,000,000 accounts. So the lower the number, the older the account. You can easily see the ID by going to https://api.github.com/users/username, but swap out "username" at the end with your GitHub handle.


Host a Palworld Server on Azure

Posted:

I recently started getting Azure credits and decided to have some fun seeing if I could host a Palworld server there. However, I ran into difficulties when I started to search for documentation to help me. Many skipped steps or were too vague. I ended up having to cobble together a couple of different pages and sift through Azure's documentation to find everything I needed. As a result, I decided to try to save other people some time by making my own documentation on how I created my server. I will include steps for creating a Palworld server based on Ubuntu Linux and Windows.

If you don't need help setting up a VM, and just want to set up a Palworld Server in Ubuntu Linux or Windows, you can jump to those sections. Note that the benefit of these install methods is they use SteamCMD, which is separate from a regular Steam client install. They also involve logging into SteamCMD anonymously, which means you can be logged into your Steam client playing Palworld while the server also runs, or have the server running on one machine while playing on another machine. Also, if you are installing Palworld Server on personal equipment, you will need to set up port forwarding to whichever port you hve Palworld set to use (default is 8211).

Creating the VM

Initially creating the VM in Azure is pretty straight forward and similar regardless of whether your end result will be Linux or Windows. One very important note with any VM in Azure, you will only be charged for the time your VM is running. So, to save on cost, shut down your VM when no one is using it. You can also set it to auto-shutdown at a certain time each day if you want to make sure you don't leave it running indvertently. I will also provide some Powershell scripts that you can use to check the status of your Azure VM in a separte post later.

  1. Login the your Azure account with the Azure portal.
  2. You should initially be taken to the Dashbord. From there you can select "Resource Group" to access the "Create a resource group" process.
    1. If you don't see "Resource Group" listed, select the "Create a Resource" option and search for "Resource Group" in the Marketplace.
    Azure Dashboard with the Create a Resource and Resource Group options.
    Azure Marketplace with Resource Group pulled up in the search.
  3. You should now be on the "Create a Resource" page. Select the subscription if the one you want your VM in is not listed, and then type a name in the "Resource group" text input field. Azure Create a Resource page
  4. Next click "Review + Create" and then "Create" on the next screen as long as long as everything looks like what you selected and typed. Azure Create a Resource page create validation page
  5. You will be taken back to where you initially selected to start creating the group. A pop up will display that you can select "Go to Resource" from, or you can type the name in the search bar to get to the resource group. Pop up with option to go to resource.
  6. Once you are at the resource, you will see a list of resources that is currently empty. We can start changing that by clicking on the "Create" option. Resource Group dashboard with Create option highlighted
  7. This will take us to the Azure Marketplace. From here, go to the "Search the Marketplace" text input field and type "Virtual Machine". Azure Marketplace with the listing for Virtual Machine
  8. Click on the Virtual Machine option, and then click the "Create" button on the next page. Azure Marketplace Virtual Machine page with Create button
  9. This is where things begin to split just slightly based on whether you are making a Linux VM or a Windows VM. The following options are what you should select and fill out:
    • Resource Group: Name of Resource Group you created
    • Virtual machine name: Name you want to use
    • Image: Select either "Ubuntu Server 22.04 LTS - x64 Gen2" or "Windows Server 2022 Datacenter: Azure Edition - x64 Gen2".
    • Size: Standard_B4as_v2 - 4 vcpus, 16 GiB memory (current cost / month)
    • Authentication Type: (Recommend selecting the Password type for Linux VMs. Windows VMs default to this.) Enter the username & password you wish to use.
    Form to create a VM.
  10. Click "Review + Create" and then "Create" on the next screen. The next screen will step through deploying the VM. This will involve it creating all the necessary parts. Most will have a data disk, network security group, virtual network, the VM itself, nd possibly other parts.
  11. Click the "Go to Resource" option once the creation is complete. You can click away from the page while it is deploying, but you just might not be notified when it finishes. However, it will show up under the Resource Group once it is done. If you go to the Resource Group, click the item with the Virtual Machine name you entered and "Virtual machine" under the "Type" column.
  12. Once in the VM dashboard, click the "Network settings" option in the side navigation bar. VM Dashboard with Network Settings option highlighted.
  13. Once on the Network Settings page, scroll down to the "Network security group" section, click the "Create port rule" button, and select the "Inbound port rule" option. VM Network Settings page with the Inbound port rule option highlighted.
  14. An "Add inbound security rule" pane will display. There you need to set the following options:
    • Destination port ranges: 8211
    • Protocol: UDP
    • Priority: 100
    Add inbound security rule pane with settings entered.
  15. You can also set a description on the pane to help you quickly identify th purpose of the rule later. For example, I usually add something like "Palworld Connections".
  16. Once you have set the options, click "Add". This will ensure that the necessary Palworld connections can make it to the virtual machine.
    • IMPORTANT: You will still need to add a firewll rule on the VM itself once you remote into it the first time, but we will go into that later.
  17. The VM automatically starts up after creation. So, make sure to shut down the VM if you are not continuing at this time to avoid extra charges.
  18. The VM should now be set up and ready for you to begin setting up the Palworld server. This is where things completely split based on what VM type you are using.

Setting Up Palworld on a Linux VM

Setting up Palworld Server on a Linux server can be a little more confusing for some because it is a purely command line OS with no graphic interface. However, it isn't too bad. One thing to keep in mind is that this tutorial is based around Ubuntu Linux. If you are using a different variant of Linux, you may need to use different commands for some things. Granted most of the process will be the same.

Additionally, while I do not know how well it works on the Azure instance of Linux server, it is possible to install a graphic interface addon to Ubuntu Server.

You could elect to use regular Ubuntu, but I wouldn't do that in Cloud environment because it might incur much more cost than Ubuntu server.

Connect to Your Linux VM

I prefer using mRemoteNG to connect to my Linux VM. You can technically use command line, but I like being ble to save my connections.

  1. Downlod and install mRemoteNG if you are electing to use that method, and run it once it is installed.
  2. There should be a first connection added when you run it the first time. If not, right-click on "Connections" in the side nav panel and select "New Connection". New Connection option in mRemoteNG
  3. Click on your new connection and fill in the information similar to the following:
    • Name: Name to help you identify your connection in mRemoteNG
    • Hostname/IP: Public IP of your VM as listed on its dashbord in Azure
    • Username: Admin username you set during VM creation
    • Password: Admin password you set during VM creation
    • Protocol: Select "SSH version 2" from the drop-down list
    • Port: Make sure it says 22
    New Connection option in mRemoteNG
  4. Double-click on your new connection to connect. The first time you connect you will get a security prompt just letting you know that the fingerprint of the VM's host server is not stored yet. Click "Yes" to continue. Linux fingerprint security message prompt
  5. You will know that you have successfully connected when the screen displays the start up information for Ubuntu Server with the end showing a command prompt that is formatted as your admin name, an @ symbol, and your server's name followed by ":~$". You're now ready to move on to the prep and setup steps. New Connection option in mRemoteNG

Preparing Ubuntu for Palworld Install

To prepare for installing Palworld Server, we need to do the following:

  1. Ensure the Ubuntu Server is up to date
  2. Update the package list
  3. Install the "software-properties-common" package to make performing repository changes easier
  4. Enable 32-bit architecture because SteamCMD is only 32-bit
  5. Rerun update
  6. Add the 8211 port to the incoming rules for the Linux firewall

The following command will accomplish all of this. It is technically 7 commands. I just combined it all into one for easier copying and pasting. It will run like this because the 2 ampersands (&) between each command basically tell Linux to run one commnd and then run the next in line as long as the previous one succeeds. Additionlly, after copying the command, you can paste it in Linux by just right-clicking in the command line window.

Start of Command

sudo apt update && sudo apt upgrade -y && sudo apt install software-properties-common && sudo dpkg --add-architecture i386 && sudo add-apt-repository multiverse && sudo apt update && sudo ufw allow 8211

End of Command

Installing SteamCMD

SteamCMD allows you to run a lightweight version of Steam that does not have the GUI. It is also useful since you can run it with an anonymous login. This allows you to install the Palworld Server software without locking up your Steam account.

To install SteamCMD:

  1. The following command will start the install of SteamCMD:
    • sudo apt install steamcmd
  2. SteamCMD will install until it gets to a point where it asks you to confirm you wish to continue. Type the letter Y and press enter. Request to continue in command line
  3. A new prompt will display featuring the SteamCMD agreement. Use the arrow keys to scroll up and down through the agreement text. When you are ready, press the tab key to move to the "OK" option and press enter. Terms of SteamCMD window
  4. Next you will be asked to confirm whether or not you agree with the terms. You must agree if you want to continue the install. Use the arrow keys to select your choice. Then press tab to move to "OK". Finally, press enter to confirm your choice. Agree or Disagree to terms window
  5. The install will continue on until it finishes.

Create a User to Run SteamCMD as in Linux

It is best to not run all of the SteamCMD processes as the sudo user. Hence why it is recommended to create a separate user just for running SteamCMD. This provides a separation between what programs have access to do, and who can use them.

To create and modify the user for use with SteamCMD:

  1. Run the following command to initially create the user:
    • sudo useradd -m steam
  2. Next we need to modify the account's ".bashrc" file to adjust the path environment variable. This ensures the user can find the file path for SteamCMD. Otherwise, the "/usr/games" pth is missing. Open the file for editing with the following command:
    • sudo nano /home/steam/.bashrc
  3. With the file open, use the down arrow key to move all the way to the bottom of the file. The bashrc file for the Steam user
  4. Now we need to paste in the following line to the file to add the "/user/games/" path to the Steam user's "PATH:" environment variable.
    • export PATH="/usr/games/:$PATH"
    Bashrc file with pasted text at the end.
  5. Press "CTRL+X" to exit the file. You will be asked if you want to "Save modified buffer". Simply type the letter Y and press enter to confirm.
  6. Anytime we perform any actions related to SteamCMD or Palworld, we will need to swap to the Steam user. You can always confirm what user you are running a command as by looking at the start of the command line when it is awaiting a command. It always starts with the current username. Use the following command to switch to the Steam user:
    • sudo -u steam -s
  7. When we initially switch users, we will still be in the former user's home directory. You can tell this by looking at the part of the command line's ready state that is between the colon and dollar sign. If it is anything other than a tilde (~), then you are not in the Steam user's home directory. Use the following command to switch to the home directory of the Steam user:
    • cd ~

Now we are ready to install Palworld Server.

Install Palworld Server on Linux

  • Install the Steamworks SDK with the following command to get a 64-bit file Palworld needs to run:
    • steamcmd +force_install_dir '/home/steam/Steam/steamapps/common/steamworks' +login anonymous +app_update 1007 +quit
  • Now we need to create the directory where we will copy the "steamclient.so" file Palworld Server needs to operate. We can do so using the following command:
    • mkdir -p /home/steam/.steam/sdk64
  • With the directory created, we now need to copy in the "steamclient.so" file necessry to get this all running. We can do so using the following command:
    • cp '/home/steam/Steam/steamapps/common/steamworks/linux64/steamclient.so' /home/steam/.steam/sdk64/
  • Now we re ready to download and install the Palworld Server to our machine. This can be accomplished with the following command:
    • steamcmd +force_install_dir '/home/steam/Steam/steamapps/common/PalServer' +login anonymous +app_update 2394010 validate +quit
  • Starting Up Your Palworld Server

    We can now try starting up our Palworld Server for the first time. This will give us a chance to see if everything set up correctly, and is also needed to create some files we will need to edit before we can try connecting to it with a Palworld client.

    1. Switch to the directory where the start script is located using the following command:
      • cd /home/steam/Steam/steamapps/common/PalServer
    2. Start the server using the following command:
      • ./PalServer.sh
    3. If the server starts, you should see some text similar to the following, but don't be put off by the fail messages. They are expected for now:
      • [S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.
    4. Press CTRL+C to stop things for now so we can make some config changes.

    Configuring Your Palworld Server

    We need to make some config changes to our server that will help make it function better and allow us to customize some settings.

    1. We need to start by copying over the default settings file into the server's individual settings file to give us a starting point. Otherwise, the settings file for the server is empty at first by default. Do so using the following command:
      • cp /home/steam/Steam/steamapps/common/PalServer/DefaultPalWorldSettings.ini /home/steam/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
    2. Similar to what we did with the bashrc file earlier, we are now going to edit the settings file with nano using the following command:
      • nano ~/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
    3. For easier editing, press the Escape (Esc) key on your keyboard and then release it. Then press shift + 4. This will cause nano to do text wrapping so you can see more.
    4. Use the arrow keys to move around the text to the spots you need to edit. The main ones to edit first include:
      • ServerName: A name for your server. Not required, but this can be helpful if users connect to multiple servers.
      • ServerDescription: Not required, but could be useful for the same reasons as the name.
      • AdminPassword: Sets a password for admin functions on the server.
      • ServerPassword: Sets a password for users who want to connect to your server. Not required unless you want one.
      • PublicIP: Input the Public IP listed in the dashboard for the VM in Azure.
    5. You can now edit other settings too if you would like. I recommend changing the "DeathPenalty" setting. By default it is set to "All", which means you drop your items and Pals when you die and have to go pick them all back up. You can change it to one of the following:
      • DeathPenalty=0: No death penalty
      • DeathPenalty=1: drop items only
      • DeathPenalty=2: drop items and gear
      • DeathPenalty=All: drop pals, items, and gear
    6. Once you have made all the changes you want, press ctrl+x, y, and enter to save and exit.

    Have Palworld Server Start at Boot

    If you'd like your server to start at boot in Linux, you can do that.

    1. First type "exit" and press enter if you are still running as the Steam user from earlier.
    2. Now start creating a service to start Palworld when Ubuntu boots using the following command:
      • sudo nano /etc/systemd/system/palworld.service
    3. You will find yourself in the now more familiar Nano editor, which we need to paste some text into.
      • When you go to paste this in, it will have an extra line in between the lines of text. It is because I couldn't get it to display properly across browsers for some reason. So, for now, I had to kind of play around to get it to at least show that each line is a different line rather than shoving it all together. You'll need to remove those extra blank lines manually after pasting it until I can fix it. I have included a screenshot of what it should look like for reference.
      • Paste in the following text in order to let Ubuntu know what to start and pass along some additional options the developer recommends:
        • [Unit] Description=Palworld Server Wants=network-online.target After=network-online.target [Service] User=steam Group=steam WorkingDirectory=/home/steam/ ExecStartPre=/usr/games/steamcmd +force_install_dir '/home/steam/Steam/steamapps/common/PalServer' +login anonymous +app_update 2394010 +quit ExecStart=/home/steam/Steam/steamapps/common/PalServer/PalServer.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS > /dev/null Restart=always [Install] WantedBy=multi-user.target
      • The following is a screenshot of how the text should appear:
    4. Now press ctrl+x, y, and then enter to save and exit.
    5. Enable the server using the following command:
      • sudo systemctl enable palworld
      • You can later disable it by just swapping "enable" for "disable".
    6. I ran into issues with certain ports being used. So, I recommend restarting your Ubuntu machine at this point just to avoid issues.
    7. Now you can jump to the section about how to connect to your server.

    Setting Up Palworld on a Windows VM

    Much of this is written from being on a Windows machine. In particular, I am on a Windows 11 machine. However, this just impacts how you connect to the machine. Once you are connected and interacting with the VM itself, it is a completely separate machine.

    Connect to the VM

    1. Go to the Windows VM in the Resource Group and observe the "Public IP address" listed. Windows VM Dashboard with the Public IP address highlighted.
    2. Open the Start menu on your computer and type "RDP" to search for the "Remote Desktop Connection" program on Windows. Select the application when it shows in the results. Windows start menu with RDP in search and the Remote Desktop Connection application selcted from the results.
    3. Once the RDP application opens, enter the IP address in the "Computer" field followed by ":3389", which is the RDP port set by default in Azure. RDP Connect window with IP address and port entered in the Computer field.
    4. Click the "Connect" button and then enter in the credentials you previously set for the VM's Admin authentication credentials.
      • The credential window will default to your Windows account. You will need to click the "More choices" button and select "Use a different account" before entering in the credentials you set during VM creation. RDP Credential window with More choices button highlighted.
    5. You may be asked to confirm you trust the connection. If so, click "Yes" to confirm and it should connect. RDP connection security confirmation window.

    Set Firewall Rule on VM

    This firewall rule is basically the same rule as the one we set in Azure. You have to also set the rule in the VM itself.

    1. Once connected to the VM, open the start menu and type "firewall". Select the "Windows Defender Firewall with Advanced Security" result when it appears. Windows start menu with firewall in the search and the Firewall app displayed in the results.
    2. Once the firewall application opens, click the "Inbound Rules" option under the side nav panel, and then click the "New Rule..." option from the "Actions" panel that displays. Windows Firewall application with the Inbound Rules panel open
    3. On the Inbound Rule Wizard that opens, select the "Port" option, and then click "Next". Inbound Rule wizard with port selected.
    4. On the next screen, select the "UDP" option and then enter "8211" in the "Specific local ports" field before clicking "Next". Windows Firewall application with the Inbound Rules panel open
    5. Click Next again on the next screens until you get to the screen with the "Name" field. In the Name field, give the rule a name that helps you identify it later. For example, I named mine "Palworld Connections". Windows Firewall application with the Inbound Rules panel open
    6. Click "Finish" to finalize the rule creation. Windows Firewall application with the Inbound Rules panel open

    Windows Palworld Server Pre-Requisites

    There are some things we have to install before we can begin installing the Palworld dedicated server needed to run a Palworld server. Once you get all of these installed, I recommend restarting the VM before continuing.

    • SteamCMD for Windows
      • SteamCMD allows you to basically run Steam without the graphic interface, which allows it to be a lot more lightweight.
      • For this one, I extract the installer into a "SteamCMD" folder in the VM's C drive.
      • Once this finishes running, you can press CTRL + C to close the command prompt window.
    • DirectX 9.0
      1. This link should install to the server. The main link you get when you search is a downloader installer and doesn't work within the VM for some reason.
      2. Before running this, create a "DirectX" folder in your Download folder. It extracts ALOT of files, but does not allow you to create a folder during the extraction process. So you need the folder you want the files to go into before you run it.
      3. Once you run it to extract the files, go into the DirectX folder you created and extracted the files into.
      4. Inside the folder, scroll to and run the "DXSETUP" executable to install DirectX.
    • Visual C++
      1. Select the "X64" link in the table of download links.

    Installing Palworld Server on Windows Server

    1. Navigate to the SteamCMD directory. It will be wherever you extracted and ran SteamCMD from initially to install it, and then run the "SteamCMD.exe" file. Windows folder for SteamCMD with the exe file highlighted.
    2. A Command Prompt window will open and SteamCMD will start up. When it finishes, the window will display "Steam>" instead of the usual C drive. Command Prompt window after starting SteamCMD.
    3. In the window, type the following commands in order. Note each command has a short description of what it does. Allow each to complete its action before trying to enter the next one.
      1. Logins into Steam: login anonymous
      2. Updates Steam & Updates / Installs Palworld Server: app_update 2394010 validate
      3. Closes SteamCMD: quit
      Command prompt window showing the commands and their outcomes.
    4. Palworld Dedicated Server is now installed. Go back to your folder where SteamCMD is installed.
    5. Next, within that folder, navigate to "/steamapps/common/PalServer" and run PalServer.exe. A command prompt window will open that says "Setting breakpad minidump AppID = [some numbers]".
    6. Close that command prompt window. Then back in the folder, open "DefaultPalWorldSettings.exe". Copy everything from, and including, the line "[/Script/Pal.PalGameWorldSettings]" to the bottom of the file, and then close the file. Palworld folder with the default settings file highlighted.
      Default settings file opened with the aforementioned content highlighted.
    7. Back in the folder, navigate to "/Pal/Saved/Config/WindowsServer" and then open the "PalWorldSettings.ini" locted there, paste the content you previously copied into the currently blank file, and save it. Server settings file opened with the aforementioned content pasted in.
    8. Next we need to edit a couple of settings. You can edit more if you would like, but these are just the ones needed to make our server function. Once you have made all of your changes, save and close the file.
      • Server Name: Give your servr a name if you don't want it to just be "Default Palworld Server Name".
      • Server Description: Not required, but you can give a little description that you and users will be able to see under the settings when connected to the server. This could be useful if users have multiple servers they play on.
      • Admin Password: Enter the password you want to use to access admin functions within the server.
      • Server Password: Enter the password you want users to enter to access the server. Leaving it blank will result in users not needing a password to access the server.
      • Public IP: Enter the public IP of your VM displyed on the VM's dashbord in Azure
    9. Once you have made your changes, including altering any of the other settings listed, you just need to save and close the file.
      • I recommend changing the "DeathPenalty" setting. By default it is set to "All", which means you drop your items and Pals when you die and have to go pick them all back up. You can change it to one of the following:
        • DeathPenalty=0: No death penalty
        • DeathPenalty=1: drop items only
        • DeathPenalty=2: drop items and gear
        • DeathPenalty=All: drop pals, items, and gear
    10. Now that we have everything configured, restart your VM before running PalServer.exe again to start the server.
    11. I'll update this later with steps on how to get Palserver.exe to start when the machine starts, but for now you would need to manually start it. The following might work, but I haven't tried it myself yet because my server is running in Ubuntu.
      1. If you want to set up the Palworld Server to autostart when the VM is started:
        1. create a text file with just the file path to your "PalServer.exe" file. It needs to be the full path with "C:\" at the start. If you want a quick way to get the full file path, hold shift and right click the "PalServer.exe" file. Then select "Copy as path". Just make sure to remove the quote marks from around the file path after pasting it.
        2. Move the bat file to your C drive.
        3. Create a task in task scheduler that runs the bat file once the computer starts.
    12. You can now move on to connecting to the server.

    Connecting to Your Palworld Server

    With Pal Server running on your VM, you can now try connecting to it with a Palworld client. Remember that if you are running your server on your home network, you will need to setup port forwarding on your router for anyone outside your network to be able to connect. Additionally, you will need to get the public IP for the machine running the server.

    1. First verify that your server is running in Azure if that is where you installed and are running Pal Server.
    2. Manually start the Pal Server if you don't have it setup to auto start when the computer boots.
    3. On your physical computer that you use for playing Palworld, start the game and click "Join Multiplayer Game". Palworld start menu with Join Multiplayer option highlighted.
    4. On the next screen, you will need to go to the bottom where there is an "Enter Password" checbox and an input field followed by a "Connect" button. Check the box if you added a server password. Then enter in the Public IP address of your VM with ":8211" appended to the end of it. Palworld multiplayer screen with options to connect to servers.
    5. If you checked the option to enter a password, you will be prompted to enter that password and then need to click "OK". Otherwise, you will just be taken to your server if everything ws set correctly.

    Links to DM people in Slack & Teams

    Posted:

    One of my favorite things to do is add links in my email signature for people to DM me in Slack & Teams. I only use it for internal communications, but it tends to surprise people and is just an overall useful little trick.

    I've also found these links useful in documentation. Maybe you have a list of contacts who someone needs to contact in a particular circumstance. You could include Teams links to ensure people message the right people and not someone with a similar name.

    Follow along if you are interested in doing the same. Keep in mind that there may be some instances where the methods I show do not work for your organization. This could be due to some organization settings. I will provide a list of resources that might provide alternatives you can try. The ones I list are just the ones that worked for me most frequently.

    Links to Direct Message someone in Teams

    Teams has proven to be the easiest one for me. With this you just use https://teams.microsoft.com/l/chat/0/0?users=[your email address]. Want to make it a group chat? Add additional email addresses separated by commas.(https://teams.microsoft.com/l/chat/0/0?users=[your email address],[second email address]).

    One potential hiccup could occur if you have an old Microsoft 365 account where you had a personal and an enterprise version of your account. You will know if this is the case if Microsoft 365 asks you if you want to log in as your Home Account or your Work Account when you try to log in.

    Links to Direct Message someone in Slack

    Slack is a little more complex to make a direct message link for. Keep in mind that someone must be a member of the Slack tenant to direct message someone using the link. This is why I typically only use these internally, and I always put a text note next to them stating that they are for internal use only.

    Another important distinction of the link format I am about to cover is that it will open in the desktop app, if it is installed. There are other variants you can use, but many of them open in the web browser instead of the desktop app.

    1. First, we need to find you Team ID. To find this, you will need to login to your Slack environment via web browser rather than the desktop app.
    2. Once logged in, look at the url in the browser's address bar.
    3. The url will look something like the following: https://app.slack.com/client/T05REF2GYN9/C06DFSGR5SB. The set of charcters after client/ is the Team ID.
    4. Next we need your Member ID. For this, you can access Slack in the browser or in the desktop app.
    5. Once you have the app loaded, go to your Slack profile in the app, or the Slack profile of the user who you wish to make a message link to. You can accomplish this by right-clicking their image in an existing chat or channel, and selecting "View Profile".
    6. Once in the profile, you should see a set of 2 large buttons labeled either:
      • Your Profile: "Set Status" & "View As"
      • Other User Profile: "Message" & "Huddle"
      Either way, there will be a vertical elipses icon that indicates the "More" menu after those buttons that you need to click to expand another menu.
    7. From that menu, select the "Copy Member ID" option.
    8. Now format your direct message link as https://app.slack.com/client/[Team ID]/[Member ID].
    9. You now have a direct message Slack link for someone.

    Other Resources

    I hope this information proves useful for you. The following resources should prove useful if you'd like to learn more.


    Computer typing in reverse?

    Posted: EST

    I had a weird issue recently where my typing direction kept getting reversed. Basically, I would start typing and instead of the text going towards the right side of the screen, it would go towards the left. As a result, my sentences would be reversed from what I expected them to be. I could not figure out what key combination I was hitting to cause this until I did some research.

    After doing some searching, I learned that this is a feature within Windows meant for languages where you may need to type in the opposite direction due to the way the text is printed and read. There can be some other causes, but generally the most likely causes are that you inadvertently changed the region on your keyboard, or you pressed the control (ctrl) key together with the left or right shift key. If you find your typing going in the wrong direction, first try pressing ctrl together with right shift for right to left typing, or with left shift for left to right typing.

    If that does not work, try the one, or a combination, of the following options. Note that the following options, or the steps to alter them, may vary somewhat depending on your OS version.

    1. Restart your computer
    2. Check your system region settings. This is typically done by:
      1. Start menu
      2. Search for and select "Control Panel".
      3. Go to "Region". This may be under "Clock and Region" depending on how your control panel displays.
        Windows control panel with the Region option showing.
      4. Navigate to the "Administrative" tab.
        Administrative settings tab under Region options.
      5. Select "Change system locale".
        Region settings window with drop-down for current system locale displaying.
      6. Click on the dropdown menu for "Current system locale" and select your country.
      7. Click ok to apply the setting changes.
      8. Click "Apply" to finish applying the changes.
      9. Restart your machine.
    3. Try running the Keyboard troubleshooter. This can be accessed in Windows 10+ by:
      1. Open Start menu.
      2. Search for "Troubleshoot" and select the "Troubleshoot Settings" option.
        Start menu with the search term troubleshoot typed in and the troubleshoot settings displaying as an option.
      3. Select "Other troubleshooters".
      4. Select the "Run" button next to "Keyboard".
        System settings opened up to Troublesoot/Other Troubleshooters.
      5. A troubleshooter application will automatically run and complete with options. You may be asked to restart your machine.
    4. Uninstall your keyboard with device manager and then scan for new hardware to reinstall your keyboard

    There are other options, and details listed under the following article, Keyboard Typing Backwards: Causes & Quick Fixes | WindowsReport Opens in new window. Please note that this is an external page that I do not have any control over. As a result, there may be additional links and options on this page that I cannot guarantee the safety of. Please avoid installing additional applications without consulting someone able to identify if they are safe or not.

    I hope this information helps anyone else who may have gone through something similar to me.


    Alternate Conformant Versions?

    Posted: EST

    Alternate conformant versions is an important part of any Accessibility audit. When checking for this, an auditor is checking if inaccessible materials have an accessible alternate version identified. If an accessible alternative is available, an auditor can choose to skip any further accessibility checks on the non-conformant content and instead assess the accessibility of the conformant version.

    A great example of content that has an alternate conformant version, is the Microsoft Product Adoption Guides Opens in new window. If you select to view an individual guide, you are initially taken to an interactive booklet version. The booklet is not Accessible. However, at the top of the page, there is a link to a PDF version of the same content that is accessible.

    Interactive booklet of the Microsoft 365 Accessibility Adoption Guide with a link to a pdf version at the top of the page, and buttons to control interaction with the booklet at the bottom of the page.

    However, while having an alternate conforming version can be a good way to provide multiple ways for users to view the same content in a format they prefer; it can pose severe risk. When you have multiple versions; you have multiple sources of truth. This means you run the risk of one not being as up to date as the other, and having to remove multiple copies of the same information if you need it gone.


    Uploading Images with Transparent Backgrounds to RedBubble

    Posted: EST

    Have you uploaded an image to RedBubble that was supposed to have a transparent background, and it instead was given a solid background? I have run into this issue on more than one occassion and always had to waste time finding a solution. So I decided to describe a solution here for my benefit, and others who may benefit.

    I tend to upload images to RedBubble to make custom content for my own use, or for my logo that I have listed in my RedBubble store. I use the free, open source image editing program known as GNU Image Manipulation Program (GIMP) Opens in new window to edit images. I also save images as PNG files since I now know what settings to set to consistently get transparent backgrounds.

    In GIMP, you select "Export As" to save an image as a particular format. Once you do that, you can use the "Select File Type (By Extension)" to select the PNG file type. After that you click the Export button to progress to the next window.
    Export As dialog window in GIMP

    You will next be presented with a set of Export options that are based on the file type. For PNG files that need to have a transparent background, you will need to focus on the settings in the bottom half of the window. You will want to make sure that the following settings are unchecked:

    • Save Exif data
    • Save XMP data
    • Save IPTC data
    • Save Thumbnail
    Export As dialog window in GIMP with the previously listed options unchecked.

    Click the Export button once you have those options unchecked and upload your file to RedBubble. The transparent background should show up correctly now. I found out about this fix from a comment on a forum post Opens in new window on Gimp-Forum.net Opens in new window.