Skip to content

Conversation

@GamingLuke1337
Copy link

Changelog

Following the glorious tradition of Keep a Changelog

Added


Changed

  • Update check now powered by ox_lib
  • Gave the server console print a little design refresh. It looks nicer, promise.
  • Revamped the config file design
  • Updated fxmanifest to the cerulean FXv2 version. More details here.

Hopefully didn't break anything... but if it did, feel free to yell at me.

[Added]
- config.update

[Changed]
- Config design optimized for readability
[Added]
- ox_lib Update Check

[Removed]
- Previous Update Check method

[Changed]
- console print design
Copy link
Owner

@Plactrix Plactrix left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey!
Glad to see the project is still alive :)

I took a look at your commits:

  • I love the new config file design, but I did see a couple of minor typos:

    • "8" instead of "("

      TSChannelWait = "[TokoVoIP] Waiting Room", -- Optional 8only if you want a separate waiting room). You NEED TokoVoIP in the wait channel name!

    • I would change this to Minimum required TS plugin version since right now, based on the comment alone, it makes it seem like you need to have that specific version (it seems stupid, I know, but some people don't exactly read).

      Config.minVersion = "1.0.0" -- Required TS plugin version

    • I would also probably change this to Uncomment to enable Theater Mode (also changed spelling since most users are American).

      -- 40, -- Uncomment for Theatre Mode

    • Since these three are in one block now, it's probably a good idea to clarify TS channel password for the In-Game channel (Optional) or something like that (again, sounds stupid, but some people aren't entirely the smartest...)

      TSChannel = "[TokoVoIP] In-Game", -- Main TS channel
      TSPassword = "", -- TS channel password
      TSChannelWait = "[TokoVoIP] Waiting Room", -- Optional 8only if you want a separate waiting room). You NEED TokoVoIP in the wait channel name!

    • Maybe change to something like Use with keySwitchChannels for dual-keypress, or set to false to disable

      Config.keySwitchChannelsSecondary = 21 -- Use with keySwitchChannels for dual-keypress

    • XxX.XxX.XxX.XxX.XXXXX --> XxX.XxX.XxX.XxX:XXXXX

      Config.wsServer = "XxX.XxX.XxX.XxX.XXXXX" -- WS server IP and port

  • For ox_lib, since it's only being used for version checking, I don't think it should used for TokoVoIP. A lot of servers do have already ox_lib, but for those who don't have it and want to use TokoVoIP would need to add it, which is just adding unnecessary load.

    Wrapping the version check function in the original code in an if statement for the config option would be fine, or even a separate file like Badger_Discord_API has it.

Other than that, it looks good (although I haven't tested it or anything yet)

@GamingLuke1337
Copy link
Author

there you go

@GamingLuke1337
Copy link
Author

i also felt like making the HTML a bit prettier

Copy link
Owner

@Plactrix Plactrix left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • What's the difference between ws_server in your other commit versus the one that's implemented within the FiveM script?
  • Out of curiosity, what's the thought process for renaming fivem_script to tokovoip?
  • The changes in master_server and ws_server: Are they the same as #27 ?

README.md Outdated
## Terms & Conditions

Clone the repo and don't forget to initialize the submodules:
* A visible **TokoVOIP watermark** must be shown in-game
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Per the new LICENSE, this is no longer required

.gitignore Outdated

# VSCode
.vscode
/master_server/node_modules
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Refer to #27 (comment)

[submodule "ts3_plugin/deps/json"]
path = ts3_plugin/deps/json
url = https://github.com/nlohmann/json.git
[submodule "ts3_plugin/deps/teamspeak-plugin-radiofx"]
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are we removing RadioFX?

TOKOVOIP SCRIPT
</div>
<center>
<font style="color: #ff0000;">TokoVOIP</font> is our in-game VOIP replacement for FiveM. We also require
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe change this and the ones below to TokoVoIP to match the rest of everything else

const data = await response.json();
return data.ip;
} catch {
return 'IP not found';
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relying on only ipify.org makes it so that website NEEDS to be up in order for TokoVoIP to be able to function properly. Maybe instead of IP not found, try fetching the /getmyip endpoint since the ws_server will always be online if the game server is online

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ipify.org is one of the most used servers to get the public ip. it has a 100% uptime for the last 90 days

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i dont think that will present an issue

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe instead of IP not found, try fetching the /getmyip endpoint since the ws_server will always be online if the game server is online

like this?

async function getPublicIP() {
	try {
		const response = await fetch('https://api.ipify.org?format=json');
		const data = await response.json();
		return data.ip;
	} catch (e) {
		// Ignore errors here and try fallback
		try {
			const res = await fetch(`http://${endpoint}/getmyip`);
			if (res.ok) {
				const ip = await res.text();
				return ip;
			}
		} catch (e2) {
			// Ignore errors here
		}
		return 'IP not found';
	}
}

@@ -1,3 +1,14 @@
--[[
^5| ^8 _____ _ __ __ ___ ____ __ ______ ^5|
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can get rid of the color coding since this is just a regular comment. The color codes were just for the console message

@@ -1 +1 @@
Subproject commit 88c961f37efb0205aae418a35b354935be3ff3ff
Subproject commit 145fc8b0215f5149ef4c1de6233951946294a9f3
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The latest version of cpp-httplib does not work due to OpenSSL version deprecation in later versions.

For submodule version updates, use my commit as I built the plugin and tested to make sure they worked

@GamingLuke1337 GamingLuke1337 requested a review from Plactrix July 7, 2025 12:32
Copy link
Owner

@Plactrix Plactrix left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Testing pending

GamingLuke1337 and others added 5 commits July 8, 2025 22:52
shouldnt break anything hopefully
- Remove ws_server
- Remove ox_lib updatecheck
@GamingLuke1337
Copy link
Author

have you found anything that i need to change?

GamingLuke1337 and others added 7 commits August 5, 2025 17:24
modified:   hydra_voice/client/utils.lua
modified:   hydra_voice/fxmanifest.lua
modified:   hydra_voice/server/main.lua
modified:   hydra_voice/server/update.lua
modified:   hydra_voice/server/utils.lua
modified:   hydra_voice/html/script.js
deleted:    ts3_package/package.ini
deleted:    ts3_package/plugins/tokovoip/walkie_talkie_16.png
deleted:    ts3_package/plugins/tokovoip_win64.dll
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants