部分教程参考B站UP主「新城龍一」-longの舞- (也可以观看视频)
首先要具备以下条件
-
云VPS(如阿里云、腾讯云、雨云等)推荐
-
本机仅局域网/公网IP
-
你可能要用到的工具 Visual Studio Code Notepad3
-
如果无法正常访问相关网站使用
首先下载SteamCMD
下载地址:点击下载
将其解压至任意目录 如: D:\steamcmd (目录不能含有中文)
双击运行SteamCMD
等待下载完毕 (如果下载速度慢 可尝试使用UU加速器)
下载完成页面:
(一)登录SteamCMD
登录游客账号
login anonymous
登录完成页面:
可选: 你也可以使用自己的Steam账号来进行登录
使用命令
login <用户名>
(二)开始下载Gmod服务端
使用命令 app_update 4020 开始下载
下载完成页面
可选: 挂载CSS服务端
打开SteamCMD 使用命令 app_update 232330
来进行下载CSS服务端
Success! App '232330' fully installed. 为下载完成
CSS服务端默认路径
/steamcmd/steamapps/common/Counter-Strike Source Dedicated Server
在gmod服务端里挂载CSS
/steamcmd/steamapps/common/GarrysModDS/garrysmod/cfg/mount.cfg
修改实际目录即可
挂载成功
(三):启动服务器
首先在目录新建文件 srcds.bat
srcds.exe -console -game garrysmod +map gm_construct +maxplayers 24 -ip 0.0.0.0 -port 27015 +servercfgfile server.cfg +gamemode sandbox
- map: 要启动的地图
- maxplayers: 玩家上限
- ip: 设为0000自动获取公网IP地址
- port: 端口
- servercfgfile: 服务器配置文件
- gamemode: 游戏模式
配置服务器参数
在D:\steamcmd\steamapps\common\GarrysModDS\garrysmod\cfg 目录下的
server.cfg 可以参考我预设设置
// 服务器设置
hostname "屁股翘哦啦啦" // 这是服务器的名称 会显示在服务器列表里
rcon_password "114514" // 服务器的远程控制密码
sv_password "" // 服务器连接密码 空白则没有
sv_loadingurl "xxx.com" // 加载界面 URL
sv_region "255" // 服务器所在区域 255表示 所有区域
sv_lan "0" // 局域网模式 设为 0表示服务器运行在互联网模式 如果设为1则仅限局域网游戏
// 沙盒一些设置实例
sbox_maxprops "100"
sbox_maxragdolls "5"
sbox_maxnpcs "10"
sbox_maxballoons "10"
sbox_maxeffects "10"
sbox_maxdynamite "10"
sbox_maxlamps "10"
sbox_maxthrusters "10"
sbox_maxwheels "10"
sbox_maxhoverballs "10"
sbox_maxvehicles "20"
sbox_maxbuttons "10"
sbox_maxsents "20"
sbox_maxemitters "5"
sbox_godmode "0" // 无敌模式 默认0 不使用
sbox_noclip "0" // 穿墙模式 默认0 不使用
然后启动服务器即可
输入 status
即可查看服务器状态
(四)提升服务器排名
打开链接 Steam 游戏服务器帐户管理
输入App ID 4000 即可
获取到的登录令牌 使用命令 +sv_setsteamaccount
来添加到srcds.bat里 保存即可
(五)创建合集添加进服务器
在创意工坊创建合集
添加你想要的插件
然后到合集页面点击发布
记得更改合集可见度为 公开
复制合集链接 后面的数字
来到你gmod服务端的目录
点开你之前创建的Bat文件
srcds.exe -console -game garrysmod +map gm_construct +maxplayers 24 -ip 0.0.0.0 -port 27015 +servercfgfile server.cfg +gamemode sandbox +host_workshop_collection 3566150331
把 +host_workshop_collection 3566150331
添加进去即可
成功完成挂载
解包插件 手动添加进addons文件夹
首先准备 gmpublisher 工具
工具介绍
- 不依赖 gmad.exe 或 gmpublish.exe
- 发布和更新您的创意工坊项目
- 提取、搜索和浏览 GMA 文件及已安装的插件
- 批量下载与解压创意工坊项目及合集
- 支持上传动态 GIF 作为创意工坊项目的图标
- 通过插件大小分析树状图,分析哪些插件占用了最多的磁盘空间
- 支持旧版 SteamPipe 插件及早期 GMA 版本
- 可在无网络连接的环境下工作
- 提供命令行界面(CLI)
- (仅 Windows)支持 .GMA 文件关联,方便快速提取
粘贴完整链接开始下载
添加进addons文件夹即可
挂载成功
(六)更新服务端
进服务器显示版本过旧? 那就要更新服务端了
创建文件
在steamcmd目录创建新文件 gmodserverupdate.bat
粘贴以下命令
set base_dir=%~dp0
%base_dir:~0,2%pushd %base_dir%
steamcmd.exe +login anonymous +app_update 4020 +quit
等待更新完成即可
(七) 添加插件至服务器
基础插件 ULX管理员插件
点击下载
ULX 3.81 (.zip) (Requires ULib v2.71+)
然后将解压到addons目录即可 目录必须是 插件名字/lua
ULX管理命令
ulx adduser 名字 权限组(给予玩家相应的权限组)
[超级管理员] superadmin [管理员] admin [普通玩家] user
娱乐类(Fun)
- ulx armor <玩家> <护甲值: 0≤x≤255> - 设置目标玩家的护甲值(指令:!armor)
- ulx blind <玩家> [强度: 0≤x≤255, 默认255] - 使目标玩家失明(指令:!blind)(相反命令:ulx unblind 解除失明)
- ulx cloak [<玩家, 默认自己>] [强度: 0≤x≤255, 默认255] - 使目标玩家隐身(披风效果)(指令:!cloak)(相反命令:ulx uncloak 解除隐身)
- ulx freeze <玩家> - 冻结目标玩家(无法移动)(指令:!freeze)(相反命令:ulx unfreeze 解除冻结)
- ulx god [<玩家, 默认自己>] - 赋予目标玩家无敌模式(不受伤害)(指令:!god)(相反命令:ulx ungod 解除无敌)
- ulx hp <玩家> <生命值: 1≤x≤2147483647> - 设置目标玩家的生命值(指令:!hp)
- ulx ignite <玩家> [持续时间: 1≤x≤300秒, 默认300] - 点燃目标玩家(持续掉血)(指令:!ignite)(相反命令:ulx unignite 熄灭)
- ulx jail <玩家> [监禁时间(秒,0为永久,0≤x,默认0)] - 将目标玩家关进监狱(指令:!jail)(相反命令:ulx unjail 提前释放)
- ulx jailtp <玩家> [监禁时间(秒,0为永久,0≤x,默认0)] - 先传送目标玩家到监狱位置,再监禁(指令:!jailtp)
- ulx maul <玩家> - 对目标玩家发动群殴(群体伤害)(指令:!maul)
- ulx playsound <音效路径> - 播放指定音效(路径相对于游戏音效目录)
- ulx ragdoll <玩家> - 让目标玩家变为布娃娃状态(无碰撞,受物理影响)(指令:!ragdoll)(相反命令:ulx unragdoll 恢复)
- ulx slap <玩家> [伤害值: 0≤x, 默认0] - 对目标玩家造成指定伤害的拍击(指令:!slap)
- ulx slay <玩家> - 直接杀死目标玩家(指令:!slay)
- ulx sslay <玩家> - 静默杀死目标玩家(无死亡提示)(指令:!sslay)
- ulx strip <玩家> - 移除目标玩家的所有武器(指令:!strip)
- ulx unigniteall - 熄灭所有玩家和实体的火焰(指令:!unigniteall)
- ulx whip <玩家> [次数: 2≤x≤100, 默认10] [每次伤害: 0≤x, 默认0] - 对目标玩家进行多次拍击(每次指定伤害)(指令:!whip)
Rcon类(服务器控制)
- ulx cexec <玩家> {命令} - 在目标玩家的客户端控制台执行命令(指令:!cexec)
- ulx ent <实体类名> [{标志: 值 |}] - 生成实体,标志与值用':'分隔,多对标志值用'|'分隔
- ulx exec <文件名> - 执行cfg目录下的指定文件
- ulx luarun {命令} - 在服务器控制台执行Lua代码(用'='输出结果)
- ulx rcon {命令} - 在服务器控制台直接执行命令(指令:!rcon)
工具类(Utility)
- ulx ban <玩家> [禁言时间(分钟,0为永久,0≤x,默认0)] [{原因}] - 封禁目标玩家(指令:!ban)
- ulx banid
[禁言时间(分钟,0为永久,0≤x,默认0)] [{原因}] - 通过SteamID封禁玩家(指令:!banid) - ulx debuginfo - 输出调试信息
- ulx help - 显示当前帮助
- ulx kick <玩家> [{原因}] - 踢出目标玩家(指令:!kick)
- ulx map <地图名> [游戏模式] - 切换地图和游戏模式(指令:!map)
- ulx noclip [<玩家, 默认自己>] - 切换目标玩家的穿墙模式(无视碰撞)(指令:!noclip)
- ulx resettodefaults [<字符串>] - 重置所有ULX和ULib配置(危险操作)
- ulx spectate <玩家> - 观察目标玩家视角(指令:!spectate)
- ulx unban
- 解除对SteamID的封禁(指令:!unban) - ulx version - 查看版本信息(指令:!version)
- ulx who [
] - 查看当前在线玩家信息
聊天类(Chat)
- ulx asay {消息内容} - 向当前在线的管理员发送消息(指令:@)
- ulx csay {消息内容} - 在所有玩家屏幕中间显示消息(指令:@@@)
- ulx gag <玩家> - 禁言目标玩家(无法使用麦克风)(指令:!gag)(相反命令:ulx ungag 解除禁言)
- ulx gimp <玩家> - 限制目标玩家的聊天能力(如只能发送短消息)(指令:!gimp)(相反命令:ulx ungimp 解除限制)
- ulx mute <玩家> - 静音目标玩家(无法发送文字消息)(指令:!mute)(相反命令:ulx unmute 解除静音)
- ulx psay <玩家> {消息内容} - 向指定玩家发送私聊消息(指令:!p)
- ulx thetime - 显示服务器当前时间(指令:!thetime)
- ulx tsay {消息内容} - 向所有玩家发送聊天框消息(普通聊天)(指令:@@)
投票类(Voting)
- ulx stopvote - 终止当前进行的投票(指令:!stopvote)
- ulx veto - 否决成功的投票换图(需有权限)(指令:!veto)
- ulx vote <标题> {选项} - 发起公开投票(标题和选项用空格分隔)(指令:!vote)
- ulx voteban <玩家> [禁言时间(分钟,0≤x,默认1440)] [{原因}] - 发起公开投票决定是否封禁目标玩家(指令:!voteban)
- ulx votekick <玩家> [{原因}] - 发起公开投票决定是否踢出目标玩家(指令:!votekick)
- ulx votemap [{地图名}] - 发起投票换图(无参数时列出可选地图)(指令:!votemap)
- ulx votemap2 {地图名} - 发起公开投票换图(强制指定地图)(指令:!votemap2)
传送类(Teleport)
- ulx bring <玩家> - 将目标玩家传送到你身边(指令:!bring)
- ulx goto <玩家> - 传送到目标玩家身边(指令:!goto)
- ulx return [<玩家, 默认自己>] - 将目标玩家传回上次传送前的位置(指令:!return)
- ulx send <玩家A> <玩家B> - 将玩家A传送到玩家B身边(指令:!send)
- ulx teleport [<玩家, 默认自己>] - 传送目标玩家(需配合其他参数或上下文)(指令:!tp)
菜单类(Menus)
- ulx motd - 显示服务器每日公告(Message Of The Day)(指令:!motd)
- xgui <显示/隐藏/切换> - 打开/关闭XGUI菜单界面(指令:!xgui、!menu)(别名:ulx menu)
- xgui fban <玩家> - 打开快速封禁窗口,自动冻结目标玩家并填充姓名/SteamID(指令:!fban)
- xgui xban <玩家> - 打开封禁窗口,若指定玩家则自动填充姓名/SteamID(指令:!xban)
评论