Jump to content

All Activity

This stream auto-updates

  1. Last week
  2. In this guide, I will be showing you how to make and run a Garry's Mod server with mods (addons) on both Windows and Linux! Garry's Mod is a popular sandbox game that thrives off of mods and user-created content, offering a vast library of mods to enhance gameplay. These mods, available on platforms like the Steam Workshop and GitHub, add unique twists to the gameplay experience, from new maps and tools to entirely custom game modes. Running a server with mods allows players to connect and enjoy a shared, customized experience using the addons the server has installed. The two operating systems we'll be targeting specifically in this guide are Windows 11 and Debian 12 (Linux). I wanted to note a couple of things before continuing in this guide. The terms addon and mod are used interchangeably to refer to user-created content or modifications in Garry's Mod. In Garry's Mod, custom content is referred as addons. Similarly, the terms directory (known in Linux) and folder (known in Windows) are used interchangeably. Requirements Server Specs & Network Connection Garry's Mod servers are fairly light on RAM usage compared to servers in other games such as Minecraft and Rust. However, the amount of processing power required depends on various factors. If you don't plan on having many players on the server concurrently (all at once) or don't plan on opening the server to the public, you can usually get away with running the server on an older CPU depending on what mods you run. With that said, the speed of your network plays a part in how many players you can have on the server concurrently. Especially how much bandwidth you're able to send to players (upload speed). A few factors to consider are: The amount of players who will be playing on the server concurrently. The amount of additional network data mods on your server generate. Performance and rate settings (explained later on in this guide). If you're opening your server to public, I also recommend having your server hosted through a dedicated server provider. Other than the fees typically associated with server hosting, having your server hosted in a data center beats having it hosted at home due to more stability, better network speeds and routing (latency), better protection from (D)DoS attacks, and more. I'd recommend looking around and performing research for the best game server hosting solution suitable for you. There are many options, but the server's location, price, performance, and (D)DoS protection are important factors to consider if you plan on having the server publicly available. Port Forwarding If you plan on having your server accessible from the Internet, you may need to port forward both UDP and TCP ports 27015 through your router. This guide will not cover port forwarding specifically. However, I did want to provide other helpful guides on how to port forward the ports I've just mentioned. NordVPN - How to open ports on your router No-IP - How to Port Forward – General Guide to Multiple Router Brands PortForward - How To Forward a Port If your LAN network is operating as a NAT network, you may need to create a NAT rule as well. Downloading & Running SteamCMD The first step to making a Garry's Mod server is downloading and running SteamCMD. SteamCMD is a CLI tool for Steam that allows you to download both client and server files. Windows Instructions on downloading and extracting SteamCMD on Windows may be found here. Download the steamcmd.zip file from here. Create a folder where you can store and extract the contents from the steamcmd.zip file. In this guide, we'll be using E:\servers\steamcmd. Use Window's ZIP tool to extract the contents of steamcmd.zip into the newly created folder. Alternatively, you may use a tool such as 7-Zip. You should now see a steamcmd.exe executable file that you can run to complete the next steps. Linux Instructions on downloading and extracting SteamCMD on Linux may be found here. I prefer manually downloading and extracting SteamCMD which is what I will be doing in this guide. You will need to download a few packages that are required to download, run, and extract SteamCMD and run Source Engine servers. Debian/Ubuntu-Based (Apt) sudo apt install -y lib32gcc-s1 lib32stdc++6 curl tar NOTE - If you do not have sudo installed, you will need to login as root via the su - command and execute commands throughout this guide without using sudo at the beginning. While it isn't necessarily required, it is also recommended you create a separate user to run SteamCMD and your Garry's Mod server. You may use the following commands on Debian/Ubuntu-based systems to create a new user. # Create servers group. sudo groupadd servers # Create servers user with home directory set to /home/servers and using /bin/bash as the shell. sudo useradd -m -d /home/servers -g servers -s /bin/bash servers # Login as servers. sudo su servers - Next, you'll want to create a directory to store the contents from the steamcmd_linux.tar.gz file. # Create a 'steamcmd/' directory inside the user's home directory. mkdir ~/steamcmd # Change directories to the created directory from above. # Tip - You can also use 'cd $_' if you've just created the new directory. cd ~/steamcmd Now, you'll want to download the steamcmd_linux.tar.gz file and extract it. I recommend using the curl or wget commands to download the file and tar to extract it. In this guide, we'll be using a one-liner that utilizes curl and tar. curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf - If the command above was successful, you should see a new steamcmd.sh file when listing files in the new directory using a command such as ls -l. You can now run the new steamcmd.sh program using the following command which'll also update the SteamCMD installation. ./steamcmd.sh Downloading The Server Files Once you've launched SteamCMD, the first thing you'll need to do is set the directory where to install the Garry's Mod server files to via the force_install_dir command. In this guide, we will be installing the server inside of a directory called gmod/ within whatever directory or folder we create for SteamCMD. Therefore, we'll be setting force_install_dir to /home/servers/gmod on Linux (or E:\servers\gmod on Windows). For example, this is what it looks like on Linux. force_install_dir /home/servers/gmod Afterwards, you'll want to log into Steam using the login <username> command. Most dedicated server apps/tools allow a user to sign in anonymously through SteamCMD including Garry's Mod, so you won't need to input your Steam username or password in this case! login anonymous Next, you'll want to retrieve the app ID you'll like to install from this list. In our case, Garry's Mod server's app ID is 4020. Now, you'll want to use the app_update <app ID> command to download or update the Garry's Mod server files. Additionally, you may add validate to the end of the command if you want to verify the server files to ensure the files aren't corrupt. Keep in mind, passing validate to end of the command will make downloading take longer to finish. Install or update Garry's Mod server files without validating (faster, but doesn't check for corrupt files). app_update 4020 Install or update Garry's Mod server files along with validating (slower, but ensures server files aren't corrupt). app_update 4020 validate It will take some time to download the server files depending on your network and disk speeds. After you're done, you may navigate to the directory you've installed the server into. NOTE - If you want to create a script to create or update the server, read the F.A.Q.! Running The Garry's Mod Server To save time, we're going to create scripts to start the Garry's Mod server. Windows When looking at the new server files through the File Explorer, you should see a file named srcds.exe. We will be creating a Batch file/script named start-server.bat to run the server. Before creating this file, you will need to ensure you can set the file's extension by ensuring you're able to view extensions in file names. If you can't view file extensions, read here. After creating the Batch file, add the following contents. @echo off .\srcds.exe -game garrysmod -console -ip 0.0.0.0 -port 27015 +maxplayers 32 +map gm_construct You should now be able to double-click the newly created Batch file to start the server! Linux After navigating to the server file's directory by executing cd ~/gmod or similar, you should see srcds_run and srcds_linux files inside of the directory. We will be creating a simple Bash script to start the server. There are many different types of text editors you use to create the script such as Nano and Vim, in this tutorial we will be using Nano. We will name the script start-server.sh. Firstly, use the following command to start editing the new file. nano start-server.sh Next, paste the following contents into the file. #!/bin/bash ./srcds_run -game garrysmod -console -ip 0.0.0.0 -port 27015 +maxplayers 32 +map gm_construct The above command launches a Garry's Mod sandbox server on the map gm_construct that is bound to any IP address and interface on the server via 0.0.0.0 along with bound to port 27015 (the default port for SRCDS servers). After you're finished, hit CTRL + X and enter to save the file. If you would like to see the contents of the file, you may execute cat start-server.sh. Once you've saved the file, you will also want to give the user permission to execute the file which may be done with the command below. chmod u+x start-server.sh Finally, you can start the server using the following command. ./start-server.sh NOTE - You should see a VAC secure mode is activated message unless if you've specifically disabled VAC. With that said, if you want the server accessible from the Internet, you should also see a Public IP is <your WAN IP> message which is stripped out of the screenshot above. To stop the server, you can execute the quit command through the server console or hit CTRL + C which sends a signal to terminate the server's process. Using Screen Once installed, you may also use the screen command to allow the server to run without needing to keep the Linux terminal open (in the background). I'd recommend reading up on the screen command here. First, let's install the screen package. You may need to log out of the current servers user via the exit command since the command must be ran as root or via sudo. Debian/Ubuntu sudo apt install -y screen Next, copy the server startup command and add screen -S <name> in-front. Here is an example. screen -S gmod ./srcds_run -game garrysmod -console -ip 0.0.0.0 -port 27015 +maxplayers 32 +map gm_construct This will launch the server inside a screen. You can detatch from the screen using CTRL + A + D by default. To attach the screen, you may run either screen -r (if there's only one screen open, it'll automatically attach to the single screen) or screen -r <name>. In the above command, we created a screen named gmod. Therefore, we can use the following command to attach to the screen by name. screen -r gmod You may also change the server's startup script and prepend screen -S <name> similar to the above to have the script automatically launch the server into a screen. Creating A Server Config File The next step is to configure the server by modifying the server.cfg file. This file is located in the garrysmod/cfg directory on Linux or the garrysmod\cfg folder on Windows. The configuration format Garry's Mod uses inside of the server.cfg file is <ConVar> "<Value>". We will be setting basic things like the server's hostname and password. Paste the following contents into the server.cfg file and modify the ConVar's values to your needs. hostname "My Server Name" sv_password "" rcon_password "CHANGEME" The hostname is the name of the server seen through the server browser or on external websites (anything that queries the server through A2S queries). The sv_password is the password players must enter before joining the server. When left blank, no password prompt pops up when joining the server. The rcon_password is the password required for RCON access. This password should only be known by trusted individuals/staff since users with this password will be able to execute server commands assuming they're able to access the TCP port RCON is running on remotely. There are also many other ConVars you may like inside of Garry's Mod that you can set through the server.cfg file! Here's a good list of ConVars in Garry's Mod. Performance ConVars There are quite a few ConVars you can set to help improve the server's performance depending on your network speeds, available bandwidth, and server specs. If you're hosting your Garry's Mod server through a dedicated server provider, chances are you'll have good enough network speeds to max out the performance ConVars regardless of the amount of players that will be on your server concurrently (at once). However, I'd recommend ensuring you have at least 100 mbps upload speed. You may also check your network speeds at a website such as SpeedTest.net. I personally like CloudFlare's speed test which may be found here! If you don't have fast network speeds, I'd recommend using a calculator like this to calculate the values of ConVars that will help with your server. Here is a list of performance ConVars that assumes your server has great download and upload network speeds along with a modern CPU. sv_maxrate 0 sv_minrate 64000 sv_maxupdaterate 66 sv_minupdaterate 33 sv_maxcmdrate 66 sv_mincmdrate 33 net_splitpacket_maxrate 256000 net_maxcleartime 0.001 Adding Mods (Addons) There are two ways of installing mods and addons onto a Garry's Mod server. The less modern way includes downloading the mod/addon files and extracting them into the server files directly (usually inside of the addons/ and lua directories/). While this may give you more control over the mod/addon itself since you usually can modify the source code directly, it is less convenient and may require setting up a separate web server to allow players to download the mod/addon's client-side files (also known as a "FastDL server"). The more modern solution that is considered more convenient is downloading mods through the Steam Workshop. In this guide, we will be focusing on downloading and installing mods onto the server through the Steam Workshop with a collection. A collection allows you to group mods. We can also set the server's collection ID via the host_workshop_collection <collection ID> command-line argument which will automatically download and install the mods/addons from the collection onto the server when the server starts up. With that said, we will also be creating a Lua file that registers client-side mods/addons via the resource.AddWorkshop function which ensures when a player joins, they'll download the required client-side files for the addons (e.g. models, materials, sound files, etc.). Creating A Collection The first thing we'll want to do is create a collection. You can do this within the Steam application itself or through Steam's website. We will be using the Steam application in this guide (they both generally have the same interface). Firstly, navigate to Community -> Workshop. Next, you'll want to type in Garry's Mod where it says "Search for a Workshop". You can click the item from the drop-down menu. Now, click the Browse drop-down menu near the left-middle of the screen and click Collections. Afterwards, click the Create Collection. You'll want to then fill out all fields on the page. In this guide, the title will simply be "Test Collection". Finally, click the Save and continue button on the bottom-right to create the collection. NOTE - If the collection is published and visible to others, users will be able to subscribe to all mods/addons from the collection with one click. Adding Addons To The Collection The next step is to add mods/addons to your new collection and keep note of the IDs for later. You may browse workshop items for Garry's Mod using the steps mentioned above. In this guide, I will be installing the gDisasters mod/addon which is one of my favorite addons in Garry's Mod. This addon adds weather and nature events such as tornadoes, earth quakes, rain, snowstorms, and more! This single addon also requires a few other additional addons which contains materials and such. After finding the item(s) you're interested in adding to the collection, open the item(s) by clicking their title links and click the Add to Collection button. This will bring up a checkbox list of all collections you own. Ensure to check the collection you want the mod/addon added to and click Ok. Next, we'll need to extract the ID from the URL. The numeric ID is located after the id query parameter in the URL. For example: https://steamcommunity.com/sharedfiles/filedetails/?id=1431470677 The ID of the above addon is 1431470677. Keep a note of the ID(s) you extract from the item(s) you add to the collection for later. Automate Players Downloading Addon Client-Side Content It is recommended you allow players that join your server to automatically download client-side files for the mod(s)/addon(s) you've added to your collection. To do this, we need to create a Lua script and use the resource.AddWorkshop("<id>") function. For organization, we're going to technically create an addon on the file system. Firstly, navigate to the garrysmod/addons directory on Linux (or garrysmod\addons folder on Windows) and create a new directory/folder named cl-downloads. Next, create the directories/folders lua/autorun/server and navigate to it. Your current path should now look like addons/cl-downloads/lua/autorun/server. Now, create a new Lua script. You can name the script whatever you'd like as long as you have the .lua file extension. In this guide, we'll be naming the file addons.lua. Open the file for editing and paste the following line(s) depending on how many addons you have in your collection. resource.AddWorkshop("collection ID") Since in this guide we're using five addons, this is what the contents of the file looks like. -- gDisasters Base Pack resource.AddWorkshop("1431470677") -- gDisasters Materials Pack 1 of 4 resource.AddWorkshop("1431447072") -- gDisasters Materials Pack 2 of 4 resource.AddWorkshop("1431442150") -- gDisasters Materials Pack 3 of 4 resource.AddWorkshop("1431435621") -- gDisasters Materials Pack 4 of 4 resource.AddWorkshop("1431419203") NOTE - The lines starting with -- are referred as comments which are ignored and also not required. Publishing The Collection You will now need to publish the collection. Head back to the collection you've created and click the Publish button. Next, you'll want to extract the ID of the collection by using a similar process to extracting the ID of a mod/addon. The numberic ID is located after the id query parameter in the URL when viewing your collection. For example: https://steamcommunity.com/sharedfiles/filedetails/?id=3380605782 The ID of the collection is 3380605782. Link The Collection And Server The next step is to link the collection and server using the collection ID we've retrieved above. We will be adding a command-line argument to the server's startup script we've created earlier. Edit the server's startup script and append the following to the server's startup command. +host_workshop_collection <collection ID> For example, here are the new contents of the startup-server.sh file on Linux using the collection ID used in this guide: #!/bin/bash ./srcds_run -game garrysmod -console -ip 0.0.0.0 -port 27015 +maxplayers 32 +map gm_construct +host_workshop_collection 3380605782 Afterwards, save the startup script and launch the server. Assuming the server is able to access Steam, it should automatically start downloading the mod(s)/addon(s) from the collection. Connect To The Server Now let's connect to the server! Firstly, you'll want to obtain the IPv4 address or hostname you need to connect to. If your server is hosted through a dedicated hosting provider, you should be able to find the IPv4 address/hostname required in multiple places including the following. Through your hosting provider's web panel. Using the public IP that is announced when starting the server. NOTE - An IPv4 is in xxx.xxx.xxx.xxx format while a hostname is either a name or a domain (e.g. myserver or myserver.mydomain.com). If you're on the server itself or the server is locally hosted, you can also obtain the IP of the server by listing your network interfaces + IPs using the ip a or ifconfig commands on Linux or ipconfig /all command on Windows (use Command Prompt or PowerShell). After finding the IP, launch Garry's Mod and hit the \ (or ~) key on your keyboard to open the developer console. When the developer console is shown, you will want to type connect <ip/hostname> or connect <ip/hostname>:<port>. Since we've bound the server to the default Garry's Mod port 27015, we do not need to input a port in this case. I'm going to use my server's internal hostname which is simply x-gs01 under my home network. connect x-gs01 Once you start connecting, if your Garry's Mod client doesn't have the client-side files of the addons/mods you've added to your collection, it should download these files automatically as seen below. Once you've fully connected, the addons you've installed should be running on the server. In my case, gDisaster adds a tab to the menu where I can spawn natural disasters! NOTE - To spawn items from mods/addons through the spawn menu, you may need to add yourself as an admin to the server. To do this, read here. Frequenty Asked Questions How do I add myself as an admin on the server? Many people recommend installing separate mods/addons to handle admin and group functionality such as ULX and ULib. However, there is also a way to set a user to admin without additional addons. Firstly, find your Steam ID (or the Steam ID of the user you want to add as admin or superadmin). I recommend using an online tool such as Steam ID Finder or Steam ID I/O. Next, modify the file garrysmod/settings/users.txt on Linux (or garrysmod\settings\users.txt on Windows). This file should already include content that acts as a template. Under the superadmin or admin sections, you'll want to add a new line with the following format. "<name>" "<Steam ID>" The name can be anything as it's used for organization. My Steam ID is STEAM_0:0:36969327, so in my case, it will look like the following. "Christian" "STEAM_0:0:36969327" Afterwards, restart the server and reconnect. You should now have admin or superadmin! How do I show and edit file extensions in Windows? To view hidden file extensions in Windows 11, through File Explorer, click View -> Show and ensure the File name extensions box is checked. This process is very similar in other versions of Windows as well. To show file name extensions on other versions of Windows, I'd recommend checking out this guide! Can I make a script to automatically update the server files? Yes, this is possible! We will create a script with environmental variables that allows you to easily configure the locations of SteamCMD and your server files along with what app ID to download, etc. Please follow the below steps. Windows We will create an update-server.bat Batch file inside of the folder where the start-server.bat is located (root of the server files folder) with the following contents. @echo off set STEAM_CMD_LOC="E:\servers\steamcmd" set STEAM_USER="anonymous" set STEAM_PASS="" set INSTALL_DIR="..\gmod" set APP_ID="4020" cd "%STEAM_CMD_LOC%" start "" steamcmd.exe +force_install_dir "%INSTALL_DIR%" +login "%STEAM_USERNAME%" "%STEAM_PASSWORD%" +app_update %APP_ID% validate +quit Linux We will create an update-server.sh Bash script inside of the directory where the start-server.sh file is located (root of the server files directory) with the following contents. #!/bin/bash STEAM_CMD_LOC=../steamcmd/ STEAM_USER="anonymous" STEAM_PASS="" INSTALL_DIR=../gmod APP_ID=4020 $STEAM_CMD_LOC/steamcmd.sh +force_install_dir $INSTALL_DIR +login "$STEAM_USER" "$STEAM_PASS" +app_update $APP_ID validate +quit Additional Resources & Tools I just wanted to provide some helpful resources and tools for server owners who want to improve their management experience in Garry's Mod. Pterodactyl - A very popular open source game server panel for Linux which provides tools to easily create and manage servers in games such as Garry's Mod, Counter-Strike, Rust, Minecraft, FiveM, and more. Conclusion That sums up this guide, but I hope to create many more guides in the future! By this point, you should have a functioning Garry's Mod server with one or more mods/addons installed. If you see anything that can be improved on or added, please feel free to reply to the thread! Guide made by @ Christian !
  3. I just wanted to share my setup for retro gaming. While I still own older physical consoles such as the original Xbox and Wii along with media, my retro setup is focused on emulation and game streaming. My main goal is to stream or emulate and play older games from gaming consoles such as the following. PlayStation 2 Nintendo 64 GameCube Wii I'd also eventually like to purchase Sinden Light Guns when I have more money and play classic arcade games such as The House of the Dead along with purchase DDR mats so I can play StepMania (basically DDR, Dance Dance Revolution, on the PC). I've also made a GitHub repository here that displays my setup and contains services and scripts I've used. Previews Here are some pictures I took while testing my setup on an older monitor I had. WDAL Menu RetroArch Wii Sports Setup Mini-PC The mini-PC I purchased is being used for game/movie streaming along with emulation that does not work through Steam Link such as when using a Dolphinbar with Dolphin/RetroArch (Wii/GameCube emulator). The mini-PC has Debian 12 installed that runs an open source web/desktop application launcher I made here. This application allows me to start/stop programs such as Steam Link, RetroArch, Dolphin, and Plex HTPC from the desktop application itself or through a website! NOTE- The Dolphin software was built from source! I only use the Dolphin software directly for testing. Everything else I run through RetroArch and its cores. Wii Remote I've purchased two Wii Remotes with nunchucks from FASIGO here. While these aren't real Wii remotes, they've worked well with the games I've played so far! Dolphinbar I've purchased a MAYFLASH W010 Wireless Sensor Dolphinbar for PC. I've set the mode to *4* and use it as a bottom sensor. Home Server I use one of my home servers to stream emulated games through Steam Remote Play and Steam Link. This home server includes an RTX 2070 since it used to be my older gaming desktop which makes it perfect for game/movie streaming (it doesn't have typical server components, but it is used as a home server). I use a HDMI dummy plug from here which allows me to launch games on a virtual monitor from my GPU that supports many resolutions such as 4K (60Hz) or 1920x1080 (120Hz). I personally use the 1920x1080 @ 120Hz resolution! Dolphinbar & Wii Remote Setup It took me quite a while to get the Dolphinbar and Wii Remotes working as intended on Linux/Debian 12. Everything worked out of the box after changing some Dolphin settings through Windows. Firstly, make sure your MAYFLASH Dolphinbar's mode is set to 4. You'll then want to pair/sync your Wii remote(s) with your Dolphinbar by pressing the Sync button on the Dolphinbar and the red sync button on your Wii remote (typically located under the battery cover). You may also hit 1 and 2 on your Wii remote at the same time to pair. When the pair is successfuly, your Wii remote should be set to a specific player number indicated by the four square and blue lights on the bottom of the remote. Afterwards, you'll want to take a look at the README here and install some scripts, services, and configuration files I ended up needing on Linux/Debian 12. The script/service basically actively scans for BlueTooth devices on boot and the configuration file is related to udev rules for the Dolphinbar. Dolphin The following settings should be set when launching games through Dolphin directly. After launching Dolphin, click the Controllers button in the top-right and use the following settings. Under Wii Remotes, select the Emulate the Wii's Bluetooth adapter setting. Make sure Wii Remote 1 through 4 is set to Real Wii Remote. Check Continuous Scanning. Afterwards, when launching a game, you should feel the Wii remote rumble once or twice to indicate it's working. RetroArch Before anything, make sure you've installed the Dolphin core through RetroArch (usually you can download it through RetroArch itself via the Online Updater). Afterwards, add whatever content directory your Wii ROMs are located. To get the Wii remotes to work through RetroArch, you need to first know the shortcut to the quick menu after launching a game. On the keyboard, I believe this is F1 by default. If you want to map a combo through your controller, you will need to go to Settings -> Input -> HotKeys and set Menu Toggle (Controller Combo). Next, launch the game and hit the menu toggle key. You should see a menu overlayed on whatever game you're playing. First, we need to set a core setting. Go to Core Options and enable Wiimote Continuous Scanning. Afterwards, I recommend going to Manage Core Options and selecting to save these new settings to a file so they save on reboot. Next, go back to the main in-game menu and select Controls. You'll see Port x Controls where x is a number from 1 to whatever max users you have set through RetroArch's main settings. Depending on how many Wii remotes you want to use, you'll need to go through each Port x Controls setting and set Device Type to Real Wiimote. I also recommend going back to the Controls menu afterwards, select Manage Remap Files and saving the current configuration so that you don't have set these settings on every game launch. Afterwards, the Wii remote(s) should rumble once or twice and work without needing to do anything else. You can select Resume to resume the game.
  4. A list of links to all Left 4 Dead 2's Resident Evil campaigns from the Steam workshop. If you're a fan of the Resident Evil franchise and Left 4 Dead 2, I highly recommend giving these campaigns a play through! These campaigns are my favorite custom/modded campaigns! Downloads Resident Evil 1 Resident Evil 2 - Side A Resident Evil 2 - Side B Resident Evil 3 Gameplay & Screenshots Resident Evil 1 Resident Evil 2 - Side A Resident Evil 2 - Side B Resident Evil 3
  5. A video showing gameplay from a popular Zombie Infection mod in Grand Theft Auto IV (GTA 4) from a while back! Figured I'd share here since this was one of my favorite mods to play back then. Download
  6. Earlier
  7. I'm glad they added official support for Bookworm! I plan on going through the guide above and testing it on Bookworm to see if it works. I never had issues with getting Steam Link working in general on Bookworm, but had performance issues. However, the performance issues may have been related to a misconfiguration on my end. I also would like to know if Steam Link + the guide above would work for the Raspberry Pi 5.
  8. Looks like bookworm support was recently updated to Steam Link! https://help.steampowered.com/en/faqs/view/6424-467A-31D9-C6CB
  9. Would anyone wanna take up the task of nodding Pokémon in oot/mm so if anyone has done a oot/mm randomizer I want there to be like 1025 Pokémon souls or pokeballs randomized into the already pool just hide them in chests grass pots etc* the goal would be to find them all. So kinda like triforce hunt
  10. I just wanted to share an open source project I started working on recently for Left 4 Dead 2 and SourceMod! Please view this GitHub repository for up-to-date details and source code! A SourceMod plugin for Left 4 Dead 2 that turns upgrade boxes such as incendiary and explosive ammo boxes into random/fun boxes. There are three categories a box may be registered under which include Good, Mid, and Bad. Good boxes help the survivors, mid boxes are somewhere in-between (misc?), and bad boxes negatively impact the survivors. You can configure the chance probability for each box category using SourceMod ConVars which is detailed below. My main goal is to create a modular core plugin that handles things like picking the box and calculating stats, and then allow developers to create their own boxes as separate SourceMod plugins which register with the core via natives) and global forwards. NOTE - This project is a big work-in-progress and I'm also pretty rusty in SourcePawn since I haven't utilized it much in recent years so I'm sure there are many things that can be improved on (feel free to make a PR!). Preview My Motives I've been occasionally playing a custom mega (24 players) COOP game server in Left 4 Dead 2 for almost a year now (Core-SS) and I've had a lot of fun! The server runs a custom plugin very similar to this plugin and since I've been wanting to get back into SourcePawn, I figured I'd create my own open source plugin (to my knowledge, the plugin they use isn't open source, but even if it was, I really wanted to make my own to get back into SourcePawn again). Additionally, I've been really wanting to get back into learning game development so I can create open source 3D games in the future and I really believe creating plugins like this and modding in general can really help with understanding game development further! Core Config & ConVars A config file should be generated to cfg/sourcemod/plugin.l4d2pb.cfg. Additionally, box-specific configs should be located in the same directory. Here's the output of the plugin.l4d2pb.cfg config file for more information on the current core ConVars. // This file was auto-generated by SourceMod (v1.11.0.6969) // ConVars for plugin "l4d2pb-core.smx" // The maximum amount of bad boxes that can be opened per round. 0 = disables bad boxes. -1 = no limit. // - // Default: "-1" l4d2_max_bad_boxes "-1" // Whether to announce who opens boxes. // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_announce "1" // What type of printing to do for announcing. 0 = chat. 1 = server console. 2 = client console. 3 = hint. // - // Default: "3" // Minimum: "0.000000" l4d2pb_announce_type "3" // The chances of a bad box being opened. // - // Default: "0.35" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_chance_bad "0.35" // The chances of a good box being opened. // - // Default: "0.30" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_chance_good "0.30" // The chances of a mid box being opened. // - // Default: "0.0" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_chance_mid "0.0" // The chances of getting no fun boxes when opened. // - // Default: "0.35" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_chance_none "0.35" // Enables or disables L4D2 Party Boxes plugin. // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_enabled "1" // Whether to display stats in chat on round end. // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_end_round_stats "1" // The maximum amount of good boxes that can be opened per round. 0 = disables good boxes. -1 = no limit. // - // Default: "-1" l4d2pb_max_good_boxes "-1" // The maximum amount of mid boxes that can be opened per round. 0 = disables mid boxes. -1 = no limit. // - // Default: "-1" l4d2pb_max_mid_boxes "-1" // The type of max limits. 0 = round-based. 1 = map-based. // - // Default: "0" // Minimum: "0.000000" // Maximum: "2.000000" l4d2pb_max_type "0" // If 1, any boxes that are opened (and not none type) are removed immediately when opened. // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_remove_opened "1" // The plugin's verbose level. // - // Default: "0" // Minimum: "0.000000" l4d2pb_verbose "0" // The type of verbose messages. 0 = prints to chat. 1 = prints to server console. 2 = prints to client's console. // - // Default: "0" // Minimum: "0.000000" l4d2pb_verbose_type "0" // The plugin's version. // - // Default: "1.0.0" l4d2pb_version "1.0.0" Commands Here are a list of commands you may run from chat (prefixed with ! or /) or console (prefixed with sm_). l4d2pb_stats - Displays stats in chat. l4d2pb_open [box name] - Manually opens a box determined by box name argument. Requires root admin flag. Enums Here are some useful enums you'll need when developing your own box types. enum BoxType { BOXTYPE_NONE = 0, BOXTYPE_GOOD = 1, BOXTYPE_MID = 2, BOXTYPE_BAD = 3 } Natives Here are a list of core natives you may use when developing your own box types. Take a look at scripting/l4d2pb-box-test.sp for a basic example. /** * Registers a box to core and adds it to the box rotation. * * @param type The box type (BoxType enum). * @param name A short/code name for the box. * @param display The box display name. * @param weight The boxes weight when being picked (the higher this value is, the more of a chance of the box being picked). * * @return 0 on success or 1 on error. */ native int L4D2PB_RegisterBox(BoxType type, const char[] name, const char[] display, float weight = 50.0); /** * Unloads a box from the core. * * @param name A short/code name for the box. * * @return 0 on success or 1 on error. */ native int L4D2PB_UnloadBox(const char[] name); /** * Prints a debug message from the core plugin. * * @param req The required verbose level from the core plugin. * @param msg The debug message to send. * @param ... Formatted arguments for msg. * * @return void */ native void L4D2PB_DebugMsg(int req, const char[] msg, any...); /** * Prints a message to a client's chat from the core plugin (recommended). * * @param client The client's index to print to. * @param msg The message to print. * @param ... Formatted arguments for msg. * * @return void */ native void L4D2PB_PrintToChat(int client, const char[] msg, any...); /** * Prints a message to all clients from the core plugin (recommended). * * @param msg The message to print. * @param ... Formatted arguments for msg. * * @return void */ native void L4D2PB_PrintToChatAll(const char[] msg, any...); Forwards Here are core (global) forwards you may call while developing your own box types. Take a look at scripting/l4d2pb-box-test.sp for a basic example. /** * Called when the core plugin is initially loaded (in OnPluginStart()). * */ public void L4D2PB_OnCoreLoaded(); /** * Called when the core plugin executes its config (in OnConfigsExecuted()). * * @note This is where I recommend registering a box. * */ public void L4D2PB_OnCoreCfgsLoaded(); /** * Called when the core plugin is unloaded (in OnPluginEnd()). * */ public void L4D2PB_OnCoreUnloaded(); /** * Called when a box is opened. * * @param type The type of box opened. * @param boxName The box short/code name that was opened. * @param userid The user ID who opened the box. * */ public void L4D2PB_BoxOpened(int type, const char[] boxName, int userId); Provided Boxes Here are a list of boxes provided in this repository. Boxes are developed as separate plugins that use forwards and natives from the core plugin to register the box and such. Damage This is a damage box registered under the Bad category. It is enabled by default and damages the user and potentially players around them depending on the ConVar values set when opened. ConVars & Configuration The configuration file may be found at cfg/sourcemod/plugin.l4d2pb-box-dmg.cfg. // This file was auto-generated by SourceMod (v1.11.0.6969) // ConVars for plugin "l4d2pb-box-dmg.smx" // Announces to damaged players who opened the box and the amount it damaged them for. // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_dmg_announce "1" // If 1, bypasses the SDKHooks_OnTakeDamage() hook when damaging users. // - // Default: "0" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_dmg_bypass_ontakedamage "0" // Enables the damage box // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_dmg_enabled "1" // The maximum damage to apply. // - // Default: "100.0" // Minimum: "1.000000" l4d2pb_box_dmg_max "100.0" // The minimum damage to apply. // - // Default: "5.0" // Minimum: "1.000000" l4d2pb_box_dmg_min "5.0" // The maximum radius to damage survivors in. 0 = disables damaging others. // - // Default: "500.0" // Minimum: "0.000000" l4d2pb_box_dmg_radius_max "500.0" // The mimimum radius to damage survivors in. // - // Default: "200.0" // Minimum: "0.000000" l4d2pb_box_dmg_radius_min "200.0" // If 1, when damage is applied, each player affected receives a random damage count. // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_dmg_rand_per_player "1" // If 1, the uesr who opened the damage box is used as the attacker when damaging players. // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_dmg_use_user_as_attacker "1" // If 1, the user who opened the damage box is used as the inflictor when damaging players. // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_dmg_use_user_as_inflictor "1" // If 1, uses the position of who opened the box as the damage position. // - // Default: "0" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_dmg_use_user_pos "0" // The damage box's version. // - // Default: "1.0.0" l4d2pb_box_dmg_version "1.0.0" // The box's weight when being picked. // - // Default: "50.0" l4d2pb_box_dmg_weight "50.0" Freeze This is a freeze box registered under the Bad category. When a user opens this box, they are frozen along with players around the user depending on the radius ConVar values. The freeze time can also be random. This box also includes functionality for setting a player's RGBA value and playing a sound when a player is frozen/unfrozen. ConVars & Configuration The configuration file may be found at cfg/sourcemod/plugin.l4d2pb-box-freeze.cfg. // This file was auto-generated by SourceMod (v1.11.0.6969) // ConVars for plugin "l4d2pb-box-freeze.smx" // Announces to players affected by freeze. // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_freeze_announce "1" // Enables the freeze box // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_freeze_enabled "1" // If non-empty, will play this sound file when a player is frozen (treated as a path). // - // Default: "physics/glass/glass_impact_bullet1.wav" l4d2pb_box_freeze_freeze_sound "physics/glass/glass_impact_bullet1.wav" // The maximum radius to freeze players in. 0 = Disables other players being impacted. // - // Default: "500" // Minimum: "0.000000" l4d2pb_box_freeze_radius_max "500" // The minimum radius to freeze players in. // - // Default: "200" // Minimum: "0.000000" l4d2pb_box_freeze_radius_min "200" // The RGBA color to set the player when frozen (red green blue alpha). // - // Default: "0 0 0 174" l4d2pb_box_freeze_rgba "0 0 0 174" // The maximum amount of time in seconds to freezep layers for. // - // Default: "15.0" // Minimum: "0.000000" l4d2pb_box_freeze_time_max "15.0" // The minimum amount of time in seconds to freeze players for. // - // Default: "3.0" // Minimum: "0.000000" l4d2pb_box_freeze_time_min "3.0" // Whether to pick a random freeze time for each person affected. // - // Default: "0.0" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_freeze_time_rand_per_player "0.0" // The RGBA color to set the player when frozen (red green blue alpha) // - // Default: "255 255 255 255" l4d2pb_box_freeze_unfreeze_rgba "255 255 255 255" // If non-empty, will play this sound file when a player is unfrozen (treated as a path). // - // Default: "physics/glass/glass_largesheet_break1.wav" l4d2pb_box_freeze_unfreeze_sound "physics/glass/glass_largesheet_break1.wav" // The freeze box's version. // - // Default: "1.0.0" l4d2pb_box_freeze_version "1.0.0" // The box's weight when being picked. // - // Default: "50.0" l4d2pb_box_freeze_weight "50.0" Forwards There is also a global forward included for when a player is unfrozen in the case you want to perform other actions such as setting a custom RGBA value on the player. /** * Called when a player is unfrozen. * * @param userId The user ID that was unfrozen. * */ public void L4D2PB_Freeze_OnUnfrozen(int userId); Vomit This is a vomit box registered under the Bad category. It is enabled by default and vomits on the user who opens the box (similar to the Boomer) and potentially players around them depending on the ConVar values set when opened. Unfortunately, I couldn't figure out how to adjust the vomit times dynamically. Therefore, you will need to set the z_vomit_fade_start and z_vomit_fade_duration game ConVars if you want different vomit durations. ConVars & Configuration The configuration file may be found at cfg/sourcemod/plugin.l4d2pb-box-vomit.cfg. // This file was auto-generated by SourceMod (v1.11.0.6969) // ConVars for plugin "l4d2pb-box-vomit.smx" // Enables the vomit box // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_vomit_enabled "1" // The maximum radius to vomit players in. 0 = Disables other players being impacted. // - // Default: "500" // Minimum: "0.000000" l4d2pb_box_vomit_radius_max "500" // The minimum radius to vomit players in. // - // Default: "200" // Minimum: "0.000000" l4d2pb_box_vomit_radius_min "200" // The vomit box's version. // - // Default: "1.0.0" l4d2pb_box_vomit_version "1.0.0" // If non-empty, will play this sound file when a player is vomited on (treated as a path). // - // Default: "" l4d2pb_box_vomit_vomit_sound "" // The vomit box's weight on getting picked. // - // Default: "50.0" l4d2pb_box_vomit_weight "50.0" Items This is an items box registered under the Good category. It is enabled by default and spawns random item(s) at the box opener's position. ConVars & Configuration The ConVar configuration file may be found at cfg/sourcemod/plugin.l4d2pb-box-items.cfg. Additionally, you may configure which items can be spawned along with the chance of their spawn + more in the l4d2pb-box-items.cfg configuration file which should be placed in your game server's addons/sourcemod/configs directory. This file is parsed using KeyValues. Additionally, the key is the item name and the following sub-keys and values are supported. weight (float, default 1.0) - The chance of the item being spawned. The higher the value this is, the better chance of it being spawned. melee (int, default 0) - If 1, the item will be treated as a melee weapon. model (string, default "") - If set and non-empty, this model is precached on every map start. Some items may need to be precached for certain maps. preload (int, default 1) - If the model is being precached, this is the value passed as preload to PrecacheModel(). Additionally, here is a list of the plugin's general ConVars. // This file was auto-generated by SourceMod (v1.11.0.6969) // ConVars for plugin "l4d2pb-box-items.smx" // Announces each item found from the items box. // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_items_announce "1" // Enables the items box // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_items_enabled "1" // The maximum amount of items to spawn. // - // Default: "5" // Minimum: "1.000000" l4d2pb_box_items_max "5" // The maximum amount of force to apply to items when spawned // - // Default: "100.0" // Minimum: "0.000000" l4d2pb_box_items_max_force "100.0" // The Minimum amount of items to spawn // - // Default: "1" // Minimum: "0.000000" l4d2pb_box_items_min "1" // The mimimum amount of force to apply to items when spawned. // - // Default: "0.0" // Minimum: "0.000000" l4d2pb_box_items_min_force "0.0" // Whether to apply random force per item. // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_items_random_force_per_item "1" // The items box's version. // - // Default: "1.0.0" l4d2pb_box_items_version "1.0.0" // The box's weight when being picked. // - // Default: "50.0" l4d2pb_box_items_weight "50.0" Heal This is a heal box registered under the Good category. When opened, the box opener and potentially users around them will be healed in round(s). ConVars & Configuration The configuration file may be found at cfg/sourcemod/plugin.l4d2pb-box-heal.cfg. // This file was auto-generated by SourceMod (v1.11.0.6969) // ConVars for plugin "l4d2pb-box-heal.smx" // Whether to announce to players how much HP they've been healed with. // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_heal_announce "1" // Enables the heal box // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_heal_enabled "1" // The maximum amount of heal amount to add. // - // Default: "100" // Minimum: "1.000000" l4d2pb_box_heal_heal_amount_max "100" // The minimum amount of heal amount to add. // - // Default: "5" // Minimum: "1.000000" l4d2pb_box_heal_heal_amount_min "5" // Whether to apply a random amount of health to each player. // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_heal_heal_amount_rand_per_player "1" // The maximum interval between heals. // - // Default: "3.0" // Minimum: "0.000000" l4d2pb_box_heal_heal_interval_max "3.0" // The minimum interval between heals. // - // Default: "1.0" // Minimum: "0.000000" l4d2pb_box_heal_heal_interval_min "1.0" // If 1, will revive incapped players and set HP. // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_heal_heal_revive "1" // The sound to play when a player is healed. // - // Default: "items/suitchargeok1.wav" l4d2pb_box_heal_heal_sound "items/suitchargeok1.wav" // The maximum amount of heals to perform. // - // Default: "3" // Minimum: "1.000000" l4d2pb_box_heal_heals_max "3" // The minimum amount of heals to perform. // - // Default: "1" // Minimum: "1.000000" l4d2pb_box_heal_heals_min "1" // The maximum HP the user can have. // - // Default: "100" // Minimum: "1.000000" l4d2pb_box_heal_max_hp "100" // The maximum radius to heal players in. // - // Default: "200.0" l4d2pb_box_heal_radius_max "200.0" // The minimum radius to heals players in. // - // Default: "100.0" l4d2pb_box_heal_radius_min "100.0" // The heal box's version. // - // Default: "1.0.0" l4d2pb_box_heal_version "1.0.0" // The box's weight when being picked. // - // Default: "50.0" l4d2pb_box_heal_weight "50.0" Acid This is an acid box registered under the Bad category. When opened, a Spitter acid projectile is spawned at the opener's location. ConVars & Configuration The configuration file may be found at cfg/sourcemod/plugin.l4d2pb-box-acid.cfg. // This file was auto-generated by SourceMod (v1.11.0.6969) // ConVars for plugin "l4d2pb-box-acid.smx" // If non-empty, sets the angle for the spitter projectile (empty = uses client's angles). Separate each float by a space. // - // Default: "" l4d2pb_box_acid_ang "" // Enables the acid box // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_acid_enabled "1" // If non-empty, sets the rotation of the spitter projectile (empty = uses angles result). Separate each float by a space. // - // Default: "" l4d2pb_box_acid_rot "" // If non-empty, sets the velocity of the spitter projectile (empty = uses angles result). Separate each float by a space. // - // Default: "" l4d2pb_box_acid_vel "" // The acid box's version. // - // Default: "1.0.0" l4d2pb_box_acid_version "1.0.0" // The box's weight when being picked. // - // Default: "50.0" l4d2pb_box_acid_weight "50.0" Test This is a test box registered under the Mid category. It is disabled by default and simply prints a message to chat. ConVars & Configuration The configuration file may be found at cfg/sourcemod/plugin.l4d2pb-box-test.cfg. // This file was auto-generated by SourceMod (v1.11.0.6968) // ConVars for plugin "l4d2pb-box-test.smx" // Enables the test box // - // Default: "0" // Minimum: "0.000000" // Maximum: "1.000000" l4d2pb_box_test_enabled "0" // The test box's version. // - // Default: "1.0.0" l4d2pb_box_test_version "1.0.0" More Boxes In Development! I plan to keep adding boxes over time! If you would like to make your own boxes and release them here, feel free to make a pull request! Building Firstly, you'll want to download SourceMod from here. Afterwards, extract the compressed file(s) and keep note of the path to the addons/sourcemod/scripting directory. On Linux, you may use the build.sh Bash script included in this repository to build all plugins in scripting/. You'll want to set the SM_DIR environmental variable to the path to the addons/sourcemod/scripting directory mentioned above (by default, it's set to /opt/sourcemod/addons/sourcemod/scripting). Additionally, you may set the SRC_DIR environment variable which is the path to the plugin's source code ($(pwd)/scripting by default) and BUILD_DIR which is the directory used to store the compiled plugins ($(pwd)/build by default). On Windows, there isn't a Batch script created at the moment (to do...), but simply dragging the plugin's source code files inside of the addons/sourcemod/scripting/compile.exe should be fine. Just make sure to copy scripting/include/l4d2pb-core.inc into addons/sourcemod/scripting/include. NOTE - I've included a tasks.json file for Visual Studio Code that builds the current file you're working on with a task! You can bind the task execution to a keyboard shortcut to make building very easy inside of VS Code. Using Multi Colors If you want to utilize Multi Colors inside of chat messages and such, you will need to uncomment the #define USE_COLORS line in the scripting/l4d2pb-core.sp file and recompile. Afterwards, you should be able to utilize colors such as {red}, {green}, etc. inside of translations files located in the translations/ directory. Installing After building the plugin's source code, copy the compiled plugin files (ending in .smx) to the game server's addons/sourcemod/plugins/ directory. Also, copy all translation files from translations/ to the game server's addons/sourcemod/translations/ directory. Afterwards, you may restart the server/map or load the plugins manually via sm plugins load <plugin name> (e.g. sm plugins load l4d2pb-core) to load the plugins. Credits @ Christian (GitHub)
  11. Just wanted to apologize for being very inactive here with threads started in the last few months. Back in the Summer, my Mom got diagnosed with multiple cancers which has been really difficult to deal with leaving me pretty unmotivated (plus I'm working as well).

     

    I still have a big passion for this community and I'd really like to remake the website completely from scratch at some point, but I'm unsure when that'll be given life and work is taking up a lot of my time at this time.

  12. Hey and welcome! I'm sorry for the late reply. What questions and such do you have in regards to modding and how much experience do you currently have? While I don't have any personal experience with Skyrim modding, I can try to find resources for you and see if I know any Skyrim modders that are willing to help.
  13. Hey, sorry for the late reply. Can you include more details on the mod you want created? While I don't have the time to personally make it at this time, if you provide more details, I'll see if I know anybody that knows how to make RDR 1 mods and refer them to this thread.
  14. Hey and welcome! Sorry for the late reply also. Have you played GTA IV or V before? I've met a few people who have made mods for GTA: SA and the multiplayer which is pretty cool! Are the mods you've made publicly available?
  15. These are great! I especially love the space pack. Feel free to post any others you make here!
  16. Hey, sorry for the late reply. While I haven't seen any addons that spawn smart NPCs + add objectives, I've used a couple of addons from the workshop that spawns special and common infected. Special Infected Common Infected The common infected includes an AI director which automatically spawns common AI throughout the map. Though, since it doesn't know the map layout, it doesn't specialize any areas, etc. It would be cool to make an addon that utilizes the above existing addons + adds objectives, but sadly I haven't seen anything like that on the workshop and I would make it if I had the time which I don't unfortunately.
  17. Hello everyone looking to make new friend

    20241029_145814.webp

    1. Christian

      Christian

      Hey and welcome!

  18. Would be epic if it smartly spawned enemy npcs throughout maps and add objectives to those maps. All procedurally.
  19. Hi! I'm Kebjdart a.k.a Cheve, a guy from Argentina :) Right now I'm only doing music for games and I thought it would be interesting for you guys to have it for some mods, I post the tracks here: Long time ago I played with Pawno and make some GTA SA:MP servers and mods for it, also have played with Pokémon for the GBA console quite long. This community looks really cool and will be coming to share new free music when I release it :) Cya later :D
  20. Hello! I want to share my music with this community. All the packs I post here are free to use. When you download them, you'll find a .txt file with more details. Even for commercial use, they are free; the only thing I ask is that you don't claim to be the creator. Here are the packs previews: Horror/Suspense/Terror Vol1. (2023): Horror/Terror/Suspense Vol2. (2024): Space Pack Vol. 1: You can find the links to the tracks in YouTube, thank you. Any feedback is welcome :D
  21. create mod red dead redemption 1 PLEASE GUYS CREATE THIS MOD
  22. Hello! I am Sky and I am a self taught modder and still pretty new but I think I have potential and defiantly the drive I just need some support as far as questions, ideas and maybe a teacher and eventually a team. So if anyone is interested please let me know! :D -Sky, The Trans Modder Goddess
  23. Hi guys can anyone make me a 2006 Chevrolet Lumina SS as add-on vehicle please plus don't forget to paint the stock rims black thank you.
  24. I work in a social media marketing agency and we are working on advertisement of a grocery delivery service. I was thinking, if there was a mod on death stranding, changing the texture of all the boxes Sam carries to that of our services design, that would open up variety of possibilities for us. Where can I find someone who can put custom textures into the game?
  25. I was wondering if you can make me a firey and fatal crash mods for iracing I want to feel what it like when the car has a bad fatal crash with fire I want it to be realistic like real life racing I will pay you I want you to do it with all nascar series And all sprint car series and sprint car midgets series I want you to do it with all dirt track racing series and Asphalt racing series including f1 and indy cars are all circuits tracks series
  26. Hey everyone, I wanted to provide an update on Best Mods. After the initial release of our web scraper last year, the website has been retrieving quite a bit of traffic due to the amount of mods added (we are at around 112,000). However, in the past couple of months, the daily traffic numbers have went down. This is most likely because I stopped the web scraper temporarily back in May (2024), so no mods have been added and existing mods haven't been updated. The reason I stopped the web scraper is due to it being hosted on one of my home server's virtual machines and I believe it was consuming too much power making my electric bill rise in price. I didn't like this implementation to begin with, so I want to definitely move it to a dedicated VM with a hosting provider where it should be hosted. However, this is going to require some work since I want to get it setup with Docker Compose which is a bit more complicated (not the web scraper itself, but due to some of its requirements). We are still receiving 100 - 200 visitors a day which isn't bad. With that said, I've received mostly positive feedback on the website itself. Though, I will admit I've received around 5 - 10 complaints from mod owners (some polite, some rude) asking for their mods to be removed. Of course, I've removed these mods since then because the mod owners have the right to not have their mod(s) listed on our website. I do want to apologize to any mod owners who are upset about their mods being listed on the website without permission, I went into detail about this on the Best Mods' about page here. (this was a tough decision to make, but it's the only way the website will really function properly). I also want to note that our website is a mod index that redirects to the original mod source(s). We do not host any mod files (other than images) and it will be kept that way (it'd be illegal otherwise). At this time, the Best Mods website itself is on the backburner since I'm currently working on Best Servers and also want to build a completely new website for this community afterwards. However, I do want to continue building onto it in the future. The website is completely open source as well, so if anybody wants to implement new features or improve the current design, they are welcome to via pull requests and will be credited if implemented. Thank you!
  27. Hi all! I just wanted to provide an update on Best Servers, an upcoming open source server browser I've been working on for this community. I've recently completed a full roadmap for this project which may be viewed here. Here's a short demo of the website as well! There have been a few changes since the following demo, specifically to the header/nav-bar, but the server browser is generally the same. While there isn't any official ETA on the initial release date, we are coming close. There are many features I'd like to implement after the initial release which may be viewed on the roadmap. As we come closer to release, I will post more updates!
  1. Load more activity
×
×
  • Create New...

Important Information

By using this site you agree to the Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.