This guide assumes you can/have successfully compiled the source code using Blitz3D.
Firstly, open up Items.bb in Blitz3D.
Find the function "InitItemTemplates". You can click on it on the sidebar marked "funcs" for ease of access. This will take you to the list of items in the game:
From here, you can add new items or edit existing ones. We're going to add a new item, SCP-005, the key that opens all (even electronic) locks.
First, you want to copy any of the CreateItemTemplates so you have a template to work with.
Create("Level 1 Key Card", "key1", "GFX\items\keycard.x", "GFX\items\INVkey1.jpg", "", 0.0004,"GFX\items\keycard1.jpg")
The first parameter is it's in game name. The second parameter is it's name in code. The third parameter is the directory to it's 3D model. It can be .x or .b3d. The fourth parameter is the icon in the inventory. Fifth parameter is the directory to the image that is displayed when an item- say, a document- is used. The sixth parameter is the scale of the 3D item, so if your item is too small, this can be a good fix. And the seventh parameter is the texture of the 3D model. So this is what SCP-005 would look like:
Create("SCP-005", "scp005", "GFX\items\005.b3d", "GFX\items\INV005.jpg", "", 0.0004,"GFX\items\005.jpg")
You would just place this somewhere within InitItemTemplates.
So now the item is in the game in code, we need the resources themselves. We won't go into detail as to how to create a model, as an already-extensive guide can be found here: http://scpcbgame.com/forum/viewtopic.php?f=5&t=225
When you have your model, we'll assume that you had the brain capacity to produce a model, so a small 64x64 icon should be no problem. Place all your resource files into "SCPCB directory/GFX/items", compile Main.bb and run the game.
If you receive memory access violation errors during game loading, it probably means it cannot find the model. Double-check your code and directories and try again.
Once in-game, bring up the console using F3 and type in "spawnitem [item code name]" which in this case, would be "spawnitem scp005" or "spawnitem SCP-005".
If your model spawns and you can pick it up, great! If it spawns and you can't see the model, it's either because the model is so small that you can't see it (fixable by making it larger) or you used a bad file format (switch to .b3d or .x).
Now to make your item usable.
Since this key will replace the omni keycard, it'd be a good idea to just replace the omni keycard code with SCP-005s. However, this can cause problems, so we'll just slot SCP-005 into the code about opening doors with keycards.
Open Main.bb in Blitz3D if you haven't already, and search for "Function UseDoor".
You'll want to just copy "Case "key6" and the temp part below it, and paste it, replacing key6 with scp005 and "temp = 6" with "temp = 7". This will allow you to open keycard doors with it.
If you want to go full finesse, then scroll down to where it says "you need a keycard to open this slot" and paste this below the Return:
ElseIf temp = 7
If showmsg = True Then
Msg = "You place the key close to the lock"
MsgTimer = 70 * 5
SelectedItem = Null
This makes it so that if the ID of the item is 7 (SCP-005s ID), then instead of being incorrect and saying "you insert a keycard into the slot", it'll say "you place the key close to the lock" and it'll open the door!
Compile your code and test once more.
If it works, congrats! You just added a new item into the game!