How to Read Hidden Text in Scp

SCP:CB - Modding Guide | WIP Topic

#one

Wikipedia wrote:A mod or modification is the amending of the programme code of a video game in order to make it operate in a manner different to its original version.

Modding SCP: Containment Breach is a simple task once you lot know how to approach it. Although multiple guides exist, this is a (as far equally I can tell) complete guide on all the subjects that have been asked. If something is missing, please PM me and I will answer ASAP. Some examples of mods are the 'Box of Horrors' mod, a collaborative effort made by (at time of writing) InnocentSam and JuanJPro, and the 'Half-Life: Resonance Cascade' modernistic by CLgaming.

Please read all of this mail service before asking questions. You tin can follow the links beneath to get to various dissimilar topic subjects on modding. I encourage you all to post what you're working on, help will be provided and criticism also. Nonetheless, if this thread is dead, delight do not post in the thread for aid, but instead PM me, or try contacting others who have created a mod and come across if they tin help.

Types of Modifications:
Compiling and Coding are hand-in-hand, coding is the procedure of changing the code, of which I will provide a crude outline on the Blitz syntax. (SCP:CB is coded in Blitz3D!) Compiling is using the modified source-lawmaking to create an actual program, a game that yous tin launch from windows normally. PREREQUISITES: Blitz3D

Mapping is the process of creating a room or modifying existing rooms intended for the player to explore in-game. Modifying rooms can add new geometry or events, anything more than than a basic room will require compiling and coding to create. PREREQUISITES: 3Ds Globe Studio, Blitz3D (heavily recommended)

A resources pack is a mod where game files are changed, including models, textures, and sounds. they do non change any source-code and are meant to work with the original program, meaning about resource packs will exist compatible as long equally they do not overwrite the same files.

Sections:
Compiling & Coding
Mapping & Room Events

Additional Guides & Resource:
Innocent Sam's Guide on Compiling
Innocent Sam's Guide on Adding Custom Items (Link Currently Broken)
Innocent Sam's Guide on Adding Custom Rooms

Mirocaine'south Guide to adding Custom Models
Official Rooms for 3Ds World Studio (from 0.6.6) by Regalis
3D World Studio Chair and Figurer Props by Regalis
SCP Label Template (.psd)]
Monitor Template(.psd)

Blitz3D User Transmission
3D World Studio User's Guide

I'm always looking for additional resources, if you have anything you lot'd similar to contribute exist sure to post, or if there hasn't been a reply for a while delight PM me!

Q & A:

Spoiler

Q: I followed your guide, and screwed upwards my computer!
A: You follow this guide under your own intent, any harm is caused by following this guide is your own doing.

Q: I get the error 'X'; and I cannot find a solution?
A: Postal service in the thread, I'll help to the all-time of my abilities.

Q: I get the error function BumpPower non found!
A: Blitz3D is not reading the FastExt.decl inside the USERLIBS directory, make sure it is located there.

Q: I get the fault Stream does non exist.
A: Your source code cannot find the files to run the game, place the source code in the same identify as the Containment Alienation executable.

Q: I don't have a userlib directory!
A: Your Blitz3D installation is an older version, update to a more than recent copy.

Q: I get an InitExt error!
A: Your FastExt.bb is malfunctioning, try replacing it and make certain it is in the aforementioned folder

Q: I get error User lib not found.
A: Yous practise not have either FastExt.dll or FastText.dll with accompanied source lawmaking.

Q: How do I update my lawmaking in files other than Main.BB?
A: Main.bb loads the files in the aforementioned binder every bit it, so any changes you've fabricated to the other files will be included in the compile, turning your code into a game.

Q: I go the error 'X'; and I cannot find a solution?
A: P̶o̶s̶t̶ ̶i̶n̶ ̶t̶h̶e̶ ̶t̶h̶r̶e̶a̶d̶,̶ ̶I̶'̶l̶l̶ ̶h̶e̶l̶p̶ ̶t̶o̶ ̶t̶h̶e̶ ̶b̶e̶s̶t̶ ̶o̶f̶ ̶m̶y̶ ̶a̶b̶i̶l̶i̶t̶i̶e̶s̶. Due to forum rules fugitive bumping, please read the introduction on how to receive help.

Q: What does 'compiling' hateful?
A: It means turning the code into a Windows programme, an Executable (.exe) file that Windows can run and understands.

Q: Is this guide illegal? Or against forum rules?
A: No, every bit it does not link to any warez related websites. The farthest information technology goes that direction is the 2d link in the first part, or this.

Q: I don't know where Blitz3D is installed, or I already installed it!
A: Past default C:\Program Files\Blitz3D, or Program Files (x86) for 64-bit users. If you don't know what you are, wait here.

Q: I don't take a Program Files (x86) binder!
A: You are not a 64-chip user then, utilize Program Files without (x86) instead.

Q: I can't observe the programme folder in Plan Files!
A: If y'all have a Program Files (x86) folder, information technology volition be in that binder by default. This means you lot run a 64-bit computer.

Q: I downloaded a template just I don't know how to open the .psd file!
A: .psd stands for 'Photo Shop Certificate'. You need Photoshop, or import the file into Gimp (free) using plug-ins.

Q: I don't empathize half of this!
A: I have written this guide to be as simple as possible but engineering is hard to explain for those less acquainted to the topic.

Update 2/2/2016
I am not going to update this guide since I accept Windows 10, and unfortunately cannot use 3DWS. I may however write some of the coding tutorials if there is still a need, this game is pretty dead tbh.

Terminal edited by mrpeanut188 on Wed Feb 03, 2022 five:47 am, edited ten times in total.

Image

Re: SCP:CB - Modding Guide

#2

Compiling (Updated for 0.9.2+)

Spoiler

Compiling is when you turn the Source-Code files into an executable file Windows can run. In this instance we are creating the SCP: Containment Breach game once again, just with any modifications we have made.

Function 1: Acquiring Software & Installation
Blitz3D
Download the Blitz3D trial from here, or yous tin can do this to 'aquire' it for free. However, it is not supported, recommended, or encouraged, only a present choice. After downloading, run the installer. Before you rush the installer, take note of the installation directory, as you will demand to navigate to this directory when installing the FastExt's .DECL plugin.

FastExt & FastText
You crave both Fast libraries, the FastExt (Fast Extention) and the FastText to compile the source code. You tin can download both trial editions at the Fast Libraries website.

Save both to your hard-bulldoze, and we volition open the FastExt trial .zip get-go. Keep digging inside until you discover a 'for_Blitz3D' directory, which y'all should open. Open up the Decl folder, and copy the FastExt.decl file into
a 'USERLIBS' folder within the Blitz3D installation directory. E.X. 'C:\Program Files (x86)\Blitz3D\userlibs'. Navigate back to the 'for_Blitz3D' directory, and open the 'Include' folder. Observe FastExt.bb, and paste it into the source code binder for SCP:Containment Breach, or wherever you are keeping the game's source code.

Do the higher up procedure again on the FastText archive, instead of copying FastExt copy FastText, aforementioned directories.

Part two: Preparing the Code
Everything concerning installation for Blitz3D is now completed. All that remains is the source code itself. For the
coding to correctly run, you demand to place the source code in the same folder as the Containment Breach executable
file (The programme file). You tin can either dump the contents of 'Source Code' in your Game folder (Unless you removed it!)
into the main binder.All the .BB files should be with Containment Alienation.exe. If this is done, open Main.bb with the
BlitzIDE by double-clicking, and so click on Program > Debug Compile from the carte du jour bar at the elevation. If the game gives
an error, jot down anything you lot see associated with it, then bank check in the Q&A section.

If the plan runs smoothly with no errors, then you lot are ready to lawmaking. A basic coding tutorial is coming soon, then be ready.

Coding: Basic
(In writing que)

Coding: Updating your mod to latest version (Being re-written, lacking detail atm!)
Due to me not being active for a few months and a few other reasons, I've decided to give yous a BETTER solution on how to update your mod to the current version of SCP: Containment Breach. The concept is this: yous find the differences between the vanilla* source-code from the same version as your modernistic, and the newest vanilla* source-lawmaking. What yous need to do is compare each file in the one-time source code binder to the respective file in the new source-lawmaking folder. A proficient tool for this is WinMerge. Alternatively, you tin can use http://world wide web.diffchecker.com. For WinMerge directly compare the ii as text files. In WinMerge, paste the contents of the sometime file into the left column, the newer code on the right column. The differences will be highlighted, look for the key on the webpage for more info.

*Vanilla, for those not used to term, means 'Plainly'. I am basically saying that you demand an unedited, original, source-code from the game download.

Terminal edited past mrpeanut188 on Wed Aug 27, 2022 4:33 am, edited ten times in total.

Image

Re: SCP:CB - Modding Guide

#3

Mapping: Rooms
(In Progress, not however edited for clarity)

Spoiler

Part 1: Acquiring Software & Installation
3D World Studio
Accept note, you CANNOT employ a demo version of 3D Globe Studio, as it does not let you export your maps to any
formats besides .3dw, while we need to export to Blitz3D format (.b3d) so the game can load information technology. Buy the software here.

To create a room mesh for the game, you demand to import the game'south graphical resources, namely textures and models. To begin importing the textures, we need to locate 3Ds World Studio'southward material folder. The default path for this folder is 'C:\Program Files (x86)\3D World Studio\Materials' directory. Inside of the materials folder, delete everything except for the sprites binder. Importing textures themselves are like shooting fish in a barrel, re-create all the .PNG and .JPG from the GFX/map folder into 3Ds Globe Studio's materials folder.

To import the models, check InnocentSam's thread.

Office two: Layout
The room dimensions are expressed in 3D World Studio grid units, you can alter grid size using the default hotkeys, the [ ] brackets. Each of the 3 side-views have their own grid size, when you change the grid size the grid on which the mouse is hovering over will be changed.
Standard dimensions:

Code: Select all

                        Corridor Height: 384 units Corridor Width: 338 units Stair Stride Width: 46 units Stair Footstep Height: 32 units  Player Head Height: approx. 600-615 units Player Head Height (Crouched): approx. 340-355 units *The player's caput is always moving then an exact height for ingame purpose cannot be given.  Door Height: 320 units Door Width: 192 units  A room consists of a floor, walls, and a ceiling. Load up an example room and take note of how it is created. You lot may notice sometimes when you get behind a brush, it disappears. This is because those faces you are viewing accept been deleted to relieve GPU power.                                              

Mapping: Gimmicks
In progress!
Gimmicks are special objects or entities that depict attention. Unremarkably they are re-used pieces of level blueprint that are for detail, including cameras, doors, and items. However, the game handles most of these within the code. Thit means this sub-department requires Blitz3D to edit and compile the source code.
Positioning Items Spawned in Lawmaking

Spoiler

A lot of things cannot be made in 3Ds World Studio, simply instead must be spawned in using the game's code. Things like cameras, all items, npcs, and events (technically).
This is a two stride procedure: Finding the coordinates and necessary information to spawn an item then coding in the spawn of it.
For an example, I want to spawn an detail 'Cup of Tea' on top of a book. I create a brush in 3Ds World Studio, and so calibration information technology up slightly. I'll position the brush where I want it to exist, right above the volume where I await the cup to be. The minor picayune 'x' is the 'origin' of the object, or where the center is in 3D space. When you lot have an object selected, it'south origin should highlight with the castor, and at the lesser of the screen you will see the coordinates of the original, forth with the dimensions of the brush. In this example provided, the same as to a higher place, the origin would exist 384, 104, 600. These all respond to XYZ coordinates in 3D space. Meaning,
X=384, Y=104, and Z=600. Please reread this if you lot need as well, it'south pretty confusing the first time only after you grasp the concept information technology should become much easier.

In my post-obit room code, I accept the following.

Code: Select all

                                                  ;Desk-bound Drink 			information technology = CreateItem("cup", "cup", r\10+386.0*RoomScale, +104*RoomScale, r\z+599.0*RoomScale, 137, 139, 65) 			EntityParent(it\obj, r\obj) : it\name = "Cup of Tea"                      

The first line has ' ; ', meaning that the code is not executed, it is only a message for myself that I left to know where I am in the lawmaking. The third line is only for loving cup items, information technology is renaming the cup to 'Cup of Tea', then that it appears to be tea. The just line that matters is the 2d, the CreateItem() part.
Permit's dive into Items.bb and look for the function. The office tell y'all what variable it is expecting, and should look like this:

Lawmaking: Select all

                        CreateItem.Items(proper noun$, tempname$, x#, y#, z#, r%=0,g%=0,b%=0,a#=1.0)                      

Information technology'due south as simple as plugging in variables, aforementioned as your math class that you detest. If nosotros have a expect back at the lawmaking...

Code: Select all

                        CreateItem("loving cup", "loving cup", r\x+386.0*RoomScale, +104*RoomScale, r\z+599.0*RoomScale, 137, 139, 65)                      

That line of code that I made in the room spawns item Cup, using coded proper name Cup, at x coord 386*RoomScale, at y coord 104*RoomScale, and z coord r\559*RoomScale, forth with giving the cup a colour of 137 crimson, 139 light-green, and 65 blue.
The last 3 numbers are taken from the drinks' ini file to give it to right color for the tea drink. The important factors in this coding equation are XYZ coordinates, and the item proper noun. You might ask why the XYZ coordinates are multiplied by RoomScale, information technology is considering you shouldn't presume that the rooms will be the same scale. What if they were made bigger to fit the player? Or smaller? Some smart thinking could salvage you a lot of trouble downwardly the road, Regalis thought of this and I am just post-obit his example. The other important variable, the item name, tin can be plant in 'Items.bb', to find out what item yous want to spawn.

If in doubt, almost every particular in the game is spawned like this, you lot tin make sure you did information technology right past checking the variable at that place.

Code Snippets:
Spawn Item

Code: Select all

                    CreateItem(name$, tempname$, x#, y#, z#, r%=0,g%=0,b%=0,a#=1.0)                  

Take the first two arguments (name$, tempname$) from items.bb. Then, place the XYZ values where you want to spawn, read above to find out how to find these coords. the rest of the arguments are the Red-Green-Blue & Alpha settings for drinks dispensed past SCP-294.

Spawn Door

Code: Select all

                    CreateDoor(lvl, x#, y#, z#, angle#, room.Rooms, dopen% = False,  big% = Simulated, keycard% = False, code$="")                  

Lvl argument should exist set up to 'r\level' to set the room as the door's parent. XYZ coords are the same every bit other spawns. Bending should either be 0 or xc, vertical or horizontal when spawned into a room. Open and keycard are self explanatory. Large is whether is is a 'containment door', the giant metallic ones like the one seen in the intro that they can't seem to close. Code is if instead of buttons information technology's a keypad.
NOTE: Buttons automatically place themselves with the door when information technology is spawned.

Lawmaking: Select all

                    PositionEntity(r\RoomDoors[0]\buttons[0], 10#, y#, z#, global% = Simulated)                  

As you can tell from the code, we named the CreateDoor() as RoomDoors[0]. Buttons are automatically named and are buttons[0] and buttons[ane], equally children of the door object.

*TODO: Rewrite this department so people can sympathise information technology
Y'all now understand how to find 3D Coordinates and spawn items at that location, the next step is knowing where in the source to code it in.
Function FillRoom() is in MapSystem.bb, and it is called on each new room that is generated when you create a new salvage or load a map. It executes a different piece of code for each different room. If it does non have any code related to that room, it ends itself and the game continues creating the map. We demand to acquaintance lawmaking with the room, so add together another 'example' to the list inside of the select. Scroll down until you run across the 'Cease select' line. After the 'FreeEntity hallway' line, make another indent then that you are typing on the same line as the rest of the case lines, and write your case line with your room name. After this, you can indent and write any code featured in this guide. Have fun! (That is, if you can sympathize this before I rewrite.)

To be written...
Doors

Levers & Buttons
Cameras
Chatlog Monitors
Ladders?

Mapping: Events
To be written next!

Last edited by mrpeanut188 on Sat Sep 27, 2022 11:02 pm, edited 5 times in total.

Image

Re: SCP:CB - Modding Guide | WIP Topic

#4

I know this is withal another postal service, merely this mail service ISN'T function of the guide. Instead, I'd like to kicking off the WIP section of this thread with some progress of my own.

*Large images

Spoiler

Image

That is an early draft of SCP-096's containment chamber as seen from 3Ds World Studio. In the final version I am most likely going to delete a lot of the lights, equally I already have 6 minor lightmaps, I might merely size them upwardly and optimize the existing lights. The textures are more often than not probable going to be replaced, more often than not merely the tile floor and the pillars with a metal flooring texture.

Image

Yet another prototype from 096's bedchamber, this time is of the platforms. I have a basic platform modeled out. Next step is to create a pulley organisation used to pull the carts up and down.
The carts will be climbable, as the mod is using juanjpro's ladder entity equally demonstrated in his 009 'Red Ice' mod.

Image

Re: SCP:CB - Modding Guide | WIP Topic

#5

mrpeanut188 wrote:I know this is yet another mail, merely this post ISN'T part of the guide. Instead, I'd like to kick off the WIP section of this thread with some progress of my ain.

*Large images

Spoiler

Image

That is an early on draft of SCP-096'south containment sleeping accommodation as seen from 3Ds World Studio. In the final version I am most likely going to delete a lot of the lights, as I already have half-dozen small lightmaps, I might just size them upwards and optimize the existing lights. The textures are mostly likely going to be replaced, mostly just the tile floor and the pillars with a metal floor texture.

Image

Yet another prototype from 096's sleeping room, this time is of the platforms. I have a bones platform modeled out. Next step is to create a pulley system used to pull the carts up and downward.
The carts will be climbable, as the modern is using juanjpro's ladder entity as demonstrated in his 009 'Red Ice' mod.

This looks awesome! Will this room be part of the BOH mod when it's done?

Do y'all think NASA invented thunderstorms to encompass upwards the audio of space battles?

Re: SCP:CB - Modding Guide | WIP Topic

#vi

Did you accept my concept of the 096 containment sleeping accommodation by any take a chance? :P
Looking adept regardless, good chore.

Some quick links for myself (and you all also).
SCP-096 model
MTF model
Forum Smileys
deviantART
Pixel Joint

Enjoy

Re: SCP:CB - Modding Guide | WIP Topic

#7

That looks actually absurd! Wish yous had some more than screenshots though. Information technology looks oddly cramped from certain viewpoints just given the danger of 096 it makes sense I guess?
And so, how are you planning to show any kind of damage done by 096? Like in the SCP-513 room? :)

Re: SCP:CB - Modding Guide | WIP Topic

#8

SCP-096'south containment chamber looks actually good!

Serimah wrote:So, how are you planning to testify any kind of damage done by 096? Like in the SCP-513 room? :)

I accept this aforementioned question.

Re: SCP:CB - Modding Guide | WIP Topic

#nine

Akatos wrote:This looks crawly! Volition this room be role of the BOH mod when it's done?

Currently information technology's being developed for the BoH and volition not be a stand-alone modification.

Nighttime wrote:Did y'all take my concept of the 096 containment sleeping room by any chance? :P
Looking good regardless, good job.

This has been bookmarked in Firefox since I've read information technology.

Serimah wrote:That looks really cool! Wish yous had some more than screenshots though. Information technology looks oddly cramped from certain viewpoints simply given the danger of 096 it makes sense I guess?
So, how are you lot planning to show any kind of damage done past 096? Like in the SCP-513 room? :)

Serimah wrote:That looks really cool! Wish you had some more than screenshots though. It looks oddly cramped from certain viewpoints only given the danger of 096 it makes sense I guess?

The room as it is is pretty cramped, I'm already scaled it up twice, the 'containment cube' is 5 meters cubed (16.4ft). I've rounded it to ~sixteen.5 feet cubed in-game.

Serimah wrote:So, how are you planning to show whatsoever kind of damage done past 096? Like in the SCP-513 room? :)

Yep, the 'containment cube' is in Blender and gear up to exist modeled. I take the 096 model in Blender, so I'one thousand gonna pose him like he's gonna break out against the metal, and make a body imprint like the ones that Wile E. Coyote always makes.
From there on I'm going to 'rip' the metal outward and re-import into 3Ds World Studio as a mesh, and place information technology where the placeholder castor is.

If I have the time I'1000 going to provide rubble in the hallway and ceiling where 096 broke out the jumped a floor (presumably to the surface).
Kudos to Omniary and Juanjpro for helping me out. Due to the astonishing work (and heisting skills) of Omniary, this add-on will be a lot creepier!

More than progress to come up after some optimization!

[Edit]
I messed around with spotlights, they were in my original plan for the room only I just barely got them working. Final render would be much sharper.

Spoiler

Image

Image

Image

Re: SCP:CB - Modding Guide | WIP Topic

#10

Very useful topic!

Code: Select all

                      Corridor Height: 384 units Corridor Width: 338 units Stair Footstep Width: 46 units Stair Stride Meridian: 32 units  Histrion Head Tiptop: approx. 600-615 units Role player Head Summit (Crouched): approx. 340-355 units                    

I find this useful indeed. The dimensions of doorways is a noteworthy thing to add together to this. I always have to copy-paste a doorway from a pre-existing map to save me some time.

freytheawaster.blogspot.com

Source: https://undertowgames.com/forum/viewtopic.php?t=3735

0 Response to "How to Read Hidden Text in Scp"

ارسال یک نظر

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel