Could it be somehow possible (With ZScript) to make the player spawn on some other thing number on map startup, avoiding use of Player starts or Deathmatch starts? Or placing player starts dynamically on the map?
If it helps, modifying internal ZScript files to achieve this is allowed. (The ones in gzdoom.pk3)
I'm trying to add CTF support to GZDoom, and i want to see if it's doable in ZScript to avoid editing the source code.
Override player's spawn point
Moderator: GZDoom Developers
Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. If you still don't understand how to use a feature, then ask here.
Please bear in mind that the people helping you do not automatically know how much you know. You may be asked to upload your project file to look at. Don't be afraid to ask questions about what things mean, but also please be patient with the people trying to help you. (And helpers, please be patient with the person you're trying to help!)
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. If you still don't understand how to use a feature, then ask here.
Please bear in mind that the people helping you do not automatically know how much you know. You may be asked to upload your project file to look at. Don't be afraid to ask questions about what things mean, but also please be patient with the people trying to help you. (And helpers, please be patient with the person you're trying to help!)
Re: Override player's spawn point
I'm guessing LevelCompatibility will need more support for modifying Things in order for this to happen (something like the same level of support it has for modifying other level data). This is something that feels like it should happen anyway at some point; no reason Things shouldn't be invited to the LevelCompatibility party.
Re: Override player's spawn point
Player starts aren't things per-se, but they are sort of markers for the game to know where to spawn the player. Even then i still thought there was at least some way to manipulate it with ZScript, apparently not. So that pretty much means that even if levelcompatibility did get thing adding support, it would be nigh useless in the context of adding/changing player starts.gramps wrote:I'm guessing LevelCompatibility will need more support for modifying Things in order for this to happen (something like the same level of support it has for modifying other level data). This is something that feels like it should happen anyway at some point; no reason Things shouldn't be invited to the LevelCompatibility party.
And anyways such a thing doesn't have any use for me, GZD 4.x plays like trash on this laptop so i'm just stuck to QZDoom and LZDoom and GZD 3.x.
I'm still open for answers though, because right now i really don't want to mess with the source for this.
Re: Override player's spawn point
They are "things" in the context of level data, they just aren't "actors."
Here's what a player start looks like in UDMF:
LevelCompatibility should work fine for this if/when it gets Thing support, but I don't think there's much chance of doing anything with them anywhere else.
Here's what a player start looks like in UDMF:
Code: Select all
thing//#0
{
x=-32.000;
y=32.000;
type=1;
coop=true;
dm=true;
single=true;
skill1=true;
skill2=true;
skill3=true;
skill4=true;
skill5=true;
}
Re: Override player's spawn point
If you want to play CTF in Doom, try Zandronum. Multiplayer is where Zandronum shines.
- Matt
- Posts: 9696
- Joined: Sun Jan 04, 2004 5:37 pm
- Preferred Pronouns: They/Them
- Operating System Version (Optional): Debian Bullseye
- Location: Gotham City SAR, Wyld-Lands of the Lotus People, Dominionist PetroConfederacy of Saudi Canadia
- Contact:
Re: Override player's spawn point
I had to hack around this with:
1. PlayerEntered and PlayerRespawned events that would check for the game mode and call SetOrigin on the playerpawn as necessary
2. Making the playerpawn have a null telefog and -TELESTOMP by default
3. Setting +TELESTOMP to true and spawning a telefog after the SetOrigin call in 1
If there's a proper way to actually set the starting spawn point I'd like to know.
1. PlayerEntered and PlayerRespawned events that would check for the game mode and call SetOrigin on the playerpawn as necessary
2. Making the playerpawn have a null telefog and -TELESTOMP by default
3. Setting +TELESTOMP to true and spawning a telefog after the SetOrigin call in 1
If there's a proper way to actually set the starting spawn point I'd like to know.
Re: Override player's spawn point
Well, that's obvious, but if you don't know, Zandronum is not GPL-compliant, doesn't have ZScript and requires you to edit the source code to make modifications to CTF. So unfortunately it doesn't quite fit the bill in this caseEmpyre wrote:If you want to play CTF in Doom, try Zandronum. Multiplayer is where Zandronum shines.

Thanks for the advice Matt, but i have done just that a while ago. But it's so cumbersome having to manually place a room full of deathmatch starts to make it work. Maybe if i knew how to code i could make a DBX script, but even then i'm not sure if that would help much.Matt wrote:I had to hack around this with:
1. PlayerEntered and PlayerRespawned events that would check for the game mode and call SetOrigin on the playerpawn as necessary
2. Making the playerpawn have a null telefog and -TELESTOMP by default
3. Setting +TELESTOMP to true and spawning a telefog after the SetOrigin call in 1
If there's a proper way to actually set the starting spawn point I'd like to know.