]> de.git.xonotic.org Git - xonotic/xonotic.wiki.git/commitdiff
Update Compiling: add libtool dependency master
authorbones_was_here <bones_was_here@xonotic.au>
Sun, 14 Apr 2024 11:46:33 +0000 (11:46 +0000)
committerbones_was_here <bones_was_here@xonotic.au>
Sun, 14 Apr 2024 11:46:33 +0000 (11:46 +0000)
329 files changed:
Archive.md
Arena.md
Assault.md
Authors.md
Autobuilds.md
Automatic-map-downloads.md
BaI-mod.md [new file with mode: 0644]
Basic-server-configuration.md
Blender-to-IQM.md
Blood-Loss.md [new file with mode: 0644]
Buffs.md [new file with mode: 0644]
CVars.md
Capture-the-Flag.md
Channels.md [deleted file]
Chat-Rooms.md [new file with mode: 0644]
Clan-Arena.md
Cloaked.md [new file with mode: 0644]
Comms-Rules-[draft].md [new file with mode: 0644]
Compiling.md [new file with mode: 0644]
Complete-list-of-command-line-parameters.md [deleted file]
Complete-list-of-q3map2-command-line-parameters.md [new file with mode: 0644]
Creating-Maps.md
Creating-bot-waypoints.md [new file with mode: 0644]
Creating-campaigns.md [new file with mode: 0644]
DarkPlaces-Index.md
Deathmatch.md
Dodging.md [new file with mode: 0644]
Domination.md
Duel.md
Editing.md
Effectinfo-Scripting.md [new file with mode: 0644]
Event-logging.md
Exporting-a-weapon-for-Xonotic.md [new file with mode: 0644]
Features.md
Freesh-Meat-Mod.md [new file with mode: 0644]
Freeze-Tag.md
Git.md
Grappling-Hook.md
Gravity.md [new file with mode: 0644]
Home.md
InstaGib.md
Introduction-to-QuakeC.md
Invasion.md [new file with mode: 0644]
Invincible-Projectiles.md [new file with mode: 0644]
Items.md
Jetpack.md [new file with mode: 0644]
Keepaway.md
Key-Hunt.md
Last-Man-Standing.md
List-of-color-codes.md [new file with mode: 0644]
List-of-translation-placeholders.md [new file with mode: 0644]
List-of-translation-prefixes.md [new file with mode: 0644]
Mapping-FirstMap.md
Mapping-Introduction.md
Mapping-Setup.md
Mapping-packaging.md
Maps.md
Midair.md [new file with mode: 0644]
Modeling.md
Moderation-tools.md [new file with mode: 0644]
Monsters.md [new file with mode: 0644]
Murder-in-Megaerebus-Manor.md [new file with mode: 0644]
Music-contributions.md
NIX.md [new file with mode: 0644]
Nades.md [new file with mode: 0644]
Netradiant.md
New-Toys.md
Nexball.md
Offhand-blaster.md
Onslaught.md
Pinata.md [new file with mode: 0644]
Players.md
Powerups.md
Programming-QuakeC-stuff-in-Xonotic.md [new file with mode: 0644]
Programming-Tips.md
Race-CTS.md
Race.md
Repository_Access.md
Rocket-Flying.md [new file with mode: 0644]
SMB-modpack.md [new file with mode: 0644]
Score-logging.md
Shared-libraries-(buildfiles).md [new file with mode: 0644]
Survival.md [new file with mode: 0644]
Team-Deathmatch.md
Test-your-translations.md [new file with mode: 0644]
Touch-Explode.md [new file with mode: 0644]
Translating.md [new file with mode: 0644]
Translation-guidelines.md [new file with mode: 0644]
Trouble-in-Terrorist-Town.md [new file with mode: 0644]
Vampire.md [new file with mode: 0644]
Vehicles.md
Weapons-Stay.md [new file with mode: 0644]
Weapons.md
_Sidebar.md
assets/images/Blaster.png [deleted file]
assets/images/Blaster_thumb.png [deleted file]
assets/images/Crylink.png [deleted file]
assets/images/Crylink_thumb.png [deleted file]
assets/images/Devastator.png [deleted file]
assets/images/Devastator_thumb.png [deleted file]
assets/images/Electro.png [deleted file]
assets/images/Electro_thumb.png [deleted file]
assets/images/Hagar.png [deleted file]
assets/images/Hagar_thumb.png [deleted file]
assets/images/MachineGun.png [deleted file]
assets/images/MachineGun_thumb.png [deleted file]
assets/images/Mortar.png [deleted file]
assets/images/Mortar_thumb.png [deleted file]
assets/images/Shotgun.png [deleted file]
assets/images/Shotgun_thumb.png [deleted file]
assets/images/Vortex.png [deleted file]
assets/images/Vortex_thumb.png [deleted file]
assets/images/blaster-jumping.png [deleted file]
assets/images/blaster-jumping_thumb.png [deleted file]
assets/images/wall-blastering.png [deleted file]
assets/images/wall-blastering_thumb.png [deleted file]
handicap.md
mapping-MapPicture.md [new file with mode: 0644]
modeldecompile-tool.md [new file with mode: 0644]
uploads/00874f6434cec98f1da6d951b9987399/zzz-bai-quickmenu-v2.pk3 [new file with mode: 0644]
uploads/00fe4f08ebbb70f7ec3a0c9d4324d61b/enforcer.jpg [new file with mode: 0644]
uploads/01d68ab92d511e0a8ee5c0e0905609ab/entrap.png [new file with mode: 0644]
uploads/05a2c41d47a8767fe2f2e23943a8c210/detectiveUsingShockwave.jpg [new file with mode: 0644]
uploads/065948db90af125a0371938ab469713f/rotfish.png [new file with mode: 0644]
uploads/07e424e85718e7f40cf524183384b0e6/napalmboom.jpg [new file with mode: 0644]
uploads/098c35c194b1a2e12857eade57a0ad03/karmaScore.jpg [new file with mode: 0644]
uploads/0a0cc65abe94db11d3a463f13ea01e53/shambler.jpg [new file with mode: 0644]
uploads/0c1313aad39b94f00db093f54d379c1c/xonotic20230616230630-00.jpg [new file with mode: 0644]
uploads/0f9c790bf32b98628b7eaf439cd72bc7/zzz-bai-jokes-v19.pk3 [new file with mode: 0644]
uploads/0fcb08f67791913d31dbaa89f6f4abf7/csprogs-xonotic-v0.8.2-2564-g68e9345d4.pk3 [new file with mode: 0644]
uploads/10a03f55b5aed6a2fcfe68a8d8b7023f/2019.07.11-9_08_minectf__ttt__show_result_.dem [new file with mode: 0644]
uploads/1249c46f461a504ce7e9d3d07d6fc35b/enforcer.jpg [new file with mode: 0644]
uploads/1487c855c09637affb13c6cfeaaae994/translocateboom.jpg [new file with mode: 0644]
uploads/1576c847ebb254534127bd89cc28e504/Vehicle-r22helicopter.jpg [new file with mode: 0644]
uploads/15add5938094995589a7d569e9195f24/entrap.jpg [new file with mode: 0644]
uploads/167212cbdeca5b838efdcbc0757259d8/soldier.jpg [new file with mode: 0644]
uploads/19d0104a69a9bf92aa0b65c111ab0488/attackername.jpg [new file with mode: 0644]
uploads/1b9a2ab2a1f5a3138b45d12830910c02/normalboom.png [new file with mode: 0644]
uploads/1cce121f7a6431f0ff7f0452eff92801/Screenshot_20191005_164237.png [new file with mode: 0644]
uploads/1f2be87e309d9afe5e9ea75f79dee8bf/zombie2.jpg [new file with mode: 0644]
uploads/1f769ede89975be78d88eaad1b062a3d/spammingerrorstagweapon.jpg [new file with mode: 0644]
uploads/1f7cdac999e2efd1c5083a387b307670/medals1.jpg [new file with mode: 0644]
uploads/22b3273ceedc7cbf526f7b7e8a719828/healing.jpg [new file with mode: 0644]
uploads/247dc57e177a7d08c2b7ce7e42cd3995/zzz-bai-sounds-v11.pk3 [new file with mode: 0644]
uploads/24d3a6caec031b68d70856f62982d96c/gameplayCivilian.jpg [new file with mode: 0644]
uploads/2698f60364ce425dd295fb2462cb682a/mage.png [new file with mode: 0644]
uploads/28ea75bd7555021facaf3c93d57cbded/Vehicle-lightapc-cockpit.jpg [new file with mode: 0644]
uploads/2b7164ea021914d842f1f4022cc614c3/team_sb2.jpg [new file with mode: 0644]
uploads/2bad28f70051aede20cb7c3b6cea30c8/Vehicle-ll48tank.png [new file with mode: 0644]
uploads/2c929b6993d5e370c1d5498a03cb4ba8/blenderSMDexport4.jpg [new file with mode: 0644]
uploads/2dc395d83ac793aa20f502a1bfd5bb12/SpectatorHUD.jpg [new file with mode: 0644]
uploads/2dd93a2f8ce7b22400c32535c9fad392/prydon_mod_sample.jpg [new file with mode: 0644]
uploads/2fb59cdef8d1717526d86515f8138acc/attackername.jpg [new file with mode: 0644]
uploads/3042d31bb8a054ea7e177f6110570fb7/spawnnade.png [new file with mode: 0644]
uploads/335d584ff23ed34cc3a7a68683ae198c/chat1.jpg [new file with mode: 0644]
uploads/33a69c4499702fbf8592766ebae04c34/suwa_moriya_64_mod_sample.jpg [new file with mode: 0644]
uploads/3472a53956c46725e1190936d916abcd/xonotic20230616230550-00.jpg [new file with mode: 0644]
uploads/36275ed8dd703a58de9cb82e49919bb4/xonotic20230616230857-00.jpg [new file with mode: 0644]
uploads/3775545047aa58d6e4fcb37df4f500a1/blenderSMDexport1.jpg [new file with mode: 0644]
uploads/37a186e2bba7428e12d3f43a9f54971a/health_small.png [new file with mode: 0644]
uploads/37bb634467e5ee1a025022cc2e53e652/Screenshot_20191005_164237.png [new file with mode: 0644]
uploads/3a0322703abb471d604d3b65b778bd53/monsternade.jpg [new file with mode: 0644]
uploads/3b589d72556bff2e9426025e5550c2ea/minectf_fsmp1.zip [new file with mode: 0644]
uploads/3d3d116722312d471408c7d178595e6d/items.jpg [new file with mode: 0644]
uploads/400f17cde6ff8a2fb43bb2efffd1384f/timer2.jpg [new file with mode: 0644]
uploads/40d56cf47c83b50e18b4d5e56eece21a/fsmp-teamplay-hats-1.1.0.pk3 [new file with mode: 0644]
uploads/440eb38e781b4bb26f3679102b69b185/iconTTTgamemode.png [new file with mode: 0644]
uploads/447f6abe0f73c6d6cadce97e4ed66e8b/blendermodifiersiqmandmd3.jpg [new file with mode: 0644]
uploads/44db8ef2cb4c89e2442e9b97854eb474/vore.jpg [new file with mode: 0644]
uploads/46162b4daff7255e5eab7637665426a4/detectiveUsingShockwaveSlime.jpg [new file with mode: 0644]
uploads/46eaf8713d4ad22caec4028948a815a0/armor_medium.png [new file with mode: 0644]
uploads/4790da4757c57d879be55493c95b6857/nitroboom.jpg [new file with mode: 0644]
uploads/4846409eef51aa79ba47169c666fd8d1/xonotic20230616230550-00.jpg [new file with mode: 0644]
uploads/48f09eb2f3608e502ad88c348a4b4473/creeper.jpg [new file with mode: 0644]
uploads/49d1fa684ecd673367b4f3294195a37f/normal.png [new file with mode: 0644]
uploads/49f7b185c41d545a8736999a55a9a3da/mage.jpg [new file with mode: 0644]
uploads/4b0977974e9cd4db5f2e53b6e6a82e66/gametype_mmmluminos.png [new file with mode: 0644]
uploads/4d0ceb0f572aaf5ae3ecc9b1d56387da/soldier.png [new file with mode: 0644]
uploads/4d83e3253563e6fde2c17be1c7ff4e3d/xonotic20230616230630-00.jpg [new file with mode: 0644]
uploads/4fa75dca8ebb724b89d5fd5513fd2787/exportiqmiqeblenderdetails.jpg [new file with mode: 0644]
uploads/4fd1b9f684461c71bc412f9db18cddc2/armor_small.png [new file with mode: 0644]
uploads/508f6b1a832daa7c16b0e3296e08e5c0/zzz-bai-jokes-v18.pk3 [new file with mode: 0644]
uploads/56b672332778d67b7c359b611d54c06f/demon.jpg [new file with mode: 0644]
uploads/57bf95ee9075a32117999d7348cd4e8d/ogre.jpg [new file with mode: 0644]
uploads/58cca074777c04803b43075d87b1589d/demon.png [new file with mode: 0644]
uploads/5953f5fd352f33e8d915350f16fbbe3c/whenFinishedmakes_public_everyone_whotheyare.jpg [new file with mode: 0644]
uploads/5b6fb4928acca2a57cba1988b716fed0/zzz-bai-gfx-v10.pk3 [new file with mode: 0644]
uploads/5d31e87dd1da89af57d0be70103b7ce8/Vehicle-lightapc-thirdperson-view.png [new file with mode: 0644]
uploads/5ddae1fd58f18d61e3c88705cd04b0e7/rottweiler.jpg [new file with mode: 0644]
uploads/5df5aca2975cb939a9f091574ea12d6f/healingboom.png [new file with mode: 0644]
uploads/5e67f7c446756d56d7fef54c7bd4d418/iconTroubleinTerroristTown.png [new file with mode: 0644]
uploads/5ee301512f68a165fdec5bf16f14fbd9/Vehicle-r22helicopter-cockpit.png [new file with mode: 0644]
uploads/60156ec99cc8e3514341fb69373e4680/Vehicle-ll48tank-thirdperson-view.jpg [new file with mode: 0644]
uploads/606e3175f20a9274b9c651f5b8fea151/healingboom.jpg [new file with mode: 0644]
uploads/60ed6217d9608f9260e2306a039a5402/xonotic20230616230906-00.jpg [new file with mode: 0644]
uploads/6140abcafb7b60cb154b43ce5e835105/image.png [new file with mode: 0644]
uploads/624609a067a037559c2d3033df1618d7/wyvern.png [new file with mode: 0644]
uploads/6441f147f90aba34812ebc3cb733caa7/monsternadeboom.png [new file with mode: 0644]
uploads/64c214772da84aceb4d5f56184606d3a/teams2.jpg [new file with mode: 0644]
uploads/655f8b85825c0c6f4c092e898e2bb061/chat2.jpg [new file with mode: 0644]
uploads/6853c4cc8c82b8564ff1b94c89b224be/scrag.png [new file with mode: 0644]
uploads/68fc3a8a5ecad8d4a6bfa6e62b8f4a83/zzz-bai-gfx-v7.pk3 [new file with mode: 0644]
uploads/6cdb741c94684e2633821c7540269186/iconTTTgamemode.png [new file with mode: 0644]
uploads/6dba374fe3ca986cdc8551335bedc222/title1.jpg [new file with mode: 0644]
uploads/751564673b6ea39fadf17fb217579230/xonotic20230616230906-00.jpg [new file with mode: 0644]
uploads/7599a92aad08c45284b84e18c6bbfa5c/zombie.png [new file with mode: 0644]
uploads/7607735ad75ec0853a3f88a3ecf018ae/zzz-bai-quickmenu-v2.pk3 [new file with mode: 0644]
uploads/77207df550e8c0316e08bdd696917493/crouch_wp.jpg [new file with mode: 0644]
uploads/77f2c9768bec14f7b5c5cfd68452886f/spawnnade.jpg [new file with mode: 0644]
uploads/78a63b420def6f1e228720d1d91c6e3f/Honeyview_armor_mega.png [new file with mode: 0644]
uploads/7a978ef8c57af58b558e9b670e5d475d/image.png [new file with mode: 0644]
uploads/7ba1f8aed1b8dc2f41cec2679b8928d0/iconTroubleinTerroristTown.jpg [new file with mode: 0644]
uploads/7deb9e6cb017bcc91ab2e4687a358b6a/nitro.png [new file with mode: 0644]
uploads/7df860d73a6fae27408c8f0c024122c7/exporttutorialIQM.jpg [new file with mode: 0644]
uploads/7e75ed16f04358a1297c0cd1363a5e03/normal.jpg [new file with mode: 0644]
uploads/7f62d54a5763b007ade732feadeb13ec/title2.jpg [new file with mode: 0644]
uploads/801998e5644db63a5946c46a29ddec85/4eg.jpg [new file with mode: 0644]
uploads/80220aa4479a827e72b0a3734c9b237e/hardwired_wp.jpg [new file with mode: 0644]
uploads/80fea6093550c63fd50c099b50620372/teams1.jpg [new file with mode: 0644]
uploads/8195594de91adce2c8f62f9819c8e861/nitroboom.png [new file with mode: 0644]
uploads/81f43728f6f8a8fa07185ad9125b0b1d/Vehicle-lightapc.png [new file with mode: 0644]
uploads/8283fe733167674cd1061fafa93da0a2/Vehicle-r22helicopter-cockpit.jpg [new file with mode: 0644]
uploads/85f12623125db9d1e86e8189d5b247ad/Vehicle-lightapc-thirdperson-view.jpg [new file with mode: 0644]
uploads/86e23f5af2fa659b2a1b0ac71fed74fe/timer1.jpg [new file with mode: 0644]
uploads/87492fa3d375e4166c86d794257b7d78/Gitsettingsshortguide.jpg [new file with mode: 0644]
uploads/87ff1b41bfbbc6221bf9b715bd2993d8/chat_ready.jpg [new file with mode: 0644]
uploads/88071dccb47d650aacd31c719eadb6b6/veilboom.jpg [new file with mode: 0644]
uploads/8a541fbdf6d2ab0447567eb1e18d3e13/zzz-bai-jingle-v1.pk3 [new file with mode: 0644]
uploads/8ba3d79131713563e8d2ba35aa7d1b55/2019-10-02_21-54_minectf.dem [new file with mode: 0644]
uploads/8c812cdb7f7bdad7a3b9d199cc3583fc/duel_sb2.jpg [new file with mode: 0644]
uploads/8d007cfbdd179a15ad8d99e9cd18aa06/Vehicle-ll48tank-cockpit.jpg [new file with mode: 0644]
uploads/8f643aba9800e682047c9818482718af/zzz-bai-announcer-v9.pk3 [new file with mode: 0644]
uploads/90d8ed4487ba478fcec90adb691c7a42/timer3.jpg [new file with mode: 0644]
uploads/922bfe3278e7ec8688c4b96448e1e2ed/shambler.png [new file with mode: 0644]
uploads/92d5842accfd071f8900b689591423df/Vehicle-r22helicopter-thirdperson-view.jpg [new file with mode: 0644]
uploads/9325a103e7052bec6ebdb05e4c3afe99/Vehicle-r22helicopter-thirdperson-view.png [new file with mode: 0644]
uploads/9573c68889648122385609f314b1f077/normal_wp.jpg [new file with mode: 0644]
uploads/967d1e4b8c364b86fad171a959f5f5f9/scrag.jpg [new file with mode: 0644]
uploads/968d5da002ae4e9070381e09c833504e/health_medium.png [new file with mode: 0644]
uploads/9997b9cb9e9f3405a3e374811caa37ec/fsmp-teamplay-hats-1.2.0.pk3 [new file with mode: 0644]
uploads/9ad5f03fe196de135e03f281cdd4cc62/veil.jpg [new file with mode: 0644]
uploads/9b6498ef80aea439232ac35d020a3859/xonotic20230616230550-00.jpg [new file with mode: 0644]
uploads/9b9de99e09439a4afbbee0ef1ff9dd6a/spider.png [new file with mode: 0644]
uploads/9e9efa19232d1c47fd982ad0da2eb1df/blenderSMDexport3.jpg [new file with mode: 0644]
uploads/9edc77a777f634acf4185f7e6fbd0e84/Vehicle-lightapc-cockpit.png [new file with mode: 0644]
uploads/a1525b91e1519d2786431a2e5b43e69b/MenuMMM.jpg [new file with mode: 0644]
uploads/a1fbbf13c4340542b10a126eb3eb4c27/exportiqmiqeblenderdetails.jpg [new file with mode: 0644]
uploads/a23dbba1f6aa6d1a272cb57855167dbe/Vehicle-lightapc.jpg [new file with mode: 0644]
uploads/a34e5e8eabec5fde14bbd12aafec2810/ogre.png [new file with mode: 0644]
uploads/a3b5d15a9af637f1d10e5a284cbf9834/rotfish.jpg [new file with mode: 0644]
uploads/a622ef2d5c0c5ca81d6f044c452293eb/quake_mod_sample.jpg [new file with mode: 0644]
uploads/a6789a82865f41522bfaa150e9c2bbc8/healing.png [new file with mode: 0644]
uploads/a686abf53ed2a7c0c39d264fce1a15bc/translocateboom.png [new file with mode: 0644]
uploads/a696bd29d305c0d58ec1a6c18cbaae0b/veilboom.png [new file with mode: 0644]
uploads/a90778308bad9c09bf02be9cdb760f76/napalm.png [new file with mode: 0644]
uploads/aa246c0d67cabd7a59ad0f330280b6b0/tttTGA.tga [new file with mode: 0644]
uploads/abef98eaddd7c61bec7eb467efe4c3fe/crylinkblendermaterialsample.jpg [new file with mode: 0644]
uploads/ad2d82960ebaa51bf74370a32b7fffd2/items.jpg [new file with mode: 0644]
uploads/ae680fd80bdf748fdee6d2f9186dada3/jump_wp.jpg [new file with mode: 0644]
uploads/af2f46e366956e6ec336515564664d42/th_waypointeditor_config.cfg [new file with mode: 0644]
uploads/b047fb813b9c5fd39dddd6475b54704f/spawn.png [new file with mode: 0644]
uploads/b17c8e0ffb023dcb60fd7e2c23039e44/xonotic20230616230550-00.jpg [new file with mode: 0644]
uploads/b557161f3f3918ef097b86cc282c9795/medals2.jpg [new file with mode: 0644]
uploads/b5880d748b8fae86cbc3106b1ad0e937/afrit.png [new file with mode: 0644]
uploads/b71c8b9d29a00a11a47e29a0033290d9/team_notify.jpg [new file with mode: 0644]
uploads/b72f913d9a32520275a943b6c3fde511/fsmp-teamplay-server-files-1.3.0.pk3 [new file with mode: 0644]
uploads/b74fcccf32fe79966f656030737bed2a/armor_mega.tga [new file with mode: 0644]
uploads/b7538e50554b70d4c8c0946e4c6cd991/health_big.png [new file with mode: 0644]
uploads/b77bc014b93ea6f97e581be4eece805d/afrit.jpg [new file with mode: 0644]
uploads/b7c8b250fc1af6b30c999506e7143930/blenderSMDexport2.jpg [new file with mode: 0644]
uploads/b88705357f80b8216aff7fd545baa94f/entrapboom.png [new file with mode: 0644]
uploads/b9dd72b8571010e06ba5ee3d0be68845/karmaSystem.jpg [new file with mode: 0644]
uploads/ba42b9e7a7619c82f97eca0be5b0efc6/armor_mega.png [new file with mode: 0644]
uploads/ba94aa50b9d2a1b4afbbe277ce4e8e3e/fsmp-teamplay-server-files-1.4.0.pk3 [new file with mode: 0644]
uploads/bb848a10f699a55df73e70d9ab6e1102/spectating.jpg [new file with mode: 0644]
uploads/bc616f2e01318d8e0f5e267ffd3d8b50/4eg.jpg [new file with mode: 0644]
uploads/bc6f4532a636aae501c8a800ceed0eb2/zzz-bai-announcer-v9.pk3 [new file with mode: 0644]
uploads/bca5d877730c378b68e6f3bcf0a87879/Vehicle-ll48tank-cockpit.png [new file with mode: 0644]
uploads/bdb424baaeff32bf3f406b43be17e5a6/jump_wp_to_crouch_wp.jpg [new file with mode: 0644]
uploads/c04b290b3174036960a84590ade730f0/spawn.jpg [new file with mode: 0644]
uploads/c2c9f4c388ac01ae9213c577c1afe7c3/gametype_mmmxaw.png [new file with mode: 0644]
uploads/c3466c97c10a16b06b8c523b22a0e0ab/health_mega.png [new file with mode: 0644]
uploads/c48fb7565453eab24faca2d6ffec4347/Md3_textures.png [new file with mode: 0644]
uploads/c6e610dae225d4b3b3b6d983fbe4a1ee/gametype_mmm.png [new file with mode: 0644]
uploads/c71d78429cae68236204f572a61ce1fc/scoreboardCountryflag.jpg [new file with mode: 0644]
uploads/c78a23766edd66cea849944f9b0eb2e0/conv_armor_mega.png [new file with mode: 0644]
uploads/c9dd058351dd79b05014293df321836d/zzz-bai-gfx-v8.pk3 [new file with mode: 0644]
uploads/ca2ff9f964f1836eaa2550c5ab918c85/napalmboom.png [new file with mode: 0644]
uploads/ca88b1a8cbab9b9c5b81ef43bb9809f3/crylinkblendertexturesample.jpg [new file with mode: 0644]
uploads/cd28ad41832e53d9006402c8821c6a18/medals3.jpg [new file with mode: 0644]
uploads/cd466c80bb27a039b5e6702755707562/spider.jpg [new file with mode: 0644]
uploads/cdb90908aab4a52580019c871a936156/duplicatedtexturenameloadingerror.jpg [new file with mode: 0644]
uploads/ce02b51b844f1a2dd37d6d51f1fa6e67/zzz-bai-sounds-v11.pk3 [new file with mode: 0644]
uploads/ce3c707247027623f69dc6ea82495567/spect_hud.jpg [new file with mode: 0644]
uploads/cf0c9ed18c81f8281e2af454b071dbb6/zzz-bai-jingle-v1.pk3 [new file with mode: 0644]
uploads/cfae0d89095b3fc5bd31962c1c7b47af/wyvern.jpg [new file with mode: 0644]
uploads/d24c29720cbc633d181ee7ada882a3ad/Gitsettingsshortguide.jpg [new file with mode: 0644]
uploads/d259518dd9c920f55b4813e4f9d92461/Vehicle-ll48tank.jpg [new file with mode: 0644]
uploads/d3a3586d41ffca7ea2316696c3e0b0c9/zombie.jpg [new file with mode: 0644]
uploads/d48adce41341a2c32dc5b077bb897216/rottweiler.png [new file with mode: 0644]
uploads/d5c18cbaed37fc98b28a3fc2d8b3f8ed/nitro.jpg [new file with mode: 0644]
uploads/d7ad82b11f40be35df21edea0ebd1b07/zzz-bai-jokes-v18.pk3 [new file with mode: 0644]
uploads/d7c63b18559c353165cee65dfd31aca3/spectating.png [new file with mode: 0644]
uploads/dbc9799a7d5caa91d6172b21e61f205e/translocate.png [new file with mode: 0644]
uploads/dead5dd822cfb3eef5470d1e4cfd64b5/Vehicle-r22helicopter.png [new file with mode: 0644]
uploads/dec906e1d2ca4f2ec2096e8461797592/murder_place.jpg [new file with mode: 0644]
uploads/e1f01cf95af8e73403a7652836427195/veil.png [new file with mode: 0644]
uploads/e220eae0a519de41f93aa90c1be0a273/creeper.png [new file with mode: 0644]
uploads/e5a8837b66fc96de4e30a19ed73d9e47/Vehicle-ll48tank-thirdperson-view.png [new file with mode: 0644]
uploads/e72bbcac022e75f3944c36ef7f7fd2c5/zzz-bai-gfx-v7.pk3 [new file with mode: 0644]
uploads/e7c23520812595b949077456d0e0b002/armor_big.png [new file with mode: 0644]
uploads/e846c4dac00937a4bcef89c5fe961291/entrapboom.jpg [new file with mode: 0644]
uploads/eab7d20707a37db964faeca5b624648a/napalm.jpg [new file with mode: 0644]
uploads/ec37639792378bb6ef9684b19d45a056/blenderSMDexport5.jpg [new file with mode: 0644]
uploads/ec76013f8f6c39e5d3d9ad182818454c/xonotic20230616230916-00.jpg [new file with mode: 0644]
uploads/edac44d1319de43fd3529cee1368d128/iconTTTgamemodeoriginal.png [new file with mode: 0644]
uploads/ee94f06409a122191a74d70e1e2250bd/translocate.jpg [new file with mode: 0644]
uploads/efee46a2a80a232ebe5fa63e30f4e2d9/Md3exp.png [new file with mode: 0644]
uploads/f087361a52e91df6459df22e3926f412/normalboom.jpg [new file with mode: 0644]
uploads/f16e2c669c122f62d8ae663f4df18823/zzz-bai-jokes-v18.pk3 [new file with mode: 0644]
uploads/f3f39c9a06a408bffd5e48bc5e07eac6/exporttutorialMD3.jpg [new file with mode: 0644]
uploads/f453f36f7b04dd48c0747fc9075f4895/monsternadeboom.jpg [new file with mode: 0644]
uploads/f4895cc5bd728d6bbb81e0699206098b/zombie2.png [new file with mode: 0644]
uploads/f6696ed828d0b759321b2a9fb358f044/enforcer.png [new file with mode: 0644]
uploads/f6bee872e2ebfe4c3bb317bd1f0aa421/tttTGA.tga [new file with mode: 0644]
uploads/fad08dff4a3f011773ccd11bbf14fe57/vore.png [new file with mode: 0644]
uploads/fbdadc8a4d7a66b459475f12fcfb3944/traitor.jpg [new file with mode: 0644]
uploads/fbdb7eb49088219c3acc3095e4254a6a/monsternade.png [new file with mode: 0644]
uploads/ffc9cef7d586de00266c20d4eeffaaf8/support_wp.jpg [new file with mode: 0644]

index 599a8548ca2fb7dddf3f025917d37390fcd20889..42c190428557e459771eda1f5babb60301273695 100644 (file)
@@ -1,5 +1,13 @@
 A list of pages that are old or incomplete. Nothing else (on the wiki) links to them so I put them here before we decide what to do with them.
 
+
+Could be useful
+---------------
+
+[Forbidden-disposable-email-providers](Forbidden-disposable-email-providers) - somebody uses this so might not wanna delete (got asked about it on irc when i moved it)  
+[Modeling-in-blender](Modeling-in-blender) - idk how outdated this is  
+[Server](Server) - TODO find a better place for this info 
+
 Maaaaybe historically interesting
 ---------------------------------
 
@@ -10,14 +18,7 @@ Mostly stuff about the fork from nexuiz
 [Pr](Pr)  
 [Announcements](Announcements) - fork announcement  
 [Plan](Plan) - what the original plan was after forking  
-[Old-FAQ-questions](Old-FAQ-questions)
-
-Could be useful
----------------
-
-[Forbidden-disposable-email-providers](Forbidden-disposable-email-providers) - somebody uses this so might not wanna delete (got asked about it on irc when i moved it)
-[Modeling-in-blender](Modeling-in-blender) - idk how outdated this is  
-[Server](Server) - TODO find a better place for this info  
+[Old-FAQ-questions](Old-FAQ-questions) 
 
 Other
 -----
@@ -37,3 +38,4 @@ Other
 [Community development](Community-development) - another outdated list  
 [Art Roadmap](Art-Roadmap)  
 [NewQC](NewQC) - possible changes regarding QC (compiler, syntax, …) - never happened so the syntax descriptions are mostly wrong  
+[Weapons Makeover](Weapons-Makeover)  
index 4585e134c184a09a3eecc5a4f0142eb536cf68d7..8eaee739c1ba326b74678d2ab93685076776e207 100644 (file)
--- a/Arena.md
+++ b/Arena.md
@@ -4,22 +4,11 @@ Arena
 Object of the Game
 ------------------
 
-In Arena there are always 2 players playing (like little 1vs1 duels) and try to frag the other one. Other players have to spectate in meanwhile. If one player dies he has to spectate and the player which survived is allowed to stay. Now some of the other spectators joins and tries to frag the other player.
+**NOTE**: This game mode has been removed.
 
-Map Entities
-------------
-
-_(Insert Map Entities here)_
+In Arena, there are always 2 players playing (like little 1vs1 duels) and try to frag the other one. Other players have to spectate in meanwhile. If one player dies he has to spectate and the player which survived is allowed to stay. Now some of the other spectators joins and tries to frag the other player.
 
 Helpful Hints and Tips
 ----------------------
 
--   _(Insert Hints Here)_
-
-List of Demos and Videos
-------------------------
-
--   Demo: _(Insert Demo or Video Here)_
--   Players: _(Insert Player Names Here)_
--   Key Points: _(Insert key points in match here)_
-
+-   _(Insert Hints Here)_
\ No newline at end of file
index c337951b8d66256896f4ebec443c604f1c1a7104..7e7bfbd8e6b098f3883e523d429695656cd847d6 100644 (file)
@@ -4,29 +4,20 @@ Assault (AS)
 Object of the Game
 ------------------
 
-In Assault there are 2 teams (red & blue). The goal in Assault is to destroy objects (if you destroy some it will open new doors/ways to new objects until a main object (the last one)). 1 team has to defend the objects and the other team has to destroy them! The defending team wins when the time is over and the main object is still “alive”. The attacking team wins if they destroy the main object. After the attacking team accomplishes that (or the time is over) both teams are switching their roles (defending team attacks now/attacking team defends). The team that attacks now has got the same amount of time to destroy everything, that the first attacking team needed to destroy all objects. A team wins the map if it’s able to ‘win’ the attacking and defending part. Obviously a map can be tied too if a) both teams defend well or b) both teams destroyed all objects.
+In **Assault** there are 2 teams (red and blue). The goal in Assault is to destroy objects (if you destroy some it will open new doors/ways to new objects until a main object (the last one)). 1 team has to defend the objects and the other team has to destroy them! The defending team wins when the time is over and the main object is still “alive”. The attacking team wins if they destroy the main object.
 
-How To:
+After the attacking team accomplishes that (or the time is over) both teams are switching their roles (defending team attacks now/attacking team defends). The team that attacks now has got the same amount of time to destroy everything, that the first attacking team needed to destroy all objects.
+
+A team wins the map if it’s able to ‘win’ the attacking and defending part. Obviously a map can be tied too if a) both teams defend well or b) both teams destroyed all objects.
+
+How to …:
 
 - Find an object? Objects have waypoints (which show their “health” also) to show their position.
 - Destroy an object? Just shoot it with any weapon until it is destroyed.
 - Destroy the main object? The same way like a normal object, only difference is that the main object got more “health”.
 
-Map Entities
-------------
-
-_(Insert Map Entities here)_
-
 Helpful Hints and Tips
 ----------------------
 
 - [Binds](Binds) like “Enemy seen” are useful to inform the team.
-- Maps can include [Turrets](Turrets) (machines that fire e.g. rockets or laser at you). They can be destroyed if you shot them for a while.
-
-List of Demos and Videos
-------------------------
-
--   Demo: _(Insert Demo or Video Here)_
--   Players: _(Insert Player Names Here)_
--   Key Points: _(Insert key points in match here)_
-
+- Maps can include [Turrets](Turrets) (machines that fire e.g. rockets or laser at you). They can be destroyed if you shot them for a while.
\ No newline at end of file
index ca77fec554b040f52e212d220ed9ff2c2de33a60..d54928a2b998b1ebb82724f9683db4b47ff4404f 100644 (file)
@@ -4,7 +4,7 @@ DarkPlaces Wiki
 Darkplaces Authors
 ==================
 
-Darkplaces was created by LordHavoc, and contributed to by a long list of people over the years. Here are just some of the people who have contributed code, artwork, bug fixes, hosting, etc.
+Darkplaces was created by LadyHavoc, and contributed to by a long list of people over the years. Here are just some of the people who have contributed code, artwork, bug fixes, hosting, etc.
 
 Supporters & Contributors
 -------------------------
@@ -26,3 +26,4 @@ Supporters & Contributors
 -   |Rain|
 -   VorteX
 -   Ludwig Nussel
+-   David "Cloudwalk" Knapp
\ No newline at end of file
index 0adb6744c108ead5d489ae92d59dc19fffe8830f..e5431c09d43ce6e478af01f14be9e6e1a3f55759 100644 (file)
@@ -1,3 +1,7 @@
-Autobuilds are nightly builds of the latest code. They have the latest features, bugfixes and assets but they could be less stable than regular releases.
+Autobuilds are nightly builds of the latest code. They have the latest features, bugfixes and assets but they could be less stable than regular releases. 
 
-If you "installed" Xonotic by downloading and unpacking the [zip](http://xonotic.org/download/), you can update a regular release to autobuild using the scripts located in `misc/tools/rsync-updater` (use `update-to-autobuild.bat` if you're one Windows, `update-to-autobuild.sh` on Linux and Mac). You can go back to the normal release using the `update-to-release` scripts.
+If you "installed" Xonotic by downloading and unpacking the [zip](http://xonotic.org/download/), you can update a regular release to autobuild using the scripts located in `misc/tools/rsync-updater` (use `update-to-autobuild.bat` if you're one Windows, `update-to-autobuild.sh` on Linux and Mac). You can also download an autobuild and various other builds as a zip from https://beta.xonotic.org/autobuild/ - username is `xonotic` and password `g-23`.
+
+It's best to **make a copy of the original Xonotic directory first** in case you wanna go back to using the release but you can also go back by using the `update-to-release` scripts. Releases and autobuilds should be able to coexist (they will share the same [config](https://www.xonotic.org/faq/#config) though, unless you use something like `-userdir`).
+
+Autobuilds (and [git builds](https://gitlab.com/xonotic/xonotic/-/wikis/Repository_Access)) are compatible with the same servers as the latest release. When you connect to a server, Xonotic downloads the gamelogic from it (and runs it sandboxed) so you always use the same version as the server. Autobuilds therefore only affect the gamelogic of local games, the engine (rendering, input, ...) and assets (models, sounds, ...).
\ No newline at end of file
index 83661bed1e208b426965dacefa8c45bc5be9a02d..11d96748919255e0606e01bcaa88afec4e9a173b 100644 (file)
@@ -13,12 +13,11 @@ Downloaded packages end up in `Xonotic/data/dlcache/` or
 `~/.xonotic/data/dlcache/` and are only used till you exit Xonotic.
  If you want to play them localy or use them to setup a server of your
 own you can "accept" the packages by moving it one level up - right
-next to your config.cfg.
+next to your `config.cfg`.
 
-You should regularily clean up your cache to save space and make the maps
+You should regularly clean up your cache to save space and make the maps
 you really want available from the menu.
 
-
 ## Server-side configuration
 
 First of all, you need a HTTP or FTP server to host your PK3s. You can either
@@ -50,19 +49,28 @@ The pk3 name will be appended to the URL by DarkPlaces. Note that you NEED to
 append a trailing slash if you refer to a directory. If you specify a "-" as
 URL, the package will not be offered for download.
 
+**Note:** HTTP**S** downloads are not supported for Xonotic Windows Clients! It works for the Linux client but you probably want to serve all players so it is advised to use `http://` in `sv_curl_defaulturl` or `curl_urls.txt`.
+
+Some Apache config snippet for the `<VirtualHost>` to allow for Xonotic Clients to use HTTP while all other traffic get redirected to HTTPS would be:
+```apache
+        RewriteEngine On
+        RewriteCond %{HTTP_USER_AGENT} ^Xonotic
+        RewriteRule ^ - [END]
+        RewriteCond %{HTTPS} !=on
+        RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R=301,L]
+```
 
-INFORMATION FOR MIRROR/MAP SERVER ADMINS:
+More Information about the Referer:
 
-The Referer is always set to dp://serverhost:serverport/, the User-Agent
-always starts with "Xonotic". Look at this sample log line:
+The Referer is always set to dp://serverhost:serverport/, the User-Agent always starts with "Xonotic". Look at this sample log line:
 
-141.2.16.3 - - [06/Jun/2006:19:43:14 +0000] "GET /~polzer/temp/nexmaps.php?filename=o-fun.pk3 HTTP/1.1" 302 - "dp://141.2.16.3:26000/" "Xonotic Linux 21:26:17 Jun  6 2006"
+`141.2.16.3 - - [06/Jun/2006:19:43:14 +0000] "GET /~polzer/temp/nexmaps.php?filename=o-fun.pk3 HTTP/1.1" 302 - "dp://141.2.16.3:26000/" "Xonotic Linux 21:26:17 Jun  6 2006"`
 
 
 If you want to set up a redirection service, here is a sample PHP code for you
 to start from:
 
-```
+```php
 <?
 
 function findmap($filename)
diff --git a/BaI-mod.md b/BaI-mod.md
new file mode 100644 (file)
index 0000000..94d9b17
--- /dev/null
@@ -0,0 +1,147 @@
+> ## Table of Contents
+> 1. [Notes for developers](#notes-for-developers)
+> 2. [HUD configuration](#hud-configuration)
+> 3. [Chat sounds](#chat-sounds)
+> 4. [Country flags](#country-flags)
+> 5. [References](#references)
+
+
+[**Mod**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/z411/bai-server) developed by [**z411**](https://gitlab.com/z411) for the BaI Xonotic server. Most of these are features ported from Quake 3/Quake Live and some might be undesirable for some Xonotic players, here is the content in case Xonotic players want any of them in the main game.
+
+
+# Notes for developers
+
+### Mod resources
+
+Note: PATH is one of the following depending on your system
+
+|OS|Path|
+|:--|:--|
+|Windows|C:\Users\yourusername\Saved Games\xonotic|
+|Linux|~/.xonotic|
+|Mac|~/Library/Application Support/xonotic|
+Nothing should *ever* be added to the main installation folder of Xonotic, use these paths!
+
+The resources should be saved in `PATH/data`.
+
+- Announcer (execute `cl_announcer shobon` command to activate the resource):
+
+[zzz-bai-announcer-v9.pk3](uploads/bc6f4532a636aae501c8a800ceed0eb2/zzz-bai-announcer-v9.pk3)
+
+- Icons of country flags, medals and scoreboard logo:
+
+[zzz-bai-gfx-v8.pk3](uploads/c9dd058351dd79b05014293df321836d/zzz-bai-gfx-v8.pk3)
+
+- Soundtrack of when a match is over and the players are in pause voting to select gamemodes/maps:
+
+[zzz-bai-jingle-v1.pk3](uploads/8a541fbdf6d2ab0447567eb1e18d3e13/zzz-bai-jingle-v1.pk3)
+
+- Chat sounds:
+
+[zzz-bai-jokes-v19.pk3](uploads/0f9c790bf32b98628b7eaf439cd72bc7/zzz-bai-jokes-v19.pk3)
+
+- Quickmenu:
+
+[zzz-bai-quickmenu-v2.pk3](uploads/7607735ad75ec0853a3f88a3ecf018ae/zzz-bai-quickmenu-v2.pk3)
+
+- Set of sound effects about when player shots, a flag is fallen, ...
+
+[zzz-bai-sounds-v11.pk3](uploads/247dc57e177a7d08c2b7ce7e42cd3995/zzz-bai-sounds-v11.pk3)
+
+### Source code
+
+The code is in z411's branch: https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/z411/bai-server
+
+LegendGuard has forked the mod and added some stuff in this branch: https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/LegendaryGuard/bai_mod
+
+Remember look the [**repository guide**](https://gitlab.com/xonotic/xonotic/-/wikis/Repository_Access) to use this code.
+
+#### List of source code files where mod was developed
+
+Client base:
+
+- [`qcsrc/server/client.qc`](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/blob/z411/bai-server/qcsrc/server/client.qc)
+
+Scoreboard:
+
+- [`qcsrc/client/hud/panel/scoreboard.qc`](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/blob/z411/bai-server/qcsrc/client/hud/panel/scoreboard.qc)
+
+- [`qcsrc/common/scores.qh`](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/blob/z411/bai-server/qcsrc/common/scores.qh)
+
+Chat:
+
+- [`qcsrc/client/hud/panel/chat.qc`](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/blob/z411/bai-server/qcsrc/client/hud/panel/chat.qc)
+
+Spectator HUD:
+
+- [`qcsrc/client/hud/panel/spect.qh`](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/blob/z411/bai-server/qcsrc/client/hud/panel/spect.qh)
+
+- [`qcsrc/client/hud/panel/spect.qc`](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/blob/z411/bai-server/qcsrc/client/hud/panel/spect.qc)
+
+Attacker text:
+
+- All files inside this folder:
+[`qcsrc/common/mutators/mutator/attackertext/`](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/z411/bai-server/qcsrc/common/mutators/mutator/attackertext)
+
+
+# HUD configuration
+
+Cvars: 
+
+`hud_panel_spect_scores 1 //sets team spectator display HUD scores`
+
+`hud_panel_spect_playername 1 //sets player name spectator display HUD`
+
+<img src="uploads/2dc395d83ac793aa20f502a1bfd5bb12/SpectatorHUD.jpg" alt="SpectatorHUD" width="500"/>
+
+
+`cl_attackertext 1 //sets attacker text to know who is attacking`
+
+<img src="uploads/19d0104a69a9bf92aa0b65c111ab0488/attackername.jpg" alt="attackername" width="200"/>
+
+
+`hud_panel_itempickup 1 //sets item pickup entire display HUD`
+
+`hud_panel_itempickup_timer 1 //sets item pickup timer display`
+
+<img src="uploads/3d3d116722312d471408c7d178595e6d/items.jpg" alt="items" width="200"/>
+
+# Chat sounds
+
+To activate chat sounds, you can add sounds as you want:
+You should put the sounds inside a .pk3 in the path `sound/chat/sound_name.ogg`
+For example:
+```
+sound/chat/sound1.ogg
+sound/chat/sound2.ogg
+sound/chat/sound3.ogg
+```
+Then you should set the following cvars in your server config:
+```
+set sv_chat_sounds 1
+set sv_chat_sounds_list "sound1 sound2 sound3"
+```
+The cvar `cl_chat_sounds` is only on the client side in case you're on a server with sounds and these bother you, you can disable them from your side only.
+
+BaI server uses the following chat sounds configuration (chat sounds pk3 resource is needed to use these sounds):
+```
+cmd sounds //to check chat sound list
+set sv_chat_sounds 1
+set sv_chat_sounds_list "200 abusadores alert andate antabaka apruebo arigato au avispate aweonao batman bonk bork brigido bruh buitre callese chan chaojefe chimp choro choro2 choro3 combobreaker cristian ctm ctm2 ctm3 cyka daleboludo drop drop2 economia eliminado enfermedad fama felipe fumando1 fumando2 gallina garrotera gas gay gracias hitler homero israel jiji july3p lacra laputaquemepario larva lepego macaco matias mefunaron meopene meperdonas mequierematar mevoy mipixula mira mybody nana nice noloserick nopuedeser notengoidea nya ooh pablo pancito pencaql picasso picasso2 piropo probando problema que quepaso rage1 rage2 rage3 rata ratero risas roblox runbitch salee salee2 scream simp suck sugoi suspension talisto tarde tepillamos tin tom tontown tranquilo tuturu urss uuh uuy vetealamierda viejaculia watashi waton wena weonculiao willy windows winning xq yabai yabasta yamete yawey yoo"
+```
+
+You can write in the chat, the sound name to be played.
+
+# Country flags
+
+Keep in mind that country flags are saved inside zzz-bai-gfx-v8.pk3 file, each flag has its own number (0-249). Uses a bot to identify automatically player's IP and execute the following command:
+
+`setflag #player_id numberofflag`
+
+*Note* : this command can be tested on a server without this bot.
+
+<img src="uploads/c71d78429cae68236204f572a61ce1fc/scoreboardCountryflag.jpg" alt="scoreboardCountryflag" width="500"/>
+
+# References
+
+https://omaera.org/~z411/xonotic/
\ No newline at end of file
index 0e318971830f4b89f6d44f7033aa1b2c3714c194..67d443159dbf655c269bbb6107ad4b4d772847da 100644 (file)
@@ -73,11 +73,15 @@ If set to 0, the players will be able to see the number of votes for each map (o
 # Bots
 ```
 minplayers 0
+minplayers_per_team 0
 ```
-If set to more than 0, the server will try to make sure that the number of all active players matches the value set. For example, if `minplayers` is 4 and there is 1 person playing, the server will have 3 bots. Bots will leave or join when the number of players changes. When nobody is connected to the server, no bots will be playing.
-
+If `minplayers` is set to a more than 0, the server will fill server with bots to reach this number of players (only in teamless games). For example, if `minplayers` is 4 and there is 1 person playing, the server will have 3 bots. Similarly, in team games `minplayers_per_team X` will make sure the minimum number of players per team is X. Bots will leave or join when the number of players changes. When nobody is connected to the server, no bots will be playing.
+```
+bot_number 0
+```
+If set to more than 0, the server will always spawn this number of bots. Note that server can still spawn more bots to reach the minimum number of players.
 ```
-skill 5
+skill 8
 ```
 Sets the skill level of bots. Higher values mean harder bots. Possible values are 0 through 10.
 
index 00abebe87bd028b0edf514ee2448d092fcd8eef2..be560456d6e901fd3dc63216cf3d50a617506c67 100644 (file)
@@ -26,6 +26,23 @@ Blender when exporting to IQM
 4. Export to a file path of your choosing, /path/to/umbra.iqm. Put the names of all the animations in the animations box, using commas for multiple anims. Then hit the export button and hopefully it will work without any errors.
 5. Your model will need a .framegroups file to be used in Xonotic, look at the example file at the beginning of this article or check the [Framegroups](Framegroups) section of this wiki.
 
+### Troubleshooting
+
+- _**Broken shadow artifacts (enabled with `r_shadows 2` and disabled `r_shadow_shadowmapping 0`):**_<br/>
+To solve this, the possible way is exporting to IQM from Blender, selecting bone and mesh (both highlighted). That issue could happen to player models.
+<br/>Reference: https://gitlab.com/xonotic/xonotic-data.pk3dir/-/issues/2667
+
+- _**When exporting to IQM, get duplicated names in the texture:**_<br/> 
+<img src="uploads/cdb90908aab4a52580019c871a936156/duplicatedtexturenameloadingerror.jpg" alt="duplicatedtexturenameloadingerror" width=700 /><br/>
+Take a closer look what is telling here:<br/>
+_The "Materials" option controls how material names are generated. "material+image-ext" combines the name of the material and the name of the UV-map image (without its extension or directory) to generate the material name, "material" uses only the name of the material, and "image" just uses the name of the UV-map image (without its directory)._ <br/><br/>
+When you export to IQM, you need to watch out that detail after selected File > Export > Inter-Quake Model (.iqm, .iqe).<br/>
+Pay attention to this [section](##textures-and-materials) when you need to export correctly, the material/texture(image) should be one thing, so do the following: Export IQM > Materials: > select `material` or `image` instead `material+image-ext`.<br/>
+<img src="uploads/4fa75dca8ebb724b89d5fd5513fd2787/exportiqmiqeblenderdetails.jpg" alt="exportiqmiqeblenderdetails" width=200 /><br/>
+
+- _**Model scale animations aren't working:**_<br/> 
+IQM and SMD formats don't support bone scaling animations, although you try to compile them into dpmodel tool, it won't change nothing. More info here: https://steamcommunity.com/groups/BlenderSourceTools/discussions/1/152392786900223348/ <br/>
+
 ### Notes
 
 As of 01/06/2012, Xonotic uses these animations:
diff --git a/Blood-Loss.md b/Blood-Loss.md
new file mode 100644 (file)
index 0000000..6528d5d
--- /dev/null
@@ -0,0 +1,8 @@
+Blood Loss
+----------
+
+Blood Loss is a mutator in which players who are below a certain health threshold (for example: 25) will suffer blood loss. Blood loss makes players stunned, severely impairs movement and rapidly takes away health points until they either die or gain enough health to go above the blood loss threshold.
+
+CVar
+----
+This mutator is controlled by the [CVar](CVars) `g_bloodloss`.
\ No newline at end of file
diff --git a/Buffs.md b/Buffs.md
new file mode 100644 (file)
index 0000000..5ad302c
--- /dev/null
+++ b/Buffs.md
@@ -0,0 +1,40 @@
+Buffs
+=====
+
+**Buffs** is a mutator that adds various [powerup](Powerups)-like collectibles, the “Buffs”. Buffs are little bonuses that improve your status effects or give you a special power. A few buffs have a downside as well.
+
+Usage
+-----
+To collect a buff, simply walk over it. You can only have one buff at a time. All buffs have a duration of 60 seconds.
+
+You can drop a buff (thereby destroying it) by pressing the “drop key/flag” control (default F).
+
+List of buffs
+-------------
+
+This is a list of all possible buffs:
+
+| Name | Description |
+|:-|:-|
+| Ammo | Your ammo is infinite |
+| Bash | Increased knockback force and immunity to knockback |
+| Disability | Attacks to enemies deal slowness (decreased movement/attack speed) for a few seconds |
+| Flight | Crouch in mid-air to reverse gravity for you |
+| Inferno | Players you damage will also receive burning damage for a few seconds |
+| Invisible | You are nearly invisible |
+| Jump | Greatly increased jump height |
+| Luck | Each attack has a chance of being a “critical hit” with greatly increased damage |
+| Magnet | You will automatically collect items near you |
+| Medic | Your health will regenerate up to 150 HP, you heal nearby players and have a chance to survive fatal hits |
+| Resistance | Greatly reduces damage taken |
+| Speed | Increased speed of movement, attacks and health regeneration. Downside: You are a bit more vulnerable to attacks as well |
+| Swapper | You can press the “drop weapon” key to switch places with a nearby enemy (once) |
+| Vampire | You receive the damage you deal as health (even above 200 HP) |
+| Vengeance | If someone hurts you, some of the damage is mirrored back to them |
+
+Disability, Jump, Flight and Swapper are disabled by default.
+
+Enabling buffs
+--------------
+
+Buffs are enabled in the Mutators menu or with setting the [CVar](CVars) `g_buffs` to `1`. However, buffs will only spawn in maps that support it. For maps that lack support for buffs, you can also set the CVar `g_buffs_replace_powerups` to `1`. This will spawn buffs where [Powerups](Powerups) would normally spawn.
\ No newline at end of file
index 47bf5a23fb78b835dc4d9168da479fa035a4fd96..f2ddf12caf8b928cbb37383d0dca7308a9285903 100644 (file)
--- a/CVars.md
+++ b/CVars.md
@@ -1,12 +1,20 @@
-DarkPlaces Wiki
-===============
+Console Variables (CVars)
+=========================
 
-Console Variables
-=================
+Introduction
+------------
+Console Variables (CVars) are internal variables that control almost all aspects of the game. You can enable mutators, change damage of weapons, enable special game rules, tweak your HUD, and do many other things.
 
+How to use
+----------
 Here you will find all Console Variables for changing even the most minute aspect of Darkplaces. To access the console to modify these variables, simply press the `~` key on your keyboard. This is the default bind for this action.  
 
-You may also get to it through this menu sequence: `Main Menu -> Options -> Go To Console` or possibly using `Shift + Escape`.  
+You may also get to it through this menu sequence: `Main Menu -> Options -> Go To Console` or possibly using `Shift + Escape`.
+
+You can also access a list of CVars in the game's menus: `Main Menu -> Options -> Misc. -> Advanced Settings …`. This lists all cvars, some of them have a description. Use the filter to find a particular cvar name. You must use the asterisk (“*”) to search for any sequence of characters. Example: To find all cvars with “keyhunt” in their name, type in “*keyhunt*”.
+
+List of CVars (Darkplaces)
+--------------------------
 
     _cl_color is "179" ["0"] internal storage cvar for current player colors (changed by color command)
     _cl_name is "Error" ["player"] internal storage cvar for current player name (changed by name command)
index b1b5dc4feef51cee3b5f0ecc14773f905bfaf90f..51671c5115239dc3c422c989db30e2f0629e9caa 100644 (file)
@@ -2,37 +2,32 @@ Capture the Flag (CTF)
 ======================
 
 [![](http://pics.nexuizninjaz.com/images/zh1xq7e8jbjjwxk6ggh.jpg)](http://pics.nexuizninjaz.com/images/r9bwz58b2dli06rrqdsx.jpg)
-[![](http://pics.nexuizninjaz.com/images/hm0x93hvbm1npbecvi30.jpg)](http://pics.nexuizninjaz.com/images/r9d27gmnj4kv5piexh6t.jpg)  
+[![](http://pics.nexuizninjaz.com/images/hm0x93hvbm1npbecvi30.jpg)](http://pics.nexuizninjaz.com/images/r9d27gmnj4kv5piexh6t.jpg) 
 *Click for bigger pictures*
 
 Object of the Game
 ------------------
 
-In CTF there are  usually* 2 teams (red & blue), while each team got a base with their flag. The goal is to steal the other teams’ flag and bring it to your own to capture it. That’s only possible if your own flag is in your base and not taken by the other team. Usually a team needs 10 captures (caps) to win a map.
+In **Capture the Flag** (CTF) there are  usually\* 2 teams (red and blue), while each team got a base with their flag. The goal is to steal the other teams’ flag and bring it to your own to capture it. That’s only possible if your own flag is in your base and not taken by the other team. Usually a team needs 10 captures (caps) to win a match.
 
-*It can be maxed out to 4 teams (yellow & pink added)
+\* = It can be maxed out to 4 teams (yellow and pink added)
 
-![](http://pics.nexuizninjaz.com/images/tn6dbyyeq2hjoq1rwwu7.jpg)
-
-How To:
+**How to …**
 
 - Get the flag? Just walk over it.
-- Return our flag? Kill the enemy and walk over the flag.
+- Return our flag? Kill the enemy and walk over the flag. The flag teleports back to the base.
 - Capture the flag? Hold the enemy’s flag and walk over your own in your base.
 
+Additional rules
+----------------
+- When a flag dropped into the abyss or another deathtrap, it will return to its base.
+- Stalemate: If each team holds the flag for 60 seconds in a row, Stalemate is activated. During Stalemate, everyone will be able to see all flag carriers in their HUD and radar.
+- Flags cannot be brought through [Port-o-Launch](Weapons) portals. The flag would just drop at the in-portal.
+- Players can drop/throw their flag with the “drop flag/key” control (default: F).
+- With [Strength](Powerups#Strength) you can throw the flag much further.
 
-Helpful Hints and Tips
-----------------------
-
-- Some maps can contain powerups like “[Strength](Powerups#strength)” or “[Shield](Powerups#shield)” (which 
-usually spawn 
-every 2 minutes). They can be useful tools to win a match!
-- [Binds](Binds) are useful to organize your team, e.g. to let them know if you are going to attack. There are several default binds on the Numpad.
-- There is always a yellow waypoint above your Flag Carrier (FC) with a bar that shows his health and obviously it shows his position. Especially if he is on very low health try to assist and help him to capture the flag.
-- Also there is a waypoint that shows where flags are dropped - you want to go there and get/return the flag
-- ![CTF guide by fisume](https://forums.xonotic.org/showthread.php?tid=2962)
-
-## HUD icons
+HUD icons
+---------
 
 |Flag captured  |  You have the flag   |Player took a flag  |  Flag dropped  |  
 |:-----------:|:------------:|:------------:|:------------:|
@@ -43,13 +38,32 @@ every 2 minutes). They can be useful tools to win a match!
 [ctf_taken]: http://pics.nexuizninjaz.com/images/gx8vrgjwy1jn6need8tq.png
 [ctf_dropped]: http://pics.nexuizninjaz.com/images/4xdn5gmrwmh0zjjgcscl.png
 
+Variants
+--------
+
+### Reverse Capture the Flag
+
+Reverse Capture the Flag is like Capture the Flag, except you have to take your own flag and bring it to the enemy base.
+
+This is activated by setting the [CVar](CVars) `g_ctf_reverse` to `1`.
+
+
+Helpful Hints and Tips
+----------------------
+
+- Some maps can contain powerups like “[Strength](Powerups#strength)” or “[Shield](Powerups#shield)” (which 
+usually spawn every 2 minutes). They can be useful tools to win a match!
+- [Binds](Binds) are useful to organize your team, e.g. to let them know if you are going to attack. There are several default binds on the Numpad.
+- There is always a yellow waypoint above your Flag Carrier (FC) with a bar that shows his health and obviously it shows his position. Especially if they are on very low health try to assist and help them to capture the flag.
+- Also there is a waypoint that shows where flags are dropped - you want to go there and get/return the flag
+- ![CTF guide by fisume](https://forums.xonotic.org/showthread.php?tid=2962)
+
 Map layouts
 -----------
 
 There are three basic types of level layouts that tend to be favored. Each has its advantages and disadvantages.
 
 ### Rectangular
------------
 
 Maps with a straightforward, linear route from flag to flag. The map is typically divided into three portions: a base area for each team, with a middle area connecting both of them to one another.
 
@@ -59,7 +73,6 @@ Maps with a straightforward, linear route from flag to flag. The map is typicall
 **Disadvantages**: Very easy to defend which results in camping, often making predictable game play.  
 
 ### Ant hill
---------
 
 These maps are often the same shape as rectangular maps, but have many different paths to the bases. They are often enclosed or semi-enclosed, which makes the paths tunnel-like (hence, like an ant hill or a termite mound). For effective play, more attention must be given to the mini-map and and teammate communication than in an ordinary rectangular map.
 
@@ -69,7 +82,6 @@ These maps are often the same shape as rectangular maps, but have many different
 **Disadvantages**: Carrier is easily hidden. Often resulting in a stalemates which slows game play. Players have to work all positions on the field to be successful. Game becomes very “chase to flag carrier through the tunnels”  
 
 ### S- or Z-shaped
---------------
 
 This is a non-linear map with a few detours and alternative routes to the bases. It tends to be a balanced level layout that offers a good deal of straightforwardness like a rectangular map with the variety of paths between bases like an ant hill map.
 
@@ -78,3 +90,4 @@ This is a non-linear map with a few detours and alternative routes to the bases.
 **Advantages**: Camping does not offer defense of the entire base so more offensive strategies must be used, leading to more dynamic game play. Positions are still apparent, making team organization easy  
 **Disadvantages**: Harder for new players due to more complicated routes to flags, slowing game play. Although laser walling resolves this problem.  
 
+![](http://pics.nexuizninjaz.com/images/tn6dbyyeq2hjoq1rwwu7.jpg)
diff --git a/Channels.md b/Channels.md
deleted file mode 100644 (file)
index eb03d77..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-Internet Relay Chat and Instant Messaging channels
-==================================================
-
-IRC
----
-
-For a short introduction to IRC, [skip to the bottom of this page](Channels#general-irc-info-and-rules).
-
-### QuakeNet (irc.quakenet.org:6667) - https://webchat.quakenet.org/
-
-    #xonotic           - General purpose channel
-    #xonotic.cup       - Cup channel
-    #xonotic.duel      - Duel servers (psyx, FPS, WTWRP, pacman)
-    #xonotic.editing   - Channel for mapmakers, modelers, texturers, etc.
-    #xonotic.maps      - Channel for xonotic.co
-    #xonotic.pickup    - Pickup channel
-    #xonotic.translate - Channel to discuss translation issues
-
-#### Country/Region specific IRC channels
-
-    #xonotic.au - Xonotic Australia
-    #xonotic.de - Xonotic Germany
-    #xonotic.fr - Xonotic France
-    #xonotic.na - Xonotic North America
-    #xonotic.ru - Xonotic Russia
-
-#### Clan channels
-
-    #bot.xonotic         - BOT
-    #cf.etqw             - Combat Folk
-    #clanexe             - .exe
-    #dietunichtguten     - Die Tunichtguten
-    #evil.ant.colony     - Evil Ant Colony
-    #Lover               - Lovers
-    #kwestion            - Kwestion
-    #mon.xonotic         - Monks of Nexuiz
-    #nsb.nexuiz          - NSB - The Dyslexic Loser Mob
-    #OHSNAP!             - OHSNAP!
-    #pb.xonotic          - PeaceBrothers
-    #psyx                - Psychos of Xonotic
-    #sh.nexuiz           - Shell
-    #smb                 - Super Mario Brothers
-    #smokebreak          - Smoke Break
-    #theregulars         - The Regulars
-    #uc.xonotic          - unconnected
-    #xonotic.butt        - BUTT
-    #xon.fsmp            - FSMP
-
-#### Server channels
-
-    #clanexe           - .exe servers
-    #dtg.ctf           - Die Tunichtguten server (Insta CTF)
-    #eac.xonotic       - Evil Ant Colony servers
-    #element.ctf       - LMNT servers
-    #jeff-xonotic      - Jeff servers
-    #mon.sa            - LX' Overkill (formerly MoN servers (Overkill + Vehicle))
-    #pac.xon           - WTWRP, FPS, pacman non-Duel servers
-    #Prophets.DM       - Prophets DM server
-    #Prophets.Duel     - Prophets Insta 1v1 server
-    #Prophets.XDF      - Propehts DeFrag server
-    #regulars.servers  - More The Regulars servers
-    #smb.1v1           - HUB Duel servers
-    #theregulars       - The Regulars InstaGib server
-    #wtwrp.ok          - WTWRP Overkill
-    #xdf               - Xonotic DeFrag server
-    #xonorun           - Gnom servers
-    #xonotic.smb       - SMB servers
-
-### FreeNode (chat.freenode.net:6667) - https://webchat.freenode.net/
-
-    #xonotic - Game developer channel. Non-development subjects should be directed to the main Xonotic channel on QuakeNet
-
-### ARCNet (irc.arcnet.vapor.com:6667)
-
-    #dcc.admins - DCC Admins
-    #dccdelight - DCC Delight servers
-
-### GlobalGamers (irc.globalgamers.net:6667)
-
-    #xonotic - General channel
-
-Jabber XMPP MUCs
-----------------
-
-    xonotic at conf.jabberes.org - Spanish channel
-    xonotic at conference.jabber.ru - Russian channel
-    xonotic at conference.jabber.org - English channel
-
-General IRC info and rules
---------------------------
-
-### About
-
-Internet Relay Chat is one of the oldest methods for instant communication on the Internet. Interconnected Servers form a Network to which you can log on with an IRC client and provides channels (similar to conference calls or chats) where you can communicate with all others on the same channel in realtime and it’s possible to join and be present on multiple channels in parallel.
-
-Channels are synchronized across all servers of the same network, but not across Networks. Channels with the same name on different Networks are completely independent.
-Most modern IRC clients also allow you to connect to several networks in parallel.
-
-### Help
-
-Be conscious about security when connecting to any IRC network. Following these three rules will keep you out if trouble:
-
-1.  Don’t ever IRC as root! On Windows, don’t use an administrator account.
-2.  Don’t just click or open any link that gets posted unless you are sure it is safe.
-     Don’t type commands into your client or chatwindow that others tell you to. Verify it’s safe to do so or evil things might happen.
-3.  Especially if you want to stay around for longer on a network, get a bouncer or cloak.
-
-How to get a cloak depends on the network you are on. This normally means registering your nick on the network and setting some usermodes, then will prevent others from seeing your real IP address so you are less likely to get attacked for whatever reasons. Find your networks help channel and ask there if you can’t figure it otherwise.
-Some networks don’t provide this service, you might want to think twice before going there without a bouncer.
-You can also connect through Tor or a different anonymity service to hide your real whereabouts. But you might be blocked from some channels because these services are often used by spammers and other strange individuals.
-If you are paranoid your connection might get tapped or rerouted, most serious networks also provide SSL connections on port 7000 so you can be sure to have some privacy from your ISP. Also a good idea if you surf on WLANs or open networks.
-
-### Rules
-
-IRC has it’s own strange set of rules and etiquette. Newcomers without that knowledge often find it troublesome and frustrating until they get the hang of things.
-Here are the most important rules to get you started.
-
--   Be patient.
-
-People are often connected 24/7 and simply seeing them in a channel does not imply they are actually in front of their computer or watching the chat window all the time. Depending on channel and timezones of others, it might be hours until you get a reply.
-
--   Don’t ask to ask. Just ask.
-
-Noone likes to answer meta questions. Or nobody might be there to answer it. Waiting for it will just take you longer to get your real question answered.
-If you just ask your question someone who can help will likely speak up.
-Also don’t direct a generic question at someone if you don’t really mean to. Others who might know an answer and could help you are likely to ignore you then.
-
--   Don’t be rude. Don’t be demanding.
-
-Especially on help channels where people help you out on their free time, this will likely get you ignored very fast or even kicked from the channel.
-It is also considered rude to highlight (typing other peoples names) someone repeatedly to get their attention.
-
--   Don’t repeat yourself.
-
-This goes mostly for help channels, but repeating a question multiple times within minutes doesn’t get you an answer any faster.
-This is also considered rude and more likely will get you ignored.
-People who have been away tend to read their chat history or backlog and will get back to you on their own.
-But on a very busy channel, your text might get overlooked and you can repeat it after waiting an appropriate time.
-
diff --git a/Chat-Rooms.md b/Chat-Rooms.md
new file mode 100644 (file)
index 0000000..90addb2
--- /dev/null
@@ -0,0 +1,168 @@
+Matrix
+---
+[Matrix](https://matrix.org/docs/guides/introduction) rooms are organised into groups called Spaces to make it easier to find all the rooms for a community.  
+It's recommended to join the Xonotic official Space: [![#space:xonotic.org](https://xonotic.org/badgen/matrix/members/space/xonotic.org?color=orange)](https://matrix.to/#/#space:xonotic.org)  
+
+You can also join individual rooms directly:  
+| Link | Topic |
+| ------ | ------ |
+| [![#main:xonotic.org](https://xonotic.org/badgen/matrix/members/main/xonotic.org?color=blue)](https://matrix.to/#/#main:xonotic.org) | General chat and help |
+| [![#offtopic:xonotic.org](https://xonotic.org/badgen/matrix/members/offtopic/xonotic.org?color=blue)](https://matrix.to/#/#offtopic:xonotic.org) | Let's not go to Wicktown, 'tis a silly place |
+| [![#mapping:xonotic.org](https://xonotic.org/badgen/matrix/members/mapping/xonotic.org?color=blue)](https://matrix.to/#/#mapping:xonotic.org) | Mapping, modelling, texturing & shaders |
+| [![#dev:xonotic.org](https://xonotic.org/badgen/matrix/members/dev/xonotic.org?color=blue)](https://matrix.to/#/#dev:xonotic.org) | Strictly development of the official game |
+
+IRC
+---
+
+For a short introduction to IRC, [skip to the bottom of this page](Channels#general-irc-info-and-rules).
+
+### QuakeNet (irc.quakenet.org:6667) - https://webchat.quakenet.org/
+
+    #xonotic           - General purpose channel, bridged  to discord: https://discordapp.com/invite/0uxcsw1XMkaOB936
+    #xonotic.cup       - Cup channel
+    #xonotic.duel      - Former channel for duel servers (PsyX, PAC)
+    #xonotic.editing   - Channel for mapmakers, modelers, texturers, etc.
+    #xonotic.maps      - Channel for xonotic.co
+    #xonotic.pickup    - Pickup channel
+    #xonotic.translate - Channel to discuss translation issues
+    #xonotic.bar       - Off-topic conversations
+
+Country/Region specific IRC channels:
+
+    #xonotic.au - Xonotic Australia
+    #xonotic.de - Xonotic Germany
+    #xonotic.fr - Xonotic France
+    #xonotic.na - Xonotic North America
+    #xonotic.ru - Xonotic Russia
+    #xonotic.sp - Xonotic Spanish
+
+Clan channels:
+
+    #bot.xonotic         - BOT
+    #cf.etqw             - Combat Folk
+    #clanexe             - .exe
+    #dietunichtguten     - Die Tunichtguten
+    #evil.ant.colony     - Evil Ant Colony
+    #hater.xonotic       - The Haters
+    #Lover               - Lovers
+    #kwestion            - Kwestion
+    #mon.xonotic         - Monks of Nexuiz
+    #nsb.nexuiz          - NSB - The Dyslexic Loser Mob
+    #OHSNAP!             - OHSNAP!
+    #pb.xonotic          - PeaceBrothers
+    #psyx                - Psychos of Xonotic
+    #sh.nexuiz           - Shell
+    #smb                 - Super Mario Brothers
+    #smokebreak          - Smoke Break
+    #theregulars         - The Regulars
+    #uc.xonotic          - unconnected
+    #xonotic.butt        - BUTT
+    #xon.fsmp            - FSMP
+
+Server channels:
+
+    #clanexe           - .exe servers
+    #dtg.ctf           - Die Tunichtguten server (Insta CTF)
+    #eac.xonotic       - Evil Ant Colony servers
+    #element.ctf       - LMNT servers
+    #eris.xonotic      - Eris votable - the best motherfucking xon server
+    #jeff-xonotic      - Jeff servers
+    #mon.sa            - LX' Overkill (formerly MoN servers (Overkill + Vehicle))
+    #pac.xon           - WTWRP, FPS, pacman non-Duel servers
+    #Prophets.DM       - Prophets DM server
+    #Prophets.Duel     - Prophets Insta 1v1 server
+    #Prophets.XDF      - Prophets DeFrag server
+    #psyx.servers      - PsyX servers
+    #regulars.servers  - More The Regulars servers
+    #smb.1v1           - HUB Duel servers
+    #theregulars       - The Regulars InstaGib server
+    #wtwrp.ok          - WTWRP Overkill
+    #xdf               - Xonotic DeFrag server
+    #xonorun           - Gnom servers
+    #xonotic.smb       - SMB servers
+
+### ARCNet (irc.arcnet.vapor.com:6667)
+
+    #dcc.admins - DCC Admins
+    #dccdelight - DCC Delight servers
+
+### GlobalGamers (irc.globalgamers.net:6667)
+
+    #xonotic - General channel
+
+Jabber XMPP MUCs
+----------------
+
+    xonotic at conf.jabberes.org - Spanish channel
+    xonotic at conference.jabber.ru - Russian channel
+    xonotic at conference.jabber.org - English channel
+
+Discord (unofficial)
+-------
+
+[invite link](https://discordapp.com/invite/0uxcsw1XMkaOB936)
+
+Some channels are bridged to QuakeNet IRC:
+
+| Discord | QuakeNet IRC |
+| ------ | ------ |
+| #general | #xonotic |
+| #mapping | #xonotic.editing |
+| #tournaments | #xonotic.cup |
+| #xonotic_pickup | #xonotic.pickup |
+| #stream_announcements | #xonotic.streams |
+| #french | #xonotic.fr |
+| #german | #xonotic.de |
+| #russian | #xonotic.ru |
+| #spanish | #xonotic.sp |
+
+General IRC info and rules
+--------------------------
+
+### About
+
+Internet Relay Chat is one of the oldest methods for instant communication on the Internet. Interconnected Servers form a Network to which you can log on with an IRC client and provides channels (similar to conference calls or chats) where you can communicate with all others on the same channel in realtime and it’s possible to join and be present on multiple channels in parallel.
+
+Channels are synchronized across all servers of the same network, but not across Networks. Channels with the same name on different Networks are completely independent.
+Most modern IRC clients also allow you to connect to several networks in parallel.
+
+### Help
+
+Be conscious about security when connecting to any IRC network. Following these three rules will keep you out if trouble:
+
+1.  Don’t ever IRC as root! On Windows, don’t use an administrator account.
+2.  Don’t just click or open any link that gets posted unless you are sure it is safe.
+     Don’t type commands into your client or chatwindow that others tell you to. Verify it’s safe to do so or evil things might happen.
+3.  Especially if you want to stay around for longer on a network, get a bouncer or cloak.
+
+How to get a cloak depends on the network you are on. This normally means registering your nick on the network and setting some usermodes, then will prevent others from seeing your real IP address so you are less likely to get attacked for whatever reasons. Find your networks help channel and ask there if you can’t figure it otherwise.
+Some networks don’t provide this service, you might want to think twice before going there without a bouncer.
+You can also connect through Tor or a different anonymity service to hide your real whereabouts. But you might be blocked from some channels because these services are often used by spammers and other strange individuals.
+If you are paranoid your connection might get tapped or rerouted, most serious networks also provide SSL connections on port 7000 so you can be sure to have some privacy from your ISP. Also a good idea if you surf on WLANs or open networks.
+
+### Rules
+
+IRC has it’s own strange set of rules and etiquette. Newcomers without that knowledge often find it troublesome and frustrating until they get the hang of things.
+Here are the most important rules to get you started.
+
+-   Be patient.
+
+People are often connected 24/7 and simply seeing them in a channel does not imply they are actually in front of their computer or watching the chat window all the time. Depending on channel and timezones of others, it might be hours until you get a reply.
+
+-   Don’t ask to ask. Just ask.
+
+Noone likes to answer meta questions. Or nobody might be there to answer it. Waiting for it will just take you longer to get your real question answered.
+If you just ask your question someone who can help will likely speak up.
+Also don’t direct a generic question at someone if you don’t really mean to. Others who might know an answer and could help you are likely to ignore you then.
+
+-   Don’t be rude. Don’t be demanding.
+
+Especially on help channels where people help you out on their free time, this will likely get you ignored very fast or even kicked from the channel.
+It is also considered rude to highlight (typing other peoples names) someone repeatedly to get their attention.
+
+-   Don’t repeat yourself.
+
+This goes mostly for help channels, but repeating a question multiple times within minutes doesn’t get you an answer any faster.
+This is also considered rude and more likely will get you ignored.
+People who have been away tend to read their chat history or backlog and will get back to you on their own.
+But on a very busy channel, your text might get overlooked and you can repeat it after waiting an appropriate time.
\ No newline at end of file
index 8ee1318f2f612a1b377bfe1f842e6a16078d3c85..badb1f17e4774a6368d0c7bacb83fc233957c293 100644 (file)
@@ -4,22 +4,17 @@ Clan Arena (CA)
 Object of the Game
 ------------------
 
-Clan Arena is basically Team [LMS](Last-Man-Standing) (you spawn with almost all weapons as well) where 2 teams (red & blue) fight against each other. Once you die you have to spectate. If 1 team is 100% dead the other team gets 1 point. 10 points to win a map.
+Clan Arena is a round-based game mode which is played with teams. Each team spawns with almost all weapons. In each round, every player only has one life, once they die, they can only spectate. If one surviving team remains, they win the round and gain a point.
 
-Map Entities
-------------
+By the default rules, the first team to reach 10 points in total, or the first team to be 6 points in the lead, wins the match. (The score requirement can of course be changed.)
 
-_(Insert Map Entities here)_
+Clan Arena can be played with 2-4 teams.
+
+See also
+--------
+Clan Arena is very similar to [Freeze Tag](Freeze-Tag). Clan Arena is also similar to [Last Man Standing](Last-Man-Standing).
 
 Helpful Hints and Tips
 ----------------------
 
-- Team [binds](binds) are again useful to show your position (e.g. “Roaming” bind on 8 [Numpad]) or to show enemy’s position.
-
-List of Demos and Videos
-------------------------
-
--   Demo: _(Insert Demo or Video Here)_
--   Players: _(Insert Player Names Here)_
--   Key Points: _(Insert key points in match here)_
-
+- Team [binds](binds) are again useful to show your position (e.g. “Roaming” bind on 8 [Numpad]) or to show enemy’s position.
\ No newline at end of file
diff --git a/Cloaked.md b/Cloaked.md
new file mode 100644 (file)
index 0000000..be280da
--- /dev/null
@@ -0,0 +1,8 @@
+Cloaked
+-------
+
+Cloaked is a mutator that makes all players nearly invisible, making everyone harder to see.
+
+CVar
+----
+This mutator is controlled by the [CVar](CVars) `g_cloaked`. The opacity is set with `g_balance_cloaked_alpha`.
\ No newline at end of file
diff --git a/Comms-Rules-[draft].md b/Comms-Rules-[draft].md
new file mode 100644 (file)
index 0000000..c3617f2
--- /dev/null
@@ -0,0 +1,16 @@
+This document applies to communication channels moderated by the Xonotic Team: 
+- #xonotic on Freenode's IRC network
+- #xonotic on QuakeNet's IRC network
+- #xonotic.pickup on QuakeNet's IRC network
+- #xonotic.cup on QuakeNet's IRC network
+- #xonotic.editing on QuakeNet's IRC network
+- All forums found at forums.xonotic.org
+
+The following are prohibited and punishable by banishment:
+- Invective targeting persons;
+- Threats, incitement or support of abuse or violence;
+- Defamation, doxxing, harassment;
+- Malicious code or shell commands;
+- Spam;
+- Links to content prohibited herein;
+- Ban evasion.
diff --git a/Compiling.md b/Compiling.md
new file mode 100644 (file)
index 0000000..1b54a8d
--- /dev/null
@@ -0,0 +1,19 @@
+This page is about compiling the sources included in [stable](https://xonotic.org/download) and [beta](Autobuilds) releases, and is also applicable when [updating by rsync](https://xonotic.org/download#upgrading).  \r
+For development purposes (git builds), please see [Repository_Access](Repository_Access).\r
+\r
+The release Makefile aims to provide a convenient way to compile for alternative CPU architectures, or to get a build fully optimised for a recent x86 CPU (the official binaries are generic x86_64).  It would also allow you to run Xonotic on an OS too old to be supported by official binaries.\r
+\r
+To this end the Makefile default settings enable all optimisations that can be used on your current CPU without causing bugs, and compile using all available CPU threads.\r
+\r
+The engine builds will be dynamically linked except for d0_blind_id which is statically linked to ensure reliable player ID support and because OS distributions don't ship this.\r
+\r
+Invoking `make` or `make help` in the Xonotic directory will print the supported targets and current config.  \r
+\r
+**Most people will want `make update-stable client` or `make update-beta client`**\r
+\r
+## System package dependencies\r
+### Debian\r
+Build (client): `build-essential automake libtool libgmp-dev libjpeg-dev libsdl2-dev`  \r
+Build (server): `build-essential automake libtool libgmp-dev libjpeg-dev zlib1g-dev`  \r
+Runtime (client): `curl rsync libpng16-16 libfreetype6 libvorbisfile3`  \r
+Runtime (server): `curl rsync libpng16-16`  \r
diff --git a/Complete-list-of-command-line-parameters.md b/Complete-list-of-command-line-parameters.md
deleted file mode 100644 (file)
index 31f3f6a..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-Complete list of command line parameters
-========================================
-
-Common options
---------------
-
--   **`-connect` address:** Talk to a NetRadiant instance using a specific XML based protocol
--   **`-force`:** Allow reading some broken/unsupported BSP files e.g. when decompiling, may also crash
--   **`-fs_basepath` path:** Sets the given path as main directory of the game (can be used more than once to look in multiple paths)
--   **`-fs_game` gamename:** Sets a different game directory name (default for Q3A: baseq3)
--   **`-fs_homebase` dir:** Specifies where the user home directory name is on Linux (default for Q3A: .q3a)
--   **`-game` gamename:** Load settings for the given game (default: quake3)
--   **`-subdivisions` F:** multiplier for patch subdivisions quality
--   **`-threads` N:** number of threads to use
--   **`-v`:** Verbose mode
-
-BSP stage
----------
-
--   **`-bsp` ... filename.map:** Switch that enters this stage
--   **`-altsplit`:** Alternate BSP tree splitting weights (should give more fps)
--   **`-celshader` shadername:** Sets a global cel shader name
--   **`-custinfoparms`:** Read scripts/custinfoparms.txt
--   **`-debuginset`:** Push all triangle vertexes towards the triangle center
--   **`-debugportals`:** Make BSP portals visible in the map
--   **`-debugsurfaces`:** Color the vertexes according to the index of the surface
--   **`-deep`:** Use detail brushes in the BSP tree, but at lowest priority (should give more fps)
--   **`-de` F:** Distance epsilon for plane snapping etc.
--   **`-fakemap`:** Write fakemap.map containing all world brushes
--   **`-flares`:** Turn on support for flares (TEST?)
--   **`-flat`:** Enable flat shading (good for combining with -celshader)
--   **`-fulldetail`:** Treat detail brushes as structural ones
--   **`-leaktest`:** Abort if a leak was found
--   **`-meta`:** Combine adjacent triangles of the same texture to surfaces (ALWAYS USE THIS)
--   **`-minsamplesize` N:** Sets minimum lightmap resolution in luxels/qu
--   **`-mi` N:** Sets the maximum number of indexes per surface
--   **`-mv` N:** Sets the maximum number of vertices of a lightmapped surface
--   **`-ne` F:** Normal epsilon for plane snapping etc.
--   **`-nocurves`:** Turn off support for patches
--   **`-nodetail`:** Leave out detail brushes
--   **`-noflares`:** Turn off support for flares
--   **`-nofog`:** Turn off support for fog volumes
--   **`-nohint`:** Turn off support for hint brushes
--   **`-nosubdivide`:** Turn off support for `q3map_tessSize` (breaks water vertex deforms)
--   **`-notjunc`:** Do not fix T-junctions (causes cracks between triangles, do not use)
--   **`-nowater`:** Turn off support for water, slime or lava (Stef, this is for you)
--   **`-np` A:** Force all surfaces to be nonplanar with a given shade angle
--   **`-onlyents`:** Only update entities in the BSP
--   **`-patchmeta`:** Turn patches into triangle meshes for display
--   **`-rename`:** Append “bsp” suffix to miscmodel shaders (needed for SoF2)
--   **`-samplesize` N:** Sets default lightmap resolution in luxels/qu
--   **`-skyfix`:** Turn sky box into six surfaces to work around ATI problems
--   **`-snap` N:** Snap brush bevel planes to the given number of units
--   **`-tempname` filename.map:** Read the MAP file from the given file name
--   **`-texrange` N:** Limit per-surface texture range to the given number of units, and subdivide surfaces like with `q3map_tessSize` if this is not met
--   **`-tmpout`:** Write the BSP file to /tmp
--   **`-verboseentities`:** Enable `-v` only for map entities, not for the world
-
-VIS stage
----------
-
--   **`-vis` ... filename.map:** Switch that enters this stage
--   **`-fast`:** Very fast and crude vis calculation
--   **`-mergeportals`:** The less crude half of `-merge`, makes vis sometimes much faster but doesn’t hurt fps usually
--   **`-merge`:** Faster but still okay vis calculation
--   **`-nopassage`:** Just use PortalFlow vis (usually less fps)
--   **`-nosort`:** Do not sort the portals before calculating vis (usually slower)
--   **`-passageOnly`:** Just use PassageFlow vis (usually less fps)
--   **`-saveprt`:** Keep the PRT file after running vis (so you can run vis again)
--   **`-tmpin`:** Use /tmp folder for input
--   **`-tmpout`:** Use /tmp folder for output
-
-LIGHT stage
------------
-
--   **`-light` ... filename.map:** Switch that enters this stage
--   **`-vlight` ... filename.map:** Deprecated alias for `-light -fast` ... filename.map
--   **`-approx` N:** Vertex light approximation tolerance (never use in conjunction with deluxemapping)
--   **`-areascale` F, `-area` F:** Scaling factor for area lights (surfacelight)
--   **`-border`:** Add a red border to lightmaps for debugging
--   **`-bouncegrid`:** Also compute radiosity on the light grid
--   **`-bounceonly`:** Only compute radiosity
--   **`-bouncescale` F:** Scaling factor for radiosity
--   **`-bounce` N:** Number of bounces for radiosity
--   **`-cheapgrid`:** Use `-cheap` style lighting for radiosity
--   **`-cheap`:** Abort vertex light calculations when white is reached
--   **`-compensate` F:** Lightmap compensate (darkening factor applied after everything else)
--   **`-cpma`:** CPMA vertex lighting mode
--   **`-custinfoparms`:** Read scripts/custinfoparms.txt
--   **`-dark`:** Darken lightmap seams
--   **`-debugaxis`:** Color the lightmaps according to the lightmap axis
--   **`-debugcluster`:** Color the lightmaps according to the index of the cluster
--   **`-debugdeluxe`:** Show deluxemaps on the lightmap
--   **`-debugnormals`:** Color the lightmaps according to the direction of the surface normal
--   **`-debugorigin`:** Color the lightmaps according to the origin of the luxels
--   **`-debugsurfaces`, `-debugsurface`:** Color the lightmaps according to the index of the surface
--   **`-debugunused`:** This option does nothing
--   **`-debug`:** Mark the lightmaps according to the cluster: unmapped clusters get yellow, occluded ones get pink, flooded ones get blue overlay color, otherwise red
--   **`-deluxemode 0`:** Use modelspace deluxemaps (DarkPlaces)
--   **`-deluxemode 1`:** Use tangentspace deluxemaps
--   **`-deluxe`, `-deluxemap`:** Enable deluxemapping (light direction maps)
--   **`-dirtdebug`, `-debugdirt`:** Store the dirtmaps as lightmaps for debugging
--   **`-dirtdepth`:** Dirtmapping depth
--   **`-dirtgain`:** Dirtmapping exponent
--   **`-dirtmode 0`:** Ordered direction dirtmapping
--   **`-dirtmode 1`:** Randomized direction dirtmapping
--   **`-dirtscale`:** Dirtmapping scaling factor
--   **`-dirty`:** Enable dirtmapping
--   **`-dump`:** Dump radiosity from `-bounce` into numbered MAP file prefabs
--   **`-export`:** Export lightmaps when compile finished (like `-export` mode)
--   **`-exposure` F:** Lightmap exposure to better support overbright spots
--   **`-external`:** Force external lightmaps even if at size of internal lightmaps
--   **`-extravisnudge`:** Broken feature to nudge the luxel origin to a better vis cluster
--   **`-extrawide`:** Deprecated alias for `-super 2 -filter`
--   **`-extra`:** Deprecated alias for `-super 2`
--   **`-fastbounce`:** Use `-fast` style lighting for radiosity
--   **`-faster`:** Use a faster falloff curve for lighting; also implies `-fast`
--   **`-fastgrid`:** Use `-fast` style lighting for the light grid
--   **`-fast`:** Ignore tiny light contributions
--   **`-filter`:** Lightmap filtering
--   **`-floodlight`:** Enable floodlight (zero-effort somewhat decent lighting)
--   **`-gamma` F:** Lightmap gamma
--   **`-gridambientscale` F:** Scaling factor for the light grid ambient components only
--   **`-gridscale` F:** Scaling factor for the light grid only
--   **`-keeplights`:** Keep light entities in the BSP file after compile
--   **`-lightmapdir` directory:** Directory to store external lightmaps (default: same as map name without extension)
--   **`-lightmapsize` N:** Size of lightmaps to generate (must be a power of two)
--   **`-lomem`:** Low memory but slower lighting mode
--   **`-lowquality`:** Low quality floodlight (appears to currently break floodlight)
--   **`-minsamplesize` N:** Sets minimum lightmap resolution in luxels/qu
--   **`-nocollapse`:** Do not collapse identical lightmaps
--   **`-nodeluxe`, `-nodeluxemap`:** Disable deluxemapping
--   **`-nogrid`:** Disable grid light calculation (makes all entities fullbright)
--   **`-nolightmapsearch`:** Do not optimize lightmap packing for GPU memory usage (as doing so costs fps)
--   **`-normalmap`:** Color the lightmaps according to the direction of the surface normal (TODO is this identical to `-debugnormals`?)
--   **`-nostyle`, `-nostyles`:** Disable support for light styles
--   **`-nosurf`:** Disable tracing against surfaces (only uses BSP nodes then)
--   **`-notrace`:** Disable shadow occlusion
--   **`-novertex`:** Disable vertex lighting
--   **`-patchshadows`:** Cast shadows from patches
--   **`-pointscale` F, `-point` F:** Scaling factor for point lights (light entities)
--   **`-q3`:** Use nonlinear falloff curve by default (like Q3A)
--   **`-samplescale` F:** Scales all lightmap resolutions
--   **`-samplesize` N:** Sets default lightmap resolution in luxels/qu
--   **`-samples` N:** Adaptive supersampling quality
--   **`-scale` F:** Scaling factor for all light types
--   **`-shadeangle` A:** Angle for phong shading
--   **`-shade`:** Enable phong shading at default shade angle
--   **`-skyscale` F, `-sky` F:** Scaling factor for sky and sun light
--   **`-smooth`:** Deprecated alias for `-samples 2`
--   **`-style`, `-styles`:** Enable support for light styles
--   **`-sunonly`:** Only compute sun light
--   **`-super` N, `-supersample` N:** Ordered grid supersampling quality
--   **`-thresh` F:** Triangle subdivision threshold
--   **`-trianglecheck`:** Broken check that should ensure luxels apply to the right triangle
--   **`-trisoup`:** Convert brush faces to triangle soup
--   **`-wolf`:** Use linear falloff curve by default (like W:ET)
-
-Analyzing BSP-like file structure
----------------------------------
-
--   **`-analyze` ... filename.bsp:** Switch that enters this mode
--   **`-lumpswap`:** Swap byte order in the lumps
-
-Converting & Decompiling
-------------------------
-
--   **`-convert` ... filename.bsp:** Switch that enters this mode
--   **`-de` number:** Distance epsilon for the conversion
--   **`-format` converter:** Select the converter (available: map, ase, or game names)
--   **`-ne` F:** Normal epsilon for the conversion
--   **`-shadersasbitmap`:** (only for ase) use the shader names as \*BITMAP key so they work as prefabs
-
-Exporting lightmaps
--------------------
-
--   **`-export` filename.bsp:** Copies lightmaps from the BSP to `filename/lightmap_0000.tga` ff
-
-Fixing AAS checksum
--------------------
-
--   **`-fixaas` filename.bsp:** Switch that enters this mode
-
-Get info about BSP file
------------------------
-
--   **`-info` filename.bsp:** Switch that enters this mode
-
-Importing lightmaps
--------------------
-
--   **`-import` filename.bsp:** Copies lightmaps from `filename/lightmap_0000.tga` ff into the BSP
-
-MiniMap
--------
-
--   **`-minimap` ... filename.bsp:** Creates a minimap of the BSP, by default writes to `../gfx/filename_mini.tga`
--   **`-black`:** Write the minimap as a black-on-transparency RGBA32 image
--   **`-boost` F:** Sets the contrast boost value (higher values make a brighter image); contrast boost is somewhat similar to gamma, but continuous even at zero
--   **`-border` F:** Sets the amount of border pixels relative to the total image size
--   **`-gray`:** Write the minimap as a white-on-black GRAY8 image
--   **`-keepaspect`:** Ensure the aspect ratio is kept (the minimap is then letterboxed to keep aspect)
--   **`-minmax` xmin ymin zmin xmax ymax zmax:** Forces specific map dimensions (note: the minimap actually uses these dimensions, scaled to the target size while keeping aspect with centering, and 1/64 of border appended to all sides)
--   **`-nokeepaspect`:** Do not ensure the aspect ratio is kept (makes it easier to use the image in your code, but looks bad together with sharpening)
--   **`-o` filename.tga:** Sets the output file name
--   **`-random` N:** Sets the randomized supersampling count (cannot be combined with `-samples`)
--   **`-samples` N:** Sets the ordered supersampling count (cannot be combined with `-random`)
--   **`-sharpen` F:** Sets the sharpening coefficient
--   **`-size` N:** Sets the width and height of the output image
--   **`-white`:** Write the minimap as a white-on-transparency RGBA32 image
-
-Scaling
--------
-
--   **`-scale` S filename.bsp:** Scale uniformly
--   **`-scale` SX SY SZ filename.bsp:** Scale non-uniformly
--   **`-scale -tex` S filename.bsp:** Scale uniformly without texture lock
--   **`-scale -tex` SX SY SZ filename.bsp:** Scale non-uniformly without texture lock
-
diff --git a/Complete-list-of-q3map2-command-line-parameters.md b/Complete-list-of-q3map2-command-line-parameters.md
new file mode 100644 (file)
index 0000000..928f912
--- /dev/null
@@ -0,0 +1,219 @@
+Complete list of q3map2 command line parameters
+========================================
+
+Common options
+--------------
+
+-   **`-connect` address:** Talk to a NetRadiant instance using a specific XML based protocol
+-   **`-force`:** Allow reading some broken/unsupported BSP files e.g. when decompiling, may also crash
+-   **`-fs_basepath` path:** Sets the given path as main directory of the game (can be used more than once to look in multiple paths)
+-   **`-fs_game` gamename:** Sets a different game directory name (default for Q3A: baseq3)
+-   **`-fs_homebase` dir:** Specifies where the user home directory name is on Linux (default for Q3A: .q3a)
+-   **`-game` gamename:** Load settings for the given game (default: quake3)
+-   **`-subdivisions` F:** multiplier for patch subdivisions quality
+-   **`-threads` N:** number of threads to use
+-   **`-v`:** Verbose mode
+
+BSP stage
+---------
+
+-   **`-bsp` ... filename.map:** Switch that enters this stage
+-   **`-altsplit`:** Alternate BSP tree splitting weights (should give more fps)
+-   **`-celshader` shadername:** Sets a global cel shader name
+-   **`-custinfoparms`:** Read scripts/custinfoparms.txt
+-   **`-debuginset`:** Push all triangle vertexes towards the triangle center
+-   **`-debugportals`:** Make BSP portals visible in the map
+-   **`-debugsurfaces`:** Color the vertexes according to the index of the surface
+-   **`-deep`:** Use detail brushes in the BSP tree, but at lowest priority (should give more fps)
+-   **`-de` F:** Distance epsilon for plane snapping etc.
+-   **`-fakemap`:** Write fakemap.map containing all world brushes
+-   **`-flares`:** Turn on support for flares (TEST?)
+-   **`-flat`:** Enable flat shading (good for combining with -celshader)
+-   **`-fulldetail`:** Treat detail brushes as structural ones
+-   **`-leaktest`:** Abort if a leak was found
+-   **`-meta`:** Combine adjacent triangles of the same texture to surfaces (ALWAYS USE THIS)
+-   **`-minsamplesize` N:** Sets minimum lightmap resolution in luxels/qu
+-   **`-mi` N:** Sets the maximum number of indexes per surface
+-   **`-mv` N:** Sets the maximum number of vertices of a lightmapped surface
+-   **`-ne` F:** Normal epsilon for plane snapping etc.
+-   **`-nocurves`:** Turn off support for patches
+-   **`-nodetail`:** Leave out detail brushes
+-   **`-noflares`:** Turn off support for flares
+-   **`-nofog`:** Turn off support for fog volumes
+-   **`-nohint`:** Turn off support for hint brushes
+-   **`-nosubdivide`:** Turn off support for `q3map_tessSize` (breaks water vertex deforms)
+-   **`-notjunc`:** Do not fix T-junctions (causes cracks between triangles, do not use)
+-   **`-nowater`:** Turn off support for water, slime or lava (Stef, this is for you)
+-   **`-np` A:** Force all surfaces to be nonplanar with a given shade angle
+-   **`-onlyents`:** Only update entities in the BSP
+-   **`-patchmeta`:** Turn patches into triangle meshes for display
+-   **`-rename`:** Append “bsp” suffix to miscmodel shaders (needed for SoF2)
+-   **`-samplesize` N:** Sets default lightmap resolution in luxels/qu
+-   **`-skyfix`:** Turn sky box into six surfaces to work around ATI problems
+-   **`-snap` N:** Snap brush bevel planes to the given number of units
+-   **`-tempname` filename.map:** Read the MAP file from the given file name
+-   **`-texrange` N:** Limit per-surface texture range to the given number of units, and subdivide surfaces like with `q3map_tessSize` if this is not met
+-   **`-tmpout`:** Write the BSP file to /tmp
+-   **`-verboseentities`:** Enable `-v` only for map entities, not for the world
+
+VIS stage
+---------
+
+-   **`-vis` ... filename.map:** Switch that enters this stage
+-   **`-fast`:** Very fast and crude vis calculation
+-   **`-mergeportals`:** The less crude half of `-merge`, makes vis sometimes much faster but doesn’t hurt fps usually
+-   **`-merge`:** Faster but still okay vis calculation
+-   **`-nopassage`:** Just use PortalFlow vis (usually less fps)
+-   **`-nosort`:** Do not sort the portals before calculating vis (usually slower)
+-   **`-passageOnly`:** Just use PassageFlow vis (usually less fps)
+-   **`-saveprt`:** Keep the PRT file after running vis (so you can run vis again)
+-   **`-tmpin`:** Use /tmp folder for input
+-   **`-tmpout`:** Use /tmp folder for output
+
+LIGHT stage
+-----------
+
+-   **`-light` ... filename.map:** Switch that enters this stage
+-   **`-vlight` ... filename.map:** Deprecated alias for `-light -fast` ... filename.map
+-   **`-approx` N:** Vertex light approximation tolerance (never use in conjunction with deluxemapping)
+-   **`-areascale` F, `-area` F:** Scaling factor for area lights (surfacelight)
+-   **`-border`:** Add a red border to lightmaps for debugging
+-   **`-bouncegrid`:** Also compute radiosity on the light grid
+-   **`-bounceonly`:** Only compute radiosity
+-   **`-bouncescale` F:** Scaling factor for radiosity
+-   **`-bounce` N:** Number of bounces for radiosity
+-   **`-cheapgrid`:** Use `-cheap` style lighting for radiosity
+-   **`-cheap`:** Abort vertex light calculations when white is reached
+-   **`-compensate` F:** Lightmap compensate (darkening factor applied after everything else)
+-   **`-cpma`:** CPMA vertex lighting mode
+-   **`-custinfoparms`:** Read scripts/custinfoparms.txt
+-   **`-dark`:** Darken lightmap seams
+-   **`-debugaxis`:** Color the lightmaps according to the lightmap axis
+-   **`-debugcluster`:** Color the lightmaps according to the index of the cluster
+-   **`-debugdeluxe`:** Show deluxemaps on the lightmap
+-   **`-debugnormals`:** Color the lightmaps according to the direction of the surface normal
+-   **`-debugorigin`:** Color the lightmaps according to the origin of the luxels
+-   **`-debugsurfaces`, `-debugsurface`:** Color the lightmaps according to the index of the surface
+-   **`-debugunused`:** This option does nothing
+-   **`-debug`:** Mark the lightmaps according to the cluster: unmapped clusters get yellow, occluded ones get pink, flooded ones get blue overlay color, otherwise red
+-   **`-deluxemode 0`:** Use modelspace deluxemaps (DarkPlaces)
+-   **`-deluxemode 1`:** Use tangentspace deluxemaps
+-   **`-deluxe`, `-deluxemap`:** Enable deluxemapping (light direction maps)
+-   **`-dirtdebug`, `-debugdirt`:** Store the dirtmaps as lightmaps for debugging
+-   **`-dirtdepth`:** Dirtmapping depth
+-   **`-dirtgain`:** Dirtmapping exponent
+-   **`-dirtmode 0`:** Ordered direction dirtmapping
+-   **`-dirtmode 1`:** Randomized direction dirtmapping
+-   **`-dirtscale`:** Dirtmapping scaling factor
+-   **`-dirty`:** Enable dirtmapping
+-   **`-dump`:** Dump radiosity from `-bounce` into numbered MAP file prefabs
+-   **`-export`:** Export lightmaps when compile finished (like `-export` mode)
+-   **`-exposure` F:** Lightmap exposure to better support overbright spots
+-   **`-external`:** Force external lightmaps even if at size of internal lightmaps
+-   **`-extravisnudge`:** Broken feature to nudge the luxel origin to a better vis cluster
+-   **`-extrawide`:** Deprecated alias for `-super 2 -filter`
+-   **`-extra`:** Deprecated alias for `-super 2`
+-   **`-fastbounce`:** Use `-fast` style lighting for radiosity
+-   **`-faster`:** Use a faster falloff curve for lighting; also implies `-fast`
+-   **`-fastgrid`:** Use `-fast` style lighting for the light grid
+-   **`-fast`:** Ignore tiny light contributions
+-   **`-filter`:** Lightmap filtering
+-   **`-floodlight`:** Enable floodlight (zero-effort somewhat decent lighting)
+-   **`-gamma` F:** Lightmap gamma
+-   **`-gridambientscale` F:** Scaling factor for the light grid ambient components only
+-   **`-gridscale` F:** Scaling factor for the light grid only
+-   **`-keeplights`:** Keep light entities in the BSP file after compile
+-   **`-lightmapdir` directory:** Directory to store external lightmaps (default: same as map name without extension)
+-   **`-lightmapsize` N:** Size of lightmaps to generate (must be a power of two)
+-   **`-lomem`:** Low memory but slower lighting mode
+-   **`-lowquality`:** Low quality floodlight (appears to currently break floodlight)
+-   **`-minsamplesize` N:** Sets minimum lightmap resolution in luxels/qu
+-   **`-nocollapse`:** Do not collapse identical lightmaps
+-   **`-nodeluxe`, `-nodeluxemap`:** Disable deluxemapping
+-   **`-nogrid`:** Disable grid light calculation (makes all entities fullbright)
+-   **`-nolightmapsearch`:** Do not optimize lightmap packing for GPU memory usage (as doing so costs fps)
+-   **`-normalmap`:** Color the lightmaps according to the direction of the surface normal (TODO is this identical to `-debugnormals`?)
+-   **`-nostyle`, `-nostyles`:** Disable support for light styles
+-   **`-nosurf`:** Disable tracing against surfaces (only uses BSP nodes then)
+-   **`-notrace`:** Disable shadow occlusion
+-   **`-novertex`:** Disable vertex lighting
+-   **`-patchshadows`:** Cast shadows from patches
+-   **`-pointscale` F, `-point` F:** Scaling factor for point lights (light entities)
+-   **`-q3`:** Use nonlinear falloff curve by default (like Q3A)
+-   **`-samplescale` F:** Scales all lightmap resolutions
+-   **`-samplesize` N:** Sets default lightmap resolution in luxels/qu
+-   **`-samples` N:** Adaptive supersampling quality
+-   **`-scale` F:** Scaling factor for all light types
+-   **`-shadeangle` A:** Angle for phong shading
+-   **`-shade`:** Enable phong shading at default shade angle
+-   **`-skyscale` F, `-sky` F:** Scaling factor for sky and sun light
+-   **`-smooth`:** Deprecated alias for `-samples 2`
+-   **`-style`, `-styles`:** Enable support for light styles
+-   **`-sunonly`:** Only compute sun light
+-   **`-super` N, `-supersample` N:** Ordered grid supersampling quality
+-   **`-thresh` F:** Triangle subdivision threshold
+-   **`-trianglecheck`:** Broken check that should ensure luxels apply to the right triangle
+-   **`-trisoup`:** Convert brush faces to triangle soup
+-   **`-wolf`:** Use linear falloff curve by default (like W:ET)
+
+Analyzing BSP-like file structure
+---------------------------------
+
+-   **`-analyze` ... filename.bsp:** Switch that enters this mode
+-   **`-lumpswap`:** Swap byte order in the lumps
+
+Converting & Decompiling
+------------------------
+
+-   **`-convert` ... filename.bsp:** Switch that enters this mode
+-   **`-de` number:** Distance epsilon for the conversion
+-   **`-format` converter:** Select the converter (available: map, ase, or game names)
+-   **`-ne` F:** Normal epsilon for the conversion
+-   **`-shadersasbitmap`:** (only for ase) use the shader names as \*BITMAP key so they work as prefabs
+
+Exporting lightmaps
+-------------------
+
+-   **`-export` filename.bsp:** Copies lightmaps from the BSP to `filename/lightmap_0000.tga` ff
+
+Fixing AAS checksum
+-------------------
+
+-   **`-fixaas` filename.bsp:** Switch that enters this mode
+
+Get info about BSP file
+-----------------------
+
+-   **`-info` filename.bsp:** Switch that enters this mode
+
+Importing lightmaps
+-------------------
+
+-   **`-import` filename.bsp:** Copies lightmaps from `filename/lightmap_0000.tga` ff into the BSP
+
+MiniMap
+-------
+
+-   **`-minimap` ... filename.bsp:** Creates a minimap of the BSP, by default writes to `../gfx/filename_mini.tga`
+-   **`-black`:** Write the minimap as a black-on-transparency RGBA32 image
+-   **`-boost` F:** Sets the contrast boost value (higher values make a brighter image); contrast boost is somewhat similar to gamma, but continuous even at zero
+-   **`-border` F:** Sets the amount of border pixels relative to the total image size
+-   **`-gray`:** Write the minimap as a white-on-black GRAY8 image
+-   **`-keepaspect`:** Ensure the aspect ratio is kept (the minimap is then letterboxed to keep aspect)
+-   **`-minmax` xmin ymin zmin xmax ymax zmax:** Forces specific map dimensions (note: the minimap actually uses these dimensions, scaled to the target size while keeping aspect with centering, and 1/64 of border appended to all sides)
+-   **`-nokeepaspect`:** Do not ensure the aspect ratio is kept (makes it easier to use the image in your code, but looks bad together with sharpening)
+-   **`-o` filename.tga:** Sets the output file name
+-   **`-random` N:** Sets the randomized supersampling count (cannot be combined with `-samples`)
+-   **`-samples` N:** Sets the ordered supersampling count (cannot be combined with `-random`)
+-   **`-sharpen` F:** Sets the sharpening coefficient
+-   **`-size` N:** Sets the width and height of the output image
+-   **`-white`:** Write the minimap as a white-on-transparency RGBA32 image
+
+Scaling
+-------
+
+-   **`-scale` S filename.bsp:** Scale uniformly
+-   **`-scale` SX SY SZ filename.bsp:** Scale non-uniformly
+-   **`-scale -tex` S filename.bsp:** Scale uniformly without texture lock
+-   **`-scale -tex` SX SY SZ filename.bsp:** Scale non-uniformly without texture lock
+
index a827e0d1ae1ec5425a861cbf01f16da827e48212..5afcbe87b660e84efb524f331b548e772a84a61e 100644 (file)
@@ -8,6 +8,7 @@ Basics
 [Setup](mapping-Setup)  
 [NetRadiant](mapping-NetRadiant)  
 [First Map](mapping-FirstMap)  
+[Map picture](mapping-MapPicture)  
 [Packaging and releasing](mapping-packaging)
 
 Advanced Mapping Tutorials
@@ -15,7 +16,7 @@ Advanced Mapping Tutorials
 
 [Optimizations](mapping-Optimizing)
 
-Advanced Texturing Tuorials
+Advanced Texturing Tutorials
 ---------------------------
 
 [skyboxes (with blender)](Mapping-textures-skybox-blender)  
diff --git a/Creating-bot-waypoints.md b/Creating-bot-waypoints.md
new file mode 100644 (file)
index 0000000..bce3aeb
--- /dev/null
@@ -0,0 +1,191 @@
+Xonotic bots require waypoints to roam about the map and find items such as CTF flags, weapons and health packs. In this guide we are gonna see how to create a good network of waypoints for them.
+
+## Creating waypoints
+
+#### Selecting the proper game mode
+
+First of all you need to know what game modes are supported by the map you are going to waypoint and start the appropriated mode. To know this information you can right click on a map in the map list (menu / Singleplayer / Create window). For a map to appear in that list you need to put its .pk3 file in your ${xon_settings}/data/ directory.
+
+* If a map supports **CTF**, you should start a CTF game since the editor automatically adds a waypoint for each flag. CTF waypoints are compatible with other modes (except Race and Assault) but keep in mind that waypoints of flags and all links from/to them will not be loaded in other modes. It's highly recommended to enable symmetrical editing on symmetrical maps as described in the [Symmetrical editing](https://gitlab.com/xonotic/xonotic/-/wikis/Creating-bot-waypoints#symmetrical-editing) section below.
+
+* If a map supports **Assault**, you should start an Assault game and destroy all the objective but the last one before editing waypoints because otherwise there are doors / obstacles that block paths to other parts of the map. If you forget to do so, don't worry, you can make up by relinking all the waypoints with `wpeditor relinkall` after having destroyed all the objectives.
+
+* If a map supports **Race or Race CTS and other modes** and if the map has the same layout in Race mode (some maps enable a completely different layout. e.g. Stormkeep) it's recommended to first edit and save waypoints for other modes (usually DM or CTF) so that whenever you start editing Race waypoints you can start from the existing ones. Once you save them in Race mode they become independent from the generic ones.
+
+* If a map supports **only Race or Race CTS** you should start a Race game since the editor automatically adds waypoints for every check point. Saved waypoints are specific for this mode.
+
+* For **all other game modes** you should start a DM game.
+
+## Configuration
+
+* Commands to edit waypoints:
+```
+wpeditor spawn               spawns a normal waypoint where you are standing
+wpeditor remove              removes the nearest waypoint
+wpeditor saveall             saves all waypoints and links
+wpeditor relinkall           relinks all waypoints
+wpeditor unreachable         determines waypoints, items and spawnpoints that can't be reached from the current position
+wpeditor spawn crosshair     spawns a waypoint at crosshair's position (in general useful to create special and hardwired links with ease from existing waypoints, in particular it's the only way to create custom jumppad waypoints (spawn another waypoint to create destination))
+wpeditor spawn jump          spawns a jump waypoint (spawn another waypoint to create destination)
+wpeditor spawn crouch        spawns a crouch waypoint
+wpeditor spawn support       spawns a support waypoint (spawn another waypoint to create destination from which all incoming links are removed), useful to replace links to problematic jumppad/teleport waypoints
+wpeditor hardwire            marks the nearest waypoint as origin of a new hardwired link (spawn another waypoint over an existing one to create destination)
+wpeditor hardwire crosshair  marks the waypoint at crosshair instead of the nearest waypoint
+```
+
+You can easily run all these commands and also toggle various useful settings in the waypoint editor menu (bind it to a key of your liking in the menu / Settings / Input window).
+
+To your convenience I set up a config file with all the commands described in this guide (and more) bound to keys in an alternative bindmap so that your default keys won't be overriden. Save [th_waypointeditor_config.cfg](uploads/af2f46e366956e6ec336515564664d42/th_waypointeditor_config.cfg) into your data directory, open it in a text editor if you want to change keys then in the Xonotic console run `fs_rescan` and `exec th_waypointeditor_config.cfg`. From now on to enable keys and settings on the fly you can just exec `th_waypointeditor_enable` to enable the waypoint editor and `th_waypointeditor_disable` to disable it (instead of toggling the g_waypointeditor cvar).
+
+#### Add / edit waypoints
+
+* Waypoint types:
+
+| Color | description |
+| ------ | ------ |
+| White  | normal waypoints                                                                                                       |
+| Yellow | autogenerated waypoint (jumppads, teleporters, warpzones, ladders)                                                     |
+| Red    | autogenerated waypoint for certain items that are crucial for the current game mode (e.g. CTF flags, Race checkpoints) |
+| Purple | waypoint with one or more hardwired (outgoing) links                                                                   |
+| Orange | Jump and Custom jumppad waypoints                                                                                      |
+| Cyan   | Crouch waypoint                                                                                                        |
+| Green  | Support waypoint (useful to replace incoming links of a problematic teleport / jumppad)                                |
+
+|  Normal waypoint |  Support waypoint |
+| :------: | :------: |
+| ![normal_wp](uploads/9573c68889648122385609f314b1f077/normal_wp.jpg)  | ![support_wp](uploads/ffc9cef7d586de00266c20d4eeffaaf8/support_wp.jpg) |
+| Links to all the waypoints (except the teleporter waypoint which has a support waypoint) | Links only to the destination waypoint (the teleporter waypoint which can't have any other incoming link) |
+
+| Hardwired waypoint | Crouch waypoint |
+| :------: | :------: |
+| ![hardwired_wp](uploads/80220aa4479a827e72b0a3734c9b237e/hardwired_wp.jpg) | ![crouch_wp](uploads/77207df550e8c0316e08bdd696917493/crouch_wp.jpg) |
+| Normal waypoint with one or more hardwired link | Links to all the waypoints within 100 qu range |
+
+| Jump waypoint | Jump waypoint linked to a Crouch waypoint |
+| :------: | :------: |
+| ![jump_wp](uploads/ae680fd80bdf748fdee6d2f9186dada3/jump_wp.jpg) | ![jump_wp_to_crouch_wp](uploads/bdb424baaeff32bf3f406b43be17e5a6/jump_wp_to_crouch_wp.jpg) |
+| Links only to the destination waypoint(s) | Links only to the destination waypoint(s) |
+
+Enable the waypoint editor with `g_waypointeditor 1` or `th_waypointeditor_enable`, start a map and become a player to be able to edit waypoints.
+
+If there are no user-made waypoints you can see only the autogenerated ones (yellow and red).
+Start by adding normal waypoints with the command `wpeditor spawn`, the editor will then automatically generate links between them. Outgoing links are displayed as lightnings popping out from the nearest waypoint, if you want to see the incoming links you have to hold the `CROUCH` key down (default key: SHIFT).
+
+A link from waypoint A to waypoint B means that a bot can theoretically safely walk from A to B (it can even jump obstacles but not gaps), even though in practice it depends on waypoint position and bot skill: bot may face some difficulties, for example if too close to a ledge or turning while approaching to A. In general to avoid bad surprises you shouldn't put waypoints too close to wall edges, gaps or dangerous places.
+
+It's recommended to add waypoints near items that bots often run to such as powerups, weapons and health/armor packs. When you spawn a waypoint really close to an item it gets automatically snapped to its origin. If not desired, this behavior can be turned off on the fly by holding the `CROUCH` key down (default key: SHIFT) when you create a waypoint.
+
+Bots can swim too if you put waypoints in the water or even above the water surface, which is preferable since players can move faster jumping over the water.
+
+Use the command `wpeditor saveall` to save waypoints and links, preferably run this command periodically to avoid accidental loss of waypoints you have added since the last save.  
+It will generate 3 files in your data directory:
+* `data/data/maps/<mapname>.waypoints` containing waypoints data
+* `data/data/maps/<mapname>.waypoints.cache` containing links data
+* `data/data/maps/<mapname>.waypoints.hardwired` containing hardwired and special links data
+
+In Race or Race CTS mode, you will get these files instead:
+* `data/data/maps/<mapname>.race.waypoints`
+* `data/data/maps/<mapname>.race.waypoints.cache`
+* `data/data/maps/<mapname>.race.waypoints.hardwired`
+
+#### Symmetrical editing:
+
+The waypoint editor has a very useful editing mode that halves time required to waypoint symmetrical maps (mostly the CTF ones): every time you spawn / remove a waypoint, the same operation is repeated on its symmetrical position.
+
+First of all you need to figure out the map symmetry:
+
+1. **Point reflection**: the most common among Xonotic maps (Dance, Implosion, Geoplanetary), half part of the map is (horizontally) rotated by 180 degrees around a point (origin) that is the center of the map.
+1. **Reflectional symmetry**: less common (Runningman CTF), half part of the map is a mirror-image of the other one, the axis of symmetry is in the mirror-line.
+1. **Rotational symmetry** (of order 3 or greater): rarely used as it needs 3 or more flags (gasoline_3teams, gasoline_4teams). With order 3 a part of the map is rotated twice by 120 and 240 degrees around a point (origin) that is the center of the map.
+
+_Automatic calculation_
+
+On CTF maps that are perfectly symmetrical, if you think map symmetry is 1) or 3) use `g_waypointeditor_symmetrical 1`, if you think it's 2) use `g_waypointeditor_symmetrical 2`.
+Check that the symmetry settings are correct by spawning some test waypoints and checking that the symmetrical waypoints are spawned *exactly* where they should be: if they respect map symmetry then you are ready to waypoint the map.
+
+_Manual calculation_
+
+On non-CTF maps or if automatically calculated symmetry doesn't work well (symmetrical waypoints can't be found or are in a wrong position) it's possible to manually determine the origin or axis of symmetry with the commands `wpeditor symorigin get|set p1 p2 ... pX` and `wpeditor symaxis get|set p1 p2` where p1 p2 ... pX are positions "x y z" that you know are perfectly symmetrical. With `get` values of origin / axis are printed to the console, with `set` values of origin / axis are applied immediately (saved to the g_waypointeditor_symmetrical_* cvars).
+
+To find perfectly symmetrical positions, you can go to a place of the map where you are blocked and can't move further away from origin / axis of symmetry, e.g. the corner of a room, print the origin of your player model to console for example with "say %o" or by spawning and removing a temporary waypoint, move to the symmetrical place of the map and do the same.
+
+Before calculating and applying symmetry settings from those positions, make sure there is no user-made waypoint on the map, you have to manually remove them because they lack the corresponding symmetrical waypoint. To calculate and apply symmetry settings, use the appropriated `set` command with those positions as parameters.
+
+Example 1:
+```
+p1: "-700 -2000 600"
+p2: "700 -2000 600"
+wpeditor symaxis set "-700 -2000 600" "700 -2000 600"
+```
+Output:
+```
+Axis of symmetry based on input points: "-1400000000 2000"
+ saved to g_waypointeditor_symmetrical_axis
+g_waypointeditor_symmetrical has been set to -2
+```
+
+Example 2:
+```
+p1: "-500 -1000 200"
+p2: "500 1000 200"
+wpeditor symorigin set "-500 -1000 200" "500 1000 200"
+```
+
+Output:
+```
+Origin of symmetry based on input points: "0 0"
+ saved to g_waypointeditor_symmetrical_origin
+Order of symmetry: 2
+ saved to g_waypointeditor_symmetrical_order
+g_waypointeditor_symmetrical has been set to -1
+```
+
+Spawn and verify some test waypoint to make sure the calculated settings are correct before proceeding waypointing the map.
+
+The symmetry settings are saved to the waypoint files and automatically reloaded from there when you restart the map.
+
+#### Advanced editing
+
+* *Hardwired links*  
+There are paths that bot can actually walk but the editor refuses to link due to small gaps or dangers. To link these kind of paths you can add a hardwired link with `wpeditor hardwire`: marks the nearest waypoint as origin of a new hardwired link (spawn another waypoint over an existing one to create destination).
+
+* *Jump waypoint and linking*  
+To create a jump waypoint you can use the command `wpeditor spawn jump` 60-80 qu before the edge depending on jump length then spawn a normal waypoint as destination waypoint on the other side of the gap. Note that jump waypoints (like jumppad waypoints) don't have any other normal outgoing link. Multiple jump links can be added to the same jump waypoint calling the command `wpeditor spawn jump` in the very same position of an existing jump waypoint and creating another normal waypoint as destination. You can recycle an existing destination waypoint as well by spawning a destination waypoint over an existing one.
+
+* *Custom jumppad waypoint and linking*  
+Sometimes jumppads with a vertical jump trajectory don't have any automatically generated link, you can manually make them usable by bots by adding a custom jumppad waypoint in this way: aim at a jumppad and spawn a waypoint with the command `wpeditor spawn crosshair` then spawn a normal waypoint on the desired destination point. Some testing is needed to make sure bots can really use it and reach the destination waypoint.  
+With the same procedure it's possible to change destination waypoint of an automatically linked jumppad, for example when the destination waypoint is in a too dangerous position.
+
+* *Spawn waypoint at crosshair*  
+The command spawning a waypoint at crosshair is very handy to add more jump links to a jump waypoint: simply aim at the jump waypoint and run `wpeditor spawn crosshair`, then aim at the desired destination waypoint and run the same command. To create a new hardwire link with ease you can use the command `wpeditor hardwire crosshair` to mark the aimed waypoint as origin, then `wpeditor spawn crosshair` to mark the aimed waypoint as destination.
+
+* *Crouch waypoint and linking*  
+To create a crouch waypoint you can use the command `wpeditor spawn crouch`. They are automatically linked to other waypoints but only if really close (less than 100 qu).
+
+* *Support waypoint and linking*  
+Some teleporters and jumppads refuse to create links from waypoints that aren't in front of them, to fix them you can create a support waypoint: spawn it very close to the problematic waypoint with the command `wpeditor spawn support`, then aim at the problematic teleporter / jumppad waypoint and execute `wpeditor spawn crosshair` to create a special link that is exclusive for that teleporter / jumppad. Since the support waypoint doesn't have any other outgoing link, bots will always use it as intermediate waypoint to reach the problematic waypoint. If you used a normal waypoint instead, it would create a lot of useless outgoing links.
+
+
+## Optimizing waypoints
+
+The less links / waypoints you add, the better because in game every bot takes up quite some processing power to determine the best path for a goal.
+To do so check that every waypoint is linked to as many waypoints as possible and remove redundant waypoints. Sometimes moving a waypoint a few qu (quake units) away is enough to create another link while keeping other links. For fine adjustments it's useful a key that temporarily sets slowmo to 0.1.
+If you want to examine better links of a certain waypoint you can lock link view by aiming at it and running the command `wpeditor lock` (to unlock it run the same command again while aiming somewhere else).
+
+Make sure most of the important items (weapons, health / armor packs) have a waypoint very close to them as it helps to speed up initial path search. In particular, for this optimization to work the nearest waypoint of an item should be within 50 qu from where the bot touches the item (sometimes depending on map layout an item can be reached only coming from a single direction). When possible use item waypoints as path waypoints so to keep waypoint count as low as possible.
+
+Use the command `wpeditor unreachable` to reveal waypoints and items unreachable from your current position; it will also reveal spawnpoints without a nearest waypoint where bots would stand still after spawning. Unconnected waypoints/items will appear with a different color and a detailed report is printed to console too. To restore correct waypoint colors you can either (save waypoints and) restart the map or run `wpeditor relinkall`.
+
+
+## Testing waypoints with bots
+
+Recomended settings:
+```
+bot_nofire 1
+bot_debug_goalstack 1
+skill 4
+bot_number 1
+```
+
+Check how well bot navigates the map with your waypoints: add a single bot with medium skills (`skill 4`) and spectate it (preferably in free third person view by pressing `BACKSPACE` twice so you can control camera angles with your mouse); if you notice it takes weird paths (zigzags), gets stuck, bumps into walls, falls down or can't jump an obstacle then you have to adjust waypoints to create more reliable links.
+It is also a good idea to test how high skilled bots behave as they can bunnyhop (skill 7 and higher) and sometimes they can lose control.
\ No newline at end of file
diff --git a/Creating-campaigns.md b/Creating-campaigns.md
new file mode 100644 (file)
index 0000000..7bf32d1
--- /dev/null
@@ -0,0 +1,54 @@
+## Creating campaigns
+
+This page explains how to create campaigns for Xonotic.
+
+## Basics
+
+Xonotic uses text files to store campaigns.
+
+Campaigns are text files with the name “`campaign<name>.txt`”, where `<name>` can be any alphanumeric identifier which is used to uniquely identify the campaign.
+
+Example: `campaignxonoticbeta.txt`
+
+## File syntax
+
+It's basically like CSV (Comma-Separated Values), but with comments.
+
+The following lines are possible
+
+* Campaign title: Must be always the first line and has the form `//campaign:<Name>`, where `<Name>` is the human-readable campaign title.
+* Empty lines: Are ignored
+* Comments: These lines start with `//` and are ignored (except the 1st line which is a special case)
+* Level definitions: This is a comma-separated list. Each value must be delimeted by quotation marks (e.g. `"value"`). You can omit the quotation marks for empty values, *except* for the last item in the list
+
+### Level definition
+
+A comma-separated list (see above). Each level is exactly one line. The meaning of the values in a line must follow this order:
+
+* Game mode: The short codename for the game mode (e.g. `dm` for deathmatch, `kh` for Key Hunt, etc.)
+* Technical map name (e.g. `boil`)
+* Bots: Number of bots
+* Skill: Bot skill level. Minimum 2, maximum 11.
+* Fraglimit: Frag/score limit (meaning depends on game mode) or empty if none
+* Time limit: Time limit in minutes or empty if infinite time
+* Mutator sets: A list of mutators/[CVars](CVars) to activate in this level, separated by semicolons. Can be empty.
+* Level title. Can be empty.
+* Level description. Can be empty.
+
+## Minimal example
+
+This is a minimal example campaign with 1 level:
+
+`campaignminimal.txt`:
+
+```
+//campaign:Minimal Example Campaign
+"dm","boil","5","8","30",,"g_instagib 1; sv_gravity 200","InstaGib Fun on Boil","To win this level, you must insta-gib against 5 bots until you have 30 frags. Good luck!"
+```
+
+The campaign's only level is a Deathmatch on Boil with 5 bots at skill level 8. Frag limit of 30. [InstaGib](InstaGib) mutator is active and [gravity](Gravity) is set to 25% (`sv_gravity` is 800 by default).
+
+## Where to put the campaign file?
+
+* In the source code: `<YOUR_XONOTIC_SOURCE_DIRECTORY>/data/xonotic-maps.pk3dir/maps/`
+* In your user directory: `<YOUR_HOME_DIRECTORY>/.xonotic/data/maps/`
index 8777d02182b4708238e33980a6e298216e4e85f7..d1625fb1bec272a65e4c849ddc87d1832c994c3e 100644 (file)
@@ -8,8 +8,8 @@ You are welcome to update or improve them.)_
 
 **Main Page**
 
-This wiki was created in an effort to document the [Darkplaces engine](https://icculus.org/twilight/darkplaces/), created by Forest "LordHavoc" Hale.
-Anyone with a certain knowledge of Darkplaces and it's workings/features is welcome to give their input. Welcome to the Darkplaces Documentation Wiki!  
+This wiki was created in an effort to document the [Darkplaces engine](https://icculus.org/twilight/darkplaces/), created by Ashley Rose "LadyHavoc" Hale.
+Anyone with a certain knowledge of Darkplaces and it's workings/features is welcome to give their input. Welcome to the Darkplaces Documentation Wiki!
 
 Darkplaces Engine
 =================
@@ -38,6 +38,7 @@ Commercial Games
 ================
 
 -   [Steel Storm](http://steel-storm.com/)
+-   [WRATH: Aeon of Ruin](http://www.wrath.game/)
 
 Standalone Mods / Free Games
 ============================
@@ -48,3 +49,8 @@ Standalone Mods / Free Games
 -   [GPL Nexuiz](http://www.alientrap.org/nexuiz/)
 -   [Blood Omnicide](http://www.legacy-of-kain.ru/bo1/omnicide_eng.shtml)
 -   [Strap-on-bomb Car](http://www.kot-in-action.com/)
+
+Misc
+====
+
+- [`modeldecompile` tool](modeldecompile-tool)
\ No newline at end of file
index 26ce238fb115c6837b2ef2c8d6bbe439b7a145c3..c6a06a8142aedcf5e5ef2dbfe4abace21762e41d 100644 (file)
@@ -5,11 +5,18 @@ Object of the Game
 ------------------
 
 Deathmatch is one of the most popular classic gamemodes in Xonotic (and also the easiest). It is a simple free-for-all fight to the death where everyone plays versus everyone. There are no teams or alliances, each player is on his/her own and one must fight for their own survival.
--   Each kill you make (known in-game as a **frag**) awards you 1 point.
--   You will lose 1 point if you **suicide** (e.g. fall off the map into space, sink into lava, or kill yourself with a weapon).
--   The first player to score 30 points wins the match.
 
-Map Entities
+Scoring
+-------
+
+| Action | Score |
+|:-------|------:|
+| Kill an opponent | +1 |
+| Kill yourself | -1 |
+
+Killing an opponent is also known as a “frag”. The first player to reach the frag limit (default: 30) will win the match.
+
+Collectibles
 ------------
 
 -   **Weapons** - These can be picked up from various places around the map or from a downed player.
@@ -24,11 +31,3 @@ Helpful Hints and Tips
 -   If your map contains powerups such as the ones mentioned above, make good use of them. They can be useful tools to win a match!
 -   Keep your suicides at a minimum. Your point counter *can* enter into the negatives, so always avoid self-injury.
 -   If a player is approaching you fast and there are “Mega Health” or “Mega Armor” powerups nearby, grab them first! This can deprive the opponent of a chance to heal himself once shot.
-
-List of Demos and Videos
-------------------------
-
--   Demo: _(Insert Demo or Video Here)_
--   Players: _(Insert Player Names Here)_
--   Key Points: _(Insert key points in match here)_
-
diff --git a/Dodging.md b/Dodging.md
new file mode 100644 (file)
index 0000000..03f7963
--- /dev/null
@@ -0,0 +1,10 @@
+Dodging
+=======
+
+Dodging is a mutator that enabled dodging maneuvers.
+
+Simlply double-tap a directional key (forwards, backwards, left or right) to hop towards that direction.
+
+CVar
+----
+This mutator is controlled by the [CVar](CVars) `g_dodging`.
\ No newline at end of file
index 893a035336b1931d781b4e14305b5c3f1472cd42..f5341ae6468013aeb7fa16969fc1e4100b3e75a6 100644 (file)
@@ -4,7 +4,33 @@ Domination (DOM)
 Object of the Game
 ------------------
 
-In domination, the goal is to capture and hold all control points on the map. Domination is similar to [Onslaught](Onslaught) but capturing a control point is easier in Domination, and in Domination points are given for holding a control point, and there is no generator. Rarely are maps made exclusively for Domination, generally an existing [CTF](Capture-the-Flag) or [TDM](Team-Deathmatch) map receives Domination features.
+In **Domination**, 2-4 teams try to dominate the map by capturing and keeping control points on the map and fragging the enemy teams. Each control point that a team has captured will generate points over time.
+
+Scoring
+-------
+
+| Action | Score |
+|:-|-:|
+| Kill an opponent | +1 |
+| Own a control point for a few seconds | +1 |
+| Kill yourself | -1 |
+| Kill team mate | -1 |
+
+As of 0.8.2, owning a control point gives your team 1 point every 5 seconds by default. The frequency at which points are awarded can be changed by a [CVar](CVar) (`g_domination_point_rate`).
+
+The first team to reach the score limit (default: 50) will win the match.
+
+Control points
+--------------
+Each map has its own number of control points. Many official maps have 3 control points, while some other maps have more.
+
+All control points start neutral and are owned by nobody. To capture a control point, simply walk into it. It will now start to generate points. But beware: Your enemies can capture your control point just as easily, all it takes is just a touch.
+
+Round-based Domination
+----------------------
+Round-based Domination is a variant of Domination. In round-based Domination, the goal is to capture all control points to win a round. The first team to win a given number of rounds will win the match. If no team manages to win a round for a long time, the round will end in a draw and new round will start.
+
+Round-based Domination can be activated with a cvar (`g_domination_roundbased`).
 
 Map Entities
 ------------
@@ -59,12 +85,4 @@ The key here is the “message” field, which allows you to set the message sho
 Helpful Hints and Tips
 ----------------------
 
--   _(Insert Hints Here)_
-
-List of Demos and Videos
-------------------------
-
--   Demo: _(Insert Demo or Video Here)_
--   Players: _(Insert Player Names Here)_
--   Key Points: _(Insert key points in match here)_
-
+-   _(Insert Hints Here)_
\ No newline at end of file
diff --git a/Duel.md b/Duel.md
index d13a718a68c4d6c202e0d3175c39359c002ff9ea..be1e9c044579fced877bf0ebd5d00a015d4c85be 100644 (file)
--- a/Duel.md
+++ b/Duel.md
@@ -1,25 +1,14 @@
-1v1 Duel
-========
+1vs1 Duel
+=========
 
 Object of the Game
 ------------------
 
-Deathmatch is one of the most popular (and easiest) gamemodes in Xonotic. It is a simple free for all fight where everyone plays versus everyone. Each frag (-\> kill) awards you 1 point. To win a map you need 30 points. Note: You lose 1 point if you suicide (e.g. fall in space, lava or kill yourself with a weapon).
-
-Map Entities
-------------
-
-_(Insert Map Entities here)_
+Duel is one of the most competitive game mode in Xonotic. It is basically a 1v1 [Deathmatch](Deathmatch), usually played with the XPM (Xonotic Pro Mode) ruleset and with no [powerups](Powerups) (no Strength and no Shield), but that is not mandatory.  
+The player with the most frags at the end of the timelimit (or the first player to hit the fraglimit, if any) wins the match.
 
 Helpful Hints and Tips
 ----------------------
 
-_(Insert Helpful Hints and Tips here)_
-
-List of Demos and Videos
-------------------------
-
--   Demo: _(Insert Demo or Video Here)_
--   Players: _(Insert Player Names Here)_
--   Key Points: _(Insert key points in match here)_
-
+Items control is very important on duels: if you manage to take the Mega Armor and the Mega Health when they spawn, you are harder to kill and your enemy is more likely to be less stacked than you are.  
+Keep in mind that mega items respawn every 30 seconds.
\ No newline at end of file
index 43cb7f10948832a1fa230f3cc3797e96c8957c72..644542c48839213e2fea87a69219b05510975d85 100644 (file)
@@ -1,37 +1,46 @@
-If you want write access, please ask for it at [#xonotic on FreeNode](https://webchat.freenode.net/) so we know you're not a bot, we'll gladly give it to you (unfortunately, there is no way to allow anonymous editing on GitLab). After that, you can edit the wiki online (there is an Edit button when logged in) or clone it to your machine using git (`git clone git@gitlab.com:xonotic/xonotic.wiki.git`).
+Getting access
+--------------
+
+To apply for write access, please [request access](https://docs.gitlab.com/ee/user/project/members/#request-access-to-a-project) to the [main Xonotic project](https://gitlab.com/xonotic/xonotic) using the GitLab interface.  You can also request access on Matrix chat in [#dev:xonotic.org](https://matrix.to/#/#dev:xonotic.org) (remember to tell us your GitLab username!) but the admins might not see it amongst the other messages.  
+
+After that, you can edit the wiki online (there is an Edit button when logged in) or clone it to your machine using git (`git clone git@gitlab.com:xonotic/xonotic.wiki.git`).
 
-The official version is on [GitLab](https://gitlab.com/xonotic/xonotic/wikis/home) but we also sync the wiki to [GitHub](https://github.com/xonotic/xonotic/wiki). Please, follow this guide when editing to make sure everything works properly on both.
+Anonymous wiki editing is not supported on GitLab.
+
+Guidelines
+----------
 
 - Try to keep things short and to the point
-- Avoid creating lists of stuff that people will need to keep up to date, it doesn't work
-- Don't duplicate information, there should be a single up-to-date source of truth, everything else should link to it
-    - Improve things instead of starting from scratch, if the previous author didn't finish, you're not likely to do better if you start from nothing
-    - Low hanging fruit: obliterate docs from `Docs/` subdirectory, move it to wiki, link to it instead
+- Don't duplicate information - everything should have a single up-to-date source of truth, other places should link to it
+- Avoid creating lists of stuff (e.g. cvars, command line flags, maps, ...) that people will need to keep up to date manually, it doesn't work. Instead link to where you got the information (e.g. [CACS](https://www.xonotic.org/tools/cacs/)) or teach people how to get it themselves (e.g. `apropos`).
+- Improve things instead of starting from scratch, if the previous author didn't finish, you're not likely to do better if you start from nothing
 
 
-Links to pages
---------------
+GitHub mirror
+-------------
+
+The official version of this wiki is on [GitLab](https://gitlab.com/xonotic/xonotic/wikis/home) but we also sync the wiki to [GitHub](https://github.com/xonotic/xonotic/wiki). Please, follow this guide when editing to make sure everything works properly on both.
+
+
+### Links to other pages
 
 Use standard markdown links: `[Text](link)` (e.g. `[Back to main page](Home)` to get [Back to main page](Home))
 
 - Don't prefix `link` with either `../link` or `/link` - both break on GitHub. Using `./link` seems to work ok but is unnecessary since we have to put everything in root anyway.
+- Use dashes, not spaces: `[Translation guidelines](Translation-guidelines)` for [Translation guidelines](Translation-guidelines). They're interchangeable on GL but spaces will break on GH.
 
-Links don't seem to be case sensitive but it's probably best to use proper capitalization just in case it breaks in some edge case somewhere. Also, spaces and dashes seem to be freely interchangeable on GH and GL but again, probably best to use dashes.
+Links don't seem to be case sensitive but it's probably best to use proper capitalization just in case it breaks in some edge case somewhere.
 
 
-New files
----------
+### New files
 
 For pages, capitalize at least the first letter of the filename (GitHub doesn't capitalize titles automatically, GitLab will do what it wants anyway).
 
-Use dashes in page names, not underscores - dashes get converted to spaces in page titles so we have a nice title on every page. Some pages might have underscores in names for historical reasons - they already have many outside links (from forums, etc.) pointing to them.
-
-Interestingly, spaces in filenames and links seem to work fine for both GitHub and GitLab, not sure if they break somewhere else, it might still be best to avoid them.
+Use dashes in page names, not underscores, not spaces - dashes get converted to spaces in page titles so we have a nice title on every page. Using GL's editor will pretend to create pages with spaces but the filenames in fact have dashes so use dashes in links, otherwise the GH mirror will look broken. Some pages might have underscores in names for historical reasons - they already have many outside links (from forums, etc.) pointing to them.
 
 It's ok (and preferred) to put images and other assets into subdirectories but we have to **put pages in root** because GitHub doesn't support subdirs properly (it flattens everything - this can cause collisions, plus there is no way to link from subdir to another subdir that works on both GitLab and GitHub).
 
 
-Automated checking
--------------------
+### Automated checking
 
 Neither GL not GH support red links (highlighting broken links) so there's a script in [`assets/check-and-fix.py`](assets/check-and-fix.py) that finds broken links and unreachable files. To use it, clone the wiki and run the script in its root. It can also automatically move or rename files that don't follow the above guidelines if you run it with `--fix`.
diff --git a/Effectinfo-Scripting.md b/Effectinfo-Scripting.md
new file mode 100644 (file)
index 0000000..ca83e29
--- /dev/null
@@ -0,0 +1,316 @@
+Reference: https://www.quakewiki.net/darkplaces-wiki/effectinfo-scripting-reference/
+
+### [**Effectinfo Scripting Reference**](https://www.quakewiki.net/darkplaces-wiki/effectinfo-scripting-reference/ "Effectinfo Scripting Reference")
+
+<div>Posted on September 30th, 2012 | Last modified on August 15th, 2014</div>
+<div>
+
+EffectInfo is built-in scripting language to describe particle effects in DarkPlaces, it’s pretty simple and contains basic scripting functions.
+
+Each effect can have several emitters which is defined in effectinfo.txt or maps/mapname_effectinfo.txt
+
+<table>
+<tr>
+<td>
+
+<div>
+
+## Contents
+
+</div>
+[1. General syntax](http://web.archive.org/web/20100729132930/http://dpwiki.slipgateconstruct.com/index.php?title=Effectinfo_Scripting_Reference#General_syntax)<br/>
+[2. Console variables](http://web.archive.org/web/20100729132930/http://dpwiki.slipgateconstruct.com/index.php?title=Effectinfo_Scripting_Reference#Console_variables)<br/>
+[3. Particle parameters](http://web.archive.org/web/20100729132930/http://dpwiki.slipgateconstruct.com/index.php?title=Effectinfo_Scripting_Reference#Particle_parameters)<br/>
+[4. Particles leaving decals](http://web.archive.org/web/20100729132930/http://dpwiki.slipgateconstruct.com/index.php?title=Effectinfo_Scripting_Reference#Particles_leaving_decals)<br/>
+[5. Dynamic lights](http://web.archive.org/web/20100729132930/http://dpwiki.slipgateconstruct.com/index.php?title=Effectinfo_Scripting_Reference#Dynamic_lights)<br/>
+[6. Engine effect names](http://web.archive.org/web/20100729132930/http://dpwiki.slipgateconstruct.com/index.php?title=Effectinfo_Scripting_Reference#Engine_effect_names)<br/>
+[7. Known bugs](http://web.archive.org/web/20100729132930/http://dpwiki.slipgateconstruct.com/index.php?title=Effectinfo_Scripting_Reference#Known_bugs)
+</td>
+</tr>
+</table>
+
+## General syntax
+
+```
+// emitter 1
+effect EFFECT_NAME
+parm value
+parm2 value
+...
+
+// emitter 2
+effect EFFECT_NAME
+parm value
+parm2 value
+...
+
+// emitter for another effect
+effect ANOTHER_EFFECT
+parm value
+parm2 value
+...
+```
+
+## Console variables
+
+`r_drawparticles` : toggle drawing of all particles
+
+`r_drawparticles_drawdistance` : set a maximal distance to draw particles at
+
+`cl_particles_size` : this will scale a size of all particles
+
+`cl_particles_quality` : multiplier of particles count spawned by emitters, better quality = more particles (1 – min, 4 – max. quality)
+
+`cl_particles_reloadeffects` : reloads effectinfo.txt while in the game; that eliminates a need to quit and restart DP to see updated effects
+
+## Particle parameters
+
+**effect**
+
+Defines a new emitter with effectname is belongs to, all parms after that will be applied to that emitter.
+
+**count**
+
+How many particles to spawn at this emitter, this setting is affected by cl_particles_quality cvar
+
+**countabsolute**
+
+Defines a count of particles spawned regardless of cl_particles_quality setting
+
+Total particles count = countabsolute + count \* cl_particles_quality
+
+**type**
+
+Sets a generic particle type, affect appearance, blending, physics.
+
+List of particle types:
+
+<dl>
+<dd>alphastatic : alpha-blended billboard</dd>
+<dd>static : additive-blended billboard</dd>
+<dd>spark : additive blended, stretched (based on velocity)</dd>
+<dd>beam : a beam particle, drawn from origin to origin + velocity</dd>
+<dd>rain : a rain particle, alpha-blended spart that will cause splash effect on impact</dd>
+<dd>raindecal: oriented rain decal, additive-blended</dd>
+<dd>snow: alpha blended, velocity jitters in realtime</dd>
+<dd>bubble: alpha-blended</dd>
+<dd>blood: inverse-modulated, leaves decal</dd>
+<dd>smoke: alpha-blended billboard</dd>
+<dd>decal: makes a decal on nearest surface</dd>
+<dd>entityparticle: alpha-blended, this particle gets removed after being drawn (used on EF_BRIGHTFIELD)</dd>
+</dl>
+
+**blend**
+
+Generic blend is set by type, but with this parm it cound be changed after type is defined.
+
+List of blend types:
+
+<dl>
+<dd>alpha : alpha blended</dd>
+<dd>add: additive blended</dd>
+<dd>invmod: inverse modulation (used on blood and blood decals)</dd>
+</dl>
+
+**orientation**
+
+Same as for blend, generic orientation is set by type, could be altered by this parm.
+
+List of orientation types:
+
+<dl>
+<dd>billboard : always turned to viewer</dd>
+</dl>
+
+<dl>
+<dd>oriented : ignores viewwer, turned to velocity</dd>
+</dl>
+
+<dl>
+<dd>beam : facing viewer on 2 axises, stretched from origin to origin + velocity</dd>
+</dl>
+
+<dl>
+<dd>spark : facing viewer on 2 axises, stretched (based on velocity)</dd>
+</dl>
+
+**color <min_color> <max_color>**
+
+Sets a color for particles. On each particle spawn, it’s color is linearly randomized betwen two given colors. Color should be defined as HEX 0xRRGGBB, like 0xFFFFFF is white, and 0xFF0000 is red.
+
+**tex <min_index> <max_index>**
+
+Sets a index of particle from particlefont. Indexes are counted from left to right, from up to down, last index is 63, first is 0. Randomized linearly on each particle spawn.
+
+**size <min_size> <max_size>**
+
+Size of particle in game units, typical value is 4, randomized.
+
+**sizeincrease**
+
+This will make particle grow or diminish over time. is to how much utits to add or subtract per second. Note that while diminishing particle, engine will not check if particle will go to negative size, it will just invert it.
+
+**alpha <min_alpha> <max_alpha> <fade_rate>**
+
+Opacity of particles, 256 is opaque, 0 is transparent. Randomized. Could be more that 256 (to simulate fade delay). Fade rate is how huch alpha to throw away per second, once particle gets alpha 0 (full transparence), it gets removed.
+
+**time <min_time> <max_time>**
+
+Particle time-to-live in seconds, randomized.
+
+**gravity**
+
+Particle gravity modifier, 1 is full gravity, 0.5 is half etc., negative values are supported (particle go up).
+
+**bounce**
+
+Particle bounce-of-walls factor, 1 – bounce with full speed, 0.5 bounce with half speed. A value of -1 means particle will be removed on impact. Not that particle physics considered slow and spawning lots of bouncing particles is not recommended.
+
+**airfriction**
+
+Particle friction while moving in air, good option for smoke emitters. A value of 0 means no friction, negative values will do acceleration.
+
+**liquidfriction**
+
+Particle friction while moving in liquids.
+
+**originoffset**
+
+Offset particle spawning origin by this values. Coordspace are world, x – forward, y – right, z – up.
+
+**velocityoffset**
+
+Add this amount of constant velocity to particle on spawn.
+
+**originjitter**
+
+Like originoffset but each axis is jittered between -value/+value. Hence it is defining spherical shape of particle random spawning.
+
+**velocityjitter**
+
+Same as originjitter but for velocity.
+
+**velocitymultiplier**
+
+Multiply particle starting velocity (one that set by QC or engine, whatever calls effect) by this value. Useful with trails. Negative values are supported.
+
+**underwater**
+
+Sets underwater flag for particles. Particles that are underwater will be removed in air. Useful for water bubbles.
+
+**notunderwater**
+
+Sets notunderwater flag for particles. Particles that are notunderwater will be removed in liquid. Useful for fire particles.
+
+**trailspacing**
+
+This parm is only useful when effect is spawned as trail, defines a game units gap between effect invocations.
+
+**stretchfactor**
+
+A custom stretch factor that is used on sparks.
+
+**rotate <startangle_min> <startangle_max> <spin_min> <spin_max>**
+
+Used to rotate particle, first 2 parms is start angle, other two are spin velocity.
+
+## Particles leaving decals
+
+Particles can leave decals once hit something. For this behavior a special set of parms should be used. This section is unfinished, futher explanation is required.
+
+**staincolor <min_color> <max_color>**
+
+A randomized color for decal particle.
+
+**stainalpha <min_alpha> <max_alpha>**
+
+A randomized alpha.
+
+**stainsize <min_size> <max_size>**
+
+A randomized size.
+
+**staintex <min_index> <max_index>**
+
+A randomized index into particlefont.
+
+**stainless**
+
+Disables decal spawning and returns all parms to it’s default values.
+
+## Dynamic lights
+
+Dynamic realtime lights could be placed in particle effects (useful for explosions) with this range of parms. This parms applied just like standart ones.
+
+**lightradius**
+
+Radius of light in game units. Typical value is 200.
+
+**lightradiusfade**
+
+Radius fade rate, how many units to add/subtract per second. Once light reaches radius of 0 it gets removed.
+
+**lighttime**
+
+If radius fading not set, this parm can be used to define light life time.
+
+**lightcolor**
+
+A RGB-normalized light color, 1 1 1 is white, 0 0 1 is blue. Can exceed 1 (overbright light).
+
+**lightshadow**
+
+Cast shadows from light, value is 0 or 1.
+
+**lightcubemapnum**
+
+Sets a numbered cubefilter for light, cubemap texture is cubemaps/
+
+## Engine effect names
+
+Heres a list of effect names used by engine.
+
+```
+TE_GUNSHOT
+TE_GUNSHOTQUAD
+TE_SPIKE
+TE_SPIKEQUAD
+TE_SUPERSPIKE
+TE_SUPERSPIKEQUAD
+TE_WIZSPIKE
+TE_KNIGHTSPIKE
+TE_EXPLOSION
+TE_EXPLOSIONQUAD
+TE_TAREXPLOSION
+TE_TELEPORT
+TE_LAVASPLASH
+TE_SMALLFLASH
+TE_FLAMEJET
+EF_FLAME
+TE_BLOOD
+TE_SPARK
+TE_PLASMABURN
+TE_TEI_G3
+TE_TEI_SMOKE
+TE_TEI_BIGEXPLOSION
+TE_TEI_PLASMAHIT
+EF_STARDUST
+TR_ROCKET
+TR_GRENADE
+TR_BLOOD
+TR_WIZSPIKE
+TR_SLIGHTBLOOD
+TR_KNIGHTSPIKE
+TR_VORESPIKE
+TR_NEHAHRASMOKE
+TR_NEXUIZPLASMA
+TR_GLOWTRAIL
+SVC_PARTICLE
+```
+
+## Known bugs
+
+~~maps/mapname_effectinfo.txt does not add effects at the moment, but replaces the whole effects info~~\
+The Engine now appends mapname_effectinfo.txt to effectinfo.txt. In other words you can create additional effects for your map without changing effectinfo.txt
+
+</div>
\ No newline at end of file
index 3b65f837c1339d4f1fc826356649d7c2b1ca3f06..6450ce7ffb324ecc42bdb96280d9f38bde6fe3de 100644 (file)
@@ -8,6 +8,9 @@
 * `sv_eventlog_files_nameprefix`: file name prefix to be used 
 * `sv_eventlog_files_namesuffix`: file name extension to be used
 * `sv_eventlog_files_timestamps`: prefix log lines in the files with time events
+* `sv_eventlog_ipv6_delimiter`: change `:` in IPv6 addresses to `_` for easy parsing of :join lines with IPv6 IPs
+
+Also see: [Score logging](./Score-logging)
 
 ## Log format
 ```
@@ -15,7 +18,7 @@
 :gamestart:<gametype>_<mapname>:<matchid>
 :gameinfo:mutators:LIST:mutator1:mutator2:...
 ```
-(note that mutators are listed by their cvar name with g_ removed, unless such a cvar is 1 by default - then the mutator is listed with a no_ prefix if the cvar is 0)
+Note that mutators are listed by their cvar name with g_ removed, unless such a cvar is 1 by default - then the mutator is listed with a no_ prefix if the cvar is 0.
 ```
 :gameinfo:end
 :join:<ID>:<slot>:<ip>:<nickname>
 :name:<ID>:<nickname>
 :part:<ID>
 :team:<ID>:<team>:<jointype>
+:chat:<ID>:<message>
+:chat_team:<ID>:<team>:<message>
+:chat_spec:<ID>:<message>
 :kill:frag:<ID of killer>:<ID of victim>:type=<death type>:items=<itemstring of killer>:victimitems=<itemstring of victim>
 :kill:tk:<ID of killer>:<ID of victim>:type=<death type>:items=<itemstring of killer>:victimitems=<itemstring of victim>
 :kill:suicide:<ID>:<ID>:type=<death type>:items=<itemstring>
 :kill:accident:<ID>:<ID>:type=<death type>:items=<itemstring>
-:ctf:steal:<flagcolor>:<ID of attacker>
-:ctf:dropped:<flagcolor>:<ID of dropper>
-:ctf:pickup:<flagcolor>:<ID of attacker>
-:ctf:capture:<flagcolor>:<ID of attacker>
-:ctf:return:<flagcolor>:<ID of defender>
+:ctf:steal:<flagcolor>:<teamcolor>:<ID of attacker>
+:ctf:dropped:<flagcolor>:<teamcolor>:<ID of dropper>
+:ctf:pickup:<flagcolor>:<teamcolor>:<ID of attacker>
+:ctf:capture:<flagcolor>:<teamcolor>:<ID of attacker>
+:ctf:return:<flagcolor>:<teamcolor>:<ID of defender>
 :ctf:returned:<flagcolor>
 :dom:taken:<previouscolor>:<ID of player>
+:ft:autorevival:<ID of revived player>
+:ft:revival:<ID of revived player>:<ID of reviver1>,<ID of reviver2>,...
 :keyhunt:capture:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
 :keyhunt:carrierfrag:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
 :keyhunt:collect:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
@@ -66,7 +74,7 @@
 :time:<YYYY-MM-DD HH:MM:SS>
 :recordset:<ID of player>:<time in seconds>
 ```
-Note that only the :join and :player lines ever contain player names. The :time event only appears in the log files if sv_eventlog_files_timestamps is 1; there is no way to log these time stamps to the console (for console timestamps, set timestamps to 1).
+Note that only the :join, :name and :player lines ever contain player names. When splitting on ':', keep in mind that those 2 and (and all :chat* message texts) can contain ':'. The :time event only appears in the log files if sv_eventlog_files_timestamps is 1; there is no way to log these time stamps to the console (for console timestamps, set timestamps to 1).
 
 ### Team colors
 * 1 = No Team (Domination)
@@ -92,7 +100,7 @@ Note that only the :join and :player lines ever contain player names. The :time
 ### Item string
 `<weaponid><flags>` or `<weaponid><flags>|<buffs>`
 
-where flags can contain:
+Where flags can contain:
 * F = player carries the flag
 * S = player has strength
 * I = player has the shield
@@ -117,13 +125,16 @@ and weapon IDs are:
 Weapon IDs are below 10000.
 
 ### Death type
-either a weapon ID ORed with weapon death flags, or one of the notifications in common/deathtypes.qh in the form of a string.
+Either a weapon ID ORed with weapon death flags, or one of the notifications in `common/deathtypes.qh` in the form of a string.
 
-weapon death flags are:
+Weapon death flags are:
 * 256 = secondary fire
 * 512 = splash damage
 * 1024 = bounced projectile
 * 2048 = head shot (Vaporizer only)
 * 4096 = unused flag
 
-There will be a log analyzer parsing this file format soon.
\ No newline at end of file
+#### Example programs making use of event logs:
+
+* [incognico/erebus.pl](https://gitlab.com/incognico/erebus/-/blob/master/erebus.pl) - Links Discord<->Xonotic
+* [rcon2irc.pl](https://gitlab.com/xonotic/xonotic/-/blob/master/server/rcon2irc/rcon2irc.pl) Links IRC<->Xonotic (a bit outdated)
\ No newline at end of file
diff --git a/Exporting-a-weapon-for-Xonotic.md b/Exporting-a-weapon-for-Xonotic.md
new file mode 100644 (file)
index 0000000..2a34ee4
--- /dev/null
@@ -0,0 +1,249 @@
+_This article looks complete, [old methodology](#old-methodology) isn't a very complete section due to  the obsolescence._
+
+# _Table of Contents_
+> ### 1. [Modeling requirements](#modeling-requirements)
+> ### 2. [Introduction to export a weapon](#introduction-to-export-a-weapon)
+> ### 3. [Textures and UV map](#textures-and-uv-map)
+> ### 4. [Starting to export](#starting-to-export)
+> > 4.1. [Modifiers](#modifiers)<br/>
+> > 4.2. [Bones and animations](#bones-and-animations)<br/>
+> > 4.3. [Textures and materials](#textures-and-materials)
+> ### 5. [New methodology](#new-methodology)
+> > 5.1. [SMD (includes IQM converter and dpmodel guide)](#smd-includes-iqm-converter-and-dpmodel-guide)
+> ### 6. [Export troubleshooting](#export-troubleshooting)
+> ### 7. [Old methodology](#old-methodology)
+> > 7.1. [MD3](#md3)<br/>
+> > 7.2. [IQM](#iqm)
+
+# Modeling requirements
+### To follow this, you need knowledge about modeling using Blender
+
+Blender version recommended: [**2.79b**](https://download.blender.org/release/Blender2.79/) or [**later**](https://www.blender.org/)
+
+You need [dpmodel](https://icculus.org/twilight/darkplaces/files/) to convert SMD files:
+- [dpmodel tool](https://icculus.org/twilight/darkplaces/files/dpmodel20091008beta1.zip)
+
+Requires these following tools (addons) for Blender:
+- [IQM exporter](https://gitlab.com/xonotic/iqm) to export IQM files.
+- [Source Tools (SMD importer/exporter)](http://steamreview.org/BlenderSourceTools/archives/) to import/export SMD files.
+
+Optional:
+- [MD3 importer/exporter](https://github.com/neumond/blender-md3) to import/export MD3 files.
+
+***IMPORTANT NOTE**: if you want to contribute, it's strongly recommended using 2.79b version for compatibility cases, they need to open from this version. Share the .blend file using 2.79b or earlier , make sure to work properly from this version!*<br/>
+*If the version of a file is later than 2.79b, maybe some tweaks would need to take and would become tedious.*
+
+# Introduction to export a weapon
+**Keep in mind about weapon systems:**
+
+- `g_*.md3`: model mesh for item pickup spawn and third person.
+- `h_*.iqm`: for first person animations (if this step used [old methodology](#old-methodology) is a glue of `v_*`); the skeleton and the bones (the rigging and animation part). Keep in mind, you would need `*.iqm.framegroups` (more info: [Framegroups](framegroups), you can look `*.iqm.framegroups` opening a notepad to see what animations contain and the keyframes where these are set)
+- `v_*.md3`: model mesh for third person; if `h_*.iqm` doesn't match with the animations needed of `v_*.md3`, it will generate spamming errors and bad pivot position (usually happens in the [old methodology](#old-methodology)).
+
+More info: [Weapon modeling system](Weaponsystem)
+
+
+# Textures and UV map
+
+### For MD3 exportation:
+
+You have to add single material with single texture for every mesh object. Name of texture node will be written as is into MD3 data (suffixes like .001, .002 are ignored, feel free to use one texture for many meshes).
+<br />
+Keep in mind, when you've done your UV map in your model, you need to set this:
+<br />
+<br />
+<img src="uploads/efee46a2a80a232ebe5fa63e30f4e2d9/Md3exp.png" alt="Md3exp" width="300" />
+<br />
+Texture must:
+
+- be of **Image** type
+- mapping type **UV**
+- have UV map assigned
+
+otherwise resulting data block will be filled with zeroes.
+<br />
+<br />
+<img src="uploads/c48fb7565453eab24faca2d6ffec4347/Md3_textures.png" alt="Md3_textures" width="360" />
+<br />
+<br />
+If you didn't this, the model will be invisible and it won't be able to interact shaders.
+<br />
+<br />
+[Blender reference about UV in MD3](https://archive.blender.org/wiki/index.php/Extensions:2.6/Py/Scripts/Import-Export/MD3/)
+
+# Starting to export
+
+## Modifiers
+
+Keep in mind, you need to set these modifiers for the mesh/model object: 
+
+<img src="uploads/447f6abe0f73c6d6cadce97e4ed66e8b/blendermodifiersiqmandmd3.jpg" alt="blendermodifiersiqmandmd3" />
+
+## Bones and animations
+
+MUST contain `tag_handle`, `tag_shell` and `tag_shot` bone names attached. These tag_names MUST be attached, if not the model will cause errors.
+
+`tag_Somename` is another one, you can add if you need some optional animation in this bone. (Not useful for [old methodology](#old-methodology))
+
+Moreover, watch out about position and rotation. `h_*.iqm` alterates the position and rotation of `v_*.md3`. The positions may not be equal.
+
+`g_*` and `v_*` MUST contain one bone. The animations can't be included. It isn't like `h_*`.
+
+Required animations and in the correct order: 
+- `fire`
+- `fire2`
+- `idle`
+- `reload`
+
+## Textures and materials
+
+Please note that before exporting, about textures and materials, you have to assign the same as the script like this example shader file (`crylink.shader` file):
+```
+crylink_new // your material name
+{
+       dpreflectcube cubemaps/default/sky
+       {
+               map textures/crylink_new.tga // the texture you wanna display in-game, make sure to test in Blender!
+               rgbgen lightingDiffuse
+       }
+}
+```
+Note: `crylink_new` must appear in the material.
+<br/><br/>Material:<br/>
+<img src="uploads/abef98eaddd7c61bec7eb467efe4c3fe/crylinkblendermaterialsample.jpg" alt="crylinkblendermaterialsample" width=920 />
+<br/>
+
+# New methodology
+
+You can make optional customized animations adding bones for the animations.
+
+## SMD (includes IQM converter and dpmodel guide)
+
+Use Source Tools addon in Blender to export the model and animations. 
+
+- For `h_*`:<br/>
+Select the mesh and 1 animation and click Export, you need to export all animations one per one: 
+<br/><img src="uploads/3775545047aa58d6e4fcb37df4f500a1/blenderSMDexport1.jpg" alt="blenderSMDexport1" width=380 /><br/><br/>
+Repeat the process:<br/><img src="uploads/b7c8b250fc1af6b30c999506e7143930/blenderSMDexport2.jpg" alt="blenderSMDexport2" width=350 /><br/><br/>
+<img src="uploads/9e9efa19232d1c47fd982ad0da2eb1df/blenderSMDexport3.jpg" alt="blenderSMDexport3" width=350 /><br/><br/><img src="uploads/2c929b6993d5e370c1d5498a03cb4ba8/blenderSMDexport4.jpg" alt="blenderSMDexport4" width=350 />
+<br/><br/>
+
+- For `g_*` and `v_*`:<br/>
+Just select the mesh:
+<br/><img src="uploads/ec37639792378bb6ef9684b19d45a056/blenderSMDexport5.jpg" alt="blenderSMDexport5" width=350 /><br/>
+
+Use `iqm.exe` from [IQM exporter](https://gitlab.com/xonotic/iqm), in Windows, in CMD execute for convert SMD to IQM for `v_*` and `g_*`: <br/>`iqm v_myweapon.iqm v_mesh.smd`
+<br/>`iqm g_myweapon.iqm g_mesh.smd`
+<br/><br/>Linux: `./iqm.exe g_myweapon.iqm g_mesh.smd`
+<br/>`./iqm.exe v_myweapon.iqm v_mesh.smd`
+
+Rename extension to MD3: <br/>`g_myweapon.iqm` to `g_myweapon.md3`<br/>and `v_myweapon.iqm` to `v_myweapon.md3`
+
+Use dpmodel tool to generate `h_myweapon.dpm` and `h_myweapon.dpm.framegroups`, in command line execute: `dpmodel yourconfig.txt`
+<br/>More info explained about dpmodel tool: [dpmodel](dpmodel)
+<br/>Rename extension to IQM: `h_myweapon.dpm` to `h_myweapon.iqm` and `h_myweapon.dpm.framegroups` to `h_myweapon.iqm.framegroups`.
+
+Save those compiled model files into `models/weapons/` folder where they belong.
+
+**Conclusion**: Sometimes, renaming formats can be useful to save effort. Note: it's a kind of weird way to do stuff, file formats are hardcoded in the gamecode rather than dynamically obtained. The issue of model resources was found here: https://gitlab.com/xonotic/xonotic-data.pk3dir/-/issues/2629#note_686988936
+
+# Export troubleshooting
+
+- _**Spamming CSQC errors:**_<br/>
+If you received spamming errors like that:<br/>
+<img src="uploads/1f769ede89975be78d88eaad1b062a3d/spammingerrorstagweapon.jpg" alt="spammingerrorstagweapon" width=450 /><br/>
+It's because you didn't do correctly the steps after exporting the models. Remember, `g_*` and `v_*` MUST contain one bone. 
+
+- _**Broken shadow artifacts (enabled with `r_shadows 2` and disabled `r_shadow_shadowmapping 0`):**_<br/>
+To solve this, the possible way is exporting to IQM from Blender, selecting bone and mesh (both highlighted). Usually, this issue happens in `g_*` and `v_*` ones.
+<br/>Reference: https://gitlab.com/xonotic/xonotic-data.pk3dir/-/issues/2667
+
+- _**When exporting to IQM, get duplicated names in the texture:**_<br/> 
+<img src="uploads/cdb90908aab4a52580019c871a936156/duplicatedtexturenameloadingerror.jpg" alt="duplicatedtexturenameloadingerror" width=700 /><br/>
+Take a closer look what is telling here:<br/>
+_The "Materials" option controls how material names are generated. "material+image-ext" combines the name of the material and the name of the UV-map image (without its extension or directory) to generate the material name, "material" uses only the name of the material, and "image" just uses the name of the UV-map image (without its directory)._ <br/><br/>
+When you export to IQM, you need to watch out that detail after selected File > Export > Inter-Quake Model (.iqm, .iqe).<br/>
+Pay attention to this [section](##textures-and-materials) when you need to export correctly, the material/texture(image) should be one thing, so do the following: Export IQM > Materials: > select `material` or `image` instead `material+image-ext`.<br/>
+<img src="uploads/4fa75dca8ebb724b89d5fd5513fd2787/exportiqmiqeblenderdetails.jpg" alt="exportiqmiqeblenderdetails" width=200 /><br/>
+
+- _**Model scale animations aren't working:**_<br/> 
+SMD format doesn't support bone scaling animations, although you try to compile them into dpmodel tool, it won't change nothing. More info here: https://steamcommunity.com/groups/BlenderSourceTools/discussions/1/152392786900223348/ <br/>
+Same goes for IQM.
+
+# Old methodology
+
+*Note: this section is obsolete.*
+
+**IMPORTANT**: In this methodology, you can't make cool animations with separated objects, because `h_*.iqm` here is a plane mesh with bones.
+
+Note: the model should be rotated as YXZ, instead being XYZ. Because the tip of the weapon is Y, horizontally is X.
+
+`tag_weapon` is a MUST bone for this methodology.
+
+## MD3
+
+Before to export, you need to select all objects in the scene. (Pressing A, seeing all objects highlighting orange or red)
+
+<img src="uploads/f3f39c9a06a408bffd5e48bc5e07eac6/exporttutorialMD3.jpg" alt="exporttutorialMD3" />
+
+And export the model to MD3. _Attention: You can't export a model over than 8192 triangles/polys._
+
+## IQM
+
+Before to export, you need to select all objects and bones in the scene. (Pressing A, seeing all objects highlighting orange or red)
+
+<img src="uploads/7df860d73a6fae27408c8f0c024122c7/exporttutorialIQM.jpg" alt="exporttutorialIQM" />
+
+<br/>
+<br/>
+
+For `h_*.iqm`, you will need to make a simple plane with a scale reduced to 0.01 and the following bones attached: `tag_weapon`, `tag_shell` and `tag_shot`.
+
+There's a post from InsideQC Forums explaining about IQM:
+
+There is a simple way:
+
+You just can use an iqm model like a regular mdl file, you only need to use each frame as a framegroup.
+
+For example, if you have an iqm called "rocketlauncher.iqm" with 20 frames you need to create a framegroup file with notepad like this:
+
+```
+1 1 1 0  
+2 1 1 0  
+3 1 1 0  
+4 1 1 0  
+5 1 1 0  
+6 1 1 0  
+7 1 1 0  
+8 1 1 0  
+9 1 1 0  
+10 1 1 0  
+11 1 1 0  
+12 1 1 0  
+13 1 1 0  
+14 1 1 0  
+15 1 1 0  
+16 1 1 0  
+17 1 1 0  
+18 1 1 0  
+19 1 1 0  
+20 1 1 0  
+```
+So you will save it with the name.
+
+"rocketlauncher.iqm.framegroups" and place it in the same directory where "rocketlauncher.iqm" is located.
+
+About the framegroups file (explained on [Framegroups](framegroups)):
+
+The first number represents the start frame of the animation (.framegroups files always start at frame 0, some modeling software starts at 1, so you might have to subtract 1 for the start frame).
+
+The second number represents how many frames is in that specific frame group.
+
+The third number is the frame rate at which the sequence plays. This is independent from what the monsters "think" rate is, which I have set at 10 frames-per-second.
+
+The fourth number is whether the frame sequence loops. 1 for true, 0 for false. The only frame groups that should loop are the standing, walking and running animations.
+
+It becomes very tedious to make framegroups for models with really many frames, you can use this sample generated for the DarkPlaces model compiler. It will work in every iqm model (if you wan you only need to cut the specific number of frames in the framegroups file, but it will work anyway)
+
+Reference: [IQM animation framegroups (InsideQC Forums)](https://forums.insideqc.com/viewtopic.php?p=55949&sid=952cd347938ae5f2bb8bde276b5a35cd#p55949)
+
index 0732cc4801992d5aa9b57d182fb03c1d2f983dc8..fd13dc520306357a7dbbee176eead03d3b0446b3 100644 (file)
@@ -14,6 +14,9 @@ Graphics Features
 -   [Skeletal Animation](Modeling)
 -   [Scriptable Surface Materials](Materials)
 -   Reflective/Refractive Water
+-   High dynamic range/iris adaptation to light levels
+-   Global illumination
+-   Chromatic aberration
 
 Supported Formats
 -----------------
@@ -50,3 +53,4 @@ Supported Formats
 -   WAV
 -   OGG
 -   CD Audio
+-   libxmp module sound
diff --git a/Freesh-Meat-Mod.md b/Freesh-Meat-Mod.md
new file mode 100644 (file)
index 0000000..d50361e
--- /dev/null
@@ -0,0 +1,51 @@
+This mod is in use on the Freesh Meat servers, maintained by h0tc0d3, and contains the following modifications:
+
+- Added voting for game type modifiers.
+    ![Freesh Meat Club Game Mods](https://freshmeat.fun/gamemod/gamemods.jpg)
+  - [https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/63bbaec218093e16509de0ad799151a337bc2acf](https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/63bbaec218093e16509de0ad799151a337bc2acf)
+
+    - <img src="https://freshmeat.fun/gamemod/arc.png" alt="arc" width="64" height="64" /> Replace Machinegun with Arc(Shaft in Quake)
+    - <img src="https://freshmeat.fun/gamemod/allweapons.png" alt="arc" width="64" height="64" /> Infinity Weapons
+    - <img src="https://freshmeat.fun/gamemod/superweapon.png" alt="arc" width="64" height="64" /> Super Weapon
+    - <img src="https://freshmeat.fun/gamemod/overkill.png" alt="Overkill" width="64" height="64" /> [Overkill](https://xonotic.org/okguide/)
+    - <img src="https://freshmeat.fun/gamemod/nade.png" alt="Nade" width="64" height="64" /> [Nades](https://gitlab.com/xonotic/xonotic/-/wikis/Nades)
+    - <img src="https://freshmeat.fun/gamemod/nix.png" alt="NIX" width="64" height="64" /> [NIX - Random Weapon Mod](https://gitlab.com/xonotic/xonotic/-/wikis/NIX)
+    - <img src="https://freshmeat.fun/gamemod/skill.png" alt="Skill" width="64" height="64" /> Skill - Reduce hagar and electro power. Which reduces the noskill advantage.
+      - [https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/1057](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/1057)
+      - [https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/1056](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/1056)
+    - <img src="https://freshmeat.fun/gamemod/powerup.png" alt="Powerup" width="64" height="64" /> Powerups in game
+    - <img src="https://freshmeat.fun/gamemod/buff.png" alt="Buff" width="64" height="64" /> Buffs in game
+    - <img src="https://freshmeat.fun/gamemod/hook.png" alt="Grappling Hook" width="64" height="64" /> [Grappling Hook](https://gitlab.com/xonotic/xonotic/-/wikis/Grappling-Hook)
+    - <img src="https://freshmeat.fun/gamemod/xpm.png" alt="Xonotic PRO Mode" width="64" height="64" /> [Xonotic PRO Mode](https://xonotic.fandom.com/wiki/Mods)
+    - <img src="https://freshmeat.fun/gamemod/instagib.png" alt="Instagib" width="64" height="64" /> [Instagib](https://gitlab.com/xonotic/xonotic/-/wikis/InstaGib)
+
+- Added random movement and dodging for the bot. Which makes the game more like playing with a human. The bot also moves more left-right than back and forth to make it more like a strafe. [https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/b2c1e5641fd45e2dad12fb422c85289b195e70bc](https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/b2c1e5641fd45e2dad12fb422c85289b195e70bc)
+
+- Added hats for players models
+  - [https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/92b99b188640c63d3e934a22dc5fa2f06739e1ba](https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/92b99b188640c63d3e934a22dc5fa2f06739e1ba)
+
+- Added improved weapon effects. Allows you to better dodge and direct missiles. Enable: cl_particles_pro 1
+  - [https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/d42f9d1da8298465ba72dec11ad5bff6ef61937b](https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/d42f9d1da8298465ba72dec11ad5bff6ef61937b)
+
+- Improved voting window for maps and game type. Decrease title font size and raise it higher. The title looked disproportionate and wasted usable space. Solve the problem of incorrectly cropped text.
+  - [https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/f4aca361e835a9e49673afb5427a70297fc34185](https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/f4aca361e835a9e49673afb5427a70297fc34185)
+
+- Improved scoreboard. The game type font is too big and looks disproportionate. Most of the information did not fit on the screen. Brings the scoreboard to a more familiar look like in other games.
+  - [https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/5289a443562381f7c8a03e95df438bf702c9710e](https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/5289a443562381f7c8a03e95df438bf702c9710e)
+
+
+Complete source code (except possibly for server-only changes that do not affect csprogs.dat or other code sent to clients) to be found on [https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commits/archlinuxclub/](https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commits/archlinuxclub/)
+
+Build command:
+
+`make qc QCCFLAGS_WATERMARK=xonotic-v0.8.5_r9-votpidor-edition`
+
+Icons used:
+- https://www.flaticon.com/authors/amethystdesign
+- https://www.flaticon.com/authors/justicon
+- https://www.flaticon.com/authors/febrian-hidayat
+- https://www.flaticon.com/authors/smalllikeart
+- https://www.flaticon.com/authors/those-icons
+- https://www.flaticon.com/authors/flatart-icons
+- https://www.freepik.com/
+- https://flat-icons.com/
index 9d8dfd4d37a3a9c29539ccdfb872e3b449c6e595..1a654e9d2e4ae38a37ed3522504379cda8bcbcd5 100644 (file)
@@ -6,18 +6,23 @@ Freeze Tag
 Object of the Game
 ------------------
 
-Freeze Tag is basically like [TDM](Team-Deathmatch), with 2 teams (red & blue). But instead of fragging your enemies – you freeze them into an ice cube. Once a team is 100% frozen the other team gets 1 point (10 to win).
-But (!): Frozen players can be unfrozen (“revived”).
+Freeze Tag is a round-based game with teams. The objective is to freeze all the opposing teams, until only one team remains. Freeze Tag can be played with 2-4 teams.
+
+When a player is fragged, they are frozen. Frozen team mates can be unfrozen by standing close to them.
+
+The surviving team wins the round and collects 1 point. By the default rules, the first team to reach 10 points in total, or the first team to be 6 points in the lead, wins the match. (The score requirement can of course be changed.)
 
 How To:
 
 - Freeze an enemy? Just shoot at him until he is frozen (its similar to a frag).
 - Revive a teammate? Stand close to a frozen teammate for some seconds (it shows for how long you need to stay).
 
-Map Entities
-------------
+Other rules
+-----------
 
-_(Insert Map Entities here)_
+* Players will unfreeze themselves automatically after 60 seconds
+* When you fall into the bottomless pit, you will respawn frozen
+* When you join in a round in progress, you spawn frozen
 
 Helpful Hints and Tips
 ----------------------
@@ -25,12 +30,4 @@ Helpful Hints and Tips
 - Some maps can contain powerups like “[Strength](Powerups#strength)” or “[Shield](Powerups#shield)” (which usually 
 spawn every 2 minutes). They can be useful tools to win a match!
 - [Binds](Binds) are very useful again to coordinate the team.
-- You can freeze (or get frozen) in e.g. lava too! Also if you fall into space you will respawn frozen.
-
-List of Demos and Videos
-------------------------
-
--   Demo: _(Insert Demo or Video Here)_
--   Players: _(Insert Player Names Here)_
--   Key Points: _(Insert key points in match here)_
-
+- You can freeze (or get frozen) in e.g. lava too! Also if you fall into space you will respawn frozen.
\ No newline at end of file
diff --git a/Git.md b/Git.md
index 37b340a3651820471015674b7be21a6d0aa59e63..3fa3aaa30f92b32541e4b6d4c30ef27e3663314f 100644 (file)
--- a/Git.md
+++ b/Git.md
@@ -1,9 +1,10 @@
-Git
-===
-
 Cloning the repository
 ----------------------
 
+    git clone https://gitlab.com/xonotic/xonotic.git
+    cd xonotic
+     ./all update -l best
+
 Expected time (~2.5MiB/s): ~2m (initial checkout) + ~75m (./all update)  
 Expected size: 11.7 GiB
 
@@ -17,10 +18,6 @@ Expected size: 11.7 GiB
 |maps       |5.6 GiB|
 |gmqcc      |22 MiB|
 
-    git clone https://gitlab.com/xonotic/xonotic.git
-    cd xonotic
-     ./all update -l best
-
 After cloning the repository
 ----------------------------
 
@@ -30,7 +27,7 @@ Please check [Repository Access](Repository_Access) to make sure you checked out
 Compiling
 ---------
 
-Run `./all compile` to compile the engine and gamecode. Add `-r` for a faster release build without debugging symbols.
+Run `./all compile` to compile the engine and gamecode. Add `-d` to include debugging symbols.
 
 Running
 -------
index 48cb9678720bb8e9793ec60bbbc3da99ce58dd6d..6cdf67887d2a8cc0304c076c23ed9f345cc92e5e 100644 (file)
@@ -1,26 +1,17 @@
-Grappling Hook Mutator:
-=======================
+Grappling Hook mutator
+======================
+The “**Grappling Hook**” mutator gives all players an off-hand [Grappling Hook](Weapons#grappling-hook). Players can use the grappling hook to move around and still frag their opponents at the same time!
 
-Overview
---------
+The grappling hook fires a chain that attaches to surfaces and drags you towards it. To fire, press the “hook” key (default: E).
 
-This mutator adds an extra weapon to each players default spawn weapons: the [Grappling Hook](Weapons#grappling-hook)
-. This weapon fires a particle beam that will travel a long distance until it hits a solid surface. Once latched onto
- something, the gun will immediately swing you there. It does not require external ammunition, but it has a charge 
- that slowly regenerates over time (marked by a yellow bar above the Health and Armor meters in the HUD). The hook 
- adds an extra challenge to fighting matches, and it also makes both surprise ambushes and miraculous escapes 
- possible. Additionally, areas with powerups or weapons that were previously unreachable are now up for grabs, making
-  matches involving “[Strength](Powerups#strength)” and “[Shield](Powerups#shield)” powerups much more 
-  interesting.
+Details
+-------
+A detailed description of the grappling hook is given [here](Weapons#grappling-hook), but in this mutator, the grappling hook behaves differently:
 
-Mutator Details
----------------
-
--   Grappling hook information:
-    -   *Primary*: Fires the hook, latches onto a surface, pulls the player there, and then detaches. Press and hold the <FIRE> button to keep the hook attached for longer, but this depletes the charge quickly.
-    -   *Secondary*: Drops a gravity bomb that affects enemy players and also releases light and smoke (similar to a flashbang).
-    -   *Ammunition*: Regenerating charge (Primary), [Cells](Weapons#cells) (Secondary).
--   Using the default keybinds, the Grappling Hook should should be in weapon **slot 0** (‘zero’).
--   The Grappling Hook is *not* a hitscan beam! Depending on the distance, it may take a second or two for the hook to actually reach its destination, so use careful timing if using it for an escape!
--   Conserve your charge. It may take a while to regenerate, so don’t consume it all at once.
+* You have infinite shots (no fuel required)
+* The grappling hook is off-hand, you can't and needn't select it as a weapon
+* The secondary fire is not available
 
+CVars
+-----
+Use the [CVar](CVars) `g_grappling_hook` to enable this mutator.
\ No newline at end of file
diff --git a/Gravity.md b/Gravity.md
new file mode 100644 (file)
index 0000000..9d831cb
--- /dev/null
@@ -0,0 +1,8 @@
+Gravity
+-------
+
+Gravity can be increased or reduced using a mutator. Also, in the mutator selection window, you can enable low gravity and select a gravity percentage.
+
+CVar
+----
+Gravity is controlled with the [CVar](CVars) `sv_gravity`. The higher the value, the higher the gravity.
\ No newline at end of file
diff --git a/Home.md b/Home.md
index 05b2fdf54b02b76836fd6c29913ee6c822dfb7e1..0e4904b789b64690f49cc7d3d78895ae35b37496 100644 (file)
--- a/Home.md
+++ b/Home.md
@@ -7,7 +7,8 @@ Welcome to the Xonotic wiki. If you wish to contribute, see [Editing](Editing).
 -      [Website](http://xonotic.org)
        -       [Forums](http://forums.xonotic.org) are a lively place for Xonotic players to discuss anything.
        -       [Xonotic game stats](http://stats.xonotic.org/) show useful statistics information about servers, players, scores, maps, etc.
--      [IRC channels](Channels) are where most players ask/answer questions, exchange ideas, organize game events, etc. in **real time**. You can even chat with players in the game.
+-      [Matrix and IRC channels](Chat-Rooms) are where most players ask/answer questions, exchange ideas, organize game events, etc. in **real time**. You can even chat with players in the game.
+-      [Discord](Chat-Rooms#discord): there is also an unofficial Discord server that serves more or less the same purpose as the IRC channels.
 -      [Facebook](https://www.facebook.com/xonotic/)
 -      [Twitter](https://twitter.com/xonotic)
 
@@ -16,18 +17,34 @@ Welcome to the Xonotic wiki. If you wish to contribute, see [Editing](Editing).
 ### Tutorials
 - [HALOGENE’S NEWBIE CORNER](https://xonotic.org/guide/) has rich information for beginners. **Must read!** You will enjoy the game more!
 - [Overkill Tutorial](https://xonotic.org/okguide/)
+- [Creating bot waypoints](https://gitlab.com/xonotic/xonotic/-/wikis/Creating-bot-waypoints)
+
+### Unofficial map repositories
+- [xonotic.fps.gratis](http://xonotic.fps.gratis/) (or [dl.xonotic.fps.gratis](http://dl.xonotic.fps.gratis/) for a simple list that loads faster) - Run by [-z-](https://github.com/z/)/[detrate](https://gitlab.com/detrate).
+- [gnome.xonotic.in.ua](http://gnome.xonotic.in.ua/)
+- [xon.recombi.net](http://xon.recombi.net/) (or [xon.recombi.net/dl](http://xon.recombi.net/dl/) for a simple list that loads faster) - Has content from both [fps.gratis](http://xonotic.fps.gratis/) and [gnome](http://gnome.xonotic.in.ua/), [fps.gratis](http://xonotic.fps.gratis/) has precedence in case of conflict.
+-   [naitlee.github.io/map-repo-poc](https://naitlee.github.io/map-repo-poc/) - Stylized Xonotic map repository. Better performance. Run by [NaitLee](https://github.com/NaitLee).
+
+### Unofficial Web-based Server Lists
+-   [dpmaster.deathmask.net](http://dpmaster.deathmask.net/?game=xonotic)
+    - one of the 2 active master servers, shows servers from only one master at a time (itself by default)
+    - web interface not open source
+    - see page source for list of URL parameters - e.g. [`master=dpmaster.tchr.no`](http://dpmaster.deathmask.net/?game=xonotic&master=dpmaster.tchr.no) to view the other master (which has no web interface)
+-   [arena.sh/xo](https://arena.sh/xo/) - run by *nmc* on discord
+-   [xonotic.lifeisabug.com](https://xonotic.lifeisabug.com/) - run by *incognico* on discord
 
 ### Game Mechanics
--   [Maps](Maps)
--   [Players](Players)
--   [Items](Items)
--   [Vehicles](Vehicles)
--   [Weapons](Weapons)
+- [Maps](Maps)
+- [Players](Players)
+- [Items](Items)
+- [Vehicles](Vehicles)
+- [Weapons](Weapons)
+- [Monsters](Monsters)
 
 ### Game Modes (or Game Types)
 In Xonotic, game modes and game types mean the same thing -- different modes/types have different goals to achieve in a game.
 
-The following modes are more popular ones:
+The following modes are the more popular ones:
 
 -   [Capture the Flag](Capture-the-Flag)
 -   [Clan Arena](Clan-Arena)
@@ -36,59 +53,82 @@ The following modes are more popular ones:
 -   [Freeze Tag](Freeze-Tag)
 -   [Keepaway](Keepaway)
 -   [Key Hunt](Key-Hunt)
+-   [Mayhem](Mayhem)
 -   [Race CTS](Race-CTS)
 -   [Team Deathmatch](Team-Deathmatch)
+-   [Team Mayhem](Team-Mayhem)
+-   [Team Keepaway](Team-Keepaway)
+
 
 The following modes are available, although slightly less common than the above:
 
--   [Arena](Arena) (removed)
 -   [Assault](Assault)
--   [Invasion](Invasion)
 -   [Domination](Domination)
 -   [Last Man Standing](Last-Man-Standing)
 -   [Nexball](Nexball)
 -   [Onslaught](Onslaught)
 -   [Race](Race)
+-   [Survival](Survival)
+
+Old/experimental modes:
+
+-   [Invasion](Invasion) (experimental)
+-   [Arena](Arena) (removed)
+
+The following modes are mods:
+-   [Murder in Megaerebus Manor](Murder-in-Megaerebus-Manor)
 
 ### Standard Mutators
 Mutators change the configuration of the game play, e.g. how weapon appears, which special weapons are availabale, or the physics in the game. This is usually set by the game admins who set up games for other players. Standard Mutators are available in the game menu.
 
+Gameplay mutators:
+
 -   [Dodging](Dodging)
+-   [Touch Explode](Touch-Explode)
+-   [Cloaked](Cloaked)
+-   [Buffs](Buffs)
 -   [Midair](Midair)
 -   [Vampire](Vampire)
 -   [Blood Loss](Blood-Loss)
--   [Low Gravity](Low-Gravity)
--   [Cloak](Cloak)
--   [Relics](Relics)
--   [Weapon Arena](Weapon-Arena)
+-   [Low Gravity](Gravity)
+
+Weapon/item mutators:
 -   [Grappling Hook](Grappling-Hook)
--   [Offhand blaster](Offhand-blaster)
--   [Jet Pack](Jet-Pack)
+-   [Jetpack](Jetpack)
+-   [Invincible Projectiles](Invincible-Projectiles)
+-   [New Toys](new-toys)
 -   [Rocket Flying](Rocket-Flying)
--   [Pinata](Pinata)
+-   [Piñata](Pinata)
 -   [Weapons Stay](Weapons-Stay)
+
+Arena mutators:
+-   [Weapon Arena](Weapon-Arena)
 -   [InstaGib](InstaGib)
 -   [NIX](NIX)
+
+Other mutators:
+-   [Nades](Nades)
+-   [Offhand blaster](Offhand-blaster)
 -   [Dynamic handicap](dynamic-handicap)
--   [New Toys](new-toys)
+-   [Relics](Relics) (experimental)
 
 ### [Special Servers](Special-Servers)
 
 ### [Mods](Mods)
-
-### Unofficial Web-based Server Lists
--   [dpmaster.deathmask.net](http://dpmaster.deathmask.net/?game=xonotic) - one of the 2 master servers, doesn't always have all servers but the other one doesn't have a web interface
--   [arena.sh/xo](https://arena.sh/xo/) - run by @nmc on discord
--   [xonotic.lifeisabug.com](https://xonotic.lifeisabug.com/)
+- [SMB modpack (contains git dev guide about how is built)](SMB-modpack)
+- [BaI mod](BaI-mod)
+- [Fresh Meat Mod](Freesh-Meat-Mod)
 
 ### Misc
 -   [Autobuilds](Autobuilds)
+-   [Compiling](Compiling)
 -   [Privacy and Security](privacy-and-security)
 -   [Handicap](handicap)
 -   [Camera for demos explained](Demo-Camera)
 -   [Capturing video clips and using the demo camera](Democapture)
 -   [Xonotic Bot Orchestra](Xonotic-Bot-Orchestra)
 -   [Impulse map](impulse-map)
+-   [Console Tips & Tricks](https://forums.xonotic.org/showthread.php?tid=2987) - introduction to console scripting (cvars, aliases, hooks, conditions, RPN)
 -   [Hardware Requirements](Hardware-Requirements)
 
 
@@ -106,6 +146,9 @@ Mutators change the configuration of the game play, e.g. how weapon appears, whi
 -   [Event logging](Event-logging)
 -   [Score logging](Score-logging)
 
+### Moderation
+-   [Moderation tools](Moderation-tools)
+
 ### Troubleshooting
 -   [Performance](https://forums.xonotic.org/showthread.php?tid=7374&pid=80938#pid80938)
 
@@ -115,7 +158,8 @@ Mutators change the configuration of the game play, e.g. how weapon appears, whi
 
 ## Development
 
--   [Repository Access](Repository_Access) (how to compile from git) (see also [Git repo structure](Git))
+-   [Repository Access: Compiling and Requesting Push Access](Repository_Access)
+-   [Git: HowTo and Repository Structure](Git)
 -   [Licensing / Legal](Legal)
 
 ### Programming
@@ -123,6 +167,16 @@ Mutators change the configuration of the game play, e.g. how weapon appears, whi
 -   [DarkPlaces Wiki](DarkPlaces-Index)
 -   [Writing your first mutator](writing-your-first-mutator)
 -   [Tips for new developers](Programming-Tips)
+-   [Programming QuakeC stuff in Xonotic
+](Programming-QuakeC-stuff-in-Xonotic)
+
+### [Translating](Translating)
+-   [Translation website](https://www.transifex.com/team-xonotic/xonotic/dashboard/)
+-   [Translation guidelines](Translation-guidelines)
+     -   [List of translation placeholders](List-of-translation-placeholders)
+     -   [List of color codes](List-of-color-codes)
+     -   [List of translation prefixes](List-of-translation-prefixes)
+-   [How to test your translations](Test-your-translations)
 
 ### [Modeling](Modeling)
 -   [Textures know-how](Textures)
@@ -130,7 +184,8 @@ Mutators change the configuration of the game play, e.g. how weapon appears, whi
 -   [.framegroups](framegroups) file (allow self playing animations) know-how
 -   [.sounds](Voices-and-sounds) file (player model sounds) know-how
 -   [How to compile dpm models](dpmodel)
--   [How to make weapons](Weaponsystem)
+-   [Weapon modeling system](Weaponsystem)
+-   [Exporting a weapon for Xonotic](Exporting-a-weapon-for-Xonotic)
 -   How to get an animated mesh from [Blender to DPM](Blender-to-DPM)
 -   [Inter-Quake Model (IQM) Format](http://sauerbraten.org/iqm/)
 -   [Player Model Spec](Player-Model-Spec)
@@ -143,6 +198,9 @@ Mutators change the configuration of the game play, e.g. how weapon appears, whi
 -   Some [tips](http://forums.xonotic.org/showthread.php?tid=63&pid=445#pid445) by *FruitieX*
 -   [Q3A Shader Manual](http://toolz.nexuizninjaz.com/shader/)
 
+### Effects and particles
+- [Effectinfo Scripting](Effectinfo-Scripting)
+
 ### [Mapping](Mapping)
 -   [Creating Maps](Creating-Maps)
 -   [Mapper resources](Mapper-resources)
@@ -150,7 +208,6 @@ Mutators change the configuration of the game play, e.g. how weapon appears, whi
 ### Arts & Media
 -   [Artistic Style](Artistic-Style)
 -   [Xonotic Logo](Logo)
--   [Weapons Makeover](Weapons-Makeover)
 -   [Music](Music)
     -   [Music contributions](Music-contributions)
 -   [Sound FX](Sound-FX)
@@ -159,8 +216,11 @@ Mutators change the configuration of the game play, e.g. how weapon appears, whi
     -   [Close to home](Close-to-home)
     -   [Tech Conglomerate](Tech-Conglomerate)
 
+### Campaigns
+-   [Creating campaigns](Creating-campaigns)
+
 
 ## Misc
 
 -   [Archive](Archive)
--   [Gitlab Markdown Reference](https://gitlab.com/help/user/markdown.md) (for editing this wiki)
+-   [Gitlab Markdown Reference](https://gitlab.com/help/user/markdown.md) (for editing this wiki)
\ No newline at end of file
index f8e41a20d9eef580ea7357133e18b08872dd2faf..f4625881705a86976a07fbe864bad528012c2887 100644 (file)
@@ -1,18 +1,43 @@
-InstaGib Mutator:
-=================
+InstaGib
+========
 
 Overview
 --------
 
-InstaGib replaces all weaponry with the [Vortex](Weapons#minstanex). It is a powerful hitscan weapon that will immediately kill the target player in one shot. InstaGib is a popular mutator that mixes well with almost all gamemodes and may be included in many Xonotic servers. When participating in an InstaGib match, one must have particularly good aim and conserve shots whenever possible.
+InstaGib is a mutator that replaces all weaponry with the [Vaporizer](Weapons#vaporizer). It is a powerful hitscan weapon that will immediately kill the target player in one shot (unless they got an extra life).
 
-Mutator Details
+InstaGib is a popular mutator that mixes well with almost all game modes and may be included in many Xonotic servers. When participating in an InstaGib match, one must have particularly good aim and conserve shots whenever possible. Because if you run out of ammo for 10 seconds, you will suicide.
+
+Rules
+-----
+
+* Vaporizer:
+    * Everyone spawns with the Vaporizer with 10 cells
+    * The Vaporizer consumes 1 cell per shot
+    * If you don't have ammo for 10 seconds, you suicide and might lose a point (depends on game mode)
+    * The secondary fire of the Vaporizer doesn't deal damage
+* Extra Lives
+    * Extra lives act like armor: If a player is shot while having one or more extra lives, they will survive the shot but suffer a strong pushback
+    * The number of your extra lives is shown in the HUD as armor
+* Items and powerup replacements:
+    * Strength [powerup](Powerups) is replaced by Invisibility
+    * Shield powerup is replaced by Speed
+    * [Mega Health](Items) is replaced by Extra Life
+* If you took damage from the enviroment (e.g. lava), this will reduce the countdown timer when you run out of ammo. You can restore your health back to 100 by collecting ammo
+
+Collectibles and powerups
+-------------------------
+* Vaporizer (dropped weapon): +5 cells
+* Cells item: +5 cells
+* Invisibility: Makes you (nearly) invisible for 30 seconds
+* Speed: Greatly increases your movement speed for 30 seconds
+* Extra Life: Grants you one or more extra lives (amount depends on settings)
+
+Hints
 ---------------
+* Cells ammunition may be difficult to find on some maps, but can be picked up readily from a downed player.
 
--   Vortex weapon information:
-    -   *Primary fire*: Instant-kill beam; has a **\~1 second** recharge time, so aim wisely.
-    -   *Secondary fire*: [Laser](Weapons#laser). Can be used for laserjumping or pushing other players off the map.
-    -   *Ammunition*: [Cells](Items#cells)
--   Power cell ammunition may be difficult to find on some maps, but can be picked up readily from a downed player.
--   *Never* run out of ammunition during a match! You will die and lose 1 point from your score should you go without ammo for **10 seconds**.
+CVar
+----
 
+InstaGib is enabled with the [CVar](CVars) `g_instagib`.
\ No newline at end of file
index e52a160477522955963e2fba92e40dcdfec4823d..3c17852f2a158154630e027448463a96b6959cb3 100644 (file)
@@ -126,8 +126,6 @@ vector
 
 This type is basically three floats together. By declaring a `vector v`, you also create three floats `v_x`, `v_y` and `v_z` (note the underscore) that contain the components of the vector. GMQCC also accepts dot notation to access these components: `v.x`, `v.y` and `v.z`
 
-**COMPILER BUG:** Always use `entity.vector_x = float` instead of `entity.vector.x = float`, as the latter creates incorrect code! Reading from vectors is fine, however.
-
 Vectors can be used with the usual mathematical operators in the usual way used in mathematics. For example, `vector + vector` simply returns the sum of the vectors, and `vector * float` scales the vector by the given factor. Multiplying two vectors yields their dot product of type float.
 
 Common functions to be used on vectors are `vlen` (vector length), `normalize` (vector divided by its length, i.e. a unit vector).
@@ -152,7 +150,17 @@ A *string* in QuakeC is an immutable reference to a null-terminated character st
 
 The offset defines from which starting position to search, and the return value is `–1` if no match is found. The offset returned is *0*-based, and to search in the whole string, a start offset of *0* would be used.
 
--   **substring(string, startpos, length)** returns part of a string. The offset is *0*-based here, too.
+-   **strreplace(old, new, string)** searches for certain characters in a string and replaces them with other characters, as in:
+    ```c
+    strreplace("de", "con", "destruction") == "construction";
+    ```
+
+-   **substring(string, startpos, length)** returns part of a string.
+
+The offset is *0*-based here, too. A length of `-1` designates the end of the string (it will return the part of the string after the start position), a length of `-2` designates the penultimate character of the string, and so on.
+
+-   **strtoupper(string)** capitalizes a string.
+-   **strtolower(string)** lowercases a string.
 
 Note that there are different kinds of *strings*, regarding memory management:
 
@@ -271,7 +279,7 @@ A special kind of functions are the built-in functions, which are defined by the
 string strcat(string a, string b, ...) = #115;
 ```
 
-The function/field syntax is ambiguous. In global scope a declaration can be a variable, field or function. In local scope, it's always a variable. The `var` keyword can be used in global scope to treat is as local scope (always declaring a variable). The following table shows declarations in global scope:
+The function/field syntax is ambiguous. In global scope a declaration can be a variable, field or function. In local scope, it's always a variable. The `var` keyword can be used in global scope to treat it as local scope (always declaring a variable). The following table shows declarations in global scope:
 
 | Example code | Meaning |
 |--------------|---------|
@@ -661,36 +669,127 @@ vectoangles does not match makevectors
 The pitch angle is inverted between these two functions. You have to negate the pitch (i.e. the *x* component of the vector representing the euler angles) to make it fit the other function.
 As a rule of thumb, *vectoangles* returns angles as stored in the *angles* field (used to rotate entities for display), while *makevectors* expects angles as stored in the *v\_angle* field (used to transmit the direction the player is aiming). There is about just as much good reason in this as there is for 1:1 patch cables. Just deal with it.
 
+bound
+-----
+
+A bound is a variable that was previously free, but has been bound to a specific value or set of values. If x > upperlimit the upperlimit is returned, if x < lowerlimit then lowerlimit is returned, if lowerlimit < x < upperlimit then x is returned. That function returns an x value calling this way: 
+```c
+bound(lower_limit, x, upper_limit)
+```
+
+Ternary operator
+----------------
+
+QuakeC allows ternary operators like in C:
+```c
+int a = 2;
+int b = 3;
+int c = 6;
+int d = 8;
+int max = (a > b) ? c : d;
+```
+More [**info**](https://www.geeksforgeeks.org/conditional-or-ternary-operator-in-c-c/).
+
+There is a complex example using `bound` function with this operator:
+```c
+bound(1, ((hunter_count >= 1) ? hunter_count : floor(total * hunter_count)), total - 1);
+bool wholenumber = (hunter_count >= 1) //is hunter count a specified whole number or percentage
+
+if (!wholenumber) //if hunters are defined with percentage count
+{
+ int z = total * hunter_count //wanted percentage amount from total is z
+ int y = floor(z) //round z downwards to nearest whole number
+}
+
+int x = (wholenumber ? hunter_count : y) //if whole number was given use it, 
+//if not use y which is calculated above
+bound(1, x, total - 1) //use the value x if it's above 1 but below (total - 1)
+//Otherwise use the bounding value of that direction to quarantee that 
+//there is always at least 1 hunter and always at least 1 survivor
+```
+
 Entry points
 ============
 
 The server-side code calls the following entry points of the QuakeC code:
 
 -   **void ClientDisconnect()**: called when a player leaves the server. Do not forget to *strunzone* all *strings* stored in the player entity here, and do not forget to clear all references to the player!
+<br />
+
 -   **void SV\_Shutdown()**: called when the map changes or the server is quit. A good place to store persistent data like the database of race records.
+<br />
+
 -   **void SV\_ChangeTeam(float newteam)**: called when a player changes his team. Can be used to disallow team changes, or to clear the player’s scores.
+<br />
+
 -   **void ClientKill()**: called when the player uses the ”kill" console command to suicide.
+<br />
+
 -   **void RestoreGame()**: called directly after loading a save game. Useful to, for example, load the databases from disk again.
+<br />
+
 -   **void ClientConnect()**: called as soon as a client has connected, downloaded everything, and is ready to play. This is the typical place to initialize the player entity.
+<br />
+
 -   **void PutClientInServer()**: called when the client requests to spawn. Typically puts the player somewhere on the map and lets him play.
+<br />
+
 -   **.float SendEntity(entity to, float sendflags)**: called when the engine requires a CSQC networked entity to send itself to a client, referenced by *to*. Should write some data to *MSG\_ENTITY*. *FALSE* can be returned to make the entity not send. See *EXT\_CSQC* for information on this.
+<br />
+
 -   **void URI\_Get\_Callback(...)**:
+<br />
+
 -   **void GameCommand(string command)**: called when the “sv\_cmd” console command is used, which is commonly used to add server console commands to the game. It should somehow handle the command, and print results to the server console.
+<br />
+
 -   **void SV\_OnEntityNoSpawnFunction()**: called when there is no matching spawn function for an entity. Just ignore this...
+<br />
+
 -   **void SV\_OnEntityPreSpawnFunction**: called before even looking for the spawn function, so you can even change its classname in there. If it remove()s the entity, the spawn function will not be looked for.
+<br />
+
 -   **void SV\_OnEntityPostSpawnFunction**: called ONLY after its spawn function or SV\_OnEntityNoSpawnFunction was called, and skipped if the entity got removed by either.
+<br />
+
 -   **void SetNewParms()**:
+<br />
+
 -   **void SetChangeParms()**:
+<br />
+
 -   **.float customizeentityforclient()**: called for an entity before it is going to be sent to the player specified by *other*. Useful to change properties of the entity right before sending, e.g. to make an entity appear only to some players, or to make it have a different appearance to different players.
+<br />
+
 -   **.void touch()**: called when two entities touch; the other entity can be found in *other*. It is, of course, called two times (the second time with *self* and *other* reversed).
+<br />
+
 -   **.void contentstransition()**:
+<br />
+
 -   **.void think()**: described above, basically a timer function.
+<br />
+
 -   **.void blocked()**: called when a *MOVETYPE\_PUSH* entity is blocked by another entity. Typically does either nothing, reverse the direction of the door moving, or kills the player who dares to step in the way of the Mighty Crusher Door.
+<br />
+
 -   **.void movetypesteplandevent()**: called when a player hits the floor.
+<br />
+
 -   **.void PlayerPreThink()**: called before a player runs his physics. As a special exception, *frametime* is set to 0 if this is called for a client-side prediction frame, as it still will get called for server frames.
+<br />
+
 -   **.void PlayerPreThink()**: called after a player runs his physics. As a special exception, *frametime* is set to 0 if this is called for a client-side prediction frame, as it still will get called for server frames.
+<br />
+
 -   **void StartFrame()**: called at the beginning of each server frame, before anything else is done.
+<br />
+
 -   **void EndFrame()**: called at the end of each server frame, just before waiting until the next frame is due.
+<br />
+
 -   **void SV\_PlayerPhysics()**: allows to replace the player physics with your own code. The movement the player requests can be found in the *vector* field *movement*, and the currently pressed buttons are found in various fields, whose names are aliased to the *BUTTON*\_ macros.
--   **void SV\_ParseClientCommand(string command)**: handles commands sent by the client to the server using “cmd ...”. Unhandled commands can be passed to the built-in function *clientcommand* to execute the normal engine behaviour.
+<br />
 
+-   **void SV\_ParseClientCommand(string command)**: handles commands sent by the client to the server using “cmd ...”. Unhandled commands can be passed to the built-in function *clientcommand* to execute the normal engine behaviour.
+<br />
\ No newline at end of file
diff --git a/Invasion.md b/Invasion.md
new file mode 100644 (file)
index 0000000..1bfd60c
--- /dev/null
@@ -0,0 +1,20 @@
+Invasion
+========
+
+*Note: As this game mode is still experimental, the information in this page might become outdated as new Xonotic versions get released. This page is written for version 0.8.2.*
+
+**Invasion** is a highly **experimental** game mode in which the players fight together against hordes of monsters.
+
+Gameplay
+--------
+The game is played in rounds. In each round, a certain number of monsters will spawn all around the map. The players must try to kill as many monsters as possible. The players can't deal damage to other players.
+
+A round ends if either all monsters are dead (=round won) or after a timeout (=round over). The next round will start soon and after each round, the monsters will become more dangerous.
+
+The player who fragged the most monsters overall wins the game.
+
+Note: “Winning” a round has no impact on your score. Only dead monsters count.
+
+The monsters
+------------
+As of version 0.8.2, there are spider bots, zombies, evil wizards and various monsters. They might drop health packs when killed.
\ No newline at end of file
diff --git a/Invincible-Projectiles.md b/Invincible-Projectiles.md
new file mode 100644 (file)
index 0000000..d65ea8c
--- /dev/null
@@ -0,0 +1,14 @@
+Invincible Projectiles
+======================
+
+Overview
+--------
+By default, some projectiles can take damage and even be destroyed by shooting them in mid-air, although this might be a little difficult to do.
+
+**Invincible Projectiles** is a mutator that makes projectiles immune to damage; they can no long be destroyed like this.
+
+There is one big exception, however: The electric mines from the [Weapons#Electro](Electro) can still be detonated by the Electro's combo shot (attack mines with primary Electro fire).
+
+CVars
+-----
+This is enabled with the [CVar](CVars): `g_invincible_projectiles`.
\ No newline at end of file
index aaaa31c065b3c80cd21fcf32c6bd70f3364b3099..f575ce727514d574af6045940c29a83ae289da2d 100644 (file)
--- a/Items.md
+++ b/Items.md
@@ -1,47 +1,78 @@
 Items
 =====
 
+In the arena you will find various items lying around, waiting to be collected.
+
 Health
 ------
 
-|Mega (100):  |  Big (50):   |Medium (25):  |  Small (5):  |  
-|:-----------:|:------------:|:------------:|:------------:|
-|![][h_mega]  |  ![][h_big]  |![][h_medium] |  ![][h_small]| 
+Health items increase your health by a certain amount. With health items you can reach a maximum health of 200.
+
+| **Name** | Mega Health | Big Health | Medium Health | Small Health |
+|:-|:-:|:-:|:-:|:-:|
+| **Health** | 100 | 50 | 25 | 5 |
+| **Item image** |![][h_mega] | ![][h_big] |![][h_medium] | ![][h_small] |
 
-[h_mega]: http://pics.nexuizninjaz.com/images/s92ftsza0q7r8daau47z.png
-[h_big]: http://pics.nexuizninjaz.com/images/qxiffzan7xx91qj9x1.png
-[h_medium]: http://pics.nexuizninjaz.com/images/mulmtdwq27dwh2zwrpa.png
-[h_small]: http://pics.nexuizninjaz.com/images/91w9h1tomsbml5ukj8re.png
+[h_mega]: uploads/c3466c97c10a16b06b8c523b22a0e0ab/health_mega.png
+[h_big]: uploads/b7538e50554b70d4c8c0946e4c6cd991/health_big.png
+[h_medium]: uploads/968d5da002ae4e9070381e09c833504e/health_medium.png
+[h_small]: uploads/37a186e2bba7428e12d3f43a9f54971a/health_small.png
 
 Armor
 -----
 
-|Mega (100):  |  Big (50):   |Medium (25):  |  Small (5):  |  
-|:-----------:|:------------:|:------------:|:------------:|
-|![][a_mega]  |  ![][a_big]  |![][a_medium] |  ![][a_small]| 
+Armor items increase your armor by a certain amount. With armor items you can reach a maximum armor of 200.
 
-[a_mega]: http://pics.nexuizninjaz.com/images/havtb83g2yglb201q84t.png
-[a_big]: http://pics.nexuizninjaz.com/images/jyi1aj1vx6rrrckx7zgt.png
-[a_medium]: http://pics.nexuizninjaz.com/images/ijq1xmxw797e1klv1l.png
-[a_small]: http://pics.nexuizninjaz.com/images/5zl9javsx6dasvom21gv.png
+| **Name** | Mega Armor | Big Armor | Medium Armor | Small Armor |
+|:-|:-:|:-:|:-:|:-:|
+| **Armor** | 100 | 50 | 25 | 5 |
+| **Item image** |![][a_mega] | ![][a_big] |![][a_medium] | ![][a_small] |
+
+[a_mega]: uploads/ba42b9e7a7619c82f97eca0be5b0efc6/armor_mega.png
+[a_big]: uploads/e7c23520812595b949077456d0e0b002/armor_big.png
+[a_medium]: uploads/46eaf8713d4ad22caec4028948a815a0/armor_medium.png
+[a_small]: uploads/4fd1b9f684461c71bc412f9db18cddc2/armor_small.png
 
 
 Ammo
 ----
 
-|Shells  |  Bullets   |Cells  |  Rockets  |  Fuel |
-|:-----------:|:------------:|:------------:|:------------:|:------------:|
-|![][shells]  |  ![][bullets]  |![][cells] |  ![][rockets]| ![][fuel]
-|![][shells_luma]  |  ![][bullets_luma]  |![][cells_luma] |  ![][rockets_luma]| ![][fuel_luma]
+Ammo is required by most [weapons](Weapons).
+
+| **Name** | Shells | Bullets | Cells | Rockets |
+|:-|:-:|:-:|:-:|:-:|
+| **Amount** | 15 | 80 | 30 | 40 |
+| **Max. amount** | 60 | 320 | 180 | 160 |
+| **Item image** |![][shells]  |  ![][bullets]  |![][cells] |  ![][rockets]|
+| **Icon** |![][shells_luma]  |  ![][bullets_luma]  |![][cells_luma] |  ![][rockets_luma]|
 
 [shells]: http://pics.nexuizninjaz.com/images/q32119stqpps94ohxs.png
 [bullets]: http://pics.nexuizninjaz.com/images/ryedjz1ljsdi0upidhz.png
 [cells]: http://pics.nexuizninjaz.com/images/xj7eitmvqar0eya0b9h.png
 [rockets]: http://pics.nexuizninjaz.com/images/rltbq9d2v2ao425q20he.png
-[fuel]: http://pics.nexuizninjaz.com/images/05moogdlts8nce1f677.png
 
 [shells_luma]: http://pics.nexuizninjaz.com/images/8zuasyijthfo9qnjh236.png
 [bullets_luma]: http://pics.nexuizninjaz.com/images/if6j7j62k3ycagfdss4n.png
 [cells_luma]: http://pics.nexuizninjaz.com/images/nbk02sbuc9jfo6570pbk.png
 [rockets_luma]: http://pics.nexuizninjaz.com/images/wci2civtjylb4pejoe9b.png
+
+Fuel
+----
+
+Fuel is used for special tools like the [Jetpack](jetpack). In the HUD, fuel is displayed as a yellow bar.
+
+The fuel item will refill your fuel completely.
+
+Depending on game settings, fuel may also automatically refill when you're low on fuel, at least partially.
+
+| **Name** | Fuel |
+|:-|:-:|
+| **Item image** | ![][fuel] |
+| **Icon** | ![][fuel_luma] |
+
+[fuel]: http://pics.nexuizninjaz.com/images/05moogdlts8nce1f677.png
 [fuel_luma]: http://pics.nexuizninjaz.com/images/r48z28t4z42sp003ch2r.png
+
+See also
+--------
+* [Powerups](Powerups)
\ No newline at end of file
diff --git a/Jetpack.md b/Jetpack.md
new file mode 100644 (file)
index 0000000..aedf0fb
--- /dev/null
@@ -0,0 +1,16 @@
+Jetpack
+=======
+Overview
+--------
+The jetpack allows you to fly across the stage. Jetpack can be enabled for everyone with a mutator.
+
+Usage
+-----
+To use the jetpack, press and hold the “jump” key when you're already in mid-air.
+Alternatively, you could press the “jetpack” key which you can assign yourself in the controls settings.
+
+The jetpack needs [fuel](Items) to operate, and it will quickly deplete when you use it.
+
+CVars
+-----
+Jetpack is enabled with the [CVar](CVars): `g_jetpack` and fine-tined with the CVar family `g_jetpack_*`.
\ No newline at end of file
index 4c3830ba2e7f567feff0ffc4e04efccc5fb68e39..d48311b4386f701ea2f2d888715936e50054bfa7 100644 (file)
@@ -4,24 +4,33 @@ Keepaway
 Object of the Game
 ------------------
 
-![](http://pics.nexuizninjaz.com/images/97kgj2j8monn9twl2e.png)
+In Keepaway, a ball will spawn randomly on the map. The goal is to take the ball and—when you have it—kill as many people as possible and protect yourself.
 
-There is a ball spawned randomly on the map. The goals are to get the ball by any means possible and — when you have it, kill as many people as possible and protect yourself.
+Scoring
+-------
 
-Map Entities
-------------
+The following actions can score you points (scores as of 0.8.2):
 
-_(Insert Map Entities here)_
+| Name | Action | Default score |
+|:-|:-|-:|
+| Kill As Carrier | Kill an opponent while you carry the ball | +1 |
+| Ball Carrier Kill | Kill the ball carrier | +1 |
+| Time Points | Carry the ball for a short amount of time | 0 |
 
-Helpful Hints and Tips
-----------------------
+In 0.8.2, there are no Time Points by default, but they can be enabled by the server (see below).
+
+The first player to reach the score limit (usually 30) will win the match.
+
+### Custom scoring
 
--   _(Insert Hints Here)_
+Servers can change the score you get for each action above with [CVars](CVars) (`g_keepway_score_*`). This means they can also enable Time Points.
 
-List of Demos and Videos
-------------------------
+Detailed rules
+--------------
 
--   Demo: _(Insert Demo or Video Here)_
--   Players: _(Insert Player Names Here)_
--   Key Points: _(Insert key points in match here)_
+* If nobody collects the ball for a while, it will teleport to a random place
+
+Helpful Hints and Tips
+----------------------
 
+-   _(Insert Hints Here)_
\ No newline at end of file
index 1a8c98ac1b1202d25fe1939c8fe1a8bf15ec5860..e901cf002ef6fa34aa235e95289b5864329a92e9 100644 (file)
@@ -7,30 +7,49 @@ Key Hunt (KH)
 Object of the Game
 ------------------
 
-In KH there are 3 teams (red; blue & yellow) and always one player of a team holds a key (Red key; blue key & yellow key). The goal is to collect the keys of the other teams and gather up to score. Get 1000 points to win a map (100 points for each capture).
-Tricky: Everyone that holds a key (Note: you can hold more than 1 of course) has a waypoint over his head (“Key carrier”), which shows his position.
+Key Hunt is a round-based game mode normally played with 3 teams, but 2 or 4 teams are also possible.
 
-How To:
+In each round, one player of each team gets a key. The goal of each round is to collect all the keys and gather up to score a lot of points. The first team to reach the score goal (default: 1000) wins the match.
 
-- Collect a key? Frag a player which holds a key and grab it (walk over it) after he died.
-- Score? Your team needs to collect all keys. If, for example, Player A, B and C of 1 team hold a team they have to meet a one place (can be anywhere) and be close enough together. That’s enough to score. Its possible that one player gets every key and he scores immediately then.
+Gameplay
+--------
+The game is played in seamless rounds. At the beginning of a round, one player per team gets a key in the color of the own team. The player who got the key (called “key carrier”) will see a message and the team mates will instantly see the position of the allied key carrier.
 
-Map Entities
-------------
+A few seconds after the beginning of a round, the positions of all keys will be revealed to everyone in the HUD and radar.
 
-_(Insert Map Entities here)_
+To win a round (and score big), your team has to grab all the keys and join them together. As soon as a team has all the keys, they must meet. If a single player collects all the keys, the team also wins the round.
 
-Helpful Hints and Tips
-----------------------
+It is possible that a key is destroyed or lost during a round (e.g. by dropping it into the abyss or a deathtrap). The key carrier who lost or destroyed the key will lose the round for the team. The color of the key does not matter. This can happen for one of two reasons:
+
+1. The key carrier destroyed/lost the key due to own clumsiness: The team is “punished” by rewarding all other teams with a few points. This will appear as “destroyed” in the scoreboard
+2. An opponent pushed the key carrier violently into the abyss or a deadly liquid which destroyed the key. This awards the attacking team some points. This will be counted under “pushes” in the scoreboard
+
+Finally, you can drop a key by pressing the “Drop flag/key” control. It's [F] by default.
+
+Scoring
+-------
 
-- Some maps can contain powerups like “[Strength](Powerups#strength)” or “[Shield](Powerups#shield)” (which usually 
-spawn every 2 minutes). They can be useful tools to win a match!
-- [Binds](Binds) are very useful again to coordinate the team.
+In Key Hunt, the score depends on the number of teams in the game. As of 0.8.5, the scoring (by default) is as follows:
 
-List of Demos and Videos
-------------------------
+| Action                                | 4 teams       | 3 teams | 2 teams | Notes                                              |
+|:-------------------------------------:|:-------------:|:-------:|:-------:|:--------------------------------------------------:|
+| Gather all keys                       | +300          | +200    | +100    |                                                    |
+| Make enemy team destroy key           | +60           | +60     | +60     | E.g. by pushing key carrier into abyss             |
+| Enemy team acidentally destroyed key  | +17 or +16*   | +25     | +50     | Awarded to each team that did *not* lose the round |
+| Collect key                           | +3            | +3      | +3      | Only counts if the previous carrier of the key was an enemy |
+| Kill enemy key carrier                | +2            | +2      | +2      |                                                    |
+| Kill other enemy                      | +1            | +1      | +1      |                                                    |
+| Suicide/teamkill                      | -1            | -1      | -1      |                                                    |
 
--   Demo: _(Insert Demo or Video Here)_
--   Players: _(Insert Player Names Here)_
--   Key Points: _(Insert key points in match here)_
+\* = Two teams will get 17 points while one team only gets 16 points. This is a known bug in 0.8.5. See [issue #2344](https://gitlab.com/xonotic/xonotic-data.pk3dir/issues/2344)
+
+### Custom scoring
+
+It's possible for servers to change the scoring by setting [CVars](CVars) (`g_balance_keyhunt_score_*`).
+
+Helpful Hints and Tips
+----------------------
 
+- Some maps can contain powerups like “[Strength](Powerups#strength)” or “[Shield](Powerups#shield)”. They can be useful tools to win a match!
+- When you got a key but you're low on health, it can be useful to give the key to your team mates by dropping it
+- [Binds](Binds) are very useful to coordinate the team.
index ec0b318b7d3137e638a55156979f3b84b8c81584..2bc1e19bd50cc410defda849025857d9879a45d5 100644 (file)
@@ -6,22 +6,18 @@ Last Man Standing (LMS)
 Object of the Game
 ------------------
 
-In LMS you start with a special amount of lives (9 by default) and with every weapon (except [Mine Layer](Weapons); [HLAC](Weapons); [T.A.G. Seeker](Weapons); [Fireball](Weapons); [Grappling Hook](Weapons); [Port-O-Launch](Weapons) and the [@#!%’n Tuba](Weapons)). For each death you lose 1 live and once you run out of your lives you will have to spectate until the end of the map. The last one that survives is the “Last Man Standing” and wins the map.
+In **Last Man Standing** (LMS), every player starts with a special amount of lives (9 by default) and with (basically) all core [weapons](weapons). For each death you lose 1 life and once you run out of your lives you're eliminated and have to spectate until the end of the match.
 
-Map Entities
-------------
-
-_(Insert Map Entities here)_
-
-Helpful Hints and Tips
-----------------------
+The last one that survives is the “Last Man Standing” and wins the match. The player that was eliminated last will rank 2nd, the player that was eliminated before that is 3rd, etc.
 
+Other rules
+-----------
+- You spawn with 200 health and 200 armor
+- Health and armor do NOT regenerate
+- Health and armor and ammo items will not spawn
 - If you don’t move (e.g. camp or hide) you get hurt after a while and lose some health! So always keep moving.
 
-List of Demos and Videos
-------------------------
-
--   Demo: _(Insert Demo or Video Here)_
--   Players: _(Insert Player Names Here)_
--   Key Points: _(Insert key points in match here)_
+Special modifiers
+-----------------
 
+Extra lives can optionally be enabled in this mode with the cvar `g_lms_extra_lives`. The extra life looks like the [Mega Health](items) Collect the extra life and you get 1 or more extra lives (depending on the value of the setting).
\ No newline at end of file
diff --git a/List-of-color-codes.md b/List-of-color-codes.md
new file mode 100644 (file)
index 0000000..384e0f3
--- /dev/null
@@ -0,0 +1,31 @@
+Color codes are used in event messages to change text color (the code itself is invisible).
+
+* Base colors:
+
+| Code | Note |
+| ------ | ------ |
+| `^1` | `#F00` Red |
+| `^2` | `#0F0` Green |
+| `^3` | `#FF0` Yellow |
+| `^4` | `#00F` Blue |
+| `^5` | `#0FF` Cyan |
+| `^6` | `#F0F` Magenta |
+| `^7` | `#FFF` White |
+| `^8` | `#FFF8` Half transparent white|
+| `^9` | `#888` Light Gray |
+| `^0` | `#000` Black |
+| `^xRGB` | `#RGB` Custom color |
+
+* Notification colors:
+
+| Code | Note | Corresponding cvar|
+| ------ | ------ | ------ |
+| `^TC` | Team color | - |
+| `^BG` | Default color | hud_colorset_background |
+| `^F1` | foreground/normal color 1 | hud_colorset_foreground_1 |
+| `^F2` | foreground/normal color 2 | hud_colorset_foreground_2 |
+| `^F3` | foreground/normal color 3 | hud_colorset_foreground_3 |
+| `^F4` | foreground/normal color 4 | hud_colorset_foreground_4 |
+| `^K1` | "kill" color 1 | hud_colorset_kill_1 |
+| `^K2` | "kill" color 2 | hud_colorset_kill_2 |
+| `^K3` | "kill" color 3 | hud_colorset_kill_3 |
diff --git a/List-of-translation-placeholders.md b/List-of-translation-placeholders.md
new file mode 100644 (file)
index 0000000..bd8e49f
--- /dev/null
@@ -0,0 +1,13 @@
+Variables and placeholders are codes that will be replaced with something else in the final text.
+
+| Code | Replaced with |
+| ------ | ------ |
+| `\n` | New line |
+| `^TT` | Team color name (e.g. "Red"). Will be replaced with one of the strings that has the `TEAM^`, `KEY^`, `GENERATOR^` or `FLAG^` prefix |
+| `^COUNT` | Countdown number, usually with a unit (e.g. "5 seconds") |
+| `%s` | Arbitrary text |
+| `%d` | Whole number |
+| `%f` | Floating-point number |
+| `%.*f` | Floating-point number |
+| `%.1f` | Floating-point number (1 decimal place) |
+| `%.2f` | Floating-point number (2 decimal places) |
\ No newline at end of file
diff --git a/List-of-translation-prefixes.md b/List-of-translation-prefixes.md
new file mode 100644 (file)
index 0000000..c46fc45
--- /dev/null
@@ -0,0 +1,37 @@
+This is a list of prefixes used as translation hints in the source strings.
+Please remove them from the translated strings (they may be removed automatically otherwise, but at the cost of a few extra CPU cycles).
+
+| Prefix | Context | Note |
+| ------ | ------ | ------ |
+| `QMCMD^` | Quick command menu and preset chat messages | |
+| `MUSICPL^` | Music playlist | |
+| `TEAM^` | Team color word | Used in event messages |
+| `GENERATOR^` | Generator color word (Onslaught) | Used in event messages |
+| `FLAG^` | Flag color word (CTF) | Used in event messages |
+| `KEY^` | Key color word (KeyHunt) | Used in event messages |
+| `SCO^` | Scoreboard header/target | Used for both the header of the scoreboard and for displaying limits (like score/time limit). Use lowercase unless the grammar of your language dictates otherwise. |
+| `CSKL^` | Campaign difficulty | |
+| `SLCAT^` | Server list category | |
+| `CI_ZER^` | Time word for a count of 0 | E.g. "0 hours" |
+| `CI_FIR^` | Time word for a count of 1 | E.g. "1 hour" |
+| `CI_SEC^` | Time word for a count of 2 | E.g. "2 hours" |
+| `CI_THI^` | Time word for a count of 3 | E.g. "3 hours" |
+| `CI_MUL^` | Time word for a count of 4 or more | E.g. "4 hours" |
+| `CI_DEC^` | Time word for a count that is a decimal number | E.g. "2.5 hours" |
+| `PRE^` | Graphics quality preset | |
+| `DET^` | Graphics detail setting | |
+| `PDET^` | Player detail setting | |
+| `RES^` | Resolution setting | |
+| `PART^` | Particle quality setting | |
+| `GHOITEMS^` | Color of simple item when unavailable | For "simple items" graphics setting |
+| `GIBS^` | Gibs setting | |
+| `ZOOM^` | Zoom setting | |
+| `VZOOM^` | Zoom velocity setting | |
+| `JPJUMP^` | Jetpack jump setting | |
+| `TLTIP^` | Menu tooltip setting | |
+| `SZ^` | GUI/font size setting | |
+| `ANISO^` | Anisotropic filtering setting | |
+| `AA^` | Anti-aliasing setting | |
+| `DF^` | Depth first rendering setting | |
+| `VBO^` | Vertex Buffer Objects setting | |
+| `VOL^` | Audio volume | |
\ No newline at end of file
index 0da18e64a2130e9a80c2df31b03cfcd749384ea1..7365356967202d16b02bd68f0b7a7c414e315b1a 100644 (file)
@@ -107,7 +107,7 @@ buttons to flip and rotate objects around the three major axes. Make sure that t
 otherwise textures might flicker (so called *Z-fights*).
 
 
-\<\< [NetRadiant](mapping-NetRadiant) | [Packaging](mapping-packaging) \>\>
+\<\< [NetRadiant](mapping-NetRadiant) | [Map picture](mapping-MapPicture) \>\>
 
 … [Creating_Maps](Creating-Maps) …
 
index 93e55ecef853209b6c0eb7f7b33094187d00581f..b6fc74fb3552db936379f23e6bad4003e2496d4c 100644 (file)
@@ -1,15 +1,16 @@
 Mapping - Introduction
 ======================
 
-Welcome to the wonderful world of mapping, this tutorial will lead you through the fundamentals of mapping for xonotic.
+Welcome to the wonderful world of mapping, this tutorial will lead you through the fundamentals of mapping for Xonotic.
 Many of these tutorials may also useful for other games that use the quake3map2 map format.
 
 REQUIREMENTS
 ------------
 
--   a computer that can run Xonotic
--   the [mapping support package](http://dl.xonotic.org/xonotic-0.8.2-mappingsupport.zip)
--   time
+-   A computer that can run Xonotic.
+-   If you use an old version of NetRadiant or another map editor (including NetRadiant-custom, which is a fork of NetRadiant), you need the [mapping support package](http://dl.xonotic.org/xonotic-0.8.5-mappingsupport.zip). It isn't needed with the latest NetRadiant builds.
+-   Time.
 
 [Setup](mapping-Setup) \>\>
 
+… [Creating_Maps](Creating-Maps) …
\ No newline at end of file
index 84852a23d55c563b3db42e69bbeff591c4e364db..7069c7dc17fc3d06dd28b2c71869a2c1eb6cdbf0 100644 (file)
@@ -4,17 +4,19 @@ Mapping - Setup
 How to get your system all set up to start mapping
 --------------------------------------------------
 
-### Step 1: Obtain mapping support
+### Step 1 (optional): Obtain the mapping support
 
-If you didn’t already, download the [mapping support zip](http://dl.xonotic.org/xonotic-0.8.2-mappingsupport.zip)
+If you didn’t already, download the [mapping support zip](http://dl.xonotic.org/xonotic-0.8.5-mappingsupport.zip).  
+This is only needed if you use an old version of NetRadiant or another map editor (including NetRadiant-custom, which is a fork of NetRadiant).  
+If you download NetRadiant from the [NetRadiant website](https://netradiant.gitlab.io) or compile it from source, you can ignore the following steps and proceed to step 5 directly.
 
-### Step 2: Extract zip
+### Step 2 (optional): Extract the zip
 
 Extract the zip archive using your favorite archiving tool
 
-### Step 3: Locate the folder for userdata
+### Step 3 (optional): Locate the folder for userdata
 
-Locate your userdata folder, note that this is **NOT** the install location. This is the place xonotic saves your userdata.
+Locate your userdata folder, note that this is **NOT** the install location. This is the place where Xonotic saves your userdata.
 
 -   **Windows**: `C:\users\user\saved games\xonotic\data`
 -   **Linux**: `~/.xonotic/data`
@@ -22,22 +24,26 @@ Locate your userdata folder, note that this is **NOT** the install location. Thi
 
 This folder has a similar layout as the game folder. Game wise these data folders are treated similarly, however, it is best to save your work in the userdata folder so that you don’t accidentally mess up your Xonotic install, or so that your work doesn’t get lost in an update.
 
-### Step 4: Moving the mapping support pk3
+### Step 4 (optional): Move the mapping support pk3
 
 The mapping support zip contains a file called `xonotic-<timestamp>-maps-mapping.pk3`. Move this file to the userdata folder (see step 3), **NOT** `data/data`.
 This folder should also contain your `config.cfg`.
 
 ### Step 5: Get NetRadiant working
 
--   **Windows**: The mapping support zip contains a compiled version of NetRadiant in the `mapping` folder
--   **Linux**: Linux users need to compile NetRadiant themselves (see [NetRadiant Repo](https://gitlab.com/xonotic/netradiant)) or can download a compiled version [here](http://ingar.intranifty.net/gtkradiant/index.html)
--   **Mac**: Current versions of MacOS/OSX don't seem to work because of gtkglext, compiled versions from [here](http://ingar.intranifty.net/gtkradiant/index.html) might work
+-   **Windows**: Windows users can download a precompiled version downloadable from the [NetRadiant website](https://netradiant.gitlab.io/page/download/).  
+The mapping support zip also contains a compiled version of NetRadiant in the `mapping` folder but while it may works, it is fairly outdated and lacks a lot of updates.
+-   **Linux**: Linux users can use a precompiled version downloadable from the [NetRadiant website](https://netradiant.gitlab.io/page/download/).  
+(_NOTE: Archlinux users can also use the [netradiant-git](https://aur.archlinux.org/packages/netradiant-git/) PKGBUILD_)
+-   **macOS**: macOS users can use a precompiled version downloadable from the [NetRadiant website](https://netradiant.gitlab.io/page/download/). 
+-   **FreeBSD**: FreeBSD users can use a precompiled version downloadable from the [NetRadiant website](https://netradiant.gitlab.io/page/download/). 
 
-### Step 6: Setting up NetRadiant
+People wanting to compile NetRadiant themselves can look at the [NetRadiant Repository](https://gitlab.com/xonotic/netradiant).
 
-When you first start up radiant it may ask where the engine path is. Simply, point it to the xonotic install location. Then NetRadaint should start,and the lower right pane should have lists of texture packs. If there are no texture packs, then refer back to step 4.
+### Step 6: Set up NetRadiant
 
-\<\< [Introduction](mapping-Introduction) | [NetRadiant](mapping-NetRadiant) \>\>
+When you first start up radiant it may ask where the engine path is. Simply point it to the Xonotic install location. Then NetRadiant should start and the lower right pane should have a list of texture packs. If there are no texture packs, then you may need the mapping support, please refer back to step 4.
 
-… [Creating_Maps](Creating-Maps) …
+\<\< [Introduction](mapping-Introduction) | [NetRadiant](mapping-NetRadiant) \>\>
 
+… [Creating_Maps](Creating-Maps) …
\ No newline at end of file
index 21c8620c66efa95ef902e7b4c4a742193b952ef4..00546f1c4ebdccc9122daebe5684a223c8727522 100644 (file)
@@ -15,12 +15,13 @@ While technically only the `.bsp` file generated by the map compiler and all use
 some other files are needed so that the map works properly.
 
 `maps/<mapname>.bsp` - This is your compiled map file  
+`maps/<mapname>/lm_<numbers>.tga` - Those are precomputed lights for your map  
 `maps/<mapname>.mapinfo` - This file has the meta information, artist, global music track, gametype(s) and game settings  
 `maps/<mapname>.tga|png|jpg` - This file is a screenshot of your map. If you don’t include this, you map doesn’t have a picture in the menu or the voting screen for servers and angels cry.  
-`maps/<mapname>.waypoints` - [Waypoints](mapping-Waypoints) for bots  
+`maps/<mapname>.waypoints` - [Waypoints](Creating-bot-waypoints) for bots  
 `maps/gfx/<mapname>_mini.tga|png|jpg` - Minimap, will be generated by the map compiler.  
 
-###Example mapinfo file
+### Example mapinfo file
 
 ```
 title My First Map
@@ -38,3 +39,7 @@ Adding these files is **strongly recommended**:
 
 `maps/<mapname>.map` - This is an open-source game. Gives other the ability to learn and fix broken maps/extend maps.  
 `License` - The license for the map. An open-source license like `GPL` is recommended.  
+
+\<\< [Map picture](mapping-MapPicture)
+
+… [Creating_Maps](Creating-Maps) …
\ No newline at end of file
diff --git a/Maps.md b/Maps.md
index e4b62f9646c3c4f131a1fcd4f61e4c6ba10fe305..2cb944b86411bb5ee9834b07cca396b8c058d93c 100644 (file)
--- a/Maps.md
+++ b/Maps.md
@@ -1,4 +1,4 @@
-An unofficial up-to-date list containing almost all maps with a search feature and previews: [xonotic.co](http://xonotic.co/)
+For unofficial map lists, see [Unofficial map repositories](Home#unofficial-map-repositories).
 
 Official Maps
 =============
@@ -317,28 +317,6 @@ Nexball Arena
  
 **Description**: Small, simple, enclosed arena for finding out who’s the true nexball champion! No obstacles in the way...
 
-Oilrig
-----------
-
-[![](http://pics.nexuizninjaz.com/images/qijflf28fyeza9ltrrfh_thumb.jpg)](http://pics.nexuizninjaz.com/images/qijflf28fyeza9ltrrfh.jpg)
-
-**Gamemodes**:
-[Clan Arena](Clan Arena);
-[Deathmatch](Deathmatch);
-[Freeze Tag](Freeze Tag);
-[Keepaway](Keepaway);
-[Key Hunt](Key Hunt);
-[Last Man Standing](Last Man Standing);
-[Team Deathmatch](Team Deathmatch)
-
-**Author**:
-Tronyn,
-[Debugger](https://forums.xonotic.org/member.php?action=profile&uid=222),
-[SavageX](http://forums.xonotic.org/member.php?action=profile&uid=91),
-Dustin Geeraert,
-Garth Hendy
-
-**Description**: A very large open map designed after an offshore oil rig
 
 Running Man
 -----------
@@ -599,6 +577,31 @@ Newtonian Nightmare
 
 *Removed in*: 0.8.1
 
+Oilrig
+----------
+
+[![](http://pics.nexuizninjaz.com/images/qijflf28fyeza9ltrrfh_thumb.jpg)](http://pics.nexuizninjaz.com/images/qijflf28fyeza9ltrrfh.jpg)
+
+**Gamemodes**:
+[Clan Arena](Clan Arena);
+[Deathmatch](Deathmatch);
+[Freeze Tag](Freeze Tag);
+[Keepaway](Keepaway);
+[Key Hunt](Key Hunt);
+[Last Man Standing](Last Man Standing);
+[Team Deathmatch](Team Deathmatch)
+
+**Author**:
+Tronyn,
+[Debugger](https://forums.xonotic.org/member.php?action=profile&uid=222),
+[SavageX](http://forums.xonotic.org/member.php?action=profile&uid=91),
+Dustin Geeraert,
+Garth Hendy
+
+**Description**: A very large open map designed after an offshore oil rig
+*Removed in*: 0.8.5
+
+
 Red Planet
 -----------
 
@@ -623,4 +626,4 @@ Red Planet
 
 **Description**: A large facility on a red dusty planet
 
-*Removed in*: 0.8
\ No newline at end of file
+**Removed in**: 0.8
\ No newline at end of file
diff --git a/Midair.md b/Midair.md
new file mode 100644 (file)
index 0000000..902dea1
--- /dev/null
+++ b/Midair.md
@@ -0,0 +1,10 @@
+Midair
+======
+
+Midair is a mutator that makes players only to damage while they're in midair, i.e. not touching the ground with their feet. They are immune to damage and glow brightly when they are standing on solid ground.
+
+When losing contact to the ground, players are still shielded from damage very briefly.
+
+CVar
+----
+This mutator is controlled by the [CVar](CVars) `g_midair`. Shielding time is `g_midair_shieldtime`.
\ No newline at end of file
index 527094f338d7890500b7068845f5229e52795880..c653430e78b2ac1b0d8e3ccda044e7af64dd71ce 100644 (file)
@@ -6,6 +6,8 @@ Modeling for DP
 
 Quick notes from LordHavoc on model support (please improve this page!).
 
+**EDIT 2020-03-19** - exporting from blender might need specific (old) versions - [see the forums](https://forums.xonotic.org/showthread.php?tid=8269&pid=85677#pid85677)
+
 Supported model formats
 -----------------------
 
diff --git a/Moderation-tools.md b/Moderation-tools.md
new file mode 100644 (file)
index 0000000..b5330e2
--- /dev/null
@@ -0,0 +1,85 @@
+## How can I block/ignore people personally?
+
+**As a player**, use `ignore #player_id`, this player will be blocked and entirely hidden from your personal chat logs. \
+Keep in mind that this can result in confusing situations as the blocked player(s) can continue talking to others in the server while you've blocked them. \
+To unblock a single player, use `unignore #player_id`. \
+To unblock all currently ignored players, use `clear_ignores`.
+
+_Note: you can't ignore more than 16 players._
+
+## How can I disallow people from chatting in my server?
+
+**As a server admin**, if there's someone spamming in the chat all time or being hostile, use `chatban #player_id` to prevent them from being able to send any messages to anyone, this includes private messages, team chat and spectator chat. \
+To unban the chatbanned player, use `unchatban #player_id`. \
+To see the list of chatbanned players, use `chatbans`.
+
+_Note 1: there's another aliased version: `mute`. It has been used for many years while it wasn't improved, only temporarily muting for the duration of the match._ \
+_Note 2: `muteban` is an alias to `chatban` as it was this feature's previous name and has been used for many years by a few admins while it was implemented via_ [_SMB modpack_](https://github.com/MarioSMB/modpack) _before its merge to Xonotic's official repositories._
+
+Set `g_chat_allowed` to 0, if you think there is a good reason to not anyone use any chats. \
+Remember, you can disable private, spectator and team chat as you wish.
+
+- `g_chat_private_allowed 0` disables private chat, players can't use `tell #player_id` to send a private message to someone.
+- `g_chat_spectator_allowed 0` players can't chat while spectating.
+- `g_chat_team_allowed 0` disables team chat, preventing players from talking privately in their own teams.
+
+These cvars are set to 1 by default. Set any of them to 0 if you wish to disallow that chat. 
+
+## How can I disallow people from voting in my server?
+
+**As a server admin**, use `voteban #player_id` to disallow a player from voting, they can't start a vote nor vote Yes or No for votes called by other players. \
+To allow the votebanned player vote again, use `unvoteban #player_id`.\
+To see the list of disallowed players from voting, use `votebans`. 
+
+## How can I disallow people from playing in my server?
+
+**As a server admin**, use `playban #player_id` to disallow a player from playing in the server, this player will be forced to spectate. \
+To allow a player to play again instead of being forced to spectate, use `unplayban #player_id`.\
+To see the list of players forced to spectate, use `playbans`. 
+
+_Note: `g_playban_minigames 1` also prevents the playbanned players from participating in minigames. (This is disabled by default)._
+
+## How can I ban people from my server?
+
+**As a server admin**, doing that can be pretty harsh. Use this last resource if you decided definitely that it is what you want to do. \
+`ban <player_IP_address/key_hash> <bantime in seconds> <reason>` stores a ban in the server, it isn't a quick ban. The player can stay in the server unless if disconnects and tries to go back. \
+`kickban #player_id` stores a ban and kicks the player from the server. \
+To unban the player, use `unban <player_IP_address/key_hash>`. \
+To see the ban list, use `bans`.
+
+## TL;DR:
+
+#### Personally as a player
+
+- block in chat
+  * `ignore #player_id`
+- unblock in chat
+  * `unignore #player_id`
+- List blocks
+  * Can't in-game.
+
+#### In a server as an admin or a moderator
+
+- Ban
+  * `chatban #player_id`
+  * `voteban #player_id`
+  * `playban #player_id`
+- Unban
+  * `unchatban #player_id`
+  * `unvoteban #player_id`
+  * `unplayban #player_id`
+- List bans
+  * `chatbans`
+  * `votebans`
+  * `playbans`
+
+#### From the whole server
+
+- Kick and/or ban from the server
+  * `kick #player_id`
+  * `ban <player_IP_address/key_hash> <bantime in seconds> <reason>`
+  * `kickban #player_id`
+- Unban from the server
+  * `unban <player_IP_address/key_hash>`
+- List bans from the server
+  * `bans`
\ No newline at end of file
diff --git a/Monsters.md b/Monsters.md
new file mode 100644 (file)
index 0000000..7479184
--- /dev/null
@@ -0,0 +1,94 @@
+## Overview
+
+While this page will focus on the official monsters that ship with the game, other monsters from popular Xonotic mods will be included. Some monsters described in this section come from Quake and the descriptions for those are mirrored from this [wiki](https://quakewiki.org/wiki/Category:Monsters).
+
+_Note: Some features may be missing from this wiki page_.
+
+# Vanilla monsters
+
+## Zombie
+
+![xonotic20230616230630-00.jpg](uploads/0c1313aad39b94f00db093f54d379c1c/xonotic20230616230630-00.jpg)
+
+Zombie is an undead human that tears chunks of flesh from its head, hindquarters, and crotch before proceeding to toss them at the player character for minor damage. When someone comes close to the zombie, the zombie will start chasing and launching to attack with a bite. When the zombie is in a dead pose in battle, can be revived and continue as before. To kill him, you will need to shoot / hit the zombie when you see it in a dead pose during the battle.
+
+## Spider
+
+![xonotic20230616230916-00.jpg](uploads/ec76013f8f6c39e5d3d9ad182818454c/xonotic20230616230916-00.jpg)
+
+Spider is a big arachnid that walks with 8 legs on the ground, can walk faster than other monsters. When someone approaches the spider, the spider will spit cobweb energy balls to slow down prey and attack nearby with its chelicerae.
+
+## Wyvern
+
+![xonotic20230616230906-00.jpg](uploads/60ed6217d9608f9260e2306a039a5402/xonotic20230616230906-00.jpg)
+
+Wyvern is a dragon that was said to breathe fire or to possess a poisonous breath, a reptilian body, two legs or sometimes none, and a spiked tail. The alleged marine variant had a fishtail instead of the spiny dragon tail. Wyvern flies around the map, when someone approaches this monster, the opponent will be chased and attacked by his fireballs.
+
+## Shambler
+
+![xonotic20230616230550-00.jpg](uploads/3472a53956c46725e1190936d916abcd/xonotic20230616230550-00.jpg)
+
+Shamblers are truly a force to be feared. They tend to have an immense amount of health and take only half the damage from explosions. His pride and joy is his lightning energy attack. His attacks are throwing electro balls, if the prey is near to him, he will attack with his claws.
+
+_Note: The internal file is named "golem.qc"_
+
+## Mage
+
+![4eg.jpg](uploads/801998e5644db63a5946c46a29ddec85/4eg.jpg)
+
+Mage is capable of developing magic with his powerful knowledge that he learned and practiced during his spell sciences. Sometimes the mage can give regeneration to the owner and sometimes makes the owner pay the health for his needs to be with him. The mage attacks launching magic balls, this spell attack is called as "Mage spike".
+
+# Unofficial monsters
+
+## Afrit
+
+![afrit](uploads/b77bc014b93ea6f97e581be4eece805d/afrit.jpg){width="290"}
+
+Afrit is a dragon / flying demon that covers the flames around its body. His fire power is strong but his movements are a little slow. Afrit can see the prey as it gets closer, when it comes, Afrit will start to follow and attack with his fireballs to the target.
+
+## Creeper
+
+![creeper](uploads/48f09eb2f3608e502ad88c348a4b4473/creeper.jpg){width="280"}
+
+The same things as the mage, but only attacks nearby to the prey, looks like hitting. This info is still unknown.
+
+## Demon
+
+![demon](uploads/56b672332778d67b7c359b611d54c06f/demon.jpg){width="290"}
+
+Demon is a four-legged, monkey-like beast that uses its claws to slash a target. In addition, it is very fast and can leap great distances. Demons stand approximately 6 feet tall (their back rises above their head) and have a muscular appearance. With his mouth full of sharp teeth, he can gut a living being.
+
+## Enforcer
+
+![enforcer](uploads/00fe4f08ebbb70f7ec3a0c9d4324d61b/enforcer.jpg){width="270"}
+
+Enforcer is an upgraded Grunt wearing a Biosuit and is equipped with a Laser Rifle. Enforcers will fire two lasers as soon as they see you. Each laser will disappear within six seconds if it does not make contact with another entity. The lasers can be easily avoided. Due to their slow nature, it's easy to avoid the lasers and manage to attack without any difficulty.
+
+## Ogre
+
+![ogre](uploads/57bf95ee9075a32117999d7348cd4e8d/ogre.jpg){width="270"}
+
+Ogres carry a deadly chainsaw for melee fights and a grenade launcher otherwise (though their grenade launcher is weaker than the player's), they can truly pack a punch.
+
+## Scrag
+
+![scrag](uploads/967d1e4b8c364b86fad171a959f5f5f9/scrag.jpg){width="290"}
+
+Scrags possess some cunning unlike other monsters. They are constantly moving side to side (except when attacking), and so manage to dodge many incoming slow-moving projectiles. Also, if you duck behind cover while they are attacking, they may throw an extra shot or two at your last seen location, so you might want to be careful before you pop back out again.
+
+## Soldier
+
+![soldier](uploads/167212cbdeca5b838efdcbc0757259d8/soldier.jpg){width="260"}
+
+Soldier is an abandoned military warrior with grudges and a desire to kill others. His weapons aren't strong, but he can aim well at the target and control their base where he is prowling.
+
+# Notes for players
+
+To spawn a monster, either:
+
+* Press F8 \>\> Select Spawn monster \>\> And monster is spawned in some place of the map
+* Create a map with a monster spawn point in it
+
+# Notes for developers
+
+**Official monster source codes are in this **[**directory**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/master/qcsrc/common/monsters/monster)**.** Unofficial monster source code is stored in the [SMB modpack](https://github.com/MarioSMB/modpack/tree/master/mod/common/monsters).
\ No newline at end of file
diff --git a/Murder-in-Megaerebus-Manor.md b/Murder-in-Megaerebus-Manor.md
new file mode 100644 (file)
index 0000000..18aafa5
--- /dev/null
@@ -0,0 +1,240 @@
+# Murder in Megaerebus Manor (MMM)
+
+<img src="uploads/c6e610dae225d4b3b3b6d983fbe4a1ee/gametype_mmm.png" alt="logoMMMxonoticluma"/>
+
+<img src="uploads/4b0977974e9cd4db5f2e53b6e6a82e66/gametype_mmmluminos.png" alt="gametype_mmmluminos"/>
+
+<img src="uploads/c2c9f4c388ac01ae9213c577c1afe7c3/gametype_mmmxaw.png" alt="gametype_mmmxaw"/>
+
+## A group of space civilians have murderers among them. Murderers must kill civilians, while the civilians have to try to find and kill the murderers.
+
+# Objective of the Game
+
+The game mode is based on the fact that there is a small group of Murderers and another of Detectives, there is an explanation of the functions of each one.
+
+
+## Civilians
+
+The civilians are the majority (62.5% of the game's population by default.) Their group color is green.
+The task of the civilian is to detect Murderers and defend detectives more than anything, they must kill the right person or anything special.
+
+
+## Murderers
+
+The Murderers are the medium sized group in MMM (25% of the population or one Murderer for every four players.) Their group color is red, but this is not displayed to anyone other than Murderers, or when a Murderer has been confirmed to be dead.
+The Murderers must murder everyone undetected, they know who they are because only among themselves do they see a red "circle" that blinks around their companions' bodies. They must kill all Civilians before time runs out.
+
+
+## Detectives
+
+The Detectives are the smallest group in MMM (12.5% of the population or one Detective for every eight players.) They are special Civilians given equipment. Their group color is blue.
+Detectives have special methods to detect the Murderer, for example, when they see a body, they must analyze the body, when seeing it, shoot with Shockwave weapon to the body, if the body was recently killed, it will tell if he was Civilian, Detective or a Murderer.
+
+
+## About Karma points
+
+It is worth clarifying that everyone can kill each other, but there is something called "**Karma**", which starts with an initial, and increases if they do things right (if traitors kill, or if traitors kill people), otherwise, the Karma will be discounted.
+
+The Karma is used for the damage that weapons generate, the more Karma, the more damage your weapon will do. When Karma is lower, lesser damage your weapon will do.
+
+If the Karma is lower, the player can be banned temporarily to avoid teamkills or any abuse with the end to keep the game in balance. In that case, the ban tool cvar is set to be forced to spectate by default.
+
+
+
+# Screenshots
+
+- Gamemode selection menu:
+
+<img src="uploads/a1525b91e1519d2786431a2e5b43e69b/MenuMMM.jpg" alt="MenuMMM" width="400"/>
+
+<br/>
+<br/>
+<br/>
+<br/>
+
+- Gameplay:
+
+<img src="uploads/24d3a6caec031b68d70856f62982d96c/gameplayCivilian.jpg" alt="gameplayMMM" width="400"/>
+
+<br/>
+<br/>
+<br/>
+<br/>
+
+- Detective role, when you use Shockwave weapon shooting dead players to see who killed them:
+
+<img src="uploads/05a2c41d47a8767fe2f2e23943a8c210/detectiveUsingShockwave.jpg" alt="detectiveUsingShockwave" width="400"/>
+
+<img src="uploads/46162b4daff7255e5eab7637665426a4/detectiveUsingShockwaveSlime.jpg" alt="detectiveUsingShockwaveSlime" width="400"/>
+
+<br/>
+<br/>
+<br/>
+<br/>
+
+- Karma score, plus end of the round, everyone show their role, Murderers are revealed when round is over:
+
+<img src="uploads/b9dd72b8571010e06ba5ee3d0be68845/karmaSystem.jpg" alt="karmaScore" width="400"/>
+
+<br/>
+<br/>
+<br/>
+
+
+# Rules
+
+## Basic Rules
+
+All basic rules apply to any role and or players.
+​
+
+- No Randomly Damaging Mate​
+
+1. Randomly Damaging a teammate without sufficient evidence of them committing a kill on site as offence, This includes damages that have been done unintentionally.​
+
+2. Killing any player that is away from their keyboard.​
+
+
+- No Murderer Baiting
+
+1. Performing Murdererous acts as civilian repeatedly.
+
+2. Tricking other players into believing you're a Murderer.
+
+
+
+## Role Rules
+
+These rules only apply if you are apart of that role for example you can't break a detective rule if you're an civilian.​
+
+
+<span style="color:green">**Civilians**</span>​
+
+1. Do not commit any Murdererous acts.
+
+2. Do not work with Murderers
+
+3. Only kill when you have a valid reason to do so.
+
+4. Obey valid detective orders at all times.
+
+5. Do not harm the detectives in any way.
+
+6. Do not use a Murderer defib at all.
+
+
+<span style="color:red">**Murderers**</span>
+
+1. Do not kill other Murderers.
+
+2. Always try to alert other Murderers to your traps.
+
+3. Do not sell out other Murderers.
+
+4. Do not use a Cleaning defib at all.
+
+
+<span style="color:blue">**Detectives**</span>
+
+1. Do not give unreasonable orders.
+
+2. Do not harm Civilians
+
+3. Do not abuse your powers.
+
+4. Do not work with Murderers.
+
+5. Do not use the Murderer defib at All.
+
+## Kill on Site Rules
+
+A kill on site must come under valid for you to act on it. Any kill on site marked with the role letter and color (<span style="color:blue">D</span>, <span style="color:red">M</span> or <span style="color:green">C</span>) are only valid if given by that role. if you kill on site someone for an invalid reason then you may be warned for False kill on site.​
+
+- Valid kill on site​
+
+1. Self Defence.
+
+2. Damage without a valid reason.​
+
+3. Mass killing.​
+
+4. Associating with Murderers.​
+
+5. Hiding game sensitive items.​
+
+6. Using Murderer weaponry without being proven.​
+
+7. Failing to Identify bodies after killing.​
+
+8. Walking past multiple unidentified bodies.​
+
+
+- Invalid kill on site​
+
+1. Kill on site on a Weapon.​
+
+2. Kill on site on a Location.​
+
+3. Not following Civilians orders.​
+
+4. Suspicion.​
+
+5. Aiming at players.​
+
+
+## Notes for developers / mappers
+
+- For developers, the source code is here:
+
+[LegendGuard's MMM repository](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/LegendaryGuard/ttt)
+
+- For mappers:
+
+Inside the map (.pk3 file), in .mapinfo file, you write: `gametype mmm`
+
+Moreover, you can enable this gamemode in the console using this command: 
+`sv_cmd gametype mmm`
+
+- Cvars:
+
+`g_mmm_not_lms_maps 0` // "when this is set, LMS maps will NOT be listed in mmm"
+
+`g_mmm_not_dm_maps 0` // "when this is set, DM maps will NOT be listed in mmm"
+
+`g_mmm_murderer_count 0.25` // "number of players who will become murderers, between 0 and 0.9 to use a multiplier of the current players, or 1 and above to specify an exact number of players"
+
+`g_mmm_detective_count 0.125` // "number of players who will become detectives, between 0 and 0.9 to use a multiplier of the current players, or 1 and above, to specify an exact number of players. 0 = no detectives"
+
+`g_mmm_punish_teamkill 0` // "enable option to kill the player when they kill an ally"
+
+`g_mmm_reward_civilian 1` // "give a point to all civilian players if the round timelimit is reached, in addition to the points given for kills"
+
+`g_mmm_warmup 10` // "how long the players will have time to run around the map before the round starts"
+
+`g_mmm_round_timelimit 180` // "round time limit in seconds"
+
+`g_mmm_max_karma_points 1000` // "limit of maximum number of karma points will have in the server"
+
+`g_mmm_min_karma_points 550` // "limit where number of karma points can be reached when are being decreased"
+
+`g_mmm_karma_bankick_tool 1` // "tool for strict rules when karma is low: '0' nothing does, '1' forces player to spec, '2' kicks player, '3' bans player"
+
+`g_mmm_karma_bantime 1800` // "number of seconds to ban someone with very low karma"
+
+`g_mmm_karma_damageactive 1` // "enable karma damage rule. If a player's karma is low, they will not do as much damage as a player who has high or full karma"
+
+`g_mmm_karma_damagepunishmentdeal 20` // "punishment damage points when player kills an ally"
+
+`g_mmm_karma_severity 0.25` // "how severe karma is to decrease karma points to the players [0.1 - 1.0]"
+
+`g_mmm_reward_detective 1` // "give a point to all detective players if investigated corpses"
+
+<br/>
+<br/>
+<br/>
+<br/>
+<br/>
+
+~~Previously and similarly, there was someone else who used to work on that kind of project, but it was separate and not entirely open. Data is from 2019.~~
+
+~~[obsolete reference](https://gitlab.com/xonotic/xonotic/-/wikis/Trouble-in-Terrorist-Town)~~
\ No newline at end of file
index 4b75054b461e878ad32b5c6a2bebaec2a26645c2..f0f2f8ef7349a3db0c1895e9c7a87da0647aadf0 100644 (file)
@@ -70,7 +70,7 @@ This is the list of pre-selected tracks that we have so far _(work in progress)_
 ||**[To the East](http://www.4shared.com/file/250363291/cd3f1a3/To_the_East.html) ([S](http://www.4shared.com/file/250360264/e994b60d/To_the_East.html))**|NEXT POLL|
 |mickrippon|**[Jumping in Space](http://mickrippon.com/xonotic/music_jumpinginspace.zip) (S)**|ACCEPTED|
 ||[Ribcage 2](http://www.mickrippon.com/temp/ribcage2.ogg)|REJECTED|
-|divVerent|**[Foo hundred and eighty](http://rm.endoftheinternet.org/~xonotic/foo180.ogg) ([S](http://rm.endoftheinternet.org/~xonotic/foo180.mmpz))**|NEXT POLL|
+|divVerent|**[Foo hundred and eighty](https://rm.cloudns.org/~xonotic/foo180/foo180.flac) ([S](https://rm.cloudns.org/~xonotic/foo180/foo180.mmpz))**|NEXT POLL|
 
 Status legend
 -------------
diff --git a/NIX.md b/NIX.md
new file mode 100644 (file)
index 0000000..649b3c6
--- /dev/null
+++ b/NIX.md
@@ -0,0 +1,8 @@
+NIX
+---
+
+**NIX** is an arena mutator. All collectable weapons and ammo items are removed. Every player gets the same weapon which is randomly selected. After a couple of time, the weapon will be changed to another random weapon. This repeats forever.
+
+CVar
+----
+The [CVar](CVars) that enables this is `g_nix`. Related CVars are `g_nix_*`
\ No newline at end of file
diff --git a/Nades.md b/Nades.md
new file mode 100644 (file)
index 0000000..925d131
--- /dev/null
+++ b/Nades.md
@@ -0,0 +1,156 @@
+# Nades
+
+Come in a variety of types. The offhand hook bind or drop weapon bind throws the grenade. Hold the throw key E to throw the nade. (*NOTE: If you have a Grappling Hook weapon with you, you will have to press the G key once to throw it and then press it again when you want to throw the nade. Due to development reasons, the Grappling Hook only can be used with the E key as the main key, so it was developed to avoid errors in the game.*) Press F8 to switch nade types.
+
+# Nade types
+
+## Normal
+
+<img src="uploads/7e75ed16f04358a1297c0cd1363a5e03/normal.jpg" alt="normalnade" width="450"/>
+
+<img src="uploads/f087361a52e91df6459df22e3926f412/normalboom.jpg" alt="normalboom" width="450"/>
+
+Frag grenade. Explodes.
+
+## Napalm
+
+<img src="uploads/eab7d20707a37db964faeca5b624648a/napalm.jpg" alt="napalm" width="450"/>
+
+<img src="uploads/07e424e85718e7f40cf524183384b0e6/napalmboom.jpg" alt="napalmboom" width="450"/>
+
+Shoots several napalm globs in a circle around the nade. Touching these will ignite players and likely kill them.
+
+## Nitro
+
+<img src="uploads/d5c18cbaed37fc98b28a3fc2d8b3f8ed/nitro.jpg" alt="nitro" width="450"/>
+
+<img src="uploads/4790da4757c57d879be55493c95b6857/nitroboom.jpg" alt="nitroboom" width="450"/>
+
+Freezes enemies in a large radius. Lethal.
+
+## Translocate 
+
+<img src="uploads/ee94f06409a122191a74d70e1e2250bd/translocate.jpg" alt="translocate" width="450"/>
+
+<img src="uploads/1487c855c09637affb13c6cfeaaae994/translocateboom.jpg" alt="translocateboom" width="450"/>
+
+Teleports the player to where the nade "explodes".
+
+## Spawn
+
+<img src="uploads/77f2c9768bec14f7b5c5cfd68452886f/spawnnade.jpg" alt="spawnnade" width="450"/>
+
+Creates a spawn point that can be respawned on three times. It's useful when you need to go back in the point where you want to start after died, instead starting in the main points.
+
+## Healing
+
+<img src="uploads/22b3273ceedc7cbf526f7b7e8a719828/healing.jpg" alt="healing" width="450"/>
+
+<img src="uploads/606e3175f20a9274b9c651f5b8fea151/healingboom.jpg" alt="healingboom" width="450"/>
+
+Regenerates health in a large radius around the nade.
+
+## Entrap
+
+<img src="uploads/15add5938094995589a7d569e9195f24/entrap.jpg" alt="entrap" width="450"/>
+
+<img src="uploads/e846c4dac00937a4bcef89c5fe961291/entrapboom.jpg" alt="entrapboom" width="450"/>
+
+Slows movement within a large radius for 12 seconds. Makes the balls' gravity fall faster when they are inside the orb. In the orb, you will see that the electro balls fall quicker inside and rockets / bullets are slowing down.
+
+## Veil
+
+<img src="uploads/9ad5f03fe196de135e03f281cdd4cc62/veil.jpg" alt="veil" width="450"/>
+
+<img src="uploads/88071dccb47d650aacd31c719eadb6b6/veilboom.jpg" alt="veilboom" width="450"/>
+
+It creates an orb which makes invisible to the players whose are on the side of the one who has thrown(in TDM, CTF, team gamemodes) during a time.
+
+# Pokenade 
+
+<img src="uploads/3a0322703abb471d604d3b65b778bd53/monsternade.jpg" alt="monsternade" width="450"/>
+
+<img src="uploads/f453f36f7b04dd48c0747fc9075f4895/monsternadeboom.jpg" alt="monsternadeboom" width="450"/>
+
+Spawns a monster. Four monsters can be alive at one time. Options include:
+
+## Zombie
+
+Medium speed melee attacker. Can be ridden for movement speed higher than running (but not as fast as strafe jumping).
+
+## Spider
+
+High speed melee attacker. Drops 25 health on death.
+
+## Wyvern
+
+Flying monster.
+
+## Shambler
+
+Large, slow melee attacker. Drops 100 health on death.
+
+## Random
+
+Spawns all of the above and a marine at random.
+
+**More info about monsters are in [this link](Monsters).**
+
+## Notes for developers
+
+**Nades source codes are in this [directory](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/master/qcsrc/common/mutators/mutator/nades).**
+
+If you are creating a server for yourself, to play with the nades, you need to activate the nades and it is recommended to set those variables (you can toggle in the console while writing `g_nades` and pressing TAB to display info of these cvars):
+
+`g_nades 1 // activate nades in the game`
+
+`set g_nades_nade_damage 150 // normal nade explosion damage`
+
+`set g_nades_bonus 1 // adding number of extra nades when it's obtained after time bonus`
+
+`set g_nades_bonus_client_select 1 // allow client side selection of bonus nade type`
+
+`set g_nades_bonus_max 3 // maximum number of bonus grenades`
+
+`set g_nades_bonus_type 3 // type of the bonus grenade. 1:normal 2:napalm 3:ice 4:translocate 5:spawn 6:heal 7:pokenade 8:entrap`
+
+`set g_nades_bonus_score_time 5 // time when someone is scoring, makes adding fast one nade extra more`
+
+`set g_nades_heal_foe -5 // when someone is not ally of the healing orb will take damage during a certain time if this is inside the orb`
+
+`set g_nades_nade_lifetime 3.5`
+
+`set g_nades_nade_maxforce 2000`
+
+`set g_nades_nade_minforce 400`
+
+`set g_nades_nade_newton_style 0 // 0 is absolute, 1 is relative (takes into account player speed), 2 is something in between`
+
+`set g_nades_napalm_ball_damage 110 // napalm explosion damage`
+
+`set g_nades_napalm_ball_lifetime 4 // napalm burning time after exploded`
+
+`set g_nades_napalm_burntime 3 // napalm burn time when someone is burning with those flames`
+
+`set g_nades_entrap_time 15 // entrap orb time`
+
+`set g_nades_nade_refire 10`
+
+`set g_nades_veil_radius 720 // veil orb radius size`
+
+`set g_nades_veil_time 6 // veil orb time`
+
+`set g_nades_ice_freeze_time 2 // How long the ice field will last`
+
+`set g_nades_ice_health 1 // How much health the player will have after being unfrozen`
+
+`set g_nades_ice_teamcheck 0 // Don't freeze teammates`
+
+`set g_nades_ice_explode 1 // Whether the ice nade should explode again once the ice field dissipated`
+
+`set g_nades_spawn_count 1 // number of times player will spawn at their spawn nade explosion location`
+
+`set g_nades_spread 0.04 // random spread offset of throw direction`
+
+
+After setting all this, it can be necessary to restart the server, use `restart` command to apply the changes. Instead doing this manually, you can put those variables in a *.cfg* file. Save the variables inside *nades.cfg* empty file and save it in *xonotic/data* folder. In the game, when you are playing in your own server, execute in the console: `exec nades.cfg` and restart if necessary.
\ No newline at end of file
index c1213ecf18cc9f1dfd8aef7aac5d6686e494ba09..65aa8d2d223e0f88c233f88c3d411eb25711174f 100644 (file)
@@ -3,7 +3,10 @@ NetRadiant - A Stabilized Q3 Map Editor
 
 ![](assets/images/netradiant.png)
 
--   [Download NetRadiant](Download NetRadiant) (missing)
+[Website with download links](https://netradiant.gitlab.io)
+
+[How to set up NetRadiant](Mapping Setup)
+
 -   [Additional map editor features](Additional map editor features) (missing)
 -   [Additional map compiler features](Additional map compiler features) (missing)
 -   [Complete list of entity keys](Complete-list-of-entity-keys)
index 4392d88bab8b13fa76968bcdc261b609c0e279ae..78327ae586331f76c26dab74ee9857f007549608 100644 (file)
@@ -1,19 +1,17 @@
-# Overview
-This mutator replaces the Arc/Machine Gun, Vortex, Hagar, and Devastator with new, more gimmicky weapons, specifically the Heavy Layer Assault Cannon, Rifle, TAG Seeker and Mine Layer respectively. These weapons normally replace their counterparts about 50% of the time and may have dedicated spawns on some maps (such as techassault)
-# Mutator Details
--  Heavy Layer Assault Cannon information:
-   -  *Primary:* Rapidly fire laser particles, dealing a small amount of knockback and 10-13 damage.
-   -  *Secondary:* Fire a single, broadly scattered shot.
-   -  *Ammunition:* Cells
--  Rifle information:
-   -  *Primary:* Fire a shot which pierces through walls, dealing 80-90 damage to an enemy hit, for 10 ammo.
-   -  *Secondary:* Fire a faster, somewhat scattered shot.
-   -  *Ammunition:* Bullets (magazine size 80)
--  TAG Seeker information:
-   - *Primary:* Fire a particle called a "tag." If that particle hits, one may continue to hold down the primary fire button to launch homing explosives as long as the target is in sight, dealing 20-40 damage with each hit.
-   - *Secondary:* Launch a rapid barrage of explosives.
--  Mine Layer information:
-   - *Primary:* Place mines on the ground, which deal 20-40 damage if stepped on by an enemy. These persist for 10 seconds before exploding. Up to three mines may be placed at a time.
-   - *Secondary:* Detonate all mines immediately.
--  Use the Mine Layer to protect isolated areas of the map, particularly important areas such as those that contain weapons, powerups, control points in Onslaught, flags in CTF, and checkpoints in Assault.
--  The TAG Seeker and Rifle are very powerful weapons. The Rifle is likely the best "sniper" item in the game, and the TAG Seeker usually does at least 80 damage before an enemy can escape it, sometimes more, often killing the enemy very quickly.
\ No newline at end of file
+# New Toys
+
+**New Toys** is a mutator that will spawn new, more gimmicky weapons in the arena. They will spawn sometimes in the place of where a core weapon would normally spawn with a chance of 50%.
+
+These are the new weapons that will spawn:
+
+* [Heavy Laser Assault Cannon](Weapons#heavy-laser-assault-cannon-hlac)
+    * **Might spawn instead of:** [Arc](Weapons#arc) and [MachineGun](Weapons#machinegun)
+* [Rifle](Weapons#rifle)
+    * **Might spawn instead of:** [Vortex](Weapons#vortex)
+* [T.A.G. Seeker](Weapons#tag-seeker)
+    * **Might spawn instead of:** [Hagar](Weapons#hagar)
+* [Mine Layer](Weapons#mine-layer)
+    * **Might spawn instead of:** [Devastator](Weapons#devastator)
+
+## CVar
+Enabled with the [CVar](CVars) `g_new_toys`.
\ No newline at end of file
index 008343c475c75a7957fbc7f9a5ca942693219866..6c83d80b47ee69a6d4f7325696d248c53da31f81 100644 (file)
@@ -7,11 +7,13 @@ Nexball
 Object of the Game
 ------------------
 
-Nexball is ball sport game where 2 teams (red & blue) play against one another and try to score goals. You can’t shoot (/frag) other players here.
+**Nexball** is a ball sport game where 2 teams (red and blue) play against one another and try to score goals. On some special maps you can't shoot opponents.
 
-There are two Nexball game-types. The first is similar to soccer/football and allows the player to direct the ball by running into it. The second one is like basketball (or team handball) and allows the player to catch, carry, and shoot the ball. The basketball game-type also allows stealing the ball from an opponent.
+There are two variants of Nexball. The first one is like soccer/football. Players can kick the ball by walking into it.
 
-How To:
+The second variant is like basketball. It gives players a [Ball Stealer](Weapons#ball-stealer). This allows the player to catch, carry, and shoot the ball. This allows stealing the ball from an opponent.
+
+**How to …:**
 
 *Soccer/football*
 - Push the ball? Just move at it and the ball will jump in that direction.
@@ -19,23 +21,10 @@ How To:
 
 *Basketball*
 - Catch or pick up the ball? Just run into the ball.
-- Steal the ball? Click or press alternate-fire while close to a ball carrier.
-- Shoot the ball? Click or press fire.
-
-Map Entities
-------------
-
-_(Insert Map Entities here)_
+- Steal the ball? Use the Ball Stealer's primary attack or press secondary fire while close to a ball carrier.
+- Shoot the ball? Use the Ball Stealer's primary attack
 
 Helpful Hints and Tips
 ----------------------
 
-- Be careful: players can score own goals too.
-
-List of Demos and Videos
-------------------------
-
--   Demo: _(Insert Demo or Video Here)_
--   Players: _(Insert Player Names Here)_
--   Key Points: _(Insert key points in match here)_
-
+- Be careful: Players can score own goals, too.
\ No newline at end of file
index 96f72ee6f25721b8607d80c0f13dcc933e3bd44c..83bbd34f77a615ba45da23fdaf668018ac814ae6 100644 (file)
@@ -1,3 +1,5 @@
+**Note:** This mutator does not exist in Xonotic 0.8.2.
+
 You can now fire an offhand blaster using the "hook" key. No need to switch to blaster manually.
 
 ## Server settings
index f10c3d51034e62ae94088e435cf2c82fc96353bb..119fdb708482d8d5e96e5479b1e5c58d71533f5b 100644 (file)
@@ -4,38 +4,42 @@ Onslaught
 ![Neutral Control Point](http://pics.nexuizninjaz.com/images/m7xbxjz79zkyje0ffh7.jpg)
 ![Build Control Point](http://pics.nexuizninjaz.com/images/xkh0v7zf9n5g1n2d0wan.jpg)
 ![Main Generator](http://pics.nexuizninjaz.com/images/gk529b5gjnmpgzvx39wd.jpg)  
-*Neutral Control Point* / *Build Control Point* / *Main Generator*
+*From left to right: Neutral control point / control point under construction / generator*
 
 Object of the Game
 ------------------
 
-In Onslaught there are usually 2 teams, each controlling a generator. Across the map are several control points, which are connected to each other and to the generator. One may only capture a control point or attack a generator if they control another conneccted control point.
+In **Onslaught** there are usually 2 teams, each controlling a generator. The goal is to destroy the opponent's generator. Across the map are several control points, which are connected to each other and to the generator. One may only capture a control point or attack a generator if they control another conneccted control point. So the teams need to conquer the control points first.
 
-After a certain period (usually 4 minutes and 40 seconds) overtime will start and the generators will decay. The rate at which this occurs depends on how many control points your team controls.
+The team that manages to destroy the opponent's generator wins the match.
 
-How to:
-*  Capture a neutral control point? Walk to it.
-*  Capture an enemy's control point? Attack the "infobot" above the control point to destroy it and make the point neutral. Then you can walk to it.
-*  Destroy the generator? Simply attack it to reduce its health.
+Gameplay
+--------
 
+### Control points
+Control points are interconnected to each others and the generators. The minimap shows the connections. Players of each team must capture control points to advance through a network of control points, eventually reaching the enemy generator.
 
-Map Entities
-------------
+A neutral control point is captured by walking into it. This will take a bit of construction time, but the contruction cannot be halted. Only control points that are connected to your generator or to a control point that you own can be captured.
 
-_(Insert Map Entities here)_
+A control point that a team owns can be destroyed and turned neutral by attacking the “infobot” above. When the “infobot” is destroyed, the control point is neutral again and can be captured.
 
-Helpful Hints and Tips
-----------------------
+### Generator
+The opponent's generator can be attacked if you own a neighboring control point. Otherwise, the generator is shielded from attacks. If the shield is down, attack the generator with all your might to destroy it and win the match. 
 
-*  If your generator has lost any health, a waypoint for it will appear including its health. Likewise, all control points your team controls which have lost health also have waypoints showing their health. Make sure to defend your control points and generator.
-*  All control points available for capture have waypoints that include their health (if captured).
-*  If someone is camping near one of your control points or one you are attacking, you can slow them down using the Blaster.
+### Teleportation
+Control points and the generator are also used as spawn and teleportation points.
+
+When you're dead, the game allows you to select a new spawn point.
 
+When you're in front of your generator or one of your control points, you can press [F] to select a destination to teleport you. Teleportation has a cooldown of 5 seconds, however.
 
-List of Demos and Videos
-------------------------
+### Overtime
 
--   Demo: _(Insert Demo or Video Here)_
--   Players: _(Insert Player Names Here)_
--   Key Points: _(Insert key points in match here)_
+After a certain period (usually 4 minutes and 40 seconds), overtime will start and the generators will decay. The rate at which this occurs depends on how many control points your team controls. The more control points you have, the faster the opponent's generator will decay.
 
+Helpful Hints and Tips
+----------------------
+
+*  If your generator has lost any health, a waypoint for it will appear including its health. Likewise, all control points your team controls which have lost health also have waypoints showing their health. Make sure to defend your control points and generator.
+*  All control points available for capture have waypoints that include their health (if captured).
+*  If someone is camping near one of your control points or one you are attacking, you can slow them down using the Blaster.
\ No newline at end of file
diff --git a/Pinata.md b/Pinata.md
new file mode 100644 (file)
index 0000000..b5a7439
--- /dev/null
+++ b/Pinata.md
@@ -0,0 +1,12 @@
+Piñata
+======
+
+Overview
+--------
+**Piñata** is a mutator that will make players drop *all* their weapons when they die.
+
+Without this mutator, players normally only drop their equipped weapon.
+
+CVars
+-----
+This is enabled with the [CVar](CVars): `g_pinata`.
\ No newline at end of file
index b1adddca013f14d978e13fd8861e69805def0f07..86596eb0a6b293d61c1c1c263065a62a1425792f 100644 (file)
@@ -1,6 +1,8 @@
 Players
 =======
 
+This is a list of player models in Xonotic (note: some of these might not be available in your version).
+
 Erebus
 ------
 
@@ -8,6 +10,7 @@ Erebus
 
 Nyx
 ---
+*(missing image)*
 
 Ignis
 -----
@@ -44,14 +47,15 @@ Gak Armored
 
 ![](http://www.xonotic.org/m/uploads/2010/05/1512771715148-500x312.png) ![](http://www.xonotic.org/m/uploads/2010/05/di-212771614895-500x312.png)  
 
-Gak-Masked
+Gak Masked
 ----------
 
 ![](http://www.xonotic.org/m/uploads/2010/05/112771714068-500x312.png) ![](http://www.xonotic.org/m/uploads/2010/05/di-1212771613363-500x312.png)  
 
 Pyria
 -----
+*(missing image)*
 
 Umbra
 -----
-
+*(missing image)*
index 1bf1e85e8c40472d2c9f3e618708d9089994f7ab..8d70199edda1c302623d4e866507c4fbff5ca9bd 100644 (file)
@@ -1,13 +1,28 @@
 Powerups
 ========
 
+Powerups spawn from time to time in the arena and grant to whoever collects them a temporary super power. They usually appear at about every 2 minutes or so.
+
+A powerup lasts for 30 seconds. Powerups will also be shown in the radar and the HUD 10 seconds before they appear.
+
+*Note: All numbers on this page are default values, as of 0.8.6.*
+
 Shield
 ------
 
 ![](http://pics.nexuizninjaz.com/images/l2ycopxlaclk58xpvek8.jpg)
 
+With the Shield you only take 33% of the damage you would normally receive. You're also more resistant to push forces.
+
 Strength
 --------
 
 ![](http://pics.nexuizninjaz.com/images/suftloljmy2uaj2p2mrv.jpg)
 
+Strength increases the damage you deal by a factor of 3. The force/knockback that attacks cause is also greatly increased.
+
+The damage and knockback you can deal to yourself is only increased by a factor of 1.5.
+
+See also
+--------
+* [Buffs](Buffs)
\ No newline at end of file
diff --git a/Programming-QuakeC-stuff-in-Xonotic.md b/Programming-QuakeC-stuff-in-Xonotic.md
new file mode 100644 (file)
index 0000000..d87431e
--- /dev/null
@@ -0,0 +1,339 @@
+_This article is written as developer notes to ease developer tasks and save QuakeC terms here._
+
+# _Table of Contents_
+> ### 1. [CSQC, MENUQC, SVQC and GAMEQC blocks](#csqc-menuqc-svqc-and-gameqc-blocks)
+> ### 2. [MUTATOR functions](#mutator-functions)
+> > 2.1. [How to use MUTATOR functions](#how-to-use-mutator-functions) <br/>
+> > 2.2. [List of MUTATOR functions](#list-of-mutator-functions)
+> ### 3. [Weapon functions](#weapon-functions)
+> > 3.1. [A bit of introduction](#a-bit-of-introduction) <br/>
+> > 3.2. [List of weapon functions](#list-of-weapon-functions)
+> ### 4. [HUD, Menu and Draw functions](#hud-menu-and-draw-functions)
+> ### 5. [Gamemodes](#gamemodes)
+> > 5.1. [Samples](#samples)
+> ### 6. [Effects](#effects)
+
+# CSQC, MENUQC, SVQC and GAMEQC blocks
+
+Xonotic uses the ***csprogs.dat*** from the server you're playing on, as it must match the server's ***progs.dat*** code (whereas your ***menu.dat*** is always your local copy).
+
+Menu and HUD code are actually separated as they run in 2 distinct programs: ***csprogs.dat*** and ***menu.dat***
+
+Server program is ***progs.dat***
+
+- Code inside a **`#ifdef CSQC`** block is part of the client code and will be compiled to **csprogs.dat**
+
+- Code inside a **`#ifdef MENUQC`** block is part of the menu code and will be compiled to **menu.dat**
+
+- Code inside a **`#ifdef SVQC`** block is part of the menu code and will be compiled to **progs.dat**
+
+- Also, code inside a **`#ifdef GAMEQC`** block is part of both client (not menu) and server code.
+
+### A bit of explanation about the use of each type of cvars
+
+- **g_*** cvars:
+
+Example: `g_balance_grapplehook_speed_fly` is clearly a server or game cvar (**g_*** cvars are server and game cvars), so you CAN'T declare it within a `#ifdef CSQC` block. This type of cvar only can be declared inside a **`#ifdef SVQC`** or **`#ifdef GAMEQC`** block (if possible).
+
+- **sv_*** cvars:
+
+Example: `sv_campcheck` is clearly a server cvar (**sv_*** cvars are server cvars), only can be declared inside a **`#ifdef SVQC`** block.
+
+- **cl_*** cvars:
+
+Example: `cl_chatsound` is clearly a client cvar (**cl_*** cvars are client cvars), only can be declared inside a **`#ifdef CSQC`** block.
+
+- **hud_*** cvars:
+
+Example: `hud_progressbar_alpha` is a client cvar (**hud_*** cvars belong to client cvars), only can be declared inside a **`#ifdef CSQC`** block.
+
+
+<br />
+
+# MUTATOR functions
+
+### How to use MUTATOR functions
+
+You can look the following link if you're trying/testing your own mutator: [Writing your first mutator](writing-your-first-mutator)
+
+**Attention:** to use a hook, first register your mutator using `REGISTER_MUTATOR`, then create your function using `MUTATOR_HOOKFUNCTION`.
+
+
+- **`REGISTER_MUTATOR`**
+
+Registers a new `MUTATOR_HOOKFUNCTION`.
+```c
+REGISTER_MUTATOR(new_mutator_name, some_variable);
+```
+
+
+- **`MUTATOR_HOOKFUNCTION`**
+
+Creates a function and calls `new_mutator_name` (from `REGISTER_MUTATOR`) and one of `#define MUTATOR()` (from `qcsrc/server/mutators/events.qh` main hooks).
+
+Example:
+```c
+MUTATOR_HOOKFUNCTION(new_mutator_name, events.qh_main_hook)
+{
+    // whatever does
+}
+```
+
+- **`MUTATOR_CALLHOOK`**
+
+Calls some `MUTATOR_HOOKFUNCTION`.
+```c
+MUTATOR_CALLHOOK(name_of_MUTATOR_HOOKFUNCTION_or_events.qh_main_hook);
+```
+
+There are different versions and depends how many variables need to be called in a `MUTATOR_HOOKFUNCTION`:
+
+1 `MUTATOR_HOOKFUNCTION` and 1 variable:
+
+```c
+MUTATOR_CALLHOOK(name_of_MUTATOR_HOOKFUNCTION_or_events.qh_main_hook, some_variable);
+```
+
+1 `MUTATOR_HOOKFUNCTION` and 2 variables:
+
+```c
+MUTATOR_CALLHOOK(name_of_MUTATOR_HOOKFUNCTION_or_events.qh_main_hook, some_variable, some_variable);
+```
+
+1 `MUTATOR_HOOKFUNCTION` and 3 variables:
+
+```c
+MUTATOR_CALLHOOK(name_of_MUTATOR_HOOKFUNCTION_or_events.qh_main_hook, some_variable, some_variable, some_variable);
+```
+
+1 `MUTATOR_HOOKFUNCTION` and multiple variables:
+
+```c
+MUTATOR_CALLHOOK(name_of_MUTATOR_HOOKFUNCTION_or_events.qh_main_hook, some_variable, some_variable, some_variable, some_variable, ...);
+```
+
+<br />
+
+## List of MUTATOR functions
+
+You can look the MUTATOR functions in:
+
+- **COMMON:** [`qcsrc/common/mutators/events.qh`](https://timepath.github.io/scratchspace/d4/d95/common_2mutators_2events_8qh.html)
+
+- **CLIENT:** [`qcsrc/client/mutators/events.qh`](https://timepath.github.io/scratchspace/d8/d0e/client_2mutators_2events_8qh.html)
+
+- **SERVER:** [`qcsrc/server/mutators/events.qh`](https://timepath.github.io/scratchspace/d6/ddd/server_2mutators_2events_8qh.html)
+
+<br />
+<br />
+
+# Weapon functions
+
+## A bit of introduction
+
+You'll need understand that weapons can be interacted with **autocvars** variables (example: `float autocvar_g_balance_someweapon_speed;`) and each weapon with .qh file where cvars are declared without the need to declare using `autocvar_blabla...`. *Think*, *touch*, *explode* and those types of functions can be declared within an *attack* function and *whatever* it is called. Note that there are also METHODs that are necessary for the weapon to work.
+
+- **Think** function makes the weapon shot react on what to do.
+- **Touch** function makes the weapon shot react against some element where touch (like player, monster, vehicle, ...).
+- **Explode** function makes the weapon explosion react.
+- **Attack/Whatever** function is where the weapon attack executes, keep in mind that it has the other functions attached to be executed.
+
+You can look the example of this weapon code:
+- [**devastator.qh**](https://timepath.github.io/scratchspace/d9/dfa/devastator_8qh_source.html)
+- [**devastator.qc**](https://timepath.github.io/scratchspace/d9/d5d/devastator_8qc_source.html)
+
+<br />
+
+## List of weapon functions
+
+This is a created list of functions to modify/create weapons. There may be incomplete explanations for each function.
+
+There are contents taken from [`qcsrc/common/weapons/all.qh`](https://timepath.github.io/scratchspace/d0/ddd/weapons_2all_8qh_source.html)
+
+**WARNING:** The contents may content wonky code, and the interactions can change and not do the same what happens here.
+
+<br />
+
+- [**W_SetupShot_Dir**](https://timepath.github.io/scratchspace/d4/d3f/tracing_8qh.html#aff0ea351757ee6caf83b25d12d18656c)
+
+```c
+W_SetupShot_Dir(
+       ent,
+       wepent,
+       s_forward,
+       antilag,
+       recoil,
+       snd,
+       chan,
+       maxdamage,
+       deathtype 
+)
+```
+
+- [**W_SetupProjVelocity_Explicit**](https://timepath.github.io/scratchspace/d7/d31/tracing_8qc.html#a55f8f2b1828413bfb123a5fcb61b9f8e)
+
+```c
+void W_SetupProjVelocity_Explicit(
+    entity     proj,
+    vector     dir,
+    vector     upDir,
+    float      pSpeed,
+    float      pUpSpeed,
+    float      pZSpeed,
+    float      spread,
+    float      forceAbsolute 
+)
+```
+
+- [**W_MuzzleFlash**](https://timepath.github.io/scratchspace/d0/ddd/weapons_2all_8qh_source.html)(located in **`qcsrc/common/weapons/all.qh`** line 406)
+
+In the moment when player shots the weapon, weapon flashes. 
+
+**Note:** write **`#ifdef SVQC`** at the start of using this function, and write with **`#endif`** after declared the function (only can do this if the code needs to be executed, although maybe you need more functions/things in the code inside this).
+
+```c
+void W_MuzzleFlash(Weapon thiswep, entity actor, .entity weaponentity, vector shotorg, vector shotdir);
+```
+
+- [**Weapon selection functions**](https://timepath.github.io/scratchspace/d8/d6b/selection_8qh.html)
+(located in **`qcsrc/server/weapons/selection.qh`**)
+
+- [**Weapon decrease ammo, speed factor, rate factor, reload functions**](https://timepath.github.io/scratchspace/d5/de0/weaponsystem_8qc.html)
+(located in **`qcsrc/server/weapons/weaponsystem.qh`**)
+
+<br />
+
+# HUD, Menu and Draw functions
+
+You can look the draw functions where HUD is being drawn: 
+- [**Draw functions and macros (`qcsrc/client/draw.qh`)**](https://timepath.github.io/scratchspace/d5/d8d/client_2draw_8qh_source.html)
+
+More info inside the code where you can draw/print HUD and menu: 
+- [**Globals, constants, fonts, prints, error cmds, vector stuff, conversion functions and all drawing/printing HUDs/menus/characters related (`qcsrc/dpdefs/upstream/menudefs.qc`)**](https://timepath.github.io/scratchspace/d8/de2/menudefs_8qc_source.html)
+
+Important changes about menus we could learn of:
+- [**Terms of Service in window display and multiplayer dialog**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/commit/19bd3a4f)
+- [**Welcome dialog**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/commit/19d753312f0deff7bd297822907874d532e9303e)
+- [**A button to properly quit the campaign, a "Game menu" (on ESC) and remove the Disconnect dialogue**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/commit/2b2f743fc929bbbe0fc765edf8c433c946764607)
+<br />
+
+# Gamemodes
+
+Keep in mind that to develop a gamemode, you need a map having enabled inside its *name_of_map.mapinfo* file this: `gametype shortcut_of_gamemode`. (example: `gametype tdm` (tdm is Team Deathmatch). After modifying the map file, compress the map contents, save as `.zip` and rename the extension to `.pk3`
+
+Making gamemodes doesn't seem easy. There's a little explanation of what does each element. 
+
+### Generated files for gamemodes:
+
+[`qcsrc/common/gamemodes/gamemode/_mod.inc`](https://timepath.github.io/scratchspace/d9/d67/common_2gamemodes_2__mod_8inc_source.html) generated file where the includes of each gamemode are stored.
+
+[`qcsrc/common/gamemodes/gamemode/_mod.qh`](https://timepath.github.io/scratchspace/d7/d0b/common_2gamemodes_2__mod_8qh_source.html) generated file where the includes of each gamemode are stored.
+
+<br />
+
+### Gamemode files:
+
+- Server type:
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/sv_name_of_gamemode.qc`
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/sv_name_of_gamemode.qh`
+
+<br />
+
+- Client type:
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/cl_name_of_gamemode.qc`
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/cl_name_of_gamemode.qh`
+
+<br />
+
+- Base:
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/name_of_gamemode.qc`
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/name_of_gamemode.qh`
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/_mod.inc` generated file where the includes of a gamemode is generated.
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/_mod.qh` generated file where the includes of a gamemode is generated.
+
+<br />
+
+### Optional things (if necessary):
+
+[`qcsrc/common/ent_cs.qc`](https://timepath.github.io/scratchspace/d5/dff/ent__cs_8qc_source.html) (if an `ENTCS_PROP()` is needed for a gamemode)
+
+[`qcsrc/common/mutators/mutator/waypoints/all.inc`](https://timepath.github.io/scratchspace/d2/d2b/mutators_2mutator_2waypoints_2all_8inc_source.html) where `REGISTER_WAYPOINT` can interact the situation of waypoints.
+
+<br />
+
+### Notifications, applying BADCVAR and displaying gamemode in the menu: 
+
+[`qcsrc/common/notifications/all.inc`](https://timepath.github.io/scratchspace/d9/d09/notifications_2all_8inc_source.html) where notifications output appears in the scenario.
+
+[`qcsrc/common/notifications/all.qh`](https://timepath.github.io/scratchspace/dc/d8f/notifications_2all_8qh_source.html) where `CASE(CPID, NAME_OF_ELEMENT)` is needed for a gamemode.
+
+[`qcsrc/menu/xonotic/util.qc`](https://timepath.github.io/scratchspace/df/d9b/menu_2xonotic_2util_8qc_source.html) where gamemodes can appear in the main menu (Multiplayer > Create). `GAMETYPE(MAPINFO_TYPE_NAME_OF_GAMEMODE) \`
+[`qcsrc/server/world.qc`](https://timepath.github.io/scratchspace/dd/dbe/world_8qc_source.html)  where `BADCVAR(g_*)` for each gamemode are stored.
+
+<br />
+
+### Configuration files where gamemodes interact:
+
+`xonotic-data.pk3dir/gamemodes-server.cfg` where server gamestart hooks, gametype vote hooks, respawn delay/waves/weapon_stay cvars and gamemode game/server cvars connect.
+
+`xonotic-data.pk3dir/gamemodes-client.cfg` where client gamestart hooks cvars connect.
+
+`xonotic-data.pk3dir/notifications.cfg` where notifications need to be activated in the scenario.
+
+<br />
+
+### Menu and HUD icons:
+
+`gfx/menu/luma/gametype_nameshortcut.tga`
+
+`gfx/menu/luminos/gametype_nameshortcut.tga`
+
+`gfx/menu/wickedx/gametype_nameshortcut.tga`
+
+`gfx/menu/xaw/gametype_nameshortcut.tga`
+
+(Example: `gametype_tdm.tga` is an icon of Team Deathmatch)
+
+<br />
+
+## Samples
+
+There are good examples of the commits and repositories of people who developed gamemodes:
+
+- [**Lyberta's GunGame gametype commits**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/482/diffs)
+
+Taken from: https://forums.xonotic.org/showthread.php?tid=7314
+
+You can look and test the [**Lyberta's GunGame gametype repository**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/Lyberta/GunGame)
+
+- [**How Survival gamemode was developed (first commit)**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/commit/8f61a40877542ac94baa74c5ed653c77b77bd855)
+
+It's recommended use the final product in this [**repository**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/Mario/survival). Many changes have been influenced.
+
+[**SMB modpack repository**](https://github.com/MarioSMB/modpack/tree/master/mod/common/gamemodes/survival) has added Survival gamemode and others.
+
+# Effects
+
+Spawns effect particle in-game.
+
+The effects can be used with `Send_Effect(effect, org, vel, howmany)` function to test the effects from [**qcsrc/common/effects/all.inc**](https://timepath.github.io/scratchspace/d9/d95/effects_2all_8inc_source.html)
+
+**Send_Effect** function definition is inside: [**qcsrc/common/effects/effect.qh**](https://timepath.github.io/scratchspace/d5/de6/effect_8qh_source.html)
+
+For example, you can test the smokes, using `EFFECT_SMOKE_LARGE`:
+```c
+Send_Effect(EFFECT_SMOKE_LARGE, this.origin, '0 0 0', 1);
+```
+
+EFFECT list: [**qcsrc/common/effects/all.inc**](https://timepath.github.io/scratchspace/d9/d95/effects_2all_8inc_source.html)
+
+<br />
\ No newline at end of file
index 8aaff9a115f85da8d45fdeabc830a924b4e0934c..75308606f0675fdd513476a220907f134ecff642 100644 (file)
@@ -1,3 +1,21 @@
+### Faster compiling and reloading of QuakeC
+
+You can use `QCCFLAGS_WERROR=""` to let the build succeed even with some warnings and `ZIP=:` to skip compressing the resulting csprogs.dat (client gamecode) into a pk3. A compressed csprogs.dat is only useful to increase download speed of such file if you host an online dedicated server.
+
+`QCCFLAGS_WERROR="" ZIP=: ./all compile`
+
+Server and menu code produce progs.dat and menu.dat respectively.
+
+Compiling the Xonotic game code without trying to compile the engine code reduces compile time a little bit, in the case you aren't interested in changing the engine code. You can do so by running this command from the xonotic-data.pk3dir directory:
+
+`make qc -j4`
+
+where `-j4` is an option that lets you use up to 4 CPU cores for the compilation (it's enabled by default in `./all compile`). If you want you can run `make all -j4` to enable csprogs.dat compression.
+
+To test the QC client and server programs you don't need to restart Xonotic, you just have to start a new game with `map <mapname>` (depending on how you launch Xonotic you may need to use `fs_rescan; map <mapname>`).
+
+To test the QC menu program, you just have to restart the menu by executing `menu_restart` in the console.
+
 ### Debug prints
 
 Use `con_notify 4` together with `LOG_INFOF("my_var: %s", my_var);` (`%s` string, `%f` float, `%d` integer, `%v` vector) to see debug output without opening the console. Type `con_notify` and press `<TAB>` to see descriptions and more options (or use `apropos con_notify`).
@@ -7,8 +25,11 @@ You can draw text anywhere on the map using `debug_text_3d(world_coords, message
 ### Multiple clients + clean config
 
 If you need 2 players for debugging, you can launch another client locally:
- - use -sessionid (e.g. `./all run -sessionid testing`) to keep your config
- - use -userdir (e.g. `./all run -userdir ~/.xonotic-testing +name tester +cl_allow_uid2name 0`) to get a clean config (`+cl_allow_uid2name 0` to avoid an annoying popup). You can set whatever cvar on start with `+cvar_name value`.
+- use -sessionid (e.g. `./all run -sessionid testing`) to keep your config
+- use -userdir (e.g. `./all run -userdir ~/.xonotic-testing +name tester +cl_allow_uid2name 0`) to get a clean config (if you delete the dir before each use)
+  - you can set any cvar or run any command on start with `+cvar_name value`
+    - `+name tester` avoids the nick selection dialog
+    - `+cl_allow_uid2name 0` avoids an annoying popup 
 
 ### Testing with bots
 
@@ -38,7 +59,10 @@ prvm_globalwatchpoint : marks a global as watchpoint (when this is executed, a s
 Examples:  
 Print to console origin of entity number 1: `prvm_edictget server 1 origin`  
 Save to a cvar origin of entity number 1: `prvm_edictget server 1 origin my_cvar`  
-Set a custom origin for entity number 1: `prvm_edictset server 1 origin "100 200 0"`  
+Set a custom origin for entity number 1: `prvm_edictset server 1 origin "100 200 0"`
+
+Setting view angles requires a particular trick, we also need to set fixangle to true in the same server frame:
+`prvm_edictset server 1 fixangle 1; prvm_edictset server 1 angles "20 -90 0"`
 
 Print to console vid_conheight client global: `prvm_edictget client vid_conheight`
 
@@ -54,11 +78,17 @@ prvm_globalwatchpoint server
 prvm_edictwatchpoint server
 ```
 
+### Doxygen
+
+Incomplete [Doxygen documentation](https://timepath.github.io/scratchspace/index.html) is generated as part of CI on [xonotic-data.pk3dir](https://gitlab.com/xonotic/xonotic-data.pk3dir) - you can search functions, "classes", globals, etc.
+
+Note that it might be incomplete or incorrect because [Doxygen](https://www.doxygen.nl) doesn't understand all of QC's constructs and our code heavily uses macros. See the `doxygen` section of the [CI file](https://gitlab.com/xonotic/xonotic-data.pk3dir/blob/master/.gitlab-ci.yml) for details what's missing.
+
 ### Tool to find C symbols, functions, declarations and definitions inside source code
 
 For this purpose it's possible to use a text-based tool called [Cscope](https://en.wikipedia.org/wiki/Cscope) together with a GUI (it can be either an application or a plugin for a text editor).
 
-#### Download / Installation
+##### Download / Installation
 
 * Download and install cscope with `pacman -S cscope`  
 Windows users must download the Windows version of cscope from https://code.google.com/archive/p/cscope-win32/downloads and put it into the main xonotic repo directory. The mingw version can't be used as it puts Unix paths into the generated indices, making them unusable.
@@ -71,7 +101,7 @@ Windows users must download the Windows version of cscope from https://code.goog
 * If you don't use Atom, you also need to copy ~~[cscope_createindex.sh](uploads/17c725e19be8f4935c30c2506e168405/cscope_createindex.sh)(old version)~~ [cscope_createindex.sh](uploads/451835f6b1894145af06050915256048/cscope_createindex.sh) into the main xonotic repo directory.
 
 
-#### Configuration
+##### Configuration
 
 * Configure your plugin if needed:  
   * jEdit's CscopeFinder settings:  
@@ -94,7 +124,7 @@ Windows users must download the Windows version of cscope from https://code.goog
 
 * With Atom you can build cscope indices in the atom-cscope window (open with `Ctrl + Alt + o`) by clicking the flash icon.
 
-#### Usage
+##### Usage
 
 * jEdit: select a word in the editor, right-click and select "Find this C symbol" or another "Find ..." entry (if you don't see these entries you should add them in the context menu settings).
 * SublimeText: select a word in the editor, right-click and select "Look up symbol" or another "Look up ..." entry.
@@ -103,5 +133,5 @@ Windows users must download the Windows version of cscope from https://code.goog
 
 ### QC syntax highlighting:
 
-* For jEdit: [qc.xml](https://gitlab.com/terencehill/qc-syntax-highlighting-for-jedit/blob/master/qc.xml)
-* For Kate: [qc.xml](https://gist.github.com/DefaultUser/998f030ab41a9e8edf4a9f8e703c6350)
\ No newline at end of file
+* terencehill's version for jEdit: [qc.xml](https://gitlab.com/terencehill/qc-syntax-highlighting-for-jedit/blob/master/qc.xml)
+* EACFreddy's version for Kate: [qc.xml](https://gist.github.com/DefaultUser/998f030ab41a9e8edf4a9f8e703c6350)
\ No newline at end of file
index 8afdf1aae4b07b41eec6d0d13d47fea251593ab2..7a959a304e9632c1c2c354dcf5aed0bb2b3fa213 100644 (file)
@@ -4,13 +4,17 @@ Race CTS (= Complete The Stage)
 Object of the Game
 ------------------
 
-This is an advanced mode of [Race](Race). Difference here is that you - instead of running laps - have to reach the finish. The player who sets the fastest time wins after the time is over.
+In **Race CTS** (=Complete The Stage), the map is a race track and you have to run through the map from start to finish as fast as possible possible. It's a variant of [Race](Race). Difference here is that you don't run in laps and the start and finish points are at different positions.
 
+Gameplay
+--------
+The map will have a start point, checkpoints and a finish point. To *complete the stage*, you start at the start point and run to each checkpoint in the correct order until you reach the finish point. The HUD will show you where you have to run next. In some maps, there can be branching paths and multiple checkpoints will be shown. In this case, you can choose which path to take.
 
-Physics
--------
+When you've reached the finish point, your time is recorded. You will respawn shortly afterwards, for another attempt to complete the stage as fast as you can.
+
+Your goal is to get the fastest time.
 
-CTS can use any phyics, but [XDF](XDF) is the default physics set, based on the [Quake DeFRaG](https://en.wikipedia.org/wiki/DeFRaG) mod.
+Unlike in [Race](Race), damage is normally disabled in Race CTS.
 
 Map Entities
 ------------
@@ -22,53 +26,14 @@ Map Entities
  - *Jet Pack* - This is used to fly
  - *Decorative* - Some maps have entities you cannot, or should not pick up as they are just decorative
 
-Weapons
+Physics
 -------
-
-Some maps use weapons.
-
- - *Rocket Launcher* - Aim at the ground or walls, gain speed
- - *Hagar* - Aim in front, towards your feet at a low angle, wall climb
- - *Mortar* - Aim in front, towards your feet at a low angle, gain height
- - *Crylink* - Aim behind, towards ground or wall, speed, distance
+See [Race](Race).
 
 Helpful Hints and Tips
 ----------------------
+See [Race](Race).
 
- - The physics are different in Race CTS if a server runs the mod ‘[Xonotic Pro Mode](Xonotic Pro Mode)’.
- - You can’t push (/frag) other players like in Race.
- - In console (shift+esc), type "bind k kill" to bind the "k" kill to the suicide action. Put in autoexec.cfg to persist.
- - Pay attention to the speed meter in the cent of your screen
-
-Bunny-hopping
-------------
-
- - In Xonotic, hold spacebar while moving forward to bunnyhop
-
-Circle-jumping
---------------
-
- - At the start of the map, a circle jump can be used to gain a speed boost of 500+ qu/s vs. ~300 from a cold start.
-
-Slick Surfaces
---------------
-
-Strafe-jumping
---------------
-
-Ramp-jumping
-------------
-
-Turning
--------
-
- - TODO: Turning is nuanced, harder to explain (komier)
-
-
-List of Demos and Videos
-------------------------
-
- -   Demo: _(Insert Demo or Video Here)_
- -   Players: _(Insert Player Names Here)_
- -   Key Points: _(Insert key points in match here)_
-
+See also
+--------
+[Race](Race)
\ No newline at end of file
diff --git a/Race.md b/Race.md
index 44edaf1347d97f8578c181849bcbc1a8fea62095..d233ed767feb72a336cede51fc693caf10a35db5 100644 (file)
--- a/Race.md
+++ b/Race.md
@@ -4,22 +4,49 @@ Race
 Object of the Game
 ------------------
 
-In Race you have to run a special path in a map (you always have to reach the next Checkpoint) for an amount of laps. You can push other players away or even frag them! The first one who completes the laps wins.
+In **Race**, the map is a race track and you have to run through the map and complete laps as fast as possible.
 
-Map Entities
-------------
+Gameplay
+--------
+The map will have a start/finish point and checkpoints. To complete a lap, you start at the start/finish point and  run to each checkpoint in the correct order and then to the start/finish point again. In some maps, there can be branching paths and multiple checkpoints will be shown. In this case, you can choose which path to take. The HUD will show you where you have to run next.
 
-_(Insert Map Entities here)_
+Your goal is to get the fastest time.
+
+You can push other players away or even frag them!
+
+Physics
+-------
+
+Race can use any phyics, but [XDF](XDF) is the default physics set, based on the [Quake DeFRaG](https://en.wikipedia.org/wiki/DeFRaG) mod.
+
+### Weapons
+
+In some maps/servers you can use weapons to speed yourselves up.
+
+- **Blaster** and **Devastator**: Aim at the ground or walls, gain speed
+- **Hagar**: Aim in front, towards your feet at a low angle, wall climb
+- **Mortar**: Aim in front, towards your feet at a low angle, gain height
+- **Crylink**: Aim behind, towards ground or wall, speed, distance
+
+### Maneuvers
+*NOTE: This section is incomplete.*
+
+* **Bunny-hopping**: Hold the jump key while moving forward to bunny-hop
+* **Circle-jumping**: At the start of the map, a circle jump can be used to gain a speed boost of 500+ qu/s vs. ~300 from a cold start.
+* **Slick Surfaces**: *To be written.*
+* **Strafe-jumping**: *To be written.*
+* **Ramp-jumping**: *To be written.*
+* **Turning**: *To be written. (Turning is nuanced, harder to explain (komier).)*
 
 Helpful Hints and Tips
 ----------------------
 
--   _(Insert Hints Here)_
-
-List of Demos and Videos
-------------------------
+- The physics are different if a server runs the mod ‘[Xonotic Pro Mode](Xonotic Pro Mode)’.
+- Servers often tend to modify the physics/gameplay heavily. Make sure to read the info text (default key: “i”).
+- If you think you screwed up and want to restart, use the suicide key (default “k”) for a fast respawn
+- Pay attention to the speed meter in the center of your screen
 
--   Demo: _(Insert Demo or Video Here)_
--   Players: _(Insert Player Names Here)_
--   Key Points: _(Insert key points in match here)_
+See also
+--------
 
+[Race CTS](Race-CTS)
\ No newline at end of file
index 78d838ced1f67d945110c8e978ab44b030fb081d..a7fb551631faca400449b7ce68f6896ec6ceaee3 100644 (file)
@@ -1,44 +1,49 @@
-Repository Access and Compiling
-===============================
+Compiling and Contributing
+==========================
 
 Xonotic uses [several Git repositories](Git). The `all` script in the main repo manages them, builds Xonotic and runs it. Each repo can also contain feature branches next to the stable `master` branch, check them out for WIP features.
 
-***
+Build Requirements
+------------------
+
+Make sure you have at least 2GB memory to compile.  This is enough to run a git dedicated server, but 6GB is required to play using a git client (it uses more memory than regular release and auto builds).  
 
-Setting up the development environment
---------------------------------------
+The git client will perform poorly (compared to regular release or auto builds) on GPUs with limited VRAM, such as integrated GPUs.
 
-Make sure you have at least 2 GB memory to compile.
+[About 12GB of disk space is required for the git repositories.](Git)
 
 ### Linux
 
-**Ubuntu Dependencies**:
+Note: `curl` isn't required but it's strongly recommended for downloading maps when playing online, `wget` is not supported for this.  
+
+Note: The `all` script requires either `wget` or `curl`.
+
 
-    sudo apt-get install autoconf build-essential curl git-core libtool libgmp-dev libjpeg-turbo8-dev libsdl2-dev libxpm-dev xserver-xorg-dev zlib1g-dev
+**Ubuntu** dependencies:
 
-Note: On Debian, use `libjpeg8-dev` if `libjpeg-turbo8-dev` isn’t available in the package repositories.
+    sudo apt-get install autoconf automake build-essential curl git libtool libgmp-dev libjpeg-turbo8-dev libsdl2-dev libxpm-dev xserver-xorg-dev zlib1g-dev unzip zip
 
-Note: `curl` isn't required but it's strongly recommended for downloading maps when playing online.
+Note: On Debian, use `libjpeg62-turbo-dev` if `libjpeg-turbo8-dev` isn’t available in the package repositories.
 
 Note: `libasound2-dev libxext-dev libxxf86vm-dev p7zip-full unzip wget x11proto-xf86vidmode-dev` might be needed but are probably already installed. `libclalsadrv-dev libsdl2-image-dev libxcb-xf86dri0-dev libxxf86dga-dev x11proto-xf86dga-dev x11proto-xf86dri-dev` should no longer be needed.
 
 **Fedora** and other **RPM based** distro dependencies:
 
-    autoconf automake gcc-c++ gmp-devel libjpeg-turbo-devel libtool SDL2-devel
+    autoconf automake gcc-c++ gmp-devel libjpeg-turbo-devel libtool SDL2-devel curl libXext-devel alsa-lib-devel libXxf86vm-devel
 
 Note: `x11-proto-devel` or `xorg-x11-proto-devel` might be needed but might be already installed.
 
 **Archlinux** dependencies:
 
-    sudo pacman -S alsa-lib curl libjpeg-turbo libmodplug libpng libvorbis libxpm libxxf86dga libxxf86vm sdl2 unzip wget
+    sudo pacman -S alsa-lib curl git libjpeg-turbo libmodplug libpng libvorbis libxpm xorgproto libxxf86vm sdl2 unzip zip
 
 ### Windows
 
 By default, Windows has no real environment to handle the necessary scripting and compiling tools for building Xonotic. So, what we have to do is install something called [MSYS2](http://www.msys2.org) to allow us to have a similar environment as on Linux. Download 64 bit version of MSYS2 (msys2-x86_64-xxxxxx.exe) and follow installation instructions.
 
-Once you have completed the installation, launch the MSYS2 shell by running `mingw64.exe` (instead of the default msys2.exe) by default located at `C:\msys64` and install the needed **dependencies** with this command:
+Once you have completed the installation, close the current MSYS2 shell and launch a MSYS2 MINGW64 shell by running mingw64.exe (instead of the default msys2.exe) located at C:\msys64 and install the needed dependencies with this command:
 
-    pacman --needed -S git curl zip unzip p7zip make automake autoconf libtool gcc gmp-devel mingw-w64-x86_64-{toolchain,gmp,SDL2,libjpeg-turbo,libpng,libogg}
+    pacman --needed -S git curl zip unzip p7zip make automake autoconf libtool gcc gmp-devel mingw-w64-x86_64-{toolchain,gmp,SDL2,libjpeg-turbo,libpng,libogg,libvorbis}
 
 It is recommended that you make a shortcut to MSYS2 MINGW64 shell (simply right click mingw64.exe and hit “Create Shortcut”) for easier access on your desktop or in your start menu.
 
@@ -48,29 +53,25 @@ You can now use this shell to continue on with the guide and clone the Xonotic r
 
 You must first install **XCode** which comes on your installation DVD or can be downloaded from the Apple website. This package provides tools like **Git and GCC**, which are needed for successful checkout and compilation of Xonotic. Some versions of XCode come with Git and others don’t - if you don’t have Git after installing XCode get it here: [XCode installer](http://sourceforge.net/projects/git-osx-installer/files/)
 
-***
-
-Cloning the repository and compiling
+Cloning the Repository and Compiling
 ------------------------------------
 
 To begin downloading:
 
-    git clone git://git.xonotic.org/xonotic/xonotic.git  # download main repo
+    git clone https://gitlab.com/xonotic/xonotic.git  # download main repo
     cd xonotic
     ./all update -l best  # download all other repos (data + game logic, maps, etc.)
 
-The **git://** protocol uses port **9418**, which may be a problem if you’re behind a **strict firewall**. You may instead use the clone url http://git.xonotic.org/xonotic/xonotic.git (however, using the git protocol directly is preferred for performance reasons).
-
 Now the game can be compiled and run with the following commands:
 
-    ./all compile -r
+    ./all compile
     ./all run
 
-**Note:** if you encounter en error similar to darkplaces#111, try `./all clean && ./all compile -r -0`.
+**Note:** if you encounter en error similar to darkplaces#111, try `./all clean && ./all compile -0`.
 
-You can use just `./all compile` to create a slower unoptimized build with debug symbols but usually you want `-r`.
+You can use `./all compile -d` to create a slower unoptimized build with debug symbols.
 
-The `./all run` or `./all compile` line can be followed by `dedicated` to build or run the executable for server hosting. E.g. `./all compile -r dedicated`.
+The `./all run` or `./all compile` line can be followed by `dedicated` to build or run the executable for server hosting. E.g. `./all compile dedicated`.
 
 The `run` command can also be followed by standard DarkPlaces commandline arguments:
 
@@ -81,24 +82,30 @@ To update your Git clone:
     cd xonotic
     ./all checkout  # switch to main branch on all repos (usually master)
     ./all update  # pull and prune
-    ./all compile -r  # recompile what changed
+    ./all compile # recompile what changed
 
 **Note:** If you intend to play on public servers, you should probably also enable the nexcompat repo to download additional textures that are used on some older unofficial maps. Use `touch data/xonotic-nexcompat.pk3dir.yes` and `./all update`. For mappers: these textures should NOT be used on new maps.
 
 ***
 
-If you run into issues with the latest version you can easily revert to an older one. Since most bugs are caused by the game code rather that the engine, you just need to downgrade that repository. Inside the main xonotic repository, use `cd data/xonotic-data.pk3dir` and then `git checkout <some older commit>`. After that go back `cd -` and `./all compile` (with the optional `-r` flag).
+If you run into issues with the latest version you can easily revert to an older one. Since most bugs are caused by the game code rather that the engine, you just need to downgrade that repository. Inside the main xonotic repository, use `cd data/xonotic-data.pk3dir` and then `git checkout <some older commit>`. After that go back `cd -` and `./all compile`.
 
-***
-
-Contributing and getting write access
+Contributing and Getting Write Access
 -------------------------------------
 
-A condition for write (push) access is that you agree that any code or data you push will be licensed under the General Public License, version 2, with or without the “or any later version” clause. In case the directory the changes apply to contains a LICENSE or COPYING file indicating another license, then your pushed code has to be dual licensed appropriately. Subdirectories currently having a dual license:
-\* data/qcsrc/warpzonelib - dual licensed as “GPLv2 or later” or MIT license.
+It's recommended to [request access](https://docs.gitlab.com/ee/user/group/index.html#request-access-to-a-group) to the [Xonotic project group](https://gitlab.com/xonotic).  Cloning our repositories and submitting merge requests from there will work but you won't be able to use our CI setup for the xonotic-data.pk3dir repo (which seems to need a custom runner).
+
+A condition for write (push) access and submission of merge requests is that **you agree that any code or data you push will be licensed under the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html), with and/or without the “or any later version” clause.**
+
+If the directory or repository your changes apply to contains a LICENSE or COPYING file indicating another license or a dual license, then **you agree that your pushed code will be licensed as specified in that file.**  Subdirectories and repositories with a dual license or a different license:
+* [xonotic-data.pk3dir/qcsrc/lib/warpzone](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/master/qcsrc/lib/warpzone) - dual licensed with GNU GPLv2 (or any later version), or MIT license.
+* [xonstat-go](https://gitlab.com/xonotic/xonstat-go/) - licensed with [GNU AGPLv3](https://www.gnu.org/licenses/agpl-3.0.html)
+
 In case the code you pushed was not written by you, it is your responsibility to ensure proper licensing.
 
-To apply for write access, add your SSH key to your GitLab account and ask for access in #xonotic on the FreeNode IRC network or [request access](https://docs.gitlab.com/ce/user/group/index.html#request-access-to-a-group) using the GitLab interface.
+To apply for write access, please add your SSH key to your GitLab account and [request access](https://docs.gitlab.com/ce/user/group/index.html#request-access-to-a-group) to the [Xonotic project group](https://gitlab.com/xonotic) using the GitLab interface.  You can also request access on Matrix chat in [#dev:xonotic.org](https://matrix.to/#/#dev:xonotic.org) (remember to tell us your GitLab username!) but the admins might not see your request amongst the other messages.
+
+Please read [General Contributor Guidelines](https://gitlab.com/xonotic/xonotic/-/wikis/Repository_Access#general-contributor-guidelines) before pushing.
 
 ### Windows/Linux/macOS
 
@@ -129,7 +136,7 @@ Lists all the branches known for all the respective repositories.
 
     ./all compile
 
-Compiles the game, assuming that you have the required libs installed. Don't forget `-r` if you wanna actually play the game with decent fps.
+Compiles the game, assuming that you have the required libs installed.
 
     ./all checkout BRANCH
 
@@ -147,19 +154,19 @@ Starts the Xonotic client
 
 Starts a Xonotic dedicated server
 
-General contributor guidelines
+General Contributor Guidelines
 ------------------------------
 
 1.  Before creating your local branch and committing to it, make sure you’ve configured your user settings such as your name which will display in the logs (in TortoiseGit: Settings > Git > Config).
-2.  Try naming your branch myname/mychange for each patch. For instance, if your name is Alex and the change you are committing is a menu fix, use something like alex/menufix.
+2.  **You should name your branch myname/mychange for each patch.** For instance, if your name is Alex and the change you are committing is a menu fix, use something like alex/menufix.
 
-Further git information
+Git guides
 -----------------------
 
+Git basics on [this wiki page](Git).
+
 About tracking remote branches:
 http://git-scm.com/book/en/v2/Git-Branching-Remote-Branches
 
-This wiki’s [Git](Git) page.
-
 A tutorial to Git for SVN users:
-http://git-scm.org/course/svn.html
+https://git.wiki.kernel.org/index.php/GitSvnCrashCourse
\ No newline at end of file
diff --git a/Rocket-Flying.md b/Rocket-Flying.md
new file mode 100644 (file)
index 0000000..7105317
--- /dev/null
@@ -0,0 +1,17 @@
+Rocket Flying
+-------------
+
+**Rocket Flying** is a mutator that makes *rocket jump* maneuvers more effective. A rocket jump is when you use the Devastator, look downwards, fire and detonate the rocket instantly to get an upwards push. This is a fun but also dangerous maneuver as it will hurt you.
+
+Normally (if **Rocket Flying** is disabled), when you fire a Devastator rocket and try to detonate it immediately, there's a very slight delay. So a *rocket jump* will apply *some* force to you, but it's not very effective.
+
+But if the **Rocket Flying** mutator is enabled, rockets you fire from the Devastator can be detonated *instantly*; the very slight delay is gone. This causes *rocket jumps* to be much more effective; you can push yourself upwards even when moving fast.
+
+Hints
+-----
+
+* In space maps or maps with a endless abyss, skilled players might use such a rocket jump to rescue themselves from falling down.
+
+CVars
+-----
+This is enabled with the [CVar](CVars): `g_rocket_flying`.
\ No newline at end of file
diff --git a/SMB-modpack.md b/SMB-modpack.md
new file mode 100644 (file)
index 0000000..c83e920
--- /dev/null
@@ -0,0 +1,75 @@
+Developed and maintained by **[Mario](https://github.com/MarioSMB)** and **[TimePath](https://github.com/TimePath)**.
+
+The **[modpack](https://github.com/MarioSMB/modpack)** was **[TimePath](https://github.com/TimePath)**'s experiment to split "custom" features into a secluded codebase. <br/>
+It makes it used to create games based on the Xonotic template.
+
+The modpack build works using a submodule from '_xonotic-data.pk3dir_' from the official gamelogic development repository.
+
+Uses **update.sh** and **build.sh** shell script files. 
+
+### You can create mods from the modpack like: 
+### **[Quake](https://github.com/MarioSMB/modpack/tree/quake)**
+<img src="uploads/a622ef2d5c0c5ca81d6f044c452293eb/quake_mod_sample.jpg" alt="quake_mod_sample" width=550 />
+
+### **[Prydon Gate](https://github.com/MarioSMB/modpack/tree/prydon)**
+<img src="uploads/2dd93a2f8ce7b22400c32535c9fad392/prydon_mod_sample.jpg" alt="prydon_mod_sample" width=550 />
+
+### **[Suwa Moriya 64](https://github.com/MarioSMB/modpack/tree/moriya)**
+<img src="uploads/33a69c4499702fbf8592766ebae04c34/suwa_moriya_64_mod_sample.jpg" alt="suwa_moriya_64_mod_sample" width=550 />
+
+# How submodule works, update.sh and build.sh
+
+Uses '_update.sh_' to obtain the content of '_gmqcc_', '_xonotic-data.pk3dir_' in '_xonotic_' folder and '_csprogs_' in '_.cache_' folder. Clearly, needs gmqcc to be able to compile, this means that '_build.sh_' calls gmqcc to compile the code.
+
+## Submodule and update.sh
+
+The submodule of this modpack was created using: 
+```sh
+git submodule add https://gitlab.com/xonotic/xonotic-data.pk3dir xonotic
+```
+
+The submodule in the repository is used when need to update the code from '_xonotic-data.pk3dir_', to do this if you've a fork or a copy of SMB modpack repository, you'll have to update using (note: in your local computer, you should have used '_update.sh_' to download fully the content of '_xonotic-data.pk3dir_' in '_xonotic_' folder):
+```sh
+git submodule update --remote --merge
+```
+
+It'll update the content where is in the official gamelogic development repository in your modpack repository.
+
+Inside '_update.sh_', there is a line: 
+```sh
+git submodule update --init --depth 100
+```
+
+Means that when you use '_update.sh_' with this line, the submodule content will be downloaded in your local computer where you've cloned the modpack repository.
+
+To run '_update.sh_' script, you should go to the current directory where is this script and execute:
+```sh
+./update.sh
+```
+
+### Commit with submodule
+
+Additionally, after done `git submodule update --remote --merge`, if you want to commit:
+```sh
+git status
+git add xonotic
+git commit -m "Update submodule xonotic test"
+git push origin master #depends what origin and what branch of repository you're using to do your commits
+```
+## build.sh
+
+'_build.sh_' compiles all repository code using gmqcc if already downloaded from '_update.sh_', looks inside '_mod_' folder the similar contents of '_xonotic-data.pk3dir/qcsrc_' where there are: '_client_', '_common_', '_menu_' and '_server_' folders.
+
+What this does is relate the directory path to the submodule '_xonotic_' directory inside the '_qcsrc_' folder. Thanks to this, makes possible to look at the '_mod_' folder having to relate the submodule directory '_xonotic/qcsrc_'.
+
+To run '_build.sh_' script, you should go to the current directory where is this script and execute:
+```sh
+./build.sh
+```
+
+For speed up compilation, you can run with:
+```sh
+ZIP=: ./build.sh
+```
+
+That executes without compression (without getting `csprogs-*.pk3` file).
\ No newline at end of file
index fe490c81375961fbc66737aead50eb1bba1bc659..0face8e634f3bc108c493ac81bf4936a43a11039 100644 (file)
@@ -5,15 +5,15 @@
 * `sv_logscores_filename`: filename of the output file if sv_logscores_file is enabled (the file will be stored in Xonotic/data/data or ~/.xonotic/data/data)
 * `sv_logscores_bots`:choose whether bot are included in stats or not
 
+Also see [Event logging](./Event-logging)
 
 ## Commands
 
 * `printstats`: print current scores to file/console (requires sv_logscores_console and/or sv_logscores_file to be enabled)
 
-
 ## Log format
 
-example:
+Example:
 ```   
 :scores:dm_nexdm01:131
 :player:1:7:129:1:GrooveMachine
@@ -21,11 +21,11 @@ example:
 :player:10:1:130:3:Player
 :end
 ```   
-start of a new section:        `:scores:<gametype>_<mapname>:<map runtime>` (if the dump was triggered by "printstats", the line starts with :status:)
+Start of a new section:        `:scores:<gametype>_<mapname>:<map runtime>` (if the dump was triggered by "printstats", the line starts with :status:)
 
-player entry: `:player:<frags>:<deaths>:<playtime>:<team>:<nickname>` (playername might contain ":", so be sure your parser doesn't split them, playtime is messured in seconds)
+Player entry: `:player:<frags>:<deaths>:<playtime>:<team>:<nickname>` (player names might contain ":", so be sure your parser doesn't split them, playtime is measured in seconds)
 
-section end: `:end`
+Section end: `:end`
 
 Team colors:
 * Red Team     =  5
@@ -35,4 +35,4 @@ Team colors:
 
 Other team numbers may appear in free for all games.
 
-For an example parser (written in php, thanks to tChr) have a look at http://excalibur.nvg.ntnu.no/nexuiz/statsparser
\ No newline at end of file
+For an example parser (written in perl) have a look at [incognico/erebus.pl](https://gitlab.com/incognico/erebus/-/blob/master/erebus.pl)
\ No newline at end of file
diff --git a/Shared-libraries-(buildfiles).md b/Shared-libraries-(buildfiles).md
new file mode 100644 (file)
index 0000000..5605358
--- /dev/null
@@ -0,0 +1,349 @@
+darkplaces/Xonotic on Linux uses system libraries. For Windows and macOS external dlls and dylibs are needed. Those reside in xonotic/misc/buildfiles
+
+Because at the time of writing there is no automatism to build or update the games dependencies for those 2 platforms and the current dlls/dylibs are VERY outdated and thus also contain vulnerabilities, this page should document on where to obtain or how to build them, retaining API compatibility to darkplaces and also older OS platform versions like Windows XP.
+
+For Windows, all libraries can/should be obtained from https://packages.msys2.org/ [1] with the exception of an official DLL release from the upstream being available (this is the case for jpeg-turbo and freetype) or if it has to be compiled on under Windows for some reason (eg. libcurl for Schannel (Windows crypto for HTTPS) support).
+
+A handy tool to check dll deps on Windows is https://github.com/lucasg/Dependencies
+
+TODO: macOS
+
+# libcurl
+libcurl is used for downloading *.pk3 files from servers
+
+### Windows
+
+```
+git clone -b curl-7_80_0 https://github.com/curl/curl || true
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+d0=$(pwd)
+rm -rf build
+mkdir build
+cd build
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DCMAKE_INSTALL_PREFIX="$d0/out" -DCURL_USE_SCHANNEL=YES -G"Unix Makefiles" "$d0/curl"
+make
+make install
+cd "$d0"
+cp out/bin/libcurl.dll ~/Games/xonotic/misc/buildfiles/win64/libcurl-4.dll
+```
+
+### macOS
+Darkplaces loads `libcurl.4.dylib` or `libcurl.3.dylib` or `libcurl.2.dylib`
+
+# libjpeg-turbo
+libjpeg-turbo is needed to display jpeg images/textures
+
+### Windows
+
+```
+git clone https://github.com/libjpeg-turbo/libjpeg-turbo.git || true
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+d0=$(pwd)
+rm -rf build
+mkdir build
+cd build
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_INSTALL_PREFIX="$d0/out" -G"Unix Makefiles" "$d0/libjpeg-turbo"
+make
+make install
+cd "$d0"
+cp out/bin/libjpeg-62.dll ~/Games/xonotic/misc/buildfiles/win64/libjpeg.dll
+```
+
+### macOS
+Darkplaces loads `libjpeg.62.dylib`
+
+# zlib
+zlib is required to read *.pk3 files. Also it is a dependency of libpng and probably some other libraries.
+
+### Windows
+Darkplaces loads: ifdef ZLIB_USES_WINAPI `zlibwapi.dll` or `zlib.dll` else `zlib1.dll`. We use `zlib1.dll`!
+
+Obtainment instructions:
+* download as MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-zlib
+* use dll from `bin` folder
+
+Cross-compiling:
+
+```
+ZLIBVER="1.2.11"
+curl -L -o zlib-$ZLIBVER.tar.xz https://zlib.net/zlib-$ZLIBVER.tar.xz || true
+tar -xf zlib-$ZLIBVER.tar.xz
+rm zlib-$ZLIBVER.tar.xz
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+
+d0=$(pwd)
+rm -rf build
+mkdir build
+cd build
+sed -i '/zlib PROPERTIES SUFFIX/i     set_target_properties(zlib PROPERTIES PREFIX "")' "$d0/zlib-$ZLIBVER/CMakeLists.txt" # Remove the "lib" prefix. TODO Do this through the cmake cache?
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DBUILD_SHARED_LIBS=true -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_INSTALL_PREFIX="$d0/out" -G"Unix Makefiles" "$d0/zlib-$ZLIBVER"
+make
+make install
+cd "$d0"
+cp out/bin/zlib1.dll ~/Games/xonotic/misc/buildfiles/win64/zlib1.dll
+```
+
+### macOS
+Darkplaces loads `libz.dylib`
+
+# libpng
+libpng is needed to display png images/textures
+
+### Windows
+Darkplaces loads `libpng16.dll` or `libpng16-16.dll` or `libpng15-15.dll` or `libpng15.dll` or `libpng14-14.dll` or `libpng14.dll` or `libpng12.dll`
+
+Obtainment instructions:
+* be sure to use a 1.16.X release
+* download MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-libpng
+* use dll from `bin` folder
+
+Cross-compiling (requires zlib):
+
+```
+d0=$(pwd)
+PNGVER="libpng16"
+ZLIB_ROOT=$d0/../zlib/out # Location to the zlib compiled library
+
+git clone -b $PNGVER git://git.code.sf.net/p/libpng/code libpng || true
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+
+rm -rf build
+mkdir build
+cd build
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DPNG_STATIC=false -DPNG_TESTS=false -DPNG_EXECUTABLES=false -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DZLIB_INCLUDE_DIR=$ZLIB_ROOT/include -DZLIB_LIBRARY=$ZLIB_ROOT/lib/libzlib.dll.a -DCMAKE_INSTALL_PREFIX="$d0/out" -G"Unix Makefiles" "$d0/libpng"
+make
+make install
+cd "$d0"
+cp out/bin/libpng16.dll ~/Games/xonotic/misc/buildfiles/win64/libpng16.dll
+```
+
+### macOS
+Darkplaces loads `libpng16.16.dylib` or `libpng15.15.dylib` or `libpng14.14.dylib` or `libpng12.0.dylib`
+
+# libfreetype
+Required for the Xolonium font
+
+### Windows
+Darkplaces loads: `libfreetype-6.dll` or `freetype6.dll`
+
+```
+FTVER="2.11.1"
+curl -L -o freetype-$FTVER.tar.xz https://download.savannah.gnu.org/releases/freetype/freetype-$FTVER.tar.xz || true
+tar -xf freetype-$FTVER.tar.xz
+rm freetype-$FTVER.tar.xz
+
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+d0=$(pwd)
+rm -rf build
+mkdir build
+cd build
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DBUILD_SHARED_LIBS=true -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_INSTALL_PREFIX="$d0/out" -G"Unix Makefiles" "$d0/freetype-$FTVER"
+make
+make install
+cd "$d0"
+cp out/bin/libfreetype.dll ~/Games/xonotic/misc/buildfiles/win64/libfreetype-6.dll
+```
+
+### macOS
+Darkplaces loads: `libfreetype.6.dylib` or `libfreetype.dylib`
+
+# libogg
+libogg is used for the container in cl_capturevideo
+
+### Windows
+Darkplaces loads `libogg-0.dll` or `libogg.dll` or `ogg.dll`
+
+Obtainment instructions:
+* download MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-libogg
+* use dll from `bin` folder
+
+Cross-compiling:
+
+```
+d0=$(pwd)
+OGGVER="v1.3.5"
+git clone -b $OGGVER https://gitlab.xiph.org/xiph/ogg.git
+sed -i 's/^LIBRARY ogg$/LIBRARY libogg/' "$d0/ogg/win32/ogg.def" # Call it libogg
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+rm -rf build
+mkdir build
+cd build
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DBUILD_SHARED_LIBS=true -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_INSTALL_PREFIX="$d0/out" -G"Unix Makefiles" "$d0/ogg"
+make
+make install
+cd "$d0"
+cp out/bin/libogg.dll ~/Games/xonotic/misc/buildfiles/win64/libogg.dll
+```
+
+### macOS
+Darkplaces loads `libogg.dylib`
+
+# libvorbis + libvorbisfile + libvorbisenc
+libvorbis + libvorbisfile are used to play .ogg audio files while libvorbis + libvorbisenc is used for the audio in video capturing (cl_capturevideo)
+
+### Windows
+Darkplaces loads `libvorbis-0.dll` or `libvorbis.dll` or `vorbis.dll` and `libvorbisfile-3.dll` or `libvorbisfile.dll` or `vorbisfile.dll` and `libvorbisenc-2.dll` or `vorbisenc-2.dll` or `vorbisenc.dll`
+
+Obtainment instructions:
+* download MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-libvorbis
+* use dll from `bin` folder
+
+Cross-compiling (requires libogg):
+
+```
+d0=$(pwd)
+VORBISVER="v1.3.7"
+OGG_ROOT=$d0/../ogg/out
+
+git clone -b $VORBISVER https://gitlab.xiph.org/xiph/vorbis.git
+
+# Fix win32 def files
+sed -i 's/^LIBRARY$/LIBRARY libvorbis/' "$d0/vorbis/win32/vorbis.def"
+sed -i 's/^LIBRARY$/LIBRARY libvorbisenc/' "$d0/vorbis/win32/vorbisenc.def"
+sed -i 's/^LIBRARY$/LIBRARY libvorbisfile/' "$d0/vorbis/win32/vorbisfile.def"
+
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+rm -rf build
+mkdir build
+cd build
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DBUILD_SHARED_LIBS=true -DOGG_INCLUDE_DIR=$OGG_ROOT/include -DOGG_LIBRARY=$OGG_ROOT/lib/libogg.dll.a -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_INSTALL_PREFIX="$d0/out" -G"Unix Makefiles" "$d0/vorbis"
+make
+make install
+cd "$d0"
+cp out/bin/libvorbis.dll ~/Games/xonotic/misc/buildfiles/win64/libvorbis.dll
+cp out/bin/libvorbisfile.dll ~/Games/xonotic/misc/buildfiles/win64/libvorbisfile.dll
+cp out/bin/libvorbisenc.dll ~/Games/xonotic/misc/buildfiles/win64/libvorbisenc.dll
+```
+
+### macOS
+Darkplaces loads `libvorbis.dylib` and `libvorbisfile.dylib`
+
+# libtheora
+libtheora is used for the video in cl_capturevideo
+libtheoraenc/libtheoradec are not needed, they are the newer API; darkplaces uses the legacy pre 1.0 API (libtheora).
+
+### Windows
+Darkplaces loads `libtheora-0.dll` or `theora-0.dll` or `theora.dll`
+
+Obtainment instructions:
+* download MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-libtheora
+* use dll from `bin` folder
+
+Cross-compiling (requires libogg and libvorbis):
+
+```
+d0=$(pwd)
+THEORAVER="v1.1.1"
+OGG_ROOT="$d0/../ogg/out"
+VORBIS_ROOT="$d0/../vorbis/out"
+
+git clone -b $THEORAVER https://gitlab.xiph.org/xiph/theora.git
+
+# Fix mingw32 defs
+sed -i '1iLIBRARY libtheoradec' "$d0/theora/win32/xmingw32/libtheoradec-all.def"
+sed -i '1iLIBRARY libtheoraenc' "$d0/theora/win32/xmingw32/libtheoraenc-all.def"
+sed -i '/TH_VP31_QUANT_INFO/d' "$d0/theora/win32/xmingw32/libtheoraenc-all.def"
+sed -i '/TH_VP31_HUFF_CODES/d' "$d0/theora/win32/xmingw32/libtheoraenc-all.def"
+
+# Start build
+mkdir out
+mkdir build
+cd build
+$d0/theora/autogen.sh --host=x86_64-w64-mingw32 --prefix="$d0/out" --with-ogg="$OGG_ROOT" --with-vorbis="$VORBIS_ROOT" --enable-shared --disable-examples --disable-sdltest --disable-vorbistest --disable-oggtest
+make
+make install
+cd "$d0"
+cp out/bin/libtheora-0.dll ~/Games/xonotic/misc/buildfiles/win64/libtheora-0.dll
+```
+
+### macOS
+Darkplaces loads `libtheora.dylib`
+
+# libgmp
+A dependency of libd0_blind_id-0
+
+### Linux
+
+`./configure --prefix=$HOME/Games/xonotic/misc/builddeps/linux64/gmp --enable-static --disable-shared --with-pic --enable-fat`
+
+### Windows
+libd0_blind_id-0 loads `libgmp-10.dll`
+
+Obtainment instructions:
+* download as MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-gmp
+* use dll from `bin` folder
+
+Cross-compiling:
+
+```
+d0=$(pwd)
+GMPVER="6.2.1"
+
+curl -o gmp-$GMPVER.tar.xz https://gmplib.org/download/gmp/gmp-$GMPVER.tar.xz
+tar xf gmp-$GMPVER.tar.xz
+rm gmp-$GMPVER.tar.xz
+
+mkdir out
+mkdir build
+cd build
+"$d0/gmp-$GMPVER/configure" --prefix="$d0/out" --host=x86_64-w64-mingw32 --with-pic --enable-fat --disable-static --enable-shared
+make
+make install
+cd "$d0"
+cp out/bin/libgmp-10.dll ~/Games/xonotic/misc/buildfiles/win64/libgmp-10.dll
+```
+
+# libd0_blind_id-0 & libd0_rijndael-0
+Internal project, see https://gitlab.com/xonotic/d0_blind_id
+
+### Linux
+
+`LDFLAGS='-L$HOME/Games/xonotic/misc/builddeps/linux64/gmp/lib' CPPFLAGS='-I$HOME/Games/xonotic/misc/builddeps/linux64/gmp/include' ./configure --prefix=$HOME/Games/xonotic/misc/builddeps/linux64/d0_blind_id  --enable-static --disable-shared --with-pic`
+
+### Windows
+Cross-compiling (requires libgmp):
+
+```
+d0=$(pwd)
+GMP_ROOT="$d0/../gmp/out"
+export LDFLAGS="-L$GMP_ROOT/lib"
+export CPPFLAGS="-I$GMP_ROOT/include"
+
+git clone https://gitlab.com/xonotic/d0_blind_id.git
+
+cd d0_blind_id
+./autogen.sh
+sed -i '/libd0_blind_id_la_LDFLAGS/ s/$/ -no-undefined/' Makefile.am
+sed -i '/libd0_rijndael_la_LDFLAGS/ s/$/ -no-undefined/' Makefile.am
+
+cd "$d0"
+mkdir build
+mkdir out
+cd build
+"$d0/d0_blind_id/configure" --with-pic --prefix="$d0/out" --host=x86_64-w64-mingw32
+make
+make install
+
+cd "$d0"
+cp out/bin/libd0_blind_id-0.dll ~/Games/xonotic/misc/buildfiles/win64/libd0_blind_id-0.dll
+cp out/bin/libd0_rijndael-0.dll ~/Games/xonotic/misc/buildfiles/win64/libd0_rijndael-0.dll
+```
+
+# libode
+Is not loaded under Windows and crashes the game if it is and a map is loaded up.
+Also it is not statically linked and thus requires libstdc++-6.dll and libgcc_s_sjlj-1.dll.
+
+### Linux:
+
+`./configure --enable-static --disable-shared --with-libccd=internal --enable-double-precision --prefix=$HOME/Games/xonotic/misc/builddeps/linux64/ode --with-pic`
+
+# libavw
+*Note:* Old and not used in Xonotic but also not disabled :) Adding this for the sake of completeness.
+
+### Windows
+Darkplaces loads: `libavw.dll`
+
+Source code: https://github.com/paulvortex/DpLibAVW
+
+### macOS
+Darkplaces loads: `libavw.dylib`
\ No newline at end of file
diff --git a/Survival.md b/Survival.md
new file mode 100644 (file)
index 0000000..5df5651
--- /dev/null
@@ -0,0 +1,36 @@
+Survival
+===============
+
+Object of the Game
+------------------
+
+Survival is a round-based game with 2 teams: Hunters and Survivors. But there's a twist: Players get randomly assigned a team and you only know your own team membership, but not to which team everyone else belongs.
+
+The goal of the hunters is to kill all the survivers.
+The goal of the survivors is to either kill all the hunters or to survive the round (until the round timer hits 0).
+
+Each player will individually score during the rounds and the player with the most points at the end wins the whole match.
+
+
+Scoring
+-------
+
+| Action | Score |
+|:-------|------:|
+| Survive the round | +1 for each opponent you killed in that round |
+| Survive the round by letting the round timer run out (Survivors only) | +1 |
+| Kill a team mate | -1 |
+| Kill yourself | -1 |
+
+Note: These are only defaults: Servers can modify the score if they want.
+
+Details
+-------
+
+Each round begins with a brief warmup period where players can't shoot and they don't know their role (Hunter/Surviver) yet but they can already walk around and collect goodies. Once the warmup period is over, the weapons unlock, your role is revealed and the action begins.
+
+By default, the hunter team is smaller than the surviver team (ca. 25% of all players).
+
+Think before you shoot! If you accidentally kill a team mate, you will be punished with death as well and are eliminated from the round.
+
+Once a round is over, the role of each player is revealed: Survivors will be in green while hunters are red. You can also look it up in the scoreboard.
\ No newline at end of file
index 310feb49719773c7b2e724a893509821497188da..b7b5c1a3af78b21c515ecfd94f4c8233d468b8c8 100644 (file)
@@ -5,12 +5,21 @@ Object of the Game
 ------------------
 
 The gameplay of Team Deathmatch (TDM) is very similar to [Deathmatch (DM)](Deathmatch), but the players are divided into two teams (Red and Blue) and are pitted against each other. Here, teammates may need to communicate with one another to ensure victory.
--   Each kill you make (known in-game as a **frag**) awards your player 1 point.
--   You will lose 1 point if you **suicide** (e.g. fall off the map into space, sink into lava, or kill yourself with a weapon).
--   You will lose 1 point should you frag a teammate, otherwise known as **Friendly Fire** (*NOTE: Only if the match has FF enabled*).
--   The team that collectively scores 50 points first wins the match.
 
-Map Entities
+Scoring
+-------
+
+| Action | Score |
+|:-|-:|
+| Kill an opponent | +1 |
+| Kill yourself | -1 |
+| Kill a team mate | -1 |
+
+Killing an opponent is also know as a “frag”.
+
+By the default rules, the team that collectively scores 50 points first wins the match.
+
+Collectibles
 ------------
 
 -   **Weapons** - These can be picked up from various places around the map or from a downed player.
@@ -24,12 +33,4 @@ Helpful Hints and Tips
 -   Always keep moving. This can be especially true for smaller maps and/or very crowded matches. If you stay in one place for too long, you risk becoming an easy target.
 -   If your map contains powerups such as the ones mentioned above, make good use of them. They can be useful tools to win a match!
 -   Keep your suicides at a minimum. Your point counter *can* enter into the negatives, so always avoid self-injury.
--   Using team [binds](binds) like “Enemy seen” are useful here and can be used to alert teammates of an enemy presence.
-
-List of Demos and Videos
-------------------------
-
--   Demo: _(Insert Demo or Video Here)_
--   Players: _(Insert Player Names Here)_
--   Key Points: _(Insert key points in match here)_
-
+-   Using team [binds](binds) like “Enemy seen” are useful here and can be used to alert teammates of an enemy presence.
\ No newline at end of file
diff --git a/Test-your-translations.md b/Test-your-translations.md
new file mode 100644 (file)
index 0000000..e7b7181
--- /dev/null
@@ -0,0 +1,17 @@
+It is possible to download translation files from Transifex so you can work with an external editor or test your translations in-game.
+
+For in-game testing, it is recommended to use a fresh Xonotic [autobuild](https://gitlab.com/xonotic/xonotic/-/wikis/Autobuilds) or [git build](https://gitlab.com/xonotic/xonotic/-/wikis/Repository_Access), because new strings are added or modified during the development process.
+
+On Transifex, select the `common.pot` resource:
+![Screenshot_20191005_164237](uploads/37bb634467e5ee1a025022cc2e53e652/Screenshot_20191005_164237.png)
+*  Select **"Download for use"** if you wish to test the translation in-game.
+*  Select **"Download file to translate"** if you wish to edit the PO file with an external tool (such as [poedit](https://poedit.net/))
+*  Select **"Upload file"** if you wish to upload a PO file that you edited on your computer.
+
+In order to test your translation in-game, rename the PO file as `common.*.po`, where `*` is your language code (`fr` for French, `de` for German...).
+If you don't know what your language code is, please have a look at the PO files located in the [xonotic-data.pk3dir](https://gitlab.com/xonotic/xonotic-data.pk3dir) repository.
+
+Then copy the PO file in the `data` subdirectory of your **Xonotic user directory**. The user directory location depends on your Operating System: https://xonotic.org/faq/#config
+
+You're done!
+Simply start Xonotic and check your latest translation changes.
\ No newline at end of file
diff --git a/Touch-Explode.md b/Touch-Explode.md
new file mode 100644 (file)
index 0000000..c025bf2
--- /dev/null
@@ -0,0 +1,8 @@
+Touch Explode
+-------------
+
+Touch Explode is a mutator that will cause explosions whenever two players collide.
+
+CVar
+----
+This mutator is controlled by the [CVar](CVars) `g_touchexplode`. Fine-tuning is done with the `g_touchexplode_*` CVar family.
\ No newline at end of file
diff --git a/Translating.md b/Translating.md
new file mode 100644 (file)
index 0000000..dee82ca
--- /dev/null
@@ -0,0 +1,23 @@
+Translations are managed via [Transifex](https://www.transifex.com/team-xonotic/xonotic/dashboard/).
+
+Create an account on Transifex and send a request to join a language team. Once your request has been approved, you can submit suggestions or translations directly through the Transifex interface, or by editing the PO file with an external editor, such as [Poedit](https://poedit.net/) (Transifex allows you to download and upload PO files).
+
+Translations are synced once a week from Transifex to the [xonotic-data.pk3dir](https://gitlab.com/xonotic/xonotic-data.pk3dir) git repository as well as in the opposite direction (may add new translatable strings or change the existing ones).
+
+Translation guidelines and good practices
+=========================================
+   - [Translation guidelines](Translation-guidelines)
+      - [List of translation placeholders](List-of-translation-placeholders)
+      - [List of color codes](List-of-color-codes)
+      - [List of translation prefixes](List-of-translation-prefixes)
+
+Additional tips
+===============
+   - [How to test your translations](Test-your-translations)
+
+Implementation notes
+====================
+
+Some more technical info is in the data repo: [qcsrc/i18n-guide.txt](https://gitlab.com/xonotic/xonotic-data.pk3dir/blob/master/qcsrc/i18n-guide.txt), [qcsrc/lib/i18n.qh](https://gitlab.com/xonotic/xonotic-data.pk3dir/blob/master/qcsrc/lib/i18n.qh)
+
+Sync is done using a cron job: [misc/infrastructure/transifex.cron](https://gitlab.com/xonotic/xonotic/blob/master/misc/infrastructure/transifex.cron)
\ No newline at end of file
diff --git a/Translation-guidelines.md b/Translation-guidelines.md
new file mode 100644 (file)
index 0000000..8d73709
--- /dev/null
@@ -0,0 +1,29 @@
+*  First, create an account on [Transifex](https://www.transifex.com/team-xonotic/xonotic/dashboard/) using a proper nickname and a real email address (it will be used to give you credit for your contributions, and so that we're able to contact you later if we need further translation help).
+
+*  Always match newlines and white space with translation strings: if a string has 4 spaces in the beginning of it in English, do the same thing for the translation. If a string has 2 newlines at the end of it, or one in the middle and another at the end, repeat the same thing in the translated string.
+
+*  Be careful not to mess with variables in the strings and with other placeholders. [Variables and placeholders](List-of-translation-placeholders) are codes that will be replaced with something else in the final text.
+
+*  Always match variables in the strings properly, as explained here: http://docs.translatehouse.org/projects/localization-guide/en/latest/guide/translation/variables.html
+
+*  Keep color codes the same, like `^BG` or `^TC` or `^F4` or `^2`, these are special color codes and are handled by the HUD/text rendering code. See the [List of color codes](List-of-color-codes).
+
+*  Some strings have prefixes which help you know the context of the string... For example, say there is a list box in the menu which controls effects settings, we can add a prefix into the translatable string for each item in the list like this: `PREFIX^translatable text`. In the case of effects, we can do: `EFFECTS^Low`, `EFFECTS^Medium`, and `EFFECTS^High`, and you can then know the context of the Low/Medium/High translation easily. When forming the final translated string, REMOVE THE PREFIX AND THE ^ SYMBOL. However, be careful not to confuse these with color codes or intentional placements of ^. If in doubt, read the code, context sensitive lines of code which use this prefix idea will have a ZCTX() or CTX() wrapper around the whole string, giving you a good clarification as to how to proceed. You can also refer to the [List of prefixes](List-of-translation-prefixes).
+
+*  Normally do not translate proper nouns, like most weapon names (excluding Machinegun, Shotgun, etc), or game mode names, unless they make sense in your language to be translated. Mutators CAN be translated, but not mutators which have proper names, like "InstaGib", or "NIX" which is an acronym.
+
+*  Pay attention to capitalization... scoreboard columns for example are intended to be lowercase. In general, it's always a good idea to follow the context of the English writing, and make sure the capitalization matches in English (Unless your language has some other grammatical rule that makes more sense here.)
+
+*  Strings that have **no English words** do not need to be translated, like `%s %s (%s%s)` should not be translated: if you see these, please report them on https://gitlab.com/xonotic/xonotic-data.pk3dir, as they should not have been added in the first place.
+
+*  If you are even slightly unsure of the context or meaning of a string, read the code or ask someone on ~~IRC~~ [Matrix ](https://gitlab.com/xonotic/xonotic/-/wikis/Channels), if you're still unable to be 100% sure, then mark your string as a *suggestion* on Transifex and MOVE ON, do not risk adding an improper translation.
+
+*  NEVER pervert, profane, or mock a string that is not normally written as such in English. If there is no joke or gore in the English writing, do not add one in the translation. We must adhere to supporting cl_gentle (a non-swearing, "E rated" version of the texts) even in translations.
+
+*  Users who abuse the translation system (i.e. putting inappropriate language in places it should not be, advertisements, spam, or other such problems) will be banned from the translation system.
+
+*  Overall, just try and write the translation in a way which fits your language best... If something is silly in English and it's okay to do it silly in your language, then go ahead: just try and make it match the English meaning as closely as possible.
+
+*  After you have completed translations, please test them both in the menu and in game to make sure there aren't any mistakes: [Test your translations](Test-your-translations). WARNING: If you make a mistake while translating a notification system string, it CAN crash the game upon loading, as the notification system analyzes all strings and ensures they are written correctly! ( See here, an earlier problem that have been noticed on the old German translations: http://i.imgur.com/mePBYvO.jpg ).
+
+Original source of information: https://forums.xonotic.org/showthread.php?tid=4178&pid=58824#pid58824
\ No newline at end of file
diff --git a/Trouble-in-Terrorist-Town.md b/Trouble-in-Terrorist-Town.md
new file mode 100644 (file)
index 0000000..eaa3786
--- /dev/null
@@ -0,0 +1,217 @@
+# Trouble in Terrorist Town (TTT)
+
+## WARNING! This gamemode has been lost.
+
+### This gamemode appeared once in a server called "FSMP Teamplay", the server was shutdown in late 2019.
+
+### Update: (20-02-2021) LegendGuard retrieved the gamemode developing from scratch: [LegendGuard's MMM repository](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/LegendaryGuard/ttt)
+
+<img src="uploads/440eb38e781b4bb26f3679102b69b185/iconTTTgamemode.png" alt="logoTTTxonotic"/>
+
+## A group of space terrorists have traitors among them. Traitors must kill terrorists, while the terrorists have to try to find and kill the traitors.
+
+# Objective of the Game
+
+The game mode is based on the fact that there is a small group of traitors and another of detectives, there is an explanation of the functions of each one.
+
+
+## Innocents
+
+The Innocent are the majority (62.5% of the game's population by default.) Their group color is green.
+The task of the innocent is to detect traitors and defend detectives more than anything, they must kill the right person or anything special.
+
+
+## Traitors
+
+The Traitors are the medium sized group in TTT (25% of the population or one Traitor for every four players.) Their group color is red, but this is not displayed to anyone other than Traitors, or when a Traitor has been confirmed to be dead.
+The traitors must murder everyone undetected, they know who they are because only among themselves do they see a red "circle" that blinks around their companions' bodies. They must kill all innocents before time runs out.
+
+
+## Detectives
+
+The Detectives are the smallest group in TTT (12.5% of the population or one Detective for every eight players.) They are special Innocents given equipment. Their group color is blue.
+Detectives have special methods to detect the traitor, for example, when they see a body, they must analyze the body, if the body was recently killed, it will tell if he was Innocent or a Traitor.
+
+They always appear as CT and everyone sees them as CTs, plus they flash a blue circle on their body that everyone sees (unlike traitors who only see each other CT and the flash is only seen by them).
+
+
+## About Karma points
+
+It is worth clarifying that everyone can kill each other, but there is something called "**Karma**", which starts with an initial, and increases if they do things right (if traitors kill, or if traitors kill people), otherwise, the Karma will be discounted.
+
+The Karma is used for the damage that weapons generate, the more Karma, the more damage your weapon will do.
+
+If the Karma is lower, the player can be banned temporarily to avoid teamkills or any abuse with the end to keep the game in balance.
+
+
+# Screenshots and demos
+
+The screenshots are from 23/08/2019.
+
+<img src="uploads/7ba1f8aed1b8dc2f41cec2679b8928d0/iconTroubleinTerroristTown.jpg" alt="selectgamemodeTroubleinTerroristTownFSMPServer" width="400"/>
+
+<img src="uploads/bb848a10f699a55df73e70d9ab6e1102/spectating.jpg" alt="TTTspectatingInterface" width="400"/>
+
+<img src="uploads/fbdadc8a4d7a66b459475f12fcfb3944/traitor.jpg" alt="TTTtraitor" width="400"/>
+
+<img src="uploads/5953f5fd352f33e8d915350f16fbbe3c/whenFinishedmakes_public_everyone_whotheyare.jpg" alt="TTTwhenmatchFinishedmakeseveryonesayingwhotheyare" width="400">
+
+<img src="uploads/098c35c194b1a2e12857eade57a0ad03/karmaScore.jpg" alt="TTTkarmaScore" width="400"/>
+
+
+**Demos here, thanks to Kotangens, he has given his best effort to record this**:
+
+To play the demo, you need the following resources:
+
+- Models and server resources (copy and paste them to data/dlcache):
+
+[fsmp-teamplay-hats-1.1.0.pk3](uploads/40d56cf47c83b50e18b4d5e56eece21a/fsmp-teamplay-hats-1.1.0.pk3)
+
+[fsmp-teamplay-hats-1.2.0.pk3](uploads/9997b9cb9e9f3405a3e374811caa37ec/fsmp-teamplay-hats-1.2.0.pk3)
+
+[fsmp-teamplay-server-files-1.3.0.pk3](uploads/b72f913d9a32520275a943b6c3fde511/fsmp-teamplay-server-files-1.3.0.pk3)
+
+[fsmp-teamplay-server-files-1.4.0.pk3](uploads/ba94aa50b9d2a1b4afbbe277ce4e8e3e/fsmp-teamplay-server-files-1.4.0.pk3)
+
+[csprogs-xonotic-v0.8.2-2564-g68e9345d4.pk3](uploads/0fcb08f67791913d31dbaa89f6f4abf7/csprogs-xonotic-v0.8.2-2564-g68e9345d4.pk3)
+
+- Minecraft map for demo (compressed as .zip, it needs to uncompress and copy .pk3 file and paste to data/dlcache):
+
+[minectf_fsmp1.zip](uploads/3b589d72556bff2e9426025e5550c2ea/minectf_fsmp1.zip)
+
+- Demo files (copy and paste to data):
+
+Best recorded demo:
+
+[2019-10-02_21-54_minectf.dem](uploads/8ba3d79131713563e8d2ba35aa7d1b55/2019-10-02_21-54_minectf.dem)
+
+Demo without players, only bots:
+
+[2019.07.11-9_08_minectf__ttt__show_result_.dem](uploads/10a03f55b5aed6a2fcfe68a8d8b7023f/2019.07.11-9_08_minectf__ttt__show_result_.dem)
+
+After adding these resources, type in the game console: 
+
+It's recommended watching the **best recorded demo**:
+
+`playdemo "2019-10-02_21-54_minectf.dem"`
+
+Other demo:
+
+`playdemo "2019.07.11-9_08(minectf)(ttt)(show result).dem"`
+
+There is a youtube video about the **best recorded demo**: 
+https://youtu.be/WQASMsHeiWk
+
+# Rules
+
+## Basic Rules
+
+All basic rules apply to any role and or players.
+​
+
+- No Randomly Damaging Mate​
+
+1. Randomly Damaging a teammate without sufficient evidence of them committing a kill on site as offence, This includes damages that have been done unintentionally.​
+
+2. Killing any player that is away from their keyboard.​
+
+
+- No Traitor Baiting
+
+1. Performing traitorous acts as Innocent repeatedly.
+
+2. Tricking other players into believing you're a Traitor.
+
+
+
+## Role Rules
+
+These rules only apply if you are apart of that role for example you can't break a detective rule if you're an innocent.​
+
+
+<span style="color:green">**Innocents**</span>​
+
+1. Do not commit any Traitorous acts.
+
+2. Do not work with Traitors
+
+3. Only kill when you have a valid reason to do so.
+
+4. Obey valid detective orders at all times.
+
+5. Do not harm the detectives in any way.
+
+6. Do not use a Traitor defib at all.
+
+
+<span style="color:red">**Traitors**</span>
+
+1. Do not kill other Traitors.
+
+2. Always try to alert other Traitors to your traps.
+
+3. Do not sell out other Traitors.
+
+4. Do not use a Cleaning defib at all.
+
+
+<span style="color:blue">**Detectives**</span>
+
+1. Do not give unreasonable orders.
+
+2. Do not harm Innocents
+
+3. Do not abuse your powers.
+
+4. Do not work with Traitors.
+
+5. Do not use the Traitor defib at All.
+
+## Kill on Site Rules
+
+A kill on site must come under valid for you to act on it. Any kill on site marked with the role letter and color (<span style="color:blue">D</span>, <span style="color:red">T</span> or <span style="color:green">I</span>) are only valid if given by that role. if you kill on site someone for an invalid reason then you may be warned for False kill on site.​
+
+- Valid kill on site​
+
+1. Self Defence.
+
+2. Damage without a valid reason.​
+
+3. Mass killing.​
+
+4. Associating with Traitors.​
+
+5. Hiding game sensitive items.​
+
+6. Using traitor weaponry without being proven.​
+
+7. Failing to Identify bodies after killing.​
+
+8. Walking past multiple unidentified bodies.​
+
+9. Not following Detectives orders. (<span style="color:blue">D</span>)​
+
+
+- Invalid kill on site​
+
+1. Kill on site on a Skin.​
+
+2. Kill on site on a Weapon.​
+
+3. Kill on site on a Location.​
+
+4. Not following Innocents orders.​
+
+5. Suspicion.​
+
+6. Aiming at players.​
+
+
+## Notes for developers / mappers
+
+Sorry, developers, the source code is lost.
+
+Inside the map (.pk3 file), in .mapinfo file, you write: `gametype ttt`
+
+Moreover, you can enable this gamemode in the console using this command: 
+`sv_cmd gametype ttt`
\ No newline at end of file
diff --git a/Vampire.md b/Vampire.md
new file mode 100644 (file)
index 0000000..6ed9f22
--- /dev/null
@@ -0,0 +1,10 @@
+Vampire
+=======
+
+Vampire is a mutator that gives players health when they deal damage. The amount of health they get is equal to the amount of damage they deal.
+
+With health gained from this mutator, your health can go way above the usual maxium health limit of 200.
+
+CVar
+----
+This mutator is controlled by the [CVar](CVars) `g_vampire`.
\ No newline at end of file
index 618425225f7ba36212ddced1b3946dcc1b6e5ce7..6440d58a90e6c7639eaa737931dbf1c10fe1ee90 100644 (file)
@@ -2,7 +2,7 @@
 
 # About
 
-## General informatoin
+## General information
 
 Vehicles in Xonotic introduce new dynamics and fun in team play, especially Capture The Flag (CTF), compared to traditional vehicle-free games.
 
@@ -100,8 +100,51 @@ Its primary weapon is machine gun; the aiming direction is shown by the green re
 
 # Unofficial vehicles
 
+**This information is old, maybe there are things that are no longer stable.**
 On [some servers](Special-Servers), one may find experiment vehicles that are not official, such as tanks, helicopters, jets, etc. Please post your opinions on them in [Xonotic Official Forums](http://forums.xonotic.org).
 
+R22 Helicopter and LL48 Tank were used in the SMB modpack and were removed because these are no longer considered part of the core mod. Perhaps these were removed in October 2018.
+
+## Light APC
+
+<img src="uploads/a23dbba1f6aa6d1a272cb57855167dbe/Vehicle-lightapc.jpg" alt="Vehicle-lightapc" width="410"/>
+<br/>
+<img src="uploads/28ea75bd7555021facaf3c93d57cbded/Vehicle-lightapc-cockpit.jpg" alt="Vehicle-lightapc-cockpit" width="410"/>
+
+Up to three players can ride the Light APC, a large tank vehicle, at the same time.
+The first player will be the pilot, who can drive. It can keep more players inside too.
+
+<img src="uploads/85f12623125db9d1e86e8189d5b247ad/Vehicle-lightapc-thirdperson-view.jpg" alt="Vehicle-lightapc-thirdperson-view" width="510"/>
+
+The second player will be the front gunner. The third player will be the back gunner.
+When the pilot leaves Light APC, the second player becomes the pilot.
+There are no secondary weapons for any of the three riders in Light APC.
+
+## R22 Helicopter
+
+<img src="uploads/1576c847ebb254534127bd89cc28e504/Vehicle-r22helicopter.jpg" alt="Vehicle-r22helicopter" width="410"/>
+<br/>
+<img src="uploads/8283fe733167674cd1061fafa93da0a2/Vehicle-r22helicopter-cockpit.jpg" alt="Vehicle-r22helicopter-cockpit" width="410"/>
+
+The R22 Helicopter takes one pilot who can also operate two weapons. There are two different reticles for them. Only two players can ride the R22 Helicopter. The second player will be the cockpit, but this player won't do nothing, only will be the spectator of the vehicle inside and he can get out of the vehicle whenever he wants, the same for the pilot. 
+
+<img src="uploads/92d5842accfd071f8900b689591423df/Vehicle-r22helicopter-thirdperson-view.jpg" alt="Vehicle-r22helicopter-thirdperson-view" width="510"/>
+
+The primary weapon is machine gun and is shot toward the green reticle. The second weapon is remote-controlled missiles that target any nearby object that is around the front, is dropped onto the ground the green reticle is pointing at. The white reticle always points at the head of the vehicle. The green reticle is projected by the movement momentum of the vehicle. The movement controls are the same as [Raptor vehicle](Vehicles#raptor).
+
+## LL48 Tank
+
+<img src="uploads/d259518dd9c920f55b4813e4f9d92461/Vehicle-ll48tank.jpg" alt="Vehicle-ll48tank" width="410"/>
+<br/>
+<img src="uploads/8d007cfbdd179a15ad8d99e9cd18aa06/Vehicle-ll48tank-cockpit.jpg" alt="Vehicle-ll48tank-cockpit" width="410"/>
+
+LL48 Tank takes one rider. It walks on the ground and can jump from very high altitude while protecting the rider.
+
+<img src="uploads/60156ec99cc8e3514341fb69373e4680/Vehicle-ll48tank-thirdperson-view.jpg" alt="Vehicle-ll48tank-thirdperson-view" width="510"/>
+
+Its primary weapon is the HLAC; the aiming direction is shown by the orange reticle, which follows the front of the vehicle, it does the same as Light APC front gunner. The secondary weapon is the Tank Cannonball that are aimed with the red reticle, which always points to the front of the vehicle, reloading ammo takes a bit of time. Press SHIFT to move the secondary weapon down and press SPACE to move up.
+
+
 # Notes for mappers
 
 Vehicle class names for mappers:
@@ -111,6 +154,12 @@ Vehicle class names for mappers:
 - Raptor: "vehicle_raptor"
 - Spiderbot: "vehicle_spiderbot"
 
+Unofficial vehicle class names:
+
+- Light APC: "vehicle_lightapc"
+- R22 Helicopter: "vehicle_r22heli"
+- LL48 Tank: "vehicle_tankll48"
+
 # Notes for developers
 
 `Assault` needs testing, as far as i can tell it should work now.
@@ -119,3 +168,38 @@ Vehicle class names for mappers:
 
 Maps needed, `as` and `ctf` for now - i cant take this much further w/o play testing on a larger scale.
 
+**Official vehicles source codes are in this [directory](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/master/qcsrc/common/vehicles/vehicle).**
+
+There are unofficial vehicles source codes stored in the [SMB modpack](https://github.com/MarioSMB/modpack/tree/master/mod/common/vehicles).
+
+Some unofficial vehicles are in the jeff-modpack.
+
+Remember if you had them installed in the game, to activate those unofficial vehicles:
+
+`g_vehicles 1 // activate the vehicles in the game`
+
+`set g_vehicles_extra 1 // activate the unofficial vehicles in the game`
+
+`set g_vehicle_tankll48 1 // activate LL48 Tank vehicle in the game`
+
+`set g_vehicle_r22heli 1 // activate R22 Helicopter in the game`
+
+`set g_vehicle_lightapc 1 // activate Light APC in the game`
+
+`set g_vehicles_enter 0 // activate enter inside vehicle automatically instead pressing the key to enter inside`
+
+`set g_vehicles_vortex_damagerate 2`
+
+`set g_vehicle_r22heli_shield_regen 20 // energy regeneration quantity`
+
+`set g_vehicle_r22heli_shield 600 // energy shield`
+
+`set g_vehicle_r22heli_health_regen 15 // health regeneration quantity`
+
+`set g_vehicle_r22heli_speed_forward 2500 // R22 Helicopter speed when it's moving forward`
+
+`set g_vehicle_tankll48_health 3500 // LL48 Tank health quantity`
+
+`set g_vehicle_tankll48_cannon_damage 2000 // LL48 Tank Cannon damage quantity`
+
+It's recommended testing those vehicles in a map called **mars** and with mapinfo and entity files.
\ No newline at end of file
diff --git a/Weapons-Stay.md b/Weapons-Stay.md
new file mode 100644 (file)
index 0000000..2583453
--- /dev/null
@@ -0,0 +1,13 @@
+Weapons Stay
+------------
+**Weapons Stay** is a mutator in which the weapons at weapon spawn points don't fully disappear after being collected, instead they will turn red.
+
+While red, anyone can still walk over the weapon to collect it, but it will only give the weapon, no ammo.
+
+In this mutator, weapons will still “respawn” after being collected. This just turns a red weapon back to normal again, meaning it will give you the weapon and ammo.
+
+Weapons dropped from players are not affected by this mutator.
+
+CVar
+----
+This is controlled by the [CVar](CVars) `g_weapon_stay`.
\ No newline at end of file
index 36aa077cf092a1585a216f0ff0607eeb5c3943b5..e5ad43337771dca0e11015247bf6a9ce38dd395c 100644 (file)
 Core Weapons
-=======
-
-Blaster (aka Laser)
------
+============
+These are the main weapons of Xonotic. They are used either as starter weapons or can be collected in most official maps.
 
--   Impulse: 1/230
--   Ammo: N/A
+Blaster
+-------
 
 ![](http://pics.nexuizninjaz.com/images/50zb4clbm5omqz6y9iy6.jpg) ![](http://pics.nexuizninjaz.com/images/et52lu44j7okoihhndn.jpg)
 
+The Blaster is the weakest weapon and one of the starter weapons. It does not use any ammo and it's shot is rather weak, but the strong pushback force can be used to knock enemies to their doom.
+
+- Primary attack: Fire a weak blaster shot that deals little damage, but has a strong pushback.
+- Secondary fire: Switch to previously selected weapon
+- Ammo: None
+- Impulse: 1/230
+- Also known as: Laser
+
 Shotgun
 -------
 
--   Impulse: 2/231
--   Ammo: Shells
-
+This is another weapon that players start with in most game modes. The shotgun is most effective in short range battles.
 
 ![](http://pics.nexuizninjaz.com/images/enzsrkxcf9mmbtp15437.jpg) ![](http://pics.nexuizninjaz.com/images/n4mzdky7ifcfzcgydpg.png)
 
+- Primary fire: Fire a single shotgun round, this shoots many little pieces with a high spread. Cost: 1 shell.
+- Secondary fire: Slap your opponents on their head with the shotgun. Deals a lot of damage.
+- Ammo: Shells
+- Impulse: 2/231
+
 MachineGun
 -----------
+![](http://pics.nexuizninjaz.com/images/5hadyah7vcqloo2d3bm.jpg) ![](http://pics.nexuizninjaz.com/images/8uepge2a3xqc30fs3562.png)
 
+The machine gun rapidly fires bullets. It has a limited magazine size and needs to be reloaded when the magazine is empty. You can reload manually with the reload key (default: R).
+
+-   Primary fire: Rapidly fire bullets. Cost: 1 bullet per shot.
+-   Secondary fire: 3-bullet fire burst. More accurate than primary fire, but has a slight delay between bursts. Cost: 3 bullets.
+-   Ammo: Bullets (magazine size: 60)
 -   Impulse: 3/232
--   Ammo: Bullets
 
+Arc
+----------
+![](http://pics.nexuizninjaz.com/images/wnzvov3b9ifmkj3v3p5v.jpg) ![](http://pics.nexuizninjaz.com/images/lkyzjkd5f6gx6wx33ahr.jpg)
 
-![](http://pics.nexuizninjaz.com/images/5hadyah7vcqloo2d3bm.jpg) ![](http://pics.nexuizninjaz.com/images/8uepge2a3xqc30fs3562.png)
+-   Primary fire: Hold pressed to fire a straight beam of energy that damages enemies and heals team mates.
+-   Secondary fire (in version 0.8.5): Rapidly fire energy beams.
+-   Secondary fire (in version 0.8.2): Fire a more powerful beam of energy. Needs a cooldown after this attack.
+-   Ammo: Cells
+-   Impulse: 3/249
 
 Mortar
 ------
+![](http://pics.nexuizninjaz.com/images/d87cqnfvw08fv904y7bx.jpg) ![](http://pics.nexuizninjaz.com/images/2fnx84s2fa06clf2dc3.jpg)
 
--   Impulse: 4/233
--   Ammo: Rockets
-
+A slow long-range grenade launcher.
 
-![](http://pics.nexuizninjaz.com/images/d87cqnfvw08fv904y7bx.jpg) ![](http://pics.nexuizninjaz.com/images/2fnx84s2fa06clf2dc3.jpg)
+-   Primary fire: Launch grenade that explodes on impact. Cost: 2 rockets.
+-   Secondary fire: Launch grenade that explodes after a fixed, short amount of time. Cost: 2 rockets.
+-   Ammo: Rockets
+-   Impulse: 4/233
 
 Electro
 -------
+![](http://pics.nexuizninjaz.com/images/rxki5yxvm5yspt13not.jpg) ![](http://pics.nexuizninjaz.com/images/2g0kkt5xla0rjqfwxjnu.jpg)
 
--   Impulse: 5/235
+-   Primary fire: Fire an electric beam with splash damage. Cost: 4 cells.
+-   Seconary fire: Hold pressed to throw 1-3 electric mines which will discharge after a while and deal a small amount of damage to nearby enemies. Shooting the mines with the Electro's primary fire will burst them in a large electric burst, dealing a lot of damage. Cost: 2 cells.
 -   Ammo: Cells
-
-
-![](http://pics.nexuizninjaz.com/images/rxki5yxvm5yspt13not.jpg) ![](http://pics.nexuizninjaz.com/images/2g0kkt5xla0rjqfwxjnu.jpg)
+-   Impulse: 5/235
 
 Crylink
 -------
-
--   Impulse: 6/236
--   Ammo: Cells
-
-
 ![](http://pics.nexuizninjaz.com/images/t39spy9kk5hvlxvudaqo.jpg) ![](http://pics.nexuizninjaz.com/images/uy9p5w8bwlhm8b8k2mr.jpg)
 
-Vortex (aka Nex)
----
+Fires purple balls of energy with many unique properties. They can spread and deflect. Very fast players that get hit by the balls might also be slowed down significantly.
 
--   Impulse: 7/237
+-   Primary fire: Fire 6 evenly-spread purple energy balls that will spread and deflect on surfaces once. Hold pressed for the balls to continue to spread, release the button to inverse the spreading direction of the balls.
+-   Secondary fire: Fire purple energy balls that are more concentrated. They will not deflect.
 -   Ammo: Cells
+-   Impulse: 6/236
 
-
+Vortex
+------
 ![](http://pics.nexuizninjaz.com/images/5g812xez14wu6s117yhp.jpg) ![](http://pics.nexuizninjaz.com/images/511ltxnzq7usrt6ml939.png)
 
-Hagar
------
-
--   Impulse: 8/238
--   Ammo: Rockets
+A sniper rifle.
 
+-   Primary fire: Fire a straight shot with high damage.
+-   Secondary fire: Zoom.
+-   Ammo: Cells
+-   Impulse: 7/237
+-   Also known as: Nex
 
+Hagar
+-----
 ![](http://pics.nexuizninjaz.com/images/16wj5v7e8p5stid5hp3w.jpg) ![](http://pics.nexuizninjaz.com/images/r8y92y1j27t7igp9hbje.jpg)
 
-Devastator (aka Rocket Launcher)
----------------
+A rapid-fire rocket launcher.
 
--   Impulse: 9/239
+-   Primary fire: Rapidly fire tiny rockets that fly in a straight line and deal a bit of splash damage on impact. Cost: 1 rocket ammo.
+-   Secondary fire: Hold pressed to load 1-4 rockets. Release button to fire them all at once. When you keep 4 rockets loaded without firing them for a long time, the Hagar will give a warning beep and fire the 4 rockets anyway. Cost: 1 rocket ammo per rocket launched.
 -   Ammo: Rockets
+-   Impulse: 8/238
 
-
+Devastator
+----------
 ![](http://pics.nexuizninjaz.com/images/8pjbd0b1tc3uzhacafih.jpg) ![](http://pics.nexuizninjaz.com/images/d67rl1y76179orl3t9s.jpg)
 
-Other Weapons
-=======
+The Devastator is a strong rocket launcher.
 
-@\#!%'n Tuba
-------------
-
--   Impulse: 1/244
--   Ammo: N/A
+-   Primary fire: Fire a rocket. Hold primary fire pressed and look around to steer the rocket. Cost: 4 rocket ammo.
+-   Secondary fire: Detonate your flying rocket.
+-   Ammo: Rockets
+-   Impulse: 9/239
+-   Also known as: Rocket Launcher
 
+New Toys
+========
+These are weapons that the [New Toys](New Toys) mutator introduces. But you might also be able to find them in some maps.
 
-![](http://pics.nexuizninjaz.com/images/lhd46626ynelcxxe0ydt.jpg) ![](http://pics.nexuizninjaz.com/images/sxsmwgh7plcv7ivuacx.jpg)
-
-Shockwave
+Mine Layer
 ----------
+![](http://pics.nexuizninjaz.com/images/uwt4dre6rvjxuxbfcdis.jpg) ![](http://pics.nexuizninjaz.com/images/pl2srlpok02x8zu8kfe.jpg)
 
--   Impulse: 2/248
--   Ammo: N/A
-
-
-![](http://pics.nexuizninjaz.com/images/enzsrkxcf9mmbtp15437.jpg) ![](http://pics.nexuizninjaz.com/images/wp0dmhpu9wr3dv75men.jpg)
-
-Arc
-----------
+- Primary fire: Place mines on the ground, which deal 20-40 damage if stepped on by an enemy. These persist for 10 seconds before exploding. Up to 3 mines may be placed at a time.
+- Secondary fire: Detonate all mines immediately.
+- Ammo: Rockets
+- Impulse: 4/234
 
--   Impulse: 3/249
--   Ammo: Cells
+Hint: Use the Mine Layer to protect isolated areas of the map, particularly important areas such as those that contain weapons, [powerups](Powerups), control points in [Onslaught](Onslaught), flags in [CTF](Capture-the-Flag), and checkpoints in [Assault](Assault).
 
+Heavy Laser Assault Cannon (HLAC)
+---------------------------------
+![](http://pics.nexuizninjaz.com/images/oqcqslhrebsuwamcbsr2.jpg) ![](http://pics.nexuizninjaz.com/images/d1ndvcydn97atrdjkrcg.jpg)
 
-![](http://pics.nexuizninjaz.com/images/wnzvov3b9ifmkj3v3p5v.jpg) ![](http://pics.nexuizninjaz.com/images/lkyzjkd5f6gx6wx33ahr.jpg)
+- Primary fire: Rapidly fire laser particles, dealing a small amount of knockback and 10-13 damage. Primary fire will lose accuracy the longer you shoot. Stop shooting for a while to restore the accuracy.
+- Secondary fire: Fire a single, broadly scattered shot.
+- Ammo: Cells
+- Impulse: 6/243
 
-Mine Layer
-----------
+Rifle
+------------
+![](http://pics.nexuizninjaz.com/images/9kulqb3339ido0x9eqxx.jpg) ![](http://pics.nexuizninjaz.com/images/ssg6hdtu38jn9yetz2.jpg)
 
--   Impulse: 4/234
--   Ammo: Rockets
+The rifle is the strongest sniper weapon that is not a super weapon. It has a limited magazine capacity and needs reloading. You can reload manually with the Reload key (default: R).
 
+-  Primary: Fire a shot which pierces through walls, dealing 80-90 damage to an enemy hit. Cost: 10 bullets.
+-  Secondary: Fire a faster, somewhat scattered shot with reduced damage. Cost: 10 bullets.
+-  Ammo: Bullets (magazine size: 80)
+-  Impulse: 7/245
 
-![](http://pics.nexuizninjaz.com/images/uwt4dre6rvjxuxbfcdis.jpg) ![](http://pics.nexuizninjaz.com/images/pl2srlpok02x8zu8kfe.jpg)
+T.A.G. Seeker
+-------------
+![](http://pics.nexuizninjaz.com/images/uo9n5c224ws1e91c49d4.jpg) ![](http://pics.nexuizninjaz.com/images/ckh0mg30by9deb9th46v.jpg)
 
-Heavy Laser Assault Cannon (HLAC)
----------------------------------
+The T.A.G. Seeker is a very powerful weapon that fires homing missiles, but it needs some skill to use effectively. It usually does at least 80 damage before an enemy can escape it, sometimes more, often killing the enemy very quickly.
 
--   Impulse: 6/243
--   Ammo: Cells
+- Primary fire: Fire a particle called a “tag”. If that particle hits, one may continue to hold down the primary fire button to launch homing explosives as long as the target is in sight, dealing 20-40 damage with each hit.
+- Secondary: Launch a rapid barrage of explosives with a short range.
+- Ammo: Rockets
+- Impulse: 8/247
 
+Super weapons
+=============
+Super weapons are the deadliest weapons in Xonotic. When you pick up a super weapon under normal conditions, you will only be allowed to hold it for 30 seconds. After this, it will disappear.
 
-![](http://pics.nexuizninjaz.com/images/oqcqslhrebsuwamcbsr2.jpg) ![](http://pics.nexuizninjaz.com/images/d1ndvcydn97atrdjkrcg.jpg)
-
-Vaporizer (aka MinstaNex)
+Vaporizer
 ---------
+![](http://pics.nexuizninjaz.com/images/8praunzsu37vutllk55.jpg) ![](http://pics.nexuizninjaz.com/images/vld5zxiwuys46zpygvo.jpg)
 
--   Impulse: 7/241
+The Vaporizer is a deadly super weapon and the strongest sniper weapon in the game. One shot deals 150 damage. In [InstaGib](InstaGib), one shot of this weapon is deadly (unless the target has an extra life).
+
+-   Primary fire: Fire the deadly beam. Deals 150 damage. 1 second delay between shots. Costs 10 cells (or 1 in [InstaGib](InstaGib)).
+-   Secondary fire: Fire a blaster-like projectile with a very strong pushback. Very useful to move yourself around in the map.
 -   Ammo: Cells
+-   Impulse: 7/241
+-   Also known as: MinstaNex
 
+In [InstaGib](InstaGib), every players gets the Vaporizer for free and without time limit.
 
-![](http://pics.nexuizninjaz.com/images/8praunzsu37vutllk55.jpg) ![](http://pics.nexuizninjaz.com/images/vld5zxiwuys46zpygvo.jpg)
+Fireball
+--------
+![](http://pics.nexuizninjaz.com/images/v1mtkb5tqkg78y5x5zak.png) ![](http://pics.nexuizninjaz.com/images/b9rz84cu63ph0vdr5x67.jpg)
 
-Rifle
-------------
+Fireball is a very explosive super weapon. It doesn't consume ammo.
 
--   Impulse: 7/245
--   Ammo: Bullets
+- Primary fire: Launch a large ball of fire that will fly in a straight line detonate in a huge explosion. The shot has a delay of ca. 1 second, however.
+- Secondary fire: Throw fire mines that hurt anyone nearby. You can throw them with a delay of ca. 3 seconds each.
+- Ammo: None
+- Impulse: 9/246
 
+Tools
+=====
 
-![](http://pics.nexuizninjaz.com/images/9kulqb3339ido0x9eqxx.jpg) ![](http://pics.nexuizninjaz.com/images/ssg6hdtu38jn9yetz2.jpg)
+Grappling Hook
+--------------
+![](http://pics.nexuizninjaz.com/images/ndc9ijmd4hntegvy3hk.jpg) ![](http://pics.nexuizninjaz.com/images/by8v66xilbih4mj7l9k.jpg)
 
-T.A.G. Seeker
--------------
+NOTE: The grappling hook is usually added via the [Grappling Hook mutator](Grappling Hook), which gives it to players off-hand. But the grappling hook can also be used as selectable “weapon”. This section describes how the grappling hook works by default (i.e. without the mutator).
 
--   Impulse: 8/247
--   Ammo: Rockets
+The grappling hook fires a chain that will travel a long distance until it hits a solid surface. Once latched onto something, it will immediately swing you there. The hook adds an extra challenge to fighting matches, and it also makes both surprise ambushes and miraculous escapes possible. Additionally, areas with powerups or weapons that were previously unreachable are now up for grabs.
 
+The grappling hook needs fuel to work (unless the [Grappling Hook mutator](Grappling Hook) is active).
 
-![](http://pics.nexuizninjaz.com/images/uo9n5c224ws1e91c49d4.jpg) ![](http://pics.nexuizninjaz.com/images/ckh0mg30by9deb9th46v.jpg)
+- Primary fire: Fires the hook, latches onto a surface, pulls the player there, and then detaches. Press and hold the <FIRE> button to keep the hook attached for longer, but this depletes fuel quickly.
+- Secondary fire: Drops a gravity bomb that affects enemy players and also releases light and smoke (similar to a flashbang). Not possible if the [Grappling Hook mutator](Grappling Hook) is active.
+- Ammo: Fuel (or nothing when [Grappling Hook mutator](Grappling Hook) is active)
+- Impulse: 14/242
 
-Fireball
---------
+Hints and notes:
+-   The “hook” key (default: E) works as a shortcut for primary fire. In this case, this key selects the grappling hook and fires it.
+-   The grappling hook is *not* a hitscan beam! Depending on the distance, it may take a second or two for the hook to actually reach its destination, so use careful timing if using it for an escape!
+-   Conserve your charge (on-hand grappling hook only). It may take a while to regenerate, so don’t consume it all at once.
 
--   Impulse: 9/246
--   Ammo: Fuel
+Port-O-Launch
+-------------
+![](http://pics.nexuizninjaz.com/images/ut32h62fxw63gw1pqcn.jpg) ![](http://pics.nexuizninjaz.com/images/6920poan8rfljg4k8t0w.jpg)
 
+Port-O-Launch creates one-way portals that teleport players. Primary and secondary fire launch “portal balls” that will create portals when they hit a flat surface. Portal balls will be repelled by some surfaces.
 
-![](http://pics.nexuizninjaz.com/images/v1mtkb5tqkg78y5x5zak.png) ![](http://pics.nexuizninjaz.com/images/b9rz84cu63ph0vdr5x67.jpg)
+You need two portals for this to work: An in-portal (red) and an out-portal (blue). When you have created both portals, any player that enters the in-portal gets teleported to the out-portal. The out-portal will not teleport players back.
 
-Port-O-Launch
--------------
+Portals stay open only for a limited amount of time (default 15 seconds). Both portals also close when the player that created the portals has died.
 
+-   Primary fire: Fire the portal entrance (red).
+-   Secondary fire: Fire the portal exit (blue).
+-   Ammo: None
 -   Impulse: 14/240
--   Ammo:
-
 
+Ball Stealer
+------------
 ![](http://pics.nexuizninjaz.com/images/ut32h62fxw63gw1pqcn.jpg) ![](http://pics.nexuizninjaz.com/images/6920poan8rfljg4k8t0w.jpg)
 
-Grappling Hook
---------------
-
--   Impulse: 14/242
--   Ammo: Cells
+The Ball Stealer is a special tool used in [Nexball](Nexball) games. It is used to carry the ball and steal it from others. When you collect the ball, you will automatically equip the Ball Stealer and are unable to equip anything else.
 
+The Ball Stealer currently looks identical to the Port-O-Launch.
 
-![](http://pics.nexuizninjaz.com/images/ndc9ijmd4hntegvy3hk.jpg) ![](http://pics.nexuizninjaz.com/images/by8v66xilbih4mj7l9k.jpg)
+- Primary fire: Throw ball. Hold pressed to throw stronger.
+- Secondary fire: Try to steal ball from opponent
+- Ammo: None
+- Impulse: ???
 
 Overkill Weapons
 =======
+Overkill is a rule set that introduces a few new weapons.
 
 Heavy Machine Gun (HMG)
 --------------
+![](http://pics.nexuizninjaz.com/images/52z87krpcqf0hp5r7we8.jpg)
 
--   Impulse:
--   Ammo: N/A
+The heavy machine gun rapidly fires bullets. It is way more powerful than the regular machine gun. It has a limited magazine size and needs to be reloaded when the magazine is empty. You can reload manually with the reload key (default: R).
 
-
-![]() ![](http://pics.nexuizninjaz.com/images/52z87krpcqf0hp5r7we8.jpg)
+-   Primary fire: Rapidly fire bullets.
+-   Secondary fire: Fire a free blaster shot that deals no damage but has strong knockback. Useful to push yourselves and others.
+-   Ammo: Bullets (magazine size: 60)
+-   Impulse: ???
 
 Rocket Propelled Chainsaw (RPC)
 --------------
+![](http://pics.nexuizninjaz.com/images/32pv09r0pddyvzioog3g.jpg)
+
+This is basically a rocket launcher. It fires slow rockets which deal a lot of damage with a large radius. If you're not careful with this, you can explode yourselves.
+
+-   Primary fire: Fire a rocket.
+-   Secondary fire: Fire a free blaster shot that deals no damage but has strong knockback. Useful to push yourselves and others.
+-   Ammo: Rockets
+-   Impulse: ???
+
+Silly and experimental weapons
+==============================
 
--   Impulse:
--   Ammo: N/A
+@\#!%'n Tuba
+------------
+
+![](http://pics.nexuizninjaz.com/images/lhd46626ynelcxxe0ydt.jpg) ![](http://pics.nexuizninjaz.com/images/sxsmwgh7plcv7ivuacx.jpg)
+
+The @\#!%'n tuba is a very silly and @\#!%'n annoying weapon that makes the ears of your enemies bleed!
+
+If you hold down the @\#!%'n attack key, you will play the @\#!%'n tuba. The pitch of the sound will vary while pressing different directional keys or the @\#!%'n Jump key while make some noise.
+
+Using it as weapon can be @\#!%'n challenging, as it obscures a large portion of your sight.
+
+- @\#!%'n primary fire: Play the @\#!%'n tuba and deal low but rapid short-range damage to whoever the @\#!% you're facing.
+- @\#!%'n secondary fire: Same as @\#!%'n primary fire, but with higher pitch.
+- Ammo: None
+- Impulse: 1/244
+
+Shockwave
+----------
+![](http://pics.nexuizninjaz.com/images/enzsrkxcf9mmbtp15437.jpg) ![](http://pics.nexuizninjaz.com/images/wp0dmhpu9wr3dv75men.jpg)
 
+This weapon is experimental. It fires shockwave blasts and does not need ammo. It currently looks identical to the shotgun.
 
-![]() ![](http://pics.nexuizninjaz.com/images/32pv09r0pddyvzioog3g.jpg)
\ No newline at end of file
+-   Primary fire: Fire a shockwave blast that deals short-range damage.
+-   Secondary fire: Slap your opponents (same a shotgun).
+-   Ammo: None
+-   Impulse: 2/248
\ No newline at end of file
index e01b9b725a3fe637a37af91fd621bcd6e8ce124a..70736004be9188729e569fbf8db45d29125fa16b 100644 (file)
@@ -1,5 +1,7 @@
-### Quick Resources
+##### Quick Resources
 
-[Repository Access and Compiling](Repository_Access)  
+[Compiling release builds](Compiling)  
+[Repository Access and git builds](Repository_Access)  
 [Introduction to QuakeC](Introduction-to-QuakeC)  
 [Tips for new developers](Programming-Tips)  
+[Programming QuakeC stuff in Xonotic](Programming-QuakeC-stuff-in-Xonotic)  
diff --git a/assets/images/Blaster.png b/assets/images/Blaster.png
deleted file mode 100644 (file)
index 88f61ed..0000000
Binary files a/assets/images/Blaster.png and /dev/null differ
diff --git a/assets/images/Blaster_thumb.png b/assets/images/Blaster_thumb.png
deleted file mode 100644 (file)
index 3f1b148..0000000
Binary files a/assets/images/Blaster_thumb.png and /dev/null differ
diff --git a/assets/images/Crylink.png b/assets/images/Crylink.png
deleted file mode 100644 (file)
index f2b8d27..0000000
Binary files a/assets/images/Crylink.png and /dev/null differ
diff --git a/assets/images/Crylink_thumb.png b/assets/images/Crylink_thumb.png
deleted file mode 100644 (file)
index 7be1195..0000000
Binary files a/assets/images/Crylink_thumb.png and /dev/null differ
diff --git a/assets/images/Devastator.png b/assets/images/Devastator.png
deleted file mode 100644 (file)
index d6d3cf6..0000000
Binary files a/assets/images/Devastator.png and /dev/null differ
diff --git a/assets/images/Devastator_thumb.png b/assets/images/Devastator_thumb.png
deleted file mode 100644 (file)
index 679694d..0000000
Binary files a/assets/images/Devastator_thumb.png and /dev/null differ
diff --git a/assets/images/Electro.png b/assets/images/Electro.png
deleted file mode 100644 (file)
index 286f913..0000000
Binary files a/assets/images/Electro.png and /dev/null differ
diff --git a/assets/images/Electro_thumb.png b/assets/images/Electro_thumb.png
deleted file mode 100644 (file)
index e0bf11a..0000000
Binary files a/assets/images/Electro_thumb.png and /dev/null differ
diff --git a/assets/images/Hagar.png b/assets/images/Hagar.png
deleted file mode 100644 (file)
index 1fcb829..0000000
Binary files a/assets/images/Hagar.png and /dev/null differ
diff --git a/assets/images/Hagar_thumb.png b/assets/images/Hagar_thumb.png
deleted file mode 100644 (file)
index 167a816..0000000
Binary files a/assets/images/Hagar_thumb.png and /dev/null differ
diff --git a/assets/images/MachineGun.png b/assets/images/MachineGun.png
deleted file mode 100644 (file)
index a8c45d9..0000000
Binary files a/assets/images/MachineGun.png and /dev/null differ
diff --git a/assets/images/MachineGun_thumb.png b/assets/images/MachineGun_thumb.png
deleted file mode 100644 (file)
index 9f4142f..0000000
Binary files a/assets/images/MachineGun_thumb.png and /dev/null differ
diff --git a/assets/images/Mortar.png b/assets/images/Mortar.png
deleted file mode 100644 (file)
index 3ef33b9..0000000
Binary files a/assets/images/Mortar.png and /dev/null differ
diff --git a/assets/images/Mortar_thumb.png b/assets/images/Mortar_thumb.png
deleted file mode 100644 (file)
index 2681b90..0000000
Binary files a/assets/images/Mortar_thumb.png and /dev/null differ
diff --git a/assets/images/Shotgun.png b/assets/images/Shotgun.png
deleted file mode 100644 (file)
index 2bae9cd..0000000
Binary files a/assets/images/Shotgun.png and /dev/null differ
diff --git a/assets/images/Shotgun_thumb.png b/assets/images/Shotgun_thumb.png
deleted file mode 100644 (file)
index 4469e8a..0000000
Binary files a/assets/images/Shotgun_thumb.png and /dev/null differ
diff --git a/assets/images/Vortex.png b/assets/images/Vortex.png
deleted file mode 100644 (file)
index d79f479..0000000
Binary files a/assets/images/Vortex.png and /dev/null differ
diff --git a/assets/images/Vortex_thumb.png b/assets/images/Vortex_thumb.png
deleted file mode 100644 (file)
index d259752..0000000
Binary files a/assets/images/Vortex_thumb.png and /dev/null differ
diff --git a/assets/images/blaster-jumping.png b/assets/images/blaster-jumping.png
deleted file mode 100644 (file)
index 03aae64..0000000
Binary files a/assets/images/blaster-jumping.png and /dev/null differ
diff --git a/assets/images/blaster-jumping_thumb.png b/assets/images/blaster-jumping_thumb.png
deleted file mode 100644 (file)
index 548cfc7..0000000
Binary files a/assets/images/blaster-jumping_thumb.png and /dev/null differ
diff --git a/assets/images/wall-blastering.png b/assets/images/wall-blastering.png
deleted file mode 100644 (file)
index ee7399f..0000000
Binary files a/assets/images/wall-blastering.png and /dev/null differ
diff --git a/assets/images/wall-blastering_thumb.png b/assets/images/wall-blastering_thumb.png
deleted file mode 100644 (file)
index c01a474..0000000
Binary files a/assets/images/wall-blastering_thumb.png and /dev/null differ
index 3869c9b53013a96e23633d5a829c34f79c1583e4..a03435346a7d380a399efd4b404f693039edf1cb 100644 (file)
@@ -2,9 +2,11 @@ Handicap is used to make the game even for players with different skill levels.
 
 There are 2 types of handicap: voluntary and forced. Voluntary handicap can be set by client via `cl_handicap` variable.
 ```
-cl_handicap 1
-sendcvar cl_handicap 1
+cl_handicap 2
 ```
+
+Since Xonotic 0.8.5 the additional command `sendcvar cl_handicap 2` is no longer needed, as the new value is automatically sent to the server when the cvar value changes.
+
 For obvious reasons, you can't set it to be less than 1.
 
 Forced handicap can be set by the server and can be less than 1. For example, by [dynamic handicap](dynamic-handicap) mutator.
\ No newline at end of file
diff --git a/mapping-MapPicture.md b/mapping-MapPicture.md
new file mode 100644 (file)
index 0000000..540e915
--- /dev/null
@@ -0,0 +1,25 @@
+Mapping - Map Picture
+=====================
+
+Make your map sexy !  
+Your map should include a preview picture. This picture will be visible from the game menu and from the servers vote screen.
+
+In order to do so:
+*  Load your map in the game and stay observer
+*  Use the command `r_letterbox -1` in the console to turn off the HUD (not `r_letterbox 1` as it'd add top and bottom borders)
+*  If your map has "waypoint" entities (like CTF or CTS maps), you can hide them with `cl_hidewaypoints 1`
+* You may also want to hide powerups with `g_powerups 0`, as well as weapons, health and armor items with `g_pickup_items 0`. You'll need to reload the map with `restart` for these settings to take effect.
+*  Turn off jpeg compression with `scr_screenshot_jpeg 0` to avoid a double lossy compression (you'll have to compress it to jpg later)
+*  Take a nice screenshot with F12
+*  Go to your Xonotic user directory, on the `data/screenshot` subdirectory. Your user directory location depends on your operating system, more information [here](https://xonotic.org/faq/#config).
+*  Open the generated .tga screenshot with an image editor, e.g. GIMP
+*  Crop it so that it has a 4:3 ratio, e.g. if resolution is 1366x768 then crop it to 1024x768
+*  Scale it to 512x512 px (the resulting image should appear vertically stretched)
+*  Save it (export in Gimp) as a JPG file (~90% quality); other formats like tga and png aren't acceptable because they generally produce much bigger files
+*  Put it in the same location as the bsp file, with the same name (see next chapter for packaging rules).
+
+Original source of information: https://forums.xonotic.org/showthread.php?tid=6067&pid=75757#pid75757
+
+\<\< [First map](mapping-FirstMap) | [Packaging and releasing](mapping-packaging) \>\>
+
+… [Creating_Maps](Creating-Maps) …
\ No newline at end of file
diff --git a/modeldecompile-tool.md b/modeldecompile-tool.md
new file mode 100644 (file)
index 0000000..76e90d5
--- /dev/null
@@ -0,0 +1,56 @@
+`modeldecompile` is a powerful command that decompiles any model format (DPM, MDL, IQM, MD3, BSP, etc...) to OBJ. It's available in any Darkplaces game including Xonotic and can decompile any model (weapon, player or any object/entity) present in the game filesystem (in the game installation directory and in the `data` directory inside [your user directory](http://www.xonotic.org/faq/#config).
+
+Usage example: `modeldecompile models/weapons/v_crylink.md3`
+
+It decompiles the mesh and the animations of a model in one action (the animations aren't distributed per actions).
+
+An example of a .framegroups file from a player model (`okrobot1.dpm.framegroups`):
+
+```
+1 41 30 0 // okrobot1 die1
+67 56 30 0 // okrobot1 die2
+133 11 15 1 // okrobot1 draw
+144 6 10 1 // okrobot1 duck
+150 17 15 1 // okrobot1 duckwalk
+167 31 40 0 // okrobot1 duckjump
+198 1 10 1 // okrobot1 duckidle
+199 101 15 1 // okrobot1 idle
+300 17 20 1 // okrobot1 jump
+317 6 10 0 // okrobot1 pain1
+323 6 10 0 // okrobot1 pain2
+329 6 30 0 // okrobot1 shoot
+335 17 15 1 // okrobot1 taunt
+352 17 30 1 // okrobot1 run
+369 17 30 1 // okrobot1 runbackwards
+386 17 30 1 // okrobot1 strafeleft
+403 17 30 1 // okrobot1 straferight
+41 1 10 0 // okrobot4 dead1
+122 1 10 0 // okrobot4 dead2
+424 17 30 1 // okrobot1 forwardright
+441 17 30 1 // okrobot1 forwardleft
+458 17 30 1 // okrobot1 backright
+475 17 30 1 // okrobot1 backleft
+492 21 15 1 // okrobot1 melee
+```
+
+The hacky way to obtain all animations of a model is setting the last keyframe in an exaggerated value (don't care if the fps have that value or aren't loopable) of the .framegroups file, the file must contain ONLY **one line**:
+
+```
+1 9999 30 0 // LegendGuard's legendary method
+```
+
+What that legendary method does is setting the initial keyframe to `1` and `9999` the last keyframe, we can know `9999` doesn't exist but reaches into a limit. (ignore `30` (means fps) and `0` (means nonloop, if `1` means loopable)).
+In the game, execute `modeldecompile any_model.dpm` (any_model.iqm, any_model.md3, any_model.mdl, ...).
+
+<img src="uploads/6140abcafb7b60cb154b43ce5e835105/image.png" alt="model_decompile_okrobot1_xon" width=760 />
+<br/>
+
+After that, go to the data directory where the files were decompiled.
+Use the SMD files to import into [Blender](https://www.blender.org/) using [Blender Source Tools](http://steamreview.org/BlenderSourceTools/) addon.
+
+First, import the mesh (`ref1.smd`) with the Bone Append Mode set to "Make New Armature" and "Import Animations" option disabled. <br/>
+After, select the armature of the imported model (orange highlighted) and import other SMD file (`groupified_0_anim.smd`), before that, set the Bone Append Mode to "Validate Against Target" and enable "Import Animations" option. The animations in one action are applied to the armature.
+
+Result (video): https://streamable.com/1egthv 
+
+The actions can be created with the imported one to separate the keyframes of every animation.
\ No newline at end of file
diff --git a/uploads/00874f6434cec98f1da6d951b9987399/zzz-bai-quickmenu-v2.pk3 b/uploads/00874f6434cec98f1da6d951b9987399/zzz-bai-quickmenu-v2.pk3
new file mode 100644 (file)
index 0000000..1bd63af
Binary files /dev/null and b/uploads/00874f6434cec98f1da6d951b9987399/zzz-bai-quickmenu-v2.pk3 differ
diff --git a/uploads/00fe4f08ebbb70f7ec3a0c9d4324d61b/enforcer.jpg b/uploads/00fe4f08ebbb70f7ec3a0c9d4324d61b/enforcer.jpg
new file mode 100644 (file)
index 0000000..0461415
Binary files /dev/null and b/uploads/00fe4f08ebbb70f7ec3a0c9d4324d61b/enforcer.jpg differ
diff --git a/uploads/01d68ab92d511e0a8ee5c0e0905609ab/entrap.png b/uploads/01d68ab92d511e0a8ee5c0e0905609ab/entrap.png
new file mode 100644 (file)
index 0000000..b37d32f
Binary files /dev/null and b/uploads/01d68ab92d511e0a8ee5c0e0905609ab/entrap.png differ
diff --git a/uploads/05a2c41d47a8767fe2f2e23943a8c210/detectiveUsingShockwave.jpg b/uploads/05a2c41d47a8767fe2f2e23943a8c210/detectiveUsingShockwave.jpg
new file mode 100644 (file)
index 0000000..28209c6
Binary files /dev/null and b/uploads/05a2c41d47a8767fe2f2e23943a8c210/detectiveUsingShockwave.jpg differ
diff --git a/uploads/065948db90af125a0371938ab469713f/rotfish.png b/uploads/065948db90af125a0371938ab469713f/rotfish.png
new file mode 100644 (file)
index 0000000..e9e649e
Binary files /dev/null and b/uploads/065948db90af125a0371938ab469713f/rotfish.png differ
diff --git a/uploads/07e424e85718e7f40cf524183384b0e6/napalmboom.jpg b/uploads/07e424e85718e7f40cf524183384b0e6/napalmboom.jpg
new file mode 100644 (file)
index 0000000..78f1f00
Binary files /dev/null and b/uploads/07e424e85718e7f40cf524183384b0e6/napalmboom.jpg differ
diff --git a/uploads/098c35c194b1a2e12857eade57a0ad03/karmaScore.jpg b/uploads/098c35c194b1a2e12857eade57a0ad03/karmaScore.jpg
new file mode 100644 (file)
index 0000000..4fb663a
Binary files /dev/null and b/uploads/098c35c194b1a2e12857eade57a0ad03/karmaScore.jpg differ
diff --git a/uploads/0a0cc65abe94db11d3a463f13ea01e53/shambler.jpg b/uploads/0a0cc65abe94db11d3a463f13ea01e53/shambler.jpg
new file mode 100644 (file)
index 0000000..7eef90e
Binary files /dev/null and b/uploads/0a0cc65abe94db11d3a463f13ea01e53/shambler.jpg differ
diff --git a/uploads/0c1313aad39b94f00db093f54d379c1c/xonotic20230616230630-00.jpg b/uploads/0c1313aad39b94f00db093f54d379c1c/xonotic20230616230630-00.jpg
new file mode 100644 (file)
index 0000000..cf5bb5e
Binary files /dev/null and b/uploads/0c1313aad39b94f00db093f54d379c1c/xonotic20230616230630-00.jpg differ
diff --git a/uploads/0f9c790bf32b98628b7eaf439cd72bc7/zzz-bai-jokes-v19.pk3 b/uploads/0f9c790bf32b98628b7eaf439cd72bc7/zzz-bai-jokes-v19.pk3
new file mode 100644 (file)
index 0000000..1329dcf
Binary files /dev/null and b/uploads/0f9c790bf32b98628b7eaf439cd72bc7/zzz-bai-jokes-v19.pk3 differ
diff --git a/uploads/0fcb08f67791913d31dbaa89f6f4abf7/csprogs-xonotic-v0.8.2-2564-g68e9345d4.pk3 b/uploads/0fcb08f67791913d31dbaa89f6f4abf7/csprogs-xonotic-v0.8.2-2564-g68e9345d4.pk3
new file mode 100644 (file)
index 0000000..20e848f
Binary files /dev/null and b/uploads/0fcb08f67791913d31dbaa89f6f4abf7/csprogs-xonotic-v0.8.2-2564-g68e9345d4.pk3 differ
diff --git a/uploads/10a03f55b5aed6a2fcfe68a8d8b7023f/2019.07.11-9_08_minectf__ttt__show_result_.dem b/uploads/10a03f55b5aed6a2fcfe68a8d8b7023f/2019.07.11-9_08_minectf__ttt__show_result_.dem
new file mode 100644 (file)
index 0000000..683045b
Binary files /dev/null and b/uploads/10a03f55b5aed6a2fcfe68a8d8b7023f/2019.07.11-9_08_minectf__ttt__show_result_.dem differ
diff --git a/uploads/1249c46f461a504ce7e9d3d07d6fc35b/enforcer.jpg b/uploads/1249c46f461a504ce7e9d3d07d6fc35b/enforcer.jpg
new file mode 100644 (file)
index 0000000..0461415
Binary files /dev/null and b/uploads/1249c46f461a504ce7e9d3d07d6fc35b/enforcer.jpg differ
diff --git a/uploads/1487c855c09637affb13c6cfeaaae994/translocateboom.jpg b/uploads/1487c855c09637affb13c6cfeaaae994/translocateboom.jpg
new file mode 100644 (file)
index 0000000..f539a60
Binary files /dev/null and b/uploads/1487c855c09637affb13c6cfeaaae994/translocateboom.jpg differ
diff --git a/uploads/1576c847ebb254534127bd89cc28e504/Vehicle-r22helicopter.jpg b/uploads/1576c847ebb254534127bd89cc28e504/Vehicle-r22helicopter.jpg
new file mode 100644 (file)
index 0000000..ff54603
Binary files /dev/null and b/uploads/1576c847ebb254534127bd89cc28e504/Vehicle-r22helicopter.jpg differ
diff --git a/uploads/15add5938094995589a7d569e9195f24/entrap.jpg b/uploads/15add5938094995589a7d569e9195f24/entrap.jpg
new file mode 100644 (file)
index 0000000..e85ad0a
Binary files /dev/null and b/uploads/15add5938094995589a7d569e9195f24/entrap.jpg differ
diff --git a/uploads/167212cbdeca5b838efdcbc0757259d8/soldier.jpg b/uploads/167212cbdeca5b838efdcbc0757259d8/soldier.jpg
new file mode 100644 (file)
index 0000000..52aaf9b
Binary files /dev/null and b/uploads/167212cbdeca5b838efdcbc0757259d8/soldier.jpg differ
diff --git a/uploads/19d0104a69a9bf92aa0b65c111ab0488/attackername.jpg b/uploads/19d0104a69a9bf92aa0b65c111ab0488/attackername.jpg
new file mode 100644 (file)
index 0000000..6e69ea7
Binary files /dev/null and b/uploads/19d0104a69a9bf92aa0b65c111ab0488/attackername.jpg differ
diff --git a/uploads/1b9a2ab2a1f5a3138b45d12830910c02/normalboom.png b/uploads/1b9a2ab2a1f5a3138b45d12830910c02/normalboom.png
new file mode 100644 (file)
index 0000000..07a10df
Binary files /dev/null and b/uploads/1b9a2ab2a1f5a3138b45d12830910c02/normalboom.png differ
diff --git a/uploads/1cce121f7a6431f0ff7f0452eff92801/Screenshot_20191005_164237.png b/uploads/1cce121f7a6431f0ff7f0452eff92801/Screenshot_20191005_164237.png
new file mode 100644 (file)
index 0000000..b3457af
Binary files /dev/null and b/uploads/1cce121f7a6431f0ff7f0452eff92801/Screenshot_20191005_164237.png differ
diff --git a/uploads/1f2be87e309d9afe5e9ea75f79dee8bf/zombie2.jpg b/uploads/1f2be87e309d9afe5e9ea75f79dee8bf/zombie2.jpg
new file mode 100644 (file)
index 0000000..8950742
Binary files /dev/null and b/uploads/1f2be87e309d9afe5e9ea75f79dee8bf/zombie2.jpg differ
diff --git a/uploads/1f769ede89975be78d88eaad1b062a3d/spammingerrorstagweapon.jpg b/uploads/1f769ede89975be78d88eaad1b062a3d/spammingerrorstagweapon.jpg
new file mode 100644 (file)
index 0000000..0cdb461
Binary files /dev/null and b/uploads/1f769ede89975be78d88eaad1b062a3d/spammingerrorstagweapon.jpg differ
diff --git a/uploads/1f7cdac999e2efd1c5083a387b307670/medals1.jpg b/uploads/1f7cdac999e2efd1c5083a387b307670/medals1.jpg
new file mode 100644 (file)
index 0000000..d1db1b7
Binary files /dev/null and b/uploads/1f7cdac999e2efd1c5083a387b307670/medals1.jpg differ
diff --git a/uploads/22b3273ceedc7cbf526f7b7e8a719828/healing.jpg b/uploads/22b3273ceedc7cbf526f7b7e8a719828/healing.jpg
new file mode 100644 (file)
index 0000000..7603ab0
Binary files /dev/null and b/uploads/22b3273ceedc7cbf526f7b7e8a719828/healing.jpg differ
diff --git a/uploads/247dc57e177a7d08c2b7ce7e42cd3995/zzz-bai-sounds-v11.pk3 b/uploads/247dc57e177a7d08c2b7ce7e42cd3995/zzz-bai-sounds-v11.pk3
new file mode 100644 (file)
index 0000000..ae84c6d
Binary files /dev/null and b/uploads/247dc57e177a7d08c2b7ce7e42cd3995/zzz-bai-sounds-v11.pk3 differ
diff --git a/uploads/24d3a6caec031b68d70856f62982d96c/gameplayCivilian.jpg b/uploads/24d3a6caec031b68d70856f62982d96c/gameplayCivilian.jpg
new file mode 100644 (file)
index 0000000..e9726be
Binary files /dev/null and b/uploads/24d3a6caec031b68d70856f62982d96c/gameplayCivilian.jpg differ
diff --git a/uploads/2698f60364ce425dd295fb2462cb682a/mage.png b/uploads/2698f60364ce425dd295fb2462cb682a/mage.png
new file mode 100644 (file)
index 0000000..89384e5
Binary files /dev/null and b/uploads/2698f60364ce425dd295fb2462cb682a/mage.png differ
diff --git a/uploads/28ea75bd7555021facaf3c93d57cbded/Vehicle-lightapc-cockpit.jpg b/uploads/28ea75bd7555021facaf3c93d57cbded/Vehicle-lightapc-cockpit.jpg
new file mode 100644 (file)
index 0000000..2a2d67c
Binary files /dev/null and b/uploads/28ea75bd7555021facaf3c93d57cbded/Vehicle-lightapc-cockpit.jpg differ
diff --git a/uploads/2b7164ea021914d842f1f4022cc614c3/team_sb2.jpg b/uploads/2b7164ea021914d842f1f4022cc614c3/team_sb2.jpg
new file mode 100644 (file)
index 0000000..89312bb
Binary files /dev/null and b/uploads/2b7164ea021914d842f1f4022cc614c3/team_sb2.jpg differ
diff --git a/uploads/2bad28f70051aede20cb7c3b6cea30c8/Vehicle-ll48tank.png b/uploads/2bad28f70051aede20cb7c3b6cea30c8/Vehicle-ll48tank.png
new file mode 100644 (file)
index 0000000..3e14c3f
Binary files /dev/null and b/uploads/2bad28f70051aede20cb7c3b6cea30c8/Vehicle-ll48tank.png differ
diff --git a/uploads/2c929b6993d5e370c1d5498a03cb4ba8/blenderSMDexport4.jpg b/uploads/2c929b6993d5e370c1d5498a03cb4ba8/blenderSMDexport4.jpg
new file mode 100644 (file)
index 0000000..d345a67
Binary files /dev/null and b/uploads/2c929b6993d5e370c1d5498a03cb4ba8/blenderSMDexport4.jpg differ
diff --git a/uploads/2dc395d83ac793aa20f502a1bfd5bb12/SpectatorHUD.jpg b/uploads/2dc395d83ac793aa20f502a1bfd5bb12/SpectatorHUD.jpg
new file mode 100644 (file)
index 0000000..1b033c1
Binary files /dev/null and b/uploads/2dc395d83ac793aa20f502a1bfd5bb12/SpectatorHUD.jpg differ
diff --git a/uploads/2dd93a2f8ce7b22400c32535c9fad392/prydon_mod_sample.jpg b/uploads/2dd93a2f8ce7b22400c32535c9fad392/prydon_mod_sample.jpg
new file mode 100644 (file)
index 0000000..d0f69a6
Binary files /dev/null and b/uploads/2dd93a2f8ce7b22400c32535c9fad392/prydon_mod_sample.jpg differ
diff --git a/uploads/2fb59cdef8d1717526d86515f8138acc/attackername.jpg b/uploads/2fb59cdef8d1717526d86515f8138acc/attackername.jpg
new file mode 100644 (file)
index 0000000..6e69ea7
Binary files /dev/null and b/uploads/2fb59cdef8d1717526d86515f8138acc/attackername.jpg differ
diff --git a/uploads/3042d31bb8a054ea7e177f6110570fb7/spawnnade.png b/uploads/3042d31bb8a054ea7e177f6110570fb7/spawnnade.png
new file mode 100644 (file)
index 0000000..575b2f6
Binary files /dev/null and b/uploads/3042d31bb8a054ea7e177f6110570fb7/spawnnade.png differ
diff --git a/uploads/335d584ff23ed34cc3a7a68683ae198c/chat1.jpg b/uploads/335d584ff23ed34cc3a7a68683ae198c/chat1.jpg
new file mode 100644 (file)
index 0000000..b34eadb
Binary files /dev/null and b/uploads/335d584ff23ed34cc3a7a68683ae198c/chat1.jpg differ
diff --git a/uploads/33a69c4499702fbf8592766ebae04c34/suwa_moriya_64_mod_sample.jpg b/uploads/33a69c4499702fbf8592766ebae04c34/suwa_moriya_64_mod_sample.jpg
new file mode 100644 (file)
index 0000000..e4a4a6b
Binary files /dev/null and b/uploads/33a69c4499702fbf8592766ebae04c34/suwa_moriya_64_mod_sample.jpg differ
diff --git a/uploads/3472a53956c46725e1190936d916abcd/xonotic20230616230550-00.jpg b/uploads/3472a53956c46725e1190936d916abcd/xonotic20230616230550-00.jpg
new file mode 100644 (file)
index 0000000..ff8dfe2
Binary files /dev/null and b/uploads/3472a53956c46725e1190936d916abcd/xonotic20230616230550-00.jpg differ
diff --git a/uploads/36275ed8dd703a58de9cb82e49919bb4/xonotic20230616230857-00.jpg b/uploads/36275ed8dd703a58de9cb82e49919bb4/xonotic20230616230857-00.jpg
new file mode 100644 (file)
index 0000000..9bf1bad
Binary files /dev/null and b/uploads/36275ed8dd703a58de9cb82e49919bb4/xonotic20230616230857-00.jpg differ
diff --git a/uploads/3775545047aa58d6e4fcb37df4f500a1/blenderSMDexport1.jpg b/uploads/3775545047aa58d6e4fcb37df4f500a1/blenderSMDexport1.jpg
new file mode 100644 (file)
index 0000000..7a838d7
Binary files /dev/null and b/uploads/3775545047aa58d6e4fcb37df4f500a1/blenderSMDexport1.jpg differ
diff --git a/uploads/37a186e2bba7428e12d3f43a9f54971a/health_small.png b/uploads/37a186e2bba7428e12d3f43a9f54971a/health_small.png
new file mode 100644 (file)
index 0000000..76256df
Binary files /dev/null and b/uploads/37a186e2bba7428e12d3f43a9f54971a/health_small.png differ
diff --git a/uploads/37bb634467e5ee1a025022cc2e53e652/Screenshot_20191005_164237.png b/uploads/37bb634467e5ee1a025022cc2e53e652/Screenshot_20191005_164237.png
new file mode 100644 (file)
index 0000000..b3457af
Binary files /dev/null and b/uploads/37bb634467e5ee1a025022cc2e53e652/Screenshot_20191005_164237.png differ
diff --git a/uploads/3a0322703abb471d604d3b65b778bd53/monsternade.jpg b/uploads/3a0322703abb471d604d3b65b778bd53/monsternade.jpg
new file mode 100644 (file)
index 0000000..eb1badc
Binary files /dev/null and b/uploads/3a0322703abb471d604d3b65b778bd53/monsternade.jpg differ
diff --git a/uploads/3b589d72556bff2e9426025e5550c2ea/minectf_fsmp1.zip b/uploads/3b589d72556bff2e9426025e5550c2ea/minectf_fsmp1.zip
new file mode 100644 (file)
index 0000000..26da4ca
Binary files /dev/null and b/uploads/3b589d72556bff2e9426025e5550c2ea/minectf_fsmp1.zip differ
diff --git a/uploads/3d3d116722312d471408c7d178595e6d/items.jpg b/uploads/3d3d116722312d471408c7d178595e6d/items.jpg
new file mode 100644 (file)
index 0000000..287a2f6
Binary files /dev/null and b/uploads/3d3d116722312d471408c7d178595e6d/items.jpg differ
diff --git a/uploads/400f17cde6ff8a2fb43bb2efffd1384f/timer2.jpg b/uploads/400f17cde6ff8a2fb43bb2efffd1384f/timer2.jpg
new file mode 100644 (file)
index 0000000..d17b8fb
Binary files /dev/null and b/uploads/400f17cde6ff8a2fb43bb2efffd1384f/timer2.jpg differ
diff --git a/uploads/40d56cf47c83b50e18b4d5e56eece21a/fsmp-teamplay-hats-1.1.0.pk3 b/uploads/40d56cf47c83b50e18b4d5e56eece21a/fsmp-teamplay-hats-1.1.0.pk3
new file mode 100644 (file)
index 0000000..b3b6a8d
Binary files /dev/null and b/uploads/40d56cf47c83b50e18b4d5e56eece21a/fsmp-teamplay-hats-1.1.0.pk3 differ
diff --git a/uploads/440eb38e781b4bb26f3679102b69b185/iconTTTgamemode.png b/uploads/440eb38e781b4bb26f3679102b69b185/iconTTTgamemode.png
new file mode 100644 (file)
index 0000000..29b055c
Binary files /dev/null and b/uploads/440eb38e781b4bb26f3679102b69b185/iconTTTgamemode.png differ
diff --git a/uploads/447f6abe0f73c6d6cadce97e4ed66e8b/blendermodifiersiqmandmd3.jpg b/uploads/447f6abe0f73c6d6cadce97e4ed66e8b/blendermodifiersiqmandmd3.jpg
new file mode 100644 (file)
index 0000000..9a289bd
Binary files /dev/null and b/uploads/447f6abe0f73c6d6cadce97e4ed66e8b/blendermodifiersiqmandmd3.jpg differ
diff --git a/uploads/44db8ef2cb4c89e2442e9b97854eb474/vore.jpg b/uploads/44db8ef2cb4c89e2442e9b97854eb474/vore.jpg
new file mode 100644 (file)
index 0000000..d797d29
Binary files /dev/null and b/uploads/44db8ef2cb4c89e2442e9b97854eb474/vore.jpg differ
diff --git a/uploads/46162b4daff7255e5eab7637665426a4/detectiveUsingShockwaveSlime.jpg b/uploads/46162b4daff7255e5eab7637665426a4/detectiveUsingShockwaveSlime.jpg
new file mode 100644 (file)
index 0000000..ee36b5e
Binary files /dev/null and b/uploads/46162b4daff7255e5eab7637665426a4/detectiveUsingShockwaveSlime.jpg differ
diff --git a/uploads/46eaf8713d4ad22caec4028948a815a0/armor_medium.png b/uploads/46eaf8713d4ad22caec4028948a815a0/armor_medium.png
new file mode 100644 (file)
index 0000000..de974c5
Binary files /dev/null and b/uploads/46eaf8713d4ad22caec4028948a815a0/armor_medium.png differ
diff --git a/uploads/4790da4757c57d879be55493c95b6857/nitroboom.jpg b/uploads/4790da4757c57d879be55493c95b6857/nitroboom.jpg
new file mode 100644 (file)
index 0000000..5fcecb7
Binary files /dev/null and b/uploads/4790da4757c57d879be55493c95b6857/nitroboom.jpg differ
diff --git a/uploads/4846409eef51aa79ba47169c666fd8d1/xonotic20230616230550-00.jpg b/uploads/4846409eef51aa79ba47169c666fd8d1/xonotic20230616230550-00.jpg
new file mode 100644 (file)
index 0000000..d395aee
Binary files /dev/null and b/uploads/4846409eef51aa79ba47169c666fd8d1/xonotic20230616230550-00.jpg differ
diff --git a/uploads/48f09eb2f3608e502ad88c348a4b4473/creeper.jpg b/uploads/48f09eb2f3608e502ad88c348a4b4473/creeper.jpg
new file mode 100644 (file)
index 0000000..e7529f3
Binary files /dev/null and b/uploads/48f09eb2f3608e502ad88c348a4b4473/creeper.jpg differ
diff --git a/uploads/49d1fa684ecd673367b4f3294195a37f/normal.png b/uploads/49d1fa684ecd673367b4f3294195a37f/normal.png
new file mode 100644 (file)
index 0000000..d7c5ca6
Binary files /dev/null and b/uploads/49d1fa684ecd673367b4f3294195a37f/normal.png differ
diff --git a/uploads/49f7b185c41d545a8736999a55a9a3da/mage.jpg b/uploads/49f7b185c41d545a8736999a55a9a3da/mage.jpg
new file mode 100644 (file)
index 0000000..4dd3849
Binary files /dev/null and b/uploads/49f7b185c41d545a8736999a55a9a3da/mage.jpg differ
diff --git a/uploads/4b0977974e9cd4db5f2e53b6e6a82e66/gametype_mmmluminos.png b/uploads/4b0977974e9cd4db5f2e53b6e6a82e66/gametype_mmmluminos.png
new file mode 100644 (file)
index 0000000..d9ad5dd
Binary files /dev/null and b/uploads/4b0977974e9cd4db5f2e53b6e6a82e66/gametype_mmmluminos.png differ
diff --git a/uploads/4d0ceb0f572aaf5ae3ecc9b1d56387da/soldier.png b/uploads/4d0ceb0f572aaf5ae3ecc9b1d56387da/soldier.png
new file mode 100644 (file)
index 0000000..267c760
Binary files /dev/null and b/uploads/4d0ceb0f572aaf5ae3ecc9b1d56387da/soldier.png differ
diff --git a/uploads/4d83e3253563e6fde2c17be1c7ff4e3d/xonotic20230616230630-00.jpg b/uploads/4d83e3253563e6fde2c17be1c7ff4e3d/xonotic20230616230630-00.jpg
new file mode 100644 (file)
index 0000000..dbf2045
Binary files /dev/null and b/uploads/4d83e3253563e6fde2c17be1c7ff4e3d/xonotic20230616230630-00.jpg differ
diff --git a/uploads/4fa75dca8ebb724b89d5fd5513fd2787/exportiqmiqeblenderdetails.jpg b/uploads/4fa75dca8ebb724b89d5fd5513fd2787/exportiqmiqeblenderdetails.jpg
new file mode 100644 (file)
index 0000000..42f38a9
Binary files /dev/null and b/uploads/4fa75dca8ebb724b89d5fd5513fd2787/exportiqmiqeblenderdetails.jpg differ
diff --git a/uploads/4fd1b9f684461c71bc412f9db18cddc2/armor_small.png b/uploads/4fd1b9f684461c71bc412f9db18cddc2/armor_small.png
new file mode 100644 (file)
index 0000000..18b0edd
Binary files /dev/null and b/uploads/4fd1b9f684461c71bc412f9db18cddc2/armor_small.png differ
diff --git a/uploads/508f6b1a832daa7c16b0e3296e08e5c0/zzz-bai-jokes-v18.pk3 b/uploads/508f6b1a832daa7c16b0e3296e08e5c0/zzz-bai-jokes-v18.pk3
new file mode 100644 (file)
index 0000000..52a0949
Binary files /dev/null and b/uploads/508f6b1a832daa7c16b0e3296e08e5c0/zzz-bai-jokes-v18.pk3 differ
diff --git a/uploads/56b672332778d67b7c359b611d54c06f/demon.jpg b/uploads/56b672332778d67b7c359b611d54c06f/demon.jpg
new file mode 100644 (file)
index 0000000..1dd850d
Binary files /dev/null and b/uploads/56b672332778d67b7c359b611d54c06f/demon.jpg differ
diff --git a/uploads/57bf95ee9075a32117999d7348cd4e8d/ogre.jpg b/uploads/57bf95ee9075a32117999d7348cd4e8d/ogre.jpg
new file mode 100644 (file)
index 0000000..0fa9283
Binary files /dev/null and b/uploads/57bf95ee9075a32117999d7348cd4e8d/ogre.jpg differ
diff --git a/uploads/58cca074777c04803b43075d87b1589d/demon.png b/uploads/58cca074777c04803b43075d87b1589d/demon.png
new file mode 100644 (file)
index 0000000..4e5ae40
Binary files /dev/null and b/uploads/58cca074777c04803b43075d87b1589d/demon.png differ
diff --git a/uploads/5953f5fd352f33e8d915350f16fbbe3c/whenFinishedmakes_public_everyone_whotheyare.jpg b/uploads/5953f5fd352f33e8d915350f16fbbe3c/whenFinishedmakes_public_everyone_whotheyare.jpg
new file mode 100644 (file)
index 0000000..1de1a1e
Binary files /dev/null and b/uploads/5953f5fd352f33e8d915350f16fbbe3c/whenFinishedmakes_public_everyone_whotheyare.jpg differ
diff --git a/uploads/5b6fb4928acca2a57cba1988b716fed0/zzz-bai-gfx-v10.pk3 b/uploads/5b6fb4928acca2a57cba1988b716fed0/zzz-bai-gfx-v10.pk3
new file mode 100644 (file)
index 0000000..9f4a4b6
Binary files /dev/null and b/uploads/5b6fb4928acca2a57cba1988b716fed0/zzz-bai-gfx-v10.pk3 differ
diff --git a/uploads/5d31e87dd1da89af57d0be70103b7ce8/Vehicle-lightapc-thirdperson-view.png b/uploads/5d31e87dd1da89af57d0be70103b7ce8/Vehicle-lightapc-thirdperson-view.png
new file mode 100644 (file)
index 0000000..2523c7d
Binary files /dev/null and b/uploads/5d31e87dd1da89af57d0be70103b7ce8/Vehicle-lightapc-thirdperson-view.png differ
diff --git a/uploads/5ddae1fd58f18d61e3c88705cd04b0e7/rottweiler.jpg b/uploads/5ddae1fd58f18d61e3c88705cd04b0e7/rottweiler.jpg
new file mode 100644 (file)
index 0000000..f9a9588
Binary files /dev/null and b/uploads/5ddae1fd58f18d61e3c88705cd04b0e7/rottweiler.jpg differ
diff --git a/uploads/5df5aca2975cb939a9f091574ea12d6f/healingboom.png b/uploads/5df5aca2975cb939a9f091574ea12d6f/healingboom.png
new file mode 100644 (file)
index 0000000..ab8af9c
Binary files /dev/null and b/uploads/5df5aca2975cb939a9f091574ea12d6f/healingboom.png differ
diff --git a/uploads/5e67f7c446756d56d7fef54c7bd4d418/iconTroubleinTerroristTown.png b/uploads/5e67f7c446756d56d7fef54c7bd4d418/iconTroubleinTerroristTown.png
new file mode 100644 (file)
index 0000000..0802ae9
Binary files /dev/null and b/uploads/5e67f7c446756d56d7fef54c7bd4d418/iconTroubleinTerroristTown.png differ
diff --git a/uploads/5ee301512f68a165fdec5bf16f14fbd9/Vehicle-r22helicopter-cockpit.png b/uploads/5ee301512f68a165fdec5bf16f14fbd9/Vehicle-r22helicopter-cockpit.png
new file mode 100644 (file)
index 0000000..b27b2c8
Binary files /dev/null and b/uploads/5ee301512f68a165fdec5bf16f14fbd9/Vehicle-r22helicopter-cockpit.png differ
diff --git a/uploads/60156ec99cc8e3514341fb69373e4680/Vehicle-ll48tank-thirdperson-view.jpg b/uploads/60156ec99cc8e3514341fb69373e4680/Vehicle-ll48tank-thirdperson-view.jpg
new file mode 100644 (file)
index 0000000..32c54c1
Binary files /dev/null and b/uploads/60156ec99cc8e3514341fb69373e4680/Vehicle-ll48tank-thirdperson-view.jpg differ
diff --git a/uploads/606e3175f20a9274b9c651f5b8fea151/healingboom.jpg b/uploads/606e3175f20a9274b9c651f5b8fea151/healingboom.jpg
new file mode 100644 (file)
index 0000000..441f7b4
Binary files /dev/null and b/uploads/606e3175f20a9274b9c651f5b8fea151/healingboom.jpg differ
diff --git a/uploads/60ed6217d9608f9260e2306a039a5402/xonotic20230616230906-00.jpg b/uploads/60ed6217d9608f9260e2306a039a5402/xonotic20230616230906-00.jpg
new file mode 100644 (file)
index 0000000..d7633b3
Binary files /dev/null and b/uploads/60ed6217d9608f9260e2306a039a5402/xonotic20230616230906-00.jpg differ
diff --git a/uploads/6140abcafb7b60cb154b43ce5e835105/image.png b/uploads/6140abcafb7b60cb154b43ce5e835105/image.png
new file mode 100644 (file)
index 0000000..d67ff07
Binary files /dev/null and b/uploads/6140abcafb7b60cb154b43ce5e835105/image.png differ
diff --git a/uploads/624609a067a037559c2d3033df1618d7/wyvern.png b/uploads/624609a067a037559c2d3033df1618d7/wyvern.png
new file mode 100644 (file)
index 0000000..f16c860
Binary files /dev/null and b/uploads/624609a067a037559c2d3033df1618d7/wyvern.png differ
diff --git a/uploads/6441f147f90aba34812ebc3cb733caa7/monsternadeboom.png b/uploads/6441f147f90aba34812ebc3cb733caa7/monsternadeboom.png
new file mode 100644 (file)
index 0000000..d5cd336
Binary files /dev/null and b/uploads/6441f147f90aba34812ebc3cb733caa7/monsternadeboom.png differ
diff --git a/uploads/64c214772da84aceb4d5f56184606d3a/teams2.jpg b/uploads/64c214772da84aceb4d5f56184606d3a/teams2.jpg
new file mode 100644 (file)
index 0000000..957c8bc
Binary files /dev/null and b/uploads/64c214772da84aceb4d5f56184606d3a/teams2.jpg differ
diff --git a/uploads/655f8b85825c0c6f4c092e898e2bb061/chat2.jpg b/uploads/655f8b85825c0c6f4c092e898e2bb061/chat2.jpg
new file mode 100644 (file)
index 0000000..77c08a6
Binary files /dev/null and b/uploads/655f8b85825c0c6f4c092e898e2bb061/chat2.jpg differ
diff --git a/uploads/6853c4cc8c82b8564ff1b94c89b224be/scrag.png b/uploads/6853c4cc8c82b8564ff1b94c89b224be/scrag.png
new file mode 100644 (file)
index 0000000..3acbbbb
Binary files /dev/null and b/uploads/6853c4cc8c82b8564ff1b94c89b224be/scrag.png differ
diff --git a/uploads/68fc3a8a5ecad8d4a6bfa6e62b8f4a83/zzz-bai-gfx-v7.pk3 b/uploads/68fc3a8a5ecad8d4a6bfa6e62b8f4a83/zzz-bai-gfx-v7.pk3
new file mode 100644 (file)
index 0000000..a14eec2
Binary files /dev/null and b/uploads/68fc3a8a5ecad8d4a6bfa6e62b8f4a83/zzz-bai-gfx-v7.pk3 differ
diff --git a/uploads/6cdb741c94684e2633821c7540269186/iconTTTgamemode.png b/uploads/6cdb741c94684e2633821c7540269186/iconTTTgamemode.png
new file mode 100644 (file)
index 0000000..3c4f4f9
Binary files /dev/null and b/uploads/6cdb741c94684e2633821c7540269186/iconTTTgamemode.png differ
diff --git a/uploads/6dba374fe3ca986cdc8551335bedc222/title1.jpg b/uploads/6dba374fe3ca986cdc8551335bedc222/title1.jpg
new file mode 100644 (file)
index 0000000..e5fe8e5
Binary files /dev/null and b/uploads/6dba374fe3ca986cdc8551335bedc222/title1.jpg differ
diff --git a/uploads/751564673b6ea39fadf17fb217579230/xonotic20230616230906-00.jpg b/uploads/751564673b6ea39fadf17fb217579230/xonotic20230616230906-00.jpg
new file mode 100644 (file)
index 0000000..00002cf
Binary files /dev/null and b/uploads/751564673b6ea39fadf17fb217579230/xonotic20230616230906-00.jpg differ
diff --git a/uploads/7599a92aad08c45284b84e18c6bbfa5c/zombie.png b/uploads/7599a92aad08c45284b84e18c6bbfa5c/zombie.png
new file mode 100644 (file)
index 0000000..deaf9aa
Binary files /dev/null and b/uploads/7599a92aad08c45284b84e18c6bbfa5c/zombie.png differ
diff --git a/uploads/7607735ad75ec0853a3f88a3ecf018ae/zzz-bai-quickmenu-v2.pk3 b/uploads/7607735ad75ec0853a3f88a3ecf018ae/zzz-bai-quickmenu-v2.pk3
new file mode 100644 (file)
index 0000000..1bd63af
Binary files /dev/null and b/uploads/7607735ad75ec0853a3f88a3ecf018ae/zzz-bai-quickmenu-v2.pk3 differ
diff --git a/uploads/77207df550e8c0316e08bdd696917493/crouch_wp.jpg b/uploads/77207df550e8c0316e08bdd696917493/crouch_wp.jpg
new file mode 100644 (file)
index 0000000..1a5f720
Binary files /dev/null and b/uploads/77207df550e8c0316e08bdd696917493/crouch_wp.jpg differ
diff --git a/uploads/77f2c9768bec14f7b5c5cfd68452886f/spawnnade.jpg b/uploads/77f2c9768bec14f7b5c5cfd68452886f/spawnnade.jpg
new file mode 100644 (file)
index 0000000..e8344bc
Binary files /dev/null and b/uploads/77f2c9768bec14f7b5c5cfd68452886f/spawnnade.jpg differ
diff --git a/uploads/78a63b420def6f1e228720d1d91c6e3f/Honeyview_armor_mega.png b/uploads/78a63b420def6f1e228720d1d91c6e3f/Honeyview_armor_mega.png
new file mode 100644 (file)
index 0000000..b10bc2a
Binary files /dev/null and b/uploads/78a63b420def6f1e228720d1d91c6e3f/Honeyview_armor_mega.png differ
diff --git a/uploads/7a978ef8c57af58b558e9b670e5d475d/image.png b/uploads/7a978ef8c57af58b558e9b670e5d475d/image.png
new file mode 100644 (file)
index 0000000..738a93f
Binary files /dev/null and b/uploads/7a978ef8c57af58b558e9b670e5d475d/image.png differ
diff --git a/uploads/7ba1f8aed1b8dc2f41cec2679b8928d0/iconTroubleinTerroristTown.jpg b/uploads/7ba1f8aed1b8dc2f41cec2679b8928d0/iconTroubleinTerroristTown.jpg
new file mode 100644 (file)
index 0000000..96d52ab
Binary files /dev/null and b/uploads/7ba1f8aed1b8dc2f41cec2679b8928d0/iconTroubleinTerroristTown.jpg differ
diff --git a/uploads/7deb9e6cb017bcc91ab2e4687a358b6a/nitro.png b/uploads/7deb9e6cb017bcc91ab2e4687a358b6a/nitro.png
new file mode 100644 (file)
index 0000000..35768a4
Binary files /dev/null and b/uploads/7deb9e6cb017bcc91ab2e4687a358b6a/nitro.png differ
diff --git a/uploads/7df860d73a6fae27408c8f0c024122c7/exporttutorialIQM.jpg b/uploads/7df860d73a6fae27408c8f0c024122c7/exporttutorialIQM.jpg
new file mode 100644 (file)
index 0000000..429d27f
Binary files /dev/null and b/uploads/7df860d73a6fae27408c8f0c024122c7/exporttutorialIQM.jpg differ
diff --git a/uploads/7e75ed16f04358a1297c0cd1363a5e03/normal.jpg b/uploads/7e75ed16f04358a1297c0cd1363a5e03/normal.jpg
new file mode 100644 (file)
index 0000000..fa6afd3
Binary files /dev/null and b/uploads/7e75ed16f04358a1297c0cd1363a5e03/normal.jpg differ
diff --git a/uploads/7f62d54a5763b007ade732feadeb13ec/title2.jpg b/uploads/7f62d54a5763b007ade732feadeb13ec/title2.jpg
new file mode 100644 (file)
index 0000000..1d96dea
Binary files /dev/null and b/uploads/7f62d54a5763b007ade732feadeb13ec/title2.jpg differ
diff --git a/uploads/801998e5644db63a5946c46a29ddec85/4eg.jpg b/uploads/801998e5644db63a5946c46a29ddec85/4eg.jpg
new file mode 100644 (file)
index 0000000..73d3dc5
Binary files /dev/null and b/uploads/801998e5644db63a5946c46a29ddec85/4eg.jpg differ
diff --git a/uploads/80220aa4479a827e72b0a3734c9b237e/hardwired_wp.jpg b/uploads/80220aa4479a827e72b0a3734c9b237e/hardwired_wp.jpg
new file mode 100644 (file)
index 0000000..8660571
Binary files /dev/null and b/uploads/80220aa4479a827e72b0a3734c9b237e/hardwired_wp.jpg differ
diff --git a/uploads/80fea6093550c63fd50c099b50620372/teams1.jpg b/uploads/80fea6093550c63fd50c099b50620372/teams1.jpg
new file mode 100644 (file)
index 0000000..7f28c91
Binary files /dev/null and b/uploads/80fea6093550c63fd50c099b50620372/teams1.jpg differ
diff --git a/uploads/8195594de91adce2c8f62f9819c8e861/nitroboom.png b/uploads/8195594de91adce2c8f62f9819c8e861/nitroboom.png
new file mode 100644 (file)
index 0000000..668df57
Binary files /dev/null and b/uploads/8195594de91adce2c8f62f9819c8e861/nitroboom.png differ
diff --git a/uploads/81f43728f6f8a8fa07185ad9125b0b1d/Vehicle-lightapc.png b/uploads/81f43728f6f8a8fa07185ad9125b0b1d/Vehicle-lightapc.png
new file mode 100644 (file)
index 0000000..1c2c442
Binary files /dev/null and b/uploads/81f43728f6f8a8fa07185ad9125b0b1d/Vehicle-lightapc.png differ
diff --git a/uploads/8283fe733167674cd1061fafa93da0a2/Vehicle-r22helicopter-cockpit.jpg b/uploads/8283fe733167674cd1061fafa93da0a2/Vehicle-r22helicopter-cockpit.jpg
new file mode 100644 (file)
index 0000000..f0b2a1e
Binary files /dev/null and b/uploads/8283fe733167674cd1061fafa93da0a2/Vehicle-r22helicopter-cockpit.jpg differ
diff --git a/uploads/85f12623125db9d1e86e8189d5b247ad/Vehicle-lightapc-thirdperson-view.jpg b/uploads/85f12623125db9d1e86e8189d5b247ad/Vehicle-lightapc-thirdperson-view.jpg
new file mode 100644 (file)
index 0000000..fa27d20
Binary files /dev/null and b/uploads/85f12623125db9d1e86e8189d5b247ad/Vehicle-lightapc-thirdperson-view.jpg differ
diff --git a/uploads/86e23f5af2fa659b2a1b0ac71fed74fe/timer1.jpg b/uploads/86e23f5af2fa659b2a1b0ac71fed74fe/timer1.jpg
new file mode 100644 (file)
index 0000000..f80b7ff
Binary files /dev/null and b/uploads/86e23f5af2fa659b2a1b0ac71fed74fe/timer1.jpg differ
diff --git a/uploads/87492fa3d375e4166c86d794257b7d78/Gitsettingsshortguide.jpg b/uploads/87492fa3d375e4166c86d794257b7d78/Gitsettingsshortguide.jpg
new file mode 100644 (file)
index 0000000..aa3a6f1
Binary files /dev/null and b/uploads/87492fa3d375e4166c86d794257b7d78/Gitsettingsshortguide.jpg differ
diff --git a/uploads/87ff1b41bfbbc6221bf9b715bd2993d8/chat_ready.jpg b/uploads/87ff1b41bfbbc6221bf9b715bd2993d8/chat_ready.jpg
new file mode 100644 (file)
index 0000000..3ad2577
Binary files /dev/null and b/uploads/87ff1b41bfbbc6221bf9b715bd2993d8/chat_ready.jpg differ
diff --git a/uploads/88071dccb47d650aacd31c719eadb6b6/veilboom.jpg b/uploads/88071dccb47d650aacd31c719eadb6b6/veilboom.jpg
new file mode 100644 (file)
index 0000000..8895ce1
Binary files /dev/null and b/uploads/88071dccb47d650aacd31c719eadb6b6/veilboom.jpg differ
diff --git a/uploads/8a541fbdf6d2ab0447567eb1e18d3e13/zzz-bai-jingle-v1.pk3 b/uploads/8a541fbdf6d2ab0447567eb1e18d3e13/zzz-bai-jingle-v1.pk3
new file mode 100644 (file)
index 0000000..19b3f4b
Binary files /dev/null and b/uploads/8a541fbdf6d2ab0447567eb1e18d3e13/zzz-bai-jingle-v1.pk3 differ
diff --git a/uploads/8ba3d79131713563e8d2ba35aa7d1b55/2019-10-02_21-54_minectf.dem b/uploads/8ba3d79131713563e8d2ba35aa7d1b55/2019-10-02_21-54_minectf.dem
new file mode 100644 (file)
index 0000000..9c20b1d
Binary files /dev/null and b/uploads/8ba3d79131713563e8d2ba35aa7d1b55/2019-10-02_21-54_minectf.dem differ
diff --git a/uploads/8c812cdb7f7bdad7a3b9d199cc3583fc/duel_sb2.jpg b/uploads/8c812cdb7f7bdad7a3b9d199cc3583fc/duel_sb2.jpg
new file mode 100644 (file)
index 0000000..c3d78a9
Binary files /dev/null and b/uploads/8c812cdb7f7bdad7a3b9d199cc3583fc/duel_sb2.jpg differ
diff --git a/uploads/8d007cfbdd179a15ad8d99e9cd18aa06/Vehicle-ll48tank-cockpit.jpg b/uploads/8d007cfbdd179a15ad8d99e9cd18aa06/Vehicle-ll48tank-cockpit.jpg
new file mode 100644 (file)
index 0000000..f09e408
Binary files /dev/null and b/uploads/8d007cfbdd179a15ad8d99e9cd18aa06/Vehicle-ll48tank-cockpit.jpg differ
diff --git a/uploads/8f643aba9800e682047c9818482718af/zzz-bai-announcer-v9.pk3 b/uploads/8f643aba9800e682047c9818482718af/zzz-bai-announcer-v9.pk3
new file mode 100644 (file)
index 0000000..013c567
Binary files /dev/null and b/uploads/8f643aba9800e682047c9818482718af/zzz-bai-announcer-v9.pk3 differ
diff --git a/uploads/90d8ed4487ba478fcec90adb691c7a42/timer3.jpg b/uploads/90d8ed4487ba478fcec90adb691c7a42/timer3.jpg
new file mode 100644 (file)
index 0000000..49d0ed7
Binary files /dev/null and b/uploads/90d8ed4487ba478fcec90adb691c7a42/timer3.jpg differ
diff --git a/uploads/922bfe3278e7ec8688c4b96448e1e2ed/shambler.png b/uploads/922bfe3278e7ec8688c4b96448e1e2ed/shambler.png
new file mode 100644 (file)
index 0000000..bc8846c
Binary files /dev/null and b/uploads/922bfe3278e7ec8688c4b96448e1e2ed/shambler.png differ
diff --git a/uploads/92d5842accfd071f8900b689591423df/Vehicle-r22helicopter-thirdperson-view.jpg b/uploads/92d5842accfd071f8900b689591423df/Vehicle-r22helicopter-thirdperson-view.jpg
new file mode 100644 (file)
index 0000000..6773aba
Binary files /dev/null and b/uploads/92d5842accfd071f8900b689591423df/Vehicle-r22helicopter-thirdperson-view.jpg differ
diff --git a/uploads/9325a103e7052bec6ebdb05e4c3afe99/Vehicle-r22helicopter-thirdperson-view.png b/uploads/9325a103e7052bec6ebdb05e4c3afe99/Vehicle-r22helicopter-thirdperson-view.png
new file mode 100644 (file)
index 0000000..482ff20
Binary files /dev/null and b/uploads/9325a103e7052bec6ebdb05e4c3afe99/Vehicle-r22helicopter-thirdperson-view.png differ
diff --git a/uploads/9573c68889648122385609f314b1f077/normal_wp.jpg b/uploads/9573c68889648122385609f314b1f077/normal_wp.jpg
new file mode 100644 (file)
index 0000000..fe65c6c
Binary files /dev/null and b/uploads/9573c68889648122385609f314b1f077/normal_wp.jpg differ
diff --git a/uploads/967d1e4b8c364b86fad171a959f5f5f9/scrag.jpg b/uploads/967d1e4b8c364b86fad171a959f5f5f9/scrag.jpg
new file mode 100644 (file)
index 0000000..0b0189e
Binary files /dev/null and b/uploads/967d1e4b8c364b86fad171a959f5f5f9/scrag.jpg differ
diff --git a/uploads/968d5da002ae4e9070381e09c833504e/health_medium.png b/uploads/968d5da002ae4e9070381e09c833504e/health_medium.png
new file mode 100644 (file)
index 0000000..1c0a30a
Binary files /dev/null and b/uploads/968d5da002ae4e9070381e09c833504e/health_medium.png differ
diff --git a/uploads/9997b9cb9e9f3405a3e374811caa37ec/fsmp-teamplay-hats-1.2.0.pk3 b/uploads/9997b9cb9e9f3405a3e374811caa37ec/fsmp-teamplay-hats-1.2.0.pk3
new file mode 100644 (file)
index 0000000..4418fd4
Binary files /dev/null and b/uploads/9997b9cb9e9f3405a3e374811caa37ec/fsmp-teamplay-hats-1.2.0.pk3 differ
diff --git a/uploads/9ad5f03fe196de135e03f281cdd4cc62/veil.jpg b/uploads/9ad5f03fe196de135e03f281cdd4cc62/veil.jpg
new file mode 100644 (file)
index 0000000..765a6c7
Binary files /dev/null and b/uploads/9ad5f03fe196de135e03f281cdd4cc62/veil.jpg differ
diff --git a/uploads/9b6498ef80aea439232ac35d020a3859/xonotic20230616230550-00.jpg b/uploads/9b6498ef80aea439232ac35d020a3859/xonotic20230616230550-00.jpg
new file mode 100644 (file)
index 0000000..ff8dfe2
Binary files /dev/null and b/uploads/9b6498ef80aea439232ac35d020a3859/xonotic20230616230550-00.jpg differ
diff --git a/uploads/9b9de99e09439a4afbbee0ef1ff9dd6a/spider.png b/uploads/9b9de99e09439a4afbbee0ef1ff9dd6a/spider.png
new file mode 100644 (file)
index 0000000..3b45243
Binary files /dev/null and b/uploads/9b9de99e09439a4afbbee0ef1ff9dd6a/spider.png differ
diff --git a/uploads/9e9efa19232d1c47fd982ad0da2eb1df/blenderSMDexport3.jpg b/uploads/9e9efa19232d1c47fd982ad0da2eb1df/blenderSMDexport3.jpg
new file mode 100644 (file)
index 0000000..00e1316
Binary files /dev/null and b/uploads/9e9efa19232d1c47fd982ad0da2eb1df/blenderSMDexport3.jpg differ
diff --git a/uploads/9edc77a777f634acf4185f7e6fbd0e84/Vehicle-lightapc-cockpit.png b/uploads/9edc77a777f634acf4185f7e6fbd0e84/Vehicle-lightapc-cockpit.png
new file mode 100644 (file)
index 0000000..8c715d5
Binary files /dev/null and b/uploads/9edc77a777f634acf4185f7e6fbd0e84/Vehicle-lightapc-cockpit.png differ
diff --git a/uploads/a1525b91e1519d2786431a2e5b43e69b/MenuMMM.jpg b/uploads/a1525b91e1519d2786431a2e5b43e69b/MenuMMM.jpg
new file mode 100644 (file)
index 0000000..01ea337
Binary files /dev/null and b/uploads/a1525b91e1519d2786431a2e5b43e69b/MenuMMM.jpg differ
diff --git a/uploads/a1fbbf13c4340542b10a126eb3eb4c27/exportiqmiqeblenderdetails.jpg b/uploads/a1fbbf13c4340542b10a126eb3eb4c27/exportiqmiqeblenderdetails.jpg
new file mode 100644 (file)
index 0000000..f3fcce3
Binary files /dev/null and b/uploads/a1fbbf13c4340542b10a126eb3eb4c27/exportiqmiqeblenderdetails.jpg differ
diff --git a/uploads/a23dbba1f6aa6d1a272cb57855167dbe/Vehicle-lightapc.jpg b/uploads/a23dbba1f6aa6d1a272cb57855167dbe/Vehicle-lightapc.jpg
new file mode 100644 (file)
index 0000000..ab74af3
Binary files /dev/null and b/uploads/a23dbba1f6aa6d1a272cb57855167dbe/Vehicle-lightapc.jpg differ
diff --git a/uploads/a34e5e8eabec5fde14bbd12aafec2810/ogre.png b/uploads/a34e5e8eabec5fde14bbd12aafec2810/ogre.png
new file mode 100644 (file)
index 0000000..2a5697d
Binary files /dev/null and b/uploads/a34e5e8eabec5fde14bbd12aafec2810/ogre.png differ
diff --git a/uploads/a3b5d15a9af637f1d10e5a284cbf9834/rotfish.jpg b/uploads/a3b5d15a9af637f1d10e5a284cbf9834/rotfish.jpg
new file mode 100644 (file)
index 0000000..1407630
Binary files /dev/null and b/uploads/a3b5d15a9af637f1d10e5a284cbf9834/rotfish.jpg differ
diff --git a/uploads/a622ef2d5c0c5ca81d6f044c452293eb/quake_mod_sample.jpg b/uploads/a622ef2d5c0c5ca81d6f044c452293eb/quake_mod_sample.jpg
new file mode 100644 (file)
index 0000000..8c12b80
Binary files /dev/null and b/uploads/a622ef2d5c0c5ca81d6f044c452293eb/quake_mod_sample.jpg differ
diff --git a/uploads/a6789a82865f41522bfaa150e9c2bbc8/healing.png b/uploads/a6789a82865f41522bfaa150e9c2bbc8/healing.png
new file mode 100644 (file)
index 0000000..0e01a04
Binary files /dev/null and b/uploads/a6789a82865f41522bfaa150e9c2bbc8/healing.png differ
diff --git a/uploads/a686abf53ed2a7c0c39d264fce1a15bc/translocateboom.png b/uploads/a686abf53ed2a7c0c39d264fce1a15bc/translocateboom.png
new file mode 100644 (file)
index 0000000..52508ce
Binary files /dev/null and b/uploads/a686abf53ed2a7c0c39d264fce1a15bc/translocateboom.png differ
diff --git a/uploads/a696bd29d305c0d58ec1a6c18cbaae0b/veilboom.png b/uploads/a696bd29d305c0d58ec1a6c18cbaae0b/veilboom.png
new file mode 100644 (file)
index 0000000..0a9abb7
Binary files /dev/null and b/uploads/a696bd29d305c0d58ec1a6c18cbaae0b/veilboom.png differ
diff --git a/uploads/a90778308bad9c09bf02be9cdb760f76/napalm.png b/uploads/a90778308bad9c09bf02be9cdb760f76/napalm.png
new file mode 100644 (file)
index 0000000..9b97094
Binary files /dev/null and b/uploads/a90778308bad9c09bf02be9cdb760f76/napalm.png differ
diff --git a/uploads/aa246c0d67cabd7a59ad0f330280b6b0/tttTGA.tga b/uploads/aa246c0d67cabd7a59ad0f330280b6b0/tttTGA.tga
new file mode 100644 (file)
index 0000000..32fb75b
Binary files /dev/null and b/uploads/aa246c0d67cabd7a59ad0f330280b6b0/tttTGA.tga differ
diff --git a/uploads/abef98eaddd7c61bec7eb467efe4c3fe/crylinkblendermaterialsample.jpg b/uploads/abef98eaddd7c61bec7eb467efe4c3fe/crylinkblendermaterialsample.jpg
new file mode 100644 (file)
index 0000000..e726f6b
Binary files /dev/null and b/uploads/abef98eaddd7c61bec7eb467efe4c3fe/crylinkblendermaterialsample.jpg differ
diff --git a/uploads/ad2d82960ebaa51bf74370a32b7fffd2/items.jpg b/uploads/ad2d82960ebaa51bf74370a32b7fffd2/items.jpg
new file mode 100644 (file)
index 0000000..287a2f6
Binary files /dev/null and b/uploads/ad2d82960ebaa51bf74370a32b7fffd2/items.jpg differ
diff --git a/uploads/ae680fd80bdf748fdee6d2f9186dada3/jump_wp.jpg b/uploads/ae680fd80bdf748fdee6d2f9186dada3/jump_wp.jpg
new file mode 100644 (file)
index 0000000..b5d94aa
Binary files /dev/null and b/uploads/ae680fd80bdf748fdee6d2f9186dada3/jump_wp.jpg differ
diff --git a/uploads/af2f46e366956e6ec336515564664d42/th_waypointeditor_config.cfg b/uploads/af2f46e366956e6ec336515564664d42/th_waypointeditor_config.cfg
new file mode 100644 (file)
index 0000000..a4dd849
--- /dev/null
@@ -0,0 +1,50 @@
+// terencehill's waypoint editor config
+
+con_notify 4
+//g_warmup 0
+//r_lightningbeam_thickness 2
+
+//fss: field set server
+alias fss "prvm_edictset server $1 $2 \"$3\""
+
+set th_bindmap_active 1
+set th_bindmap_bg_active 0
+alias th_bindmap_apply "in_bindmap $th_bindmap_active $th_bindmap_bg_active"
+
+alias th_waypointeditor_enable "g_waypointeditor 1; bot_debug_goalstack 1; bot_nofire 1; sv_cheats 1; timelimit_override 0; th_bindmap_active 1; th_bindmap_apply"
+alias th_waypointeditor_disable "g_waypointeditor 0; bot_debug_goalstack 0; bot_nofire 0; sv_cheats 0; timelimit_override -1; th_bindmap_active 0; th_bindmap_apply"
+
+alias bot_reset_ammo "fss 2 ammo_shells 1; fss 2 ammo_nails 1; fss 2 ammo_rockets 1; fss 2 ammo_cells 1; fss 2 ammo_plasma 1; fss 2 ammo_fuel 1; fss 2 ammo_shells 1;"
+alias bot_reset_health "fss 2 health 1; fss 2 armorvalue 0"
+alias bot_role_generic "fss 2 havocbot_role havocbot_role_generic; fss 2 havocbot_role_timeout 999999; fss 2 havocbot_previous_role havocbot_role_generic"
+
+th_waypointeditor_enable
+
+alias th_bindmap_default "in_bindmap 0 0"
+
+set th_bindmap_waypointeditor_num 1
+alias th_bindmap_waypointeditor "in_bindmap $th_bindmap_waypointeditor 0"
+
+alias bind_waypointeditor "in_bind $th_bindmap_waypointeditor_num $*"
+bind_waypointeditor 1 "wpeditor spawn"
+bind_waypointeditor 2 "wpeditor remove"
+bind_waypointeditor 3 "wpeditor saveall"
+bind_waypointeditor 4 "wpeditor relinkall"
+bind_waypointeditor 5 "wpeditor unreachable"
+bind_waypointeditor 6 "wpeditor spawn crosshair"
+bind_waypointeditor 7 "wpeditor spawn jump"
+bind_waypointeditor 8 "wpeditor spawn crouch"
+bind_waypointeditor 9 "wpeditor spawn support"
+bind_waypointeditor 0 "wpeditor hardwire crosshair"
+bind_waypointeditor mouse4 "wpeditor spawn"
+bind_waypointeditor mouse5 "wpeditor remove"
+bind_waypointeditor ctrl "toggle slowmo 1 0.1"
+bind_waypointeditor r wpeditor_menu
+bind_waypointeditor f fly
+bind_waypointeditor g god
+bind_waypointeditor l "wpeditor lock"
+bind_waypointeditor x "bot_cmd 1 pause"
+bind_waypointeditor c "bot_cmd 1 continue"
+bind_waypointeditor v +crouch
+bind_waypointeditor n "toggle bot_number"
+bind_waypointeditor m "bot_role_generic"
diff --git a/uploads/b047fb813b9c5fd39dddd6475b54704f/spawn.png b/uploads/b047fb813b9c5fd39dddd6475b54704f/spawn.png
new file mode 100644 (file)
index 0000000..898ef8b
Binary files /dev/null and b/uploads/b047fb813b9c5fd39dddd6475b54704f/spawn.png differ
diff --git a/uploads/b17c8e0ffb023dcb60fd7e2c23039e44/xonotic20230616230550-00.jpg b/uploads/b17c8e0ffb023dcb60fd7e2c23039e44/xonotic20230616230550-00.jpg
new file mode 100644 (file)
index 0000000..67fee29
Binary files /dev/null and b/uploads/b17c8e0ffb023dcb60fd7e2c23039e44/xonotic20230616230550-00.jpg differ
diff --git a/uploads/b557161f3f3918ef097b86cc282c9795/medals2.jpg b/uploads/b557161f3f3918ef097b86cc282c9795/medals2.jpg
new file mode 100644 (file)
index 0000000..7230650
Binary files /dev/null and b/uploads/b557161f3f3918ef097b86cc282c9795/medals2.jpg differ
diff --git a/uploads/b5880d748b8fae86cbc3106b1ad0e937/afrit.png b/uploads/b5880d748b8fae86cbc3106b1ad0e937/afrit.png
new file mode 100644 (file)
index 0000000..61557a7
Binary files /dev/null and b/uploads/b5880d748b8fae86cbc3106b1ad0e937/afrit.png differ
diff --git a/uploads/b71c8b9d29a00a11a47e29a0033290d9/team_notify.jpg b/uploads/b71c8b9d29a00a11a47e29a0033290d9/team_notify.jpg
new file mode 100644 (file)
index 0000000..8ee30cd
Binary files /dev/null and b/uploads/b71c8b9d29a00a11a47e29a0033290d9/team_notify.jpg differ
diff --git a/uploads/b72f913d9a32520275a943b6c3fde511/fsmp-teamplay-server-files-1.3.0.pk3 b/uploads/b72f913d9a32520275a943b6c3fde511/fsmp-teamplay-server-files-1.3.0.pk3
new file mode 100644 (file)
index 0000000..2a81f13
Binary files /dev/null and b/uploads/b72f913d9a32520275a943b6c3fde511/fsmp-teamplay-server-files-1.3.0.pk3 differ
diff --git a/uploads/b74fcccf32fe79966f656030737bed2a/armor_mega.tga b/uploads/b74fcccf32fe79966f656030737bed2a/armor_mega.tga
new file mode 100644 (file)
index 0000000..1324e97
Binary files /dev/null and b/uploads/b74fcccf32fe79966f656030737bed2a/armor_mega.tga differ
diff --git a/uploads/b7538e50554b70d4c8c0946e4c6cd991/health_big.png b/uploads/b7538e50554b70d4c8c0946e4c6cd991/health_big.png
new file mode 100644 (file)
index 0000000..cae2c8b
Binary files /dev/null and b/uploads/b7538e50554b70d4c8c0946e4c6cd991/health_big.png differ
diff --git a/uploads/b77bc014b93ea6f97e581be4eece805d/afrit.jpg b/uploads/b77bc014b93ea6f97e581be4eece805d/afrit.jpg
new file mode 100644 (file)
index 0000000..7922260
Binary files /dev/null and b/uploads/b77bc014b93ea6f97e581be4eece805d/afrit.jpg differ
diff --git a/uploads/b7c8b250fc1af6b30c999506e7143930/blenderSMDexport2.jpg b/uploads/b7c8b250fc1af6b30c999506e7143930/blenderSMDexport2.jpg
new file mode 100644 (file)
index 0000000..1c237ff
Binary files /dev/null and b/uploads/b7c8b250fc1af6b30c999506e7143930/blenderSMDexport2.jpg differ
diff --git a/uploads/b88705357f80b8216aff7fd545baa94f/entrapboom.png b/uploads/b88705357f80b8216aff7fd545baa94f/entrapboom.png
new file mode 100644 (file)
index 0000000..6055000
Binary files /dev/null and b/uploads/b88705357f80b8216aff7fd545baa94f/entrapboom.png differ
diff --git a/uploads/b9dd72b8571010e06ba5ee3d0be68845/karmaSystem.jpg b/uploads/b9dd72b8571010e06ba5ee3d0be68845/karmaSystem.jpg
new file mode 100644 (file)
index 0000000..7f60c17
Binary files /dev/null and b/uploads/b9dd72b8571010e06ba5ee3d0be68845/karmaSystem.jpg differ
diff --git a/uploads/ba42b9e7a7619c82f97eca0be5b0efc6/armor_mega.png b/uploads/ba42b9e7a7619c82f97eca0be5b0efc6/armor_mega.png
new file mode 100644 (file)
index 0000000..cad903b
Binary files /dev/null and b/uploads/ba42b9e7a7619c82f97eca0be5b0efc6/armor_mega.png differ
diff --git a/uploads/ba94aa50b9d2a1b4afbbe277ce4e8e3e/fsmp-teamplay-server-files-1.4.0.pk3 b/uploads/ba94aa50b9d2a1b4afbbe277ce4e8e3e/fsmp-teamplay-server-files-1.4.0.pk3
new file mode 100644 (file)
index 0000000..68cbcb4
Binary files /dev/null and b/uploads/ba94aa50b9d2a1b4afbbe277ce4e8e3e/fsmp-teamplay-server-files-1.4.0.pk3 differ
diff --git a/uploads/bb848a10f699a55df73e70d9ab6e1102/spectating.jpg b/uploads/bb848a10f699a55df73e70d9ab6e1102/spectating.jpg
new file mode 100644 (file)
index 0000000..b56ee81
Binary files /dev/null and b/uploads/bb848a10f699a55df73e70d9ab6e1102/spectating.jpg differ
diff --git a/uploads/bc616f2e01318d8e0f5e267ffd3d8b50/4eg.jpg b/uploads/bc616f2e01318d8e0f5e267ffd3d8b50/4eg.jpg
new file mode 100644 (file)
index 0000000..c5ee3eb
Binary files /dev/null and b/uploads/bc616f2e01318d8e0f5e267ffd3d8b50/4eg.jpg differ
diff --git a/uploads/bc6f4532a636aae501c8a800ceed0eb2/zzz-bai-announcer-v9.pk3 b/uploads/bc6f4532a636aae501c8a800ceed0eb2/zzz-bai-announcer-v9.pk3
new file mode 100644 (file)
index 0000000..013c567
Binary files /dev/null and b/uploads/bc6f4532a636aae501c8a800ceed0eb2/zzz-bai-announcer-v9.pk3 differ
diff --git a/uploads/bca5d877730c378b68e6f3bcf0a87879/Vehicle-ll48tank-cockpit.png b/uploads/bca5d877730c378b68e6f3bcf0a87879/Vehicle-ll48tank-cockpit.png
new file mode 100644 (file)
index 0000000..722c1e8
Binary files /dev/null and b/uploads/bca5d877730c378b68e6f3bcf0a87879/Vehicle-ll48tank-cockpit.png differ
diff --git a/uploads/bdb424baaeff32bf3f406b43be17e5a6/jump_wp_to_crouch_wp.jpg b/uploads/bdb424baaeff32bf3f406b43be17e5a6/jump_wp_to_crouch_wp.jpg
new file mode 100644 (file)
index 0000000..17a6603
Binary files /dev/null and b/uploads/bdb424baaeff32bf3f406b43be17e5a6/jump_wp_to_crouch_wp.jpg differ
diff --git a/uploads/c04b290b3174036960a84590ade730f0/spawn.jpg b/uploads/c04b290b3174036960a84590ade730f0/spawn.jpg
new file mode 100644 (file)
index 0000000..3b7a67c
Binary files /dev/null and b/uploads/c04b290b3174036960a84590ade730f0/spawn.jpg differ
diff --git a/uploads/c2c9f4c388ac01ae9213c577c1afe7c3/gametype_mmmxaw.png b/uploads/c2c9f4c388ac01ae9213c577c1afe7c3/gametype_mmmxaw.png
new file mode 100644 (file)
index 0000000..fec7bc9
Binary files /dev/null and b/uploads/c2c9f4c388ac01ae9213c577c1afe7c3/gametype_mmmxaw.png differ
diff --git a/uploads/c3466c97c10a16b06b8c523b22a0e0ab/health_mega.png b/uploads/c3466c97c10a16b06b8c523b22a0e0ab/health_mega.png
new file mode 100644 (file)
index 0000000..3bb9369
Binary files /dev/null and b/uploads/c3466c97c10a16b06b8c523b22a0e0ab/health_mega.png differ
diff --git a/uploads/c48fb7565453eab24faca2d6ffec4347/Md3_textures.png b/uploads/c48fb7565453eab24faca2d6ffec4347/Md3_textures.png
new file mode 100644 (file)
index 0000000..ef08dfb
Binary files /dev/null and b/uploads/c48fb7565453eab24faca2d6ffec4347/Md3_textures.png differ
diff --git a/uploads/c6e610dae225d4b3b3b6d983fbe4a1ee/gametype_mmm.png b/uploads/c6e610dae225d4b3b3b6d983fbe4a1ee/gametype_mmm.png
new file mode 100644 (file)
index 0000000..1847fce
Binary files /dev/null and b/uploads/c6e610dae225d4b3b3b6d983fbe4a1ee/gametype_mmm.png differ
diff --git a/uploads/c71d78429cae68236204f572a61ce1fc/scoreboardCountryflag.jpg b/uploads/c71d78429cae68236204f572a61ce1fc/scoreboardCountryflag.jpg
new file mode 100644 (file)
index 0000000..4fe5ade
Binary files /dev/null and b/uploads/c71d78429cae68236204f572a61ce1fc/scoreboardCountryflag.jpg differ
diff --git a/uploads/c78a23766edd66cea849944f9b0eb2e0/conv_armor_mega.png b/uploads/c78a23766edd66cea849944f9b0eb2e0/conv_armor_mega.png
new file mode 100644 (file)
index 0000000..3ba6926
Binary files /dev/null and b/uploads/c78a23766edd66cea849944f9b0eb2e0/conv_armor_mega.png differ
diff --git a/uploads/c9dd058351dd79b05014293df321836d/zzz-bai-gfx-v8.pk3 b/uploads/c9dd058351dd79b05014293df321836d/zzz-bai-gfx-v8.pk3
new file mode 100644 (file)
index 0000000..23cc4ea
Binary files /dev/null and b/uploads/c9dd058351dd79b05014293df321836d/zzz-bai-gfx-v8.pk3 differ
diff --git a/uploads/ca2ff9f964f1836eaa2550c5ab918c85/napalmboom.png b/uploads/ca2ff9f964f1836eaa2550c5ab918c85/napalmboom.png
new file mode 100644 (file)
index 0000000..76b5bac
Binary files /dev/null and b/uploads/ca2ff9f964f1836eaa2550c5ab918c85/napalmboom.png differ
diff --git a/uploads/ca88b1a8cbab9b9c5b81ef43bb9809f3/crylinkblendertexturesample.jpg b/uploads/ca88b1a8cbab9b9c5b81ef43bb9809f3/crylinkblendertexturesample.jpg
new file mode 100644 (file)
index 0000000..f2fc7cd
Binary files /dev/null and b/uploads/ca88b1a8cbab9b9c5b81ef43bb9809f3/crylinkblendertexturesample.jpg differ
diff --git a/uploads/cd28ad41832e53d9006402c8821c6a18/medals3.jpg b/uploads/cd28ad41832e53d9006402c8821c6a18/medals3.jpg
new file mode 100644 (file)
index 0000000..299da00
Binary files /dev/null and b/uploads/cd28ad41832e53d9006402c8821c6a18/medals3.jpg differ
diff --git a/uploads/cd466c80bb27a039b5e6702755707562/spider.jpg b/uploads/cd466c80bb27a039b5e6702755707562/spider.jpg
new file mode 100644 (file)
index 0000000..c100bc1
Binary files /dev/null and b/uploads/cd466c80bb27a039b5e6702755707562/spider.jpg differ
diff --git a/uploads/cdb90908aab4a52580019c871a936156/duplicatedtexturenameloadingerror.jpg b/uploads/cdb90908aab4a52580019c871a936156/duplicatedtexturenameloadingerror.jpg
new file mode 100644 (file)
index 0000000..fd96589
Binary files /dev/null and b/uploads/cdb90908aab4a52580019c871a936156/duplicatedtexturenameloadingerror.jpg differ
diff --git a/uploads/ce02b51b844f1a2dd37d6d51f1fa6e67/zzz-bai-sounds-v11.pk3 b/uploads/ce02b51b844f1a2dd37d6d51f1fa6e67/zzz-bai-sounds-v11.pk3
new file mode 100644 (file)
index 0000000..ae84c6d
Binary files /dev/null and b/uploads/ce02b51b844f1a2dd37d6d51f1fa6e67/zzz-bai-sounds-v11.pk3 differ
diff --git a/uploads/ce3c707247027623f69dc6ea82495567/spect_hud.jpg b/uploads/ce3c707247027623f69dc6ea82495567/spect_hud.jpg
new file mode 100644 (file)
index 0000000..3fc0e7e
Binary files /dev/null and b/uploads/ce3c707247027623f69dc6ea82495567/spect_hud.jpg differ
diff --git a/uploads/cf0c9ed18c81f8281e2af454b071dbb6/zzz-bai-jingle-v1.pk3 b/uploads/cf0c9ed18c81f8281e2af454b071dbb6/zzz-bai-jingle-v1.pk3
new file mode 100644 (file)
index 0000000..19b3f4b
Binary files /dev/null and b/uploads/cf0c9ed18c81f8281e2af454b071dbb6/zzz-bai-jingle-v1.pk3 differ
diff --git a/uploads/cfae0d89095b3fc5bd31962c1c7b47af/wyvern.jpg b/uploads/cfae0d89095b3fc5bd31962c1c7b47af/wyvern.jpg
new file mode 100644 (file)
index 0000000..fd5c7ad
Binary files /dev/null and b/uploads/cfae0d89095b3fc5bd31962c1c7b47af/wyvern.jpg differ
diff --git a/uploads/d24c29720cbc633d181ee7ada882a3ad/Gitsettingsshortguide.jpg b/uploads/d24c29720cbc633d181ee7ada882a3ad/Gitsettingsshortguide.jpg
new file mode 100644 (file)
index 0000000..aa3a6f1
Binary files /dev/null and b/uploads/d24c29720cbc633d181ee7ada882a3ad/Gitsettingsshortguide.jpg differ
diff --git a/uploads/d259518dd9c920f55b4813e4f9d92461/Vehicle-ll48tank.jpg b/uploads/d259518dd9c920f55b4813e4f9d92461/Vehicle-ll48tank.jpg
new file mode 100644 (file)
index 0000000..50b1685
Binary files /dev/null and b/uploads/d259518dd9c920f55b4813e4f9d92461/Vehicle-ll48tank.jpg differ
diff --git a/uploads/d3a3586d41ffca7ea2316696c3e0b0c9/zombie.jpg b/uploads/d3a3586d41ffca7ea2316696c3e0b0c9/zombie.jpg
new file mode 100644 (file)
index 0000000..57e03e4
Binary files /dev/null and b/uploads/d3a3586d41ffca7ea2316696c3e0b0c9/zombie.jpg differ
diff --git a/uploads/d48adce41341a2c32dc5b077bb897216/rottweiler.png b/uploads/d48adce41341a2c32dc5b077bb897216/rottweiler.png
new file mode 100644 (file)
index 0000000..efbc09c
Binary files /dev/null and b/uploads/d48adce41341a2c32dc5b077bb897216/rottweiler.png differ
diff --git a/uploads/d5c18cbaed37fc98b28a3fc2d8b3f8ed/nitro.jpg b/uploads/d5c18cbaed37fc98b28a3fc2d8b3f8ed/nitro.jpg
new file mode 100644 (file)
index 0000000..4d02611
Binary files /dev/null and b/uploads/d5c18cbaed37fc98b28a3fc2d8b3f8ed/nitro.jpg differ
diff --git a/uploads/d7ad82b11f40be35df21edea0ebd1b07/zzz-bai-jokes-v18.pk3 b/uploads/d7ad82b11f40be35df21edea0ebd1b07/zzz-bai-jokes-v18.pk3
new file mode 100644 (file)
index 0000000..52a0949
Binary files /dev/null and b/uploads/d7ad82b11f40be35df21edea0ebd1b07/zzz-bai-jokes-v18.pk3 differ
diff --git a/uploads/d7c63b18559c353165cee65dfd31aca3/spectating.png b/uploads/d7c63b18559c353165cee65dfd31aca3/spectating.png
new file mode 100644 (file)
index 0000000..4a97ad7
Binary files /dev/null and b/uploads/d7c63b18559c353165cee65dfd31aca3/spectating.png differ
diff --git a/uploads/dbc9799a7d5caa91d6172b21e61f205e/translocate.png b/uploads/dbc9799a7d5caa91d6172b21e61f205e/translocate.png
new file mode 100644 (file)
index 0000000..ad0d2ec
Binary files /dev/null and b/uploads/dbc9799a7d5caa91d6172b21e61f205e/translocate.png differ
diff --git a/uploads/dead5dd822cfb3eef5470d1e4cfd64b5/Vehicle-r22helicopter.png b/uploads/dead5dd822cfb3eef5470d1e4cfd64b5/Vehicle-r22helicopter.png
new file mode 100644 (file)
index 0000000..d1d1164
Binary files /dev/null and b/uploads/dead5dd822cfb3eef5470d1e4cfd64b5/Vehicle-r22helicopter.png differ
diff --git a/uploads/dec906e1d2ca4f2ec2096e8461797592/murder_place.jpg b/uploads/dec906e1d2ca4f2ec2096e8461797592/murder_place.jpg
new file mode 100644 (file)
index 0000000..457524d
Binary files /dev/null and b/uploads/dec906e1d2ca4f2ec2096e8461797592/murder_place.jpg differ
diff --git a/uploads/e1f01cf95af8e73403a7652836427195/veil.png b/uploads/e1f01cf95af8e73403a7652836427195/veil.png
new file mode 100644 (file)
index 0000000..5f60b11
Binary files /dev/null and b/uploads/e1f01cf95af8e73403a7652836427195/veil.png differ
diff --git a/uploads/e220eae0a519de41f93aa90c1be0a273/creeper.png b/uploads/e220eae0a519de41f93aa90c1be0a273/creeper.png
new file mode 100644 (file)
index 0000000..dc9d65b
Binary files /dev/null and b/uploads/e220eae0a519de41f93aa90c1be0a273/creeper.png differ
diff --git a/uploads/e5a8837b66fc96de4e30a19ed73d9e47/Vehicle-ll48tank-thirdperson-view.png b/uploads/e5a8837b66fc96de4e30a19ed73d9e47/Vehicle-ll48tank-thirdperson-view.png
new file mode 100644 (file)
index 0000000..37c6e26
Binary files /dev/null and b/uploads/e5a8837b66fc96de4e30a19ed73d9e47/Vehicle-ll48tank-thirdperson-view.png differ
diff --git a/uploads/e72bbcac022e75f3944c36ef7f7fd2c5/zzz-bai-gfx-v7.pk3 b/uploads/e72bbcac022e75f3944c36ef7f7fd2c5/zzz-bai-gfx-v7.pk3
new file mode 100644 (file)
index 0000000..a14eec2
Binary files /dev/null and b/uploads/e72bbcac022e75f3944c36ef7f7fd2c5/zzz-bai-gfx-v7.pk3 differ
diff --git a/uploads/e7c23520812595b949077456d0e0b002/armor_big.png b/uploads/e7c23520812595b949077456d0e0b002/armor_big.png
new file mode 100644 (file)
index 0000000..17681d0
Binary files /dev/null and b/uploads/e7c23520812595b949077456d0e0b002/armor_big.png differ
diff --git a/uploads/e846c4dac00937a4bcef89c5fe961291/entrapboom.jpg b/uploads/e846c4dac00937a4bcef89c5fe961291/entrapboom.jpg
new file mode 100644 (file)
index 0000000..c464207
Binary files /dev/null and b/uploads/e846c4dac00937a4bcef89c5fe961291/entrapboom.jpg differ
diff --git a/uploads/eab7d20707a37db964faeca5b624648a/napalm.jpg b/uploads/eab7d20707a37db964faeca5b624648a/napalm.jpg
new file mode 100644 (file)
index 0000000..bca3d58
Binary files /dev/null and b/uploads/eab7d20707a37db964faeca5b624648a/napalm.jpg differ
diff --git a/uploads/ec37639792378bb6ef9684b19d45a056/blenderSMDexport5.jpg b/uploads/ec37639792378bb6ef9684b19d45a056/blenderSMDexport5.jpg
new file mode 100644 (file)
index 0000000..b1eb2c5
Binary files /dev/null and b/uploads/ec37639792378bb6ef9684b19d45a056/blenderSMDexport5.jpg differ
diff --git a/uploads/ec76013f8f6c39e5d3d9ad182818454c/xonotic20230616230916-00.jpg b/uploads/ec76013f8f6c39e5d3d9ad182818454c/xonotic20230616230916-00.jpg
new file mode 100644 (file)
index 0000000..1fe4439
Binary files /dev/null and b/uploads/ec76013f8f6c39e5d3d9ad182818454c/xonotic20230616230916-00.jpg differ
diff --git a/uploads/edac44d1319de43fd3529cee1368d128/iconTTTgamemodeoriginal.png b/uploads/edac44d1319de43fd3529cee1368d128/iconTTTgamemodeoriginal.png
new file mode 100644 (file)
index 0000000..a5b2ee3
Binary files /dev/null and b/uploads/edac44d1319de43fd3529cee1368d128/iconTTTgamemodeoriginal.png differ
diff --git a/uploads/ee94f06409a122191a74d70e1e2250bd/translocate.jpg b/uploads/ee94f06409a122191a74d70e1e2250bd/translocate.jpg
new file mode 100644 (file)
index 0000000..ed32d68
Binary files /dev/null and b/uploads/ee94f06409a122191a74d70e1e2250bd/translocate.jpg differ
diff --git a/uploads/efee46a2a80a232ebe5fa63e30f4e2d9/Md3exp.png b/uploads/efee46a2a80a232ebe5fa63e30f4e2d9/Md3exp.png
new file mode 100644 (file)
index 0000000..1f2f391
Binary files /dev/null and b/uploads/efee46a2a80a232ebe5fa63e30f4e2d9/Md3exp.png differ
diff --git a/uploads/f087361a52e91df6459df22e3926f412/normalboom.jpg b/uploads/f087361a52e91df6459df22e3926f412/normalboom.jpg
new file mode 100644 (file)
index 0000000..b8ff362
Binary files /dev/null and b/uploads/f087361a52e91df6459df22e3926f412/normalboom.jpg differ
diff --git a/uploads/f16e2c669c122f62d8ae663f4df18823/zzz-bai-jokes-v18.pk3 b/uploads/f16e2c669c122f62d8ae663f4df18823/zzz-bai-jokes-v18.pk3
new file mode 100644 (file)
index 0000000..52a0949
Binary files /dev/null and b/uploads/f16e2c669c122f62d8ae663f4df18823/zzz-bai-jokes-v18.pk3 differ
diff --git a/uploads/f3f39c9a06a408bffd5e48bc5e07eac6/exporttutorialMD3.jpg b/uploads/f3f39c9a06a408bffd5e48bc5e07eac6/exporttutorialMD3.jpg
new file mode 100644 (file)
index 0000000..8bc22e2
Binary files /dev/null and b/uploads/f3f39c9a06a408bffd5e48bc5e07eac6/exporttutorialMD3.jpg differ
diff --git a/uploads/f453f36f7b04dd48c0747fc9075f4895/monsternadeboom.jpg b/uploads/f453f36f7b04dd48c0747fc9075f4895/monsternadeboom.jpg
new file mode 100644 (file)
index 0000000..834ee1f
Binary files /dev/null and b/uploads/f453f36f7b04dd48c0747fc9075f4895/monsternadeboom.jpg differ
diff --git a/uploads/f4895cc5bd728d6bbb81e0699206098b/zombie2.png b/uploads/f4895cc5bd728d6bbb81e0699206098b/zombie2.png
new file mode 100644 (file)
index 0000000..e35bee7
Binary files /dev/null and b/uploads/f4895cc5bd728d6bbb81e0699206098b/zombie2.png differ
diff --git a/uploads/f6696ed828d0b759321b2a9fb358f044/enforcer.png b/uploads/f6696ed828d0b759321b2a9fb358f044/enforcer.png
new file mode 100644 (file)
index 0000000..d53a1e3
Binary files /dev/null and b/uploads/f6696ed828d0b759321b2a9fb358f044/enforcer.png differ
diff --git a/uploads/f6bee872e2ebfe4c3bb317bd1f0aa421/tttTGA.tga b/uploads/f6bee872e2ebfe4c3bb317bd1f0aa421/tttTGA.tga
new file mode 100644 (file)
index 0000000..ced8fd6
Binary files /dev/null and b/uploads/f6bee872e2ebfe4c3bb317bd1f0aa421/tttTGA.tga differ
diff --git a/uploads/fad08dff4a3f011773ccd11bbf14fe57/vore.png b/uploads/fad08dff4a3f011773ccd11bbf14fe57/vore.png
new file mode 100644 (file)
index 0000000..689c3c8
Binary files /dev/null and b/uploads/fad08dff4a3f011773ccd11bbf14fe57/vore.png differ
diff --git a/uploads/fbdadc8a4d7a66b459475f12fcfb3944/traitor.jpg b/uploads/fbdadc8a4d7a66b459475f12fcfb3944/traitor.jpg
new file mode 100644 (file)
index 0000000..de6332d
Binary files /dev/null and b/uploads/fbdadc8a4d7a66b459475f12fcfb3944/traitor.jpg differ
diff --git a/uploads/fbdb7eb49088219c3acc3095e4254a6a/monsternade.png b/uploads/fbdb7eb49088219c3acc3095e4254a6a/monsternade.png
new file mode 100644 (file)
index 0000000..11692bc
Binary files /dev/null and b/uploads/fbdb7eb49088219c3acc3095e4254a6a/monsternade.png differ
diff --git a/uploads/ffc9cef7d586de00266c20d4eeffaaf8/support_wp.jpg b/uploads/ffc9cef7d586de00266c20d4eeffaaf8/support_wp.jpg
new file mode 100644 (file)
index 0000000..14f595d
Binary files /dev/null and b/uploads/ffc9cef7d586de00266c20d4eeffaaf8/support_wp.jpg differ